BXML Recording
About
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 to do a transcription of your recording, you can add a transcribe
attribute to your Record
or StartRecording
BXML verbs. If you want to receive a TranscriptionAvailable callbacks, you can set the transcriptionAvailableUrl
to your URL of choice, and transcriptionAvailableMethod
to your HTTP method (GET
or POST
).
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>