Skip to main content

Call Recording

  • How can I record an outbound call?

    You can record a call either by using the Voice API or the XML element.

    Using API

    You can record calls using the Voice API at any time during the call. The API returns a URL that specifies a file that contains the audio recording. The API also lets you stop the recording at any point. The ability to initiate and stop recordings can be useful for support and sales calls where reviews can help improve business processes. Our documentation explains how to get the call_UUID of a live call, which you need to record an outbound call.

    Using Record XML

    You can use the Record XML element to record an outbound call by having the XML appended in the answer_URL of the API call. For example, if your call flow is to bridge two numbers or endpoints and then record the call when the second party answers, follow these steps:

    • API call: The "to" attribute will contain the number 1 
    {
    "from": "12025551111",
    "to":"12025552222",
    "answer_url":"https://yourdomain.com/answer/"
    }
    • When this party answers the call, the answer_URL will be executed. The answer_URL should contain the following XML code:
    <Response>    
    <Record action="https://yourdomain.com/get_recording/" startOnDialAnswer="true" redirect="false" />   
    <Dial>        

    <Number>12025553333</Number>   
    </Dial>
    </Response> 
    • The call can be recorded once number 2 answers the call.
  • How can I record an inbound call?

    There are two ways to record an inbound call. 

    Using the Record API

    The Record API can record live calls at any time during the call. The API will return a URL with a file containing the audio recording. For more details, refer to our call recording reference documentation.

    To get the call_UUID of the live call needed to record the inbound call, you can retrieve details for a specific call or get all live calls.

    Using Record XML

    The Record XML can be used to record the inbound call by having the XML appended in the answer_URL of the application attached to the Plivo DID (your Plivo phone number).

    • During an inbound call to the Plivo DID, the answer_URL of the application attached to DID is executed. The answer_URL should contain the following XML.
    <Response>    

    <Record action="https://yourdomain.com/get_recording/" startOnDialAnswer="true" redirect="false" />    

    <Dial>        

    <Number>12025553333</Number>   

    </Dial>

    </Response>

    For more details, please refer to our XML documentation on how to record a complete call session.

  • How can I record a conference call?

    You can record a call either by using the Voice API or the Conference XML element.

    Using the API

    You can record calls using the Voice API at any time during the call. The API returns a URL that specifies a file that contains the audio recording. Our documentation explains how to get the call_UUID of an ongoing conference call, which you need to record a call.

    Using record attribute in conference XML

    You can set the "record" attribute to "true" in the Conference XML element to record a conference call. For example: 

    <Response>
        <Conference record="true">My Room</Conference>
    </Response>

     

  • Does Plivo charge for recording storage?

    Beginning August 31, 2023, Plivo will store call recordings for free for a period of 90 days. After that, a charge of $0.0004 per minute per month will apply for recording storage. The charges are the same regardless of the recording type — call recording, conference recording, or MPC recording in stereo or mono. The charge will be reflected in your next invoice.

    As an example, storing 1 million minutes of recording will cost $400 per month beyond the free 90 days period.

     

  • Does Plivo charge for call recordings?

    No, Plivo doesn’t charge you for call recording. The features listed below are free.

    • Call recording
    • Multilingual text-to-speech
    • Automatic machine detection
    • Usage of PHLO
  • Can I record a call in stereo or mono?

    Calls that are recorded using the API are always recorded in mono, whether you save the recordings as MP3 or WAV files, meaning that the audio will be recorded using a single channel.

    Calls that are recorded using XML are always recorded in stereo, whether you save the recordings as MP3 or WAV files, meaning that the audio will be recorded using two or more independent channels.

  • Where can I find my recordings?

    You can find a list of your recordings in the console under Voice > Logs > Recordings.

    Alternatively, you can use the action attribute or callback attribute of the Record XML element to configure your web server to get recording details along with the recording URL.

  • What is participant-level recording in MPC and why is it useful?

    Participant-level recording allows you to record the audio of each participant in a multi-party call (MPC) separately. This feature is useful for scenarios where clear, isolated audio tracks for each participant are needed, such as in interviews, conferences, or sentiment analysis in customer support interactions.

  • What file formats are supported for participant-level recordings?

    Currently, participant-level recordings can be saved in MP3 or WAV format, depending on your preference.

  • Can I start participant-level recording in the middle of a call?

    Yes, you can initiate participant-level recording at any time during the call using the start participant-level recording API. Simply pass the ‘record_track_type’ parameter as described below:

    Parameter Datatype Description

    record_track_type

    (optional)

    string

    Indicates if the recording track is at the participant level or includes all channels.


    Possible values: participant / all / both


    participant: Initiates single-track or participant-level recording for the provided member_id.

    all: Initiates multi-channel recording for the specified participant. 

    both: Initiates both single-track/participant-level and all-channel recordings.


    Default: all

  • How can I obtain separate audio recordings for each participant on the MPC bridge?

    You can achieve the above requirement using both API and XML.

    XML

    You can pass the below parameter while initiating MPC via XML to record the audio of that specific participant.

    Attributes

    Argument Datatype Description
    recordParticipantTrack Boolean

    Indicates whether single-track or participant-level recording will be initiated when the participant joins the MPC bridge.


    Default: false

     

    API

    Using APIs, You can achieve this during the addition of new participant to the MPC or by invoking participant-level recording. 

    Add a participant to a multiparty call using API

    You can initiate the single-track or participant-level recording while adding the participant to the MPC bridge

    Parameter Datatype Description

    record_participant_track

    (optional)

    Boolean

    Indicates whether single-track or participant-level recording will be initiated when the participant joins the MPC bridge. The generated recording file will contain only the audio of the specified participant.


    Default: false

    Start participant-level recording

    Alternatively, you can initiate the participant or single track recording using the participant level recording API.

    Parameter Datatype Description

    record_track_type

    (optional)

    string

    Indicates if the recording track is at the participant level or includes all channels.


    Possible values: participant / all / both


    participant: Initiates single-track or participant-level recording for the provided member_id.

    all: Initiates multi-channel recording for the specified participant. 

    both: Initiates both single-track/participant-level and all-channel recordings.


    Default: all

  • How can I track recording storage charges?

    Plivo has introduced enhancements to our Voice API and console to make it easier to track recording storage charges.

    APIs: New parameters on the Recording object — recording_storage_duration, recording_storage_rate, and monthly_recording_storage_amount — provide information about storage duration and charges.

    Console: The Voice > Recordings page of the console now includes filtering options for days of storage, and you can export historic recordings within a one-year timeframe for easier tracking.

    How billing works

    Recording storage charges are billed on the last day of each calendar month. At that time Plivo checks the storage duration of each recording in an account and applies a charge if the duration is more than 90 days. The aggregated charge is deducted from the account balance and reported on your invoice.

    Suppose, for example, you record three calls on March 16. For all recordings, the recording_storage_rate is 0.0004, and until the last day of the calendar month after 90 days have passed the monthly_recording_storage_amount is zero. You delete the third recording before the end of the billing period for which it would first be charged. The charges would be calculated like this. 

     

      Recording 1,
    50 seconds
    Recording 2,
    119 seconds
    Recording 3,
    150 seconds
    March 16 recording_storage_duration = 1 recording_storage_duration = 1 recording_storage_duration = 1
    March 31 recording_storage_duration = 16 recording_storage_duration = 16 recording_storage_duration = 16
    April 30 recording_storage_duration = 46 recording_storage_duration = 46 recording_storage_duration = 46
    May 30 recording_storage_duration = 77 recording_storage_duration = 77 recording_storage_duration = 77
    June 13 recording_storage_duration = 90 recording_storage_duration = 90 recording_storage_duration = 90
    June 29 recording_storage_duration = 106 recording_storage_duration = 106 Recording deleted via API or console
    June 30 recording_storage_duration = 107
    monthly_recording_storage_amount = 0.0004
    recording_storage_duration = 107
    monthly_recording_storage_amount = 0.0008
    Not considered for a charge
     

     

     

    The total charge deducted from the account on June 30 is $0.0012 (0.0004+0.0008).

    Invoice

    Here’s how the recording storage charge appears on your invoice.

    Screenshot

  • What happens if I set the ‘record_track_type’ to both?

    When you set the ‘record_track_type’ to both, two different files will be generated: one for the single-track (participant-level) recording and one for the multi-channel (all participants) recording.

  • How can I manage the recording storage charges?

    You can use a flag on the console to manage the consent for recording storage. This is available under Other Settings on the voice console. By default, the flag is enabled, which means all recordings will be stored and charged after 90 days. However, you can disable this option if they do not wish to be charged for recording storage. If disabled, Plivo will automatically delete call recordings from your account to avoid storage charges.

    Screenshot

    You can also delete the recordings using Delete Recording API or from the console. Read more about recording deletion on this FAQ.   

  • How should I secure access to my call recordings?

    Recordings hosted on Plivo servers are only accessible via unique hard to guess long URLs. These URLs are shared with you in Recording callbacks and API responses.

    By default, authentication is not enforced on get recording media requests. This allows for easier implementation of use cases that involve playing recordings on a web/mobile frontend. 

    For enhanced security, we recommend enabling Plivo Auth Id and Token based Basic Auth on Get Recording Media requests made for recordings in your Plivo account.

    To enable Basic Auth on Get Recording Media requests:

    • Navigate to the Other Voice Settings section of the Plivo console.
    • Update your preference by enabling the 'Basic Auth For Recording URLs' setting.
    Please note that only account admins (users with role Admin) have the required privileges to update recording auth preference. 

     

  • How can I delete call recordings?

    This reference page shows how you can can delete a recording using the Voice API. The API endpoint uses a recording ID to delete a specific recording. To get the recording ID, navigate to Voice > Logs > Recordings in the console. You cannot delete a recording from that console page.