Skip to main content

Recording

This guide will show how to do call recording via the Record and StartRecording verbs.

Record#

The Record verb starts recording in a call and pauses all BXML execution until the recording is terminated by a timeout (maxDuration) or a terminating digit (terminatingDigits). Once the recording ends, BXML execution will continue at the next verb, or at the BXML at the recordCompleteUrl if this attribute is set.

If the recordingAvailableUrl attribute is set, this URL will receive a callback once the recording is available to use.

Use <Record> if:#

  • You're capturing a voicemail
  • You only need a single party recording
  • You're capturing input that should pause the call until finished

Record Example#

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record recordCompleteUrl="https://myapp.com/nextBXML" maxDuration="10"/>
</Response>

StartRecording#

The StartRecording verb starts recording in a call without pausing BXML execution. The PauseRecording, ResumeRecording, and StopRecording BXML verbs can be used to toggle the recording. Recording is terminated by either the call ending, or by a StopRecording verb.

Much like the Record verb, StartRecording also has a recordingAvailableUrl attribute to receive the recording available callback.

Use <StartRecording> if:#

  • You want to record both ends (together or separate) of a phone call
  • You want to record a call for quality assurance
  • You need other BXML verbs to execute while a recording is going on

StartRecording Examples#

Basic StartRecording#
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<StartRecording recordingAvailableUrl="https://myapp.com/noBXML"/>
</Response>
StartRecording Used With StopRecording, PauseRecording, and ResumeRecording#
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<StartRecording recordingAvailableUrl="https://myapp.com/noBXML"/>
<SpeakSentence voice="bridget">Recording is active while this sentence is being spoken.</SpeakSentence>
<PauseRecording/>
<SpeakSentence voice="bridget">Recording has been paused.</SpeakSentence>
<ResumeRecording/>
<SpeakSentence voice="bridget">Recording has been resumed and is active while this sentence is being spoken.</SpeakSentence>
<StopRecording/>
<SpeakSentence voice="bridget">Recording has been stopped.</SpeakSentence>
</Response>

Transcriptions#

If you want your recordings to be transcribed, you can add a transcribe attribute to your Record or StartRecording BXML verbs. If you want to receive a TranscriptionAvailable callback, you can additionally set the transcriptionAvailableUrl to a URL on your callback server and transcriptionAvailableMethod to its associated HTTP method (GET or POST, the default).

Transcription can succeed only for recordings of length greater than 500 milliseconds and less than 4 hours.

Recording Transcription Example#

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record transcribe="true" transcriptionAvailableUrl="https://transcription.url.server/transcribe/" transcriptionAvailableMethod="POST"/>
</Response>