Call Recording#
About Call Recording#
Setting up call recording allows you to have a permanent record of a conversation that took place.
Configuring Call Recording#
Call recording can be enabled in a number of ways:
- At the account level
- At the user level
- At the device level
- Explicitly as a callflow action
Call recording also requires you to have a web server capable of receiving an HTTP PUT request with the contents of the recording. You are then free to save the recording in a way that meets your needs.
Account, User, or Device#
Configuring recording at the account level means all calls, inbound and outbound, to this account will start the call recording system.
Configuring recording at the user level starts recording for any calls to/from a device owned by that user.
Configuring recording at the device level starts recording for any calls to/from the device.
To enable call recording, add "call_recording":{...}
to the document of choice. For example, if you have a user with user ID of {USER_ID}
, you can patch the user's document using Crossbar:
curl -v -X PATCH \ -H "X-Auth-Token: {AUTH_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"data":{ "call_recording":{...} }}' \ http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/users/{USER_ID}
Call Recording Payload#
The call_recording
payload defines properties to be applied on inbound
to, outbound
from, or any
calls involving the endpoint.
Each of those properties can then define what to do when the call comes from the offnet
, onnet
, or any
network.
Effectively this gives you a matrix on the endpoint to control how call recording is initiated:
| offnet
| onnet
inbound
| [1] | [2]
outbound
| [3] | [4]
inbound
+offnet
: Calls originating from offnet (upstream carriers typically) to the endpointinbound
+onnet
: Calls originating from onnet (typically another endpoint in the account) to the endpointoutbound
+offnet
: Calls originating from the endpoint destined for the upstream carriersoutbound
+onnet
: Calls originating from the endpoint destined for another endpoint on the account
Using any
for either setting will invoke recording for both options of that setting.
Concrete example#
Sales wants calls to and from customers to be recorded but not calls within the account. The sales users would have their call_recording
settings set as:
{"id":"{USER_ID}" ,"call_recording":{ "inbound":{ "offnet":{ ...recording settings... } } ,"outbound":{ "offnet":{ ...recording settings... } } } }
The call recording settings#
Key | Description | Type | Default | Required | Support Level |
---|---|---|---|---|---|
enabled |
is recording enabled | boolean() |
false |
||
format |
What format to store the recording on disk | string('mp3' | 'wav') |
false |
||
record_min_sec |
The minimum length, in seconds, the recording must be to be considered successful. Otherwise it is deleted | integer() |
false |
||
record_on_answer |
Recording should start on answer | boolean() |
false |
||
record_on_bridge |
Recording should start on bridge | boolean() |
false |
||
record_sample_rate |
What sampling rate to use on the recording | integer() |
false |
||
time_limit |
Time limit, in seconds, for the recording | integer() |
false |
||
url |
The URL to use when sending the recording for storage | string() |
false |
Callflow action - Record Call#
You can enable call recording on a per-callflow basis by using the record_call
callflow action. The callflow action can take the following parameters:
Key | Description | Type | Default | Required | Support |
---|---|---|---|---|---|
action |
Whether to start or stop the recording | string('start', 'stop') |
start |
true |
|
format |
What format to store the recording on disk | string('mp3', 'wav') |
false |
||
label |
Label to include in the origin of call recording | string() |
false |
||
media_name |
the name of media | string |
false |
||
record_min_sec |
The minimum length, in seconds, the recording must be to be considered successful. Otherwise it is deleted | integer |
false |
||
record_on_answer |
Whether to delay the recording until the channel is answered | boolean |
false |
false |
|
record_on_bridge |
Whether to delay the recording until the channel is bridged | boolean |
false |
false |
|
record_sample_rate |
What sampling rate to use on the recording | integer |
false |
||
time_limit |
Time limit, in seconds, for the recording | integer |
3600 |
false |
|
url |
The URL to use when sending the recording for storage | string |
false |
Callflow action - Record Caller#
The record_caller
callflow action is meant for recording things like voicemails or IVR prompts. The schema for the callflow action is:
Key | Description | Type | Default | Required | Support Level |
---|---|---|---|---|---|
format |
What format to store the recording on disk | string('mp3' | 'wav') |
false |
||
method |
What HTTP method to use when sending the recording | string('put' | 'post') |
put |
false |
|
time_limit |
Time limit, in seconds, for the recording | integer() |
3600 |
false |
|
url |
The URL to use when sending the recording for storage | string() |
false |