SIPREC
Start/Stop SIPREC
The SIPREC Resource allows you to start a stream on a phone call and send that stream to one of the available partners via the SIPREC connector configuration. You can also stop streams started via the <Siprec> TwiML instruction.
Conceptually, Twilio operates as a Session Recording Client (SRC) for SIPREC. Twilio's partners, e.g. Gridspace operate as Session Recording Server (SRS). Alternately, a customer may provision their own SRS via configuration in the Twilio/Generic SIPREC connector. The SRC sends the SIPREC media to be recorded to the SRS. The SRS is responsible for storing/processing the media.
Connectors are configured via the Marketplace Add-on in the Twilio Stream Connectors Console page. Connectors cannot be configured outside of the console via TwiML. This requirement is in place to ensure that the credentials needed to send the stream to a partner are stored securely.
You can control which Twilio edge your SIPREC connections egress by appending an edge parameter to the Session Recording Server address in the SIPREC Connector Configuration.
For example, sip:srs@foo.com:5060;edge=dublin
would egress from the Dublin edge, and sip:srs@foo.com:5060;edge=umatilla
would egress from Oregon.
The Twilio Debugger is still the best way to get information about any communication issues encountered while streaming media to the partner. However, you can now also use status callbacks to receive detailed information about the status of a SIPREC session, such as if it has failed or stopped unexpectedly. This provides an additional method for tracking and monitoring the status of your SIPREC sessions.
There are a maximum of 4 forked streams allowed per call. <Siprec>
by default uses 2 forked streams for both the inbound and outbound tracks.
Resource Properties in REST API format | |
---|---|
sid
|
The SID of the Siprec resource. |
account_sid
|
The SID of the Account that created this Siprec resource. |
call_sid
|
The SID of the Call the Siprec resource is associated with. |
name
|
The user-specified name of this Siprec, if one was given when the Siprec was created. This may be used to stop the Siprec. |
status
|
The status - one of |
date_updated
|
The date and time in GMT that this resource was last updated, specified in RFC 2822 format. |
uri
|
The URI of the resource, relative to |
Start SIPREC stream
POST
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}/Siprec.json
Parameters
Parameters in REST API format | |
---|---|
AccountSid
Path |
post sid<AC> Not PII
The SID of the Account that created this Siprec resource.
|
CallSid
Path |
post sid<CA> Not PII
The SID of the Call the Siprec resource is associated with.
|
Name
Optional |
post string Not PII
The user-specified name of this Siprec, if one was given when the Siprec was created. This may be used to stop the Siprec.
|
ConnectorName
Optional |
post string Not PII
Unique name used when configuring the connector via Marketplace Add-on.
|
Track
Optional |
post ienum:track Not PII
One of
|
StatusCallback
Optional |
post url Not PII
Absolute URL of the status callback.
|
StatusCallbackMethod
Optional |
post http_method Not PII
The http method for the status_callback (one of GET, POST).
|
Parameter1.Name
Optional |
post string Not PII
Parameter name
|
Parameter1.Value
Optional |
post string Not PII
Parameter value
|
Using the SIPREC status callback
SIPREC is a protocol that enables recording and sending streams to one of the available partners via the SIPREC connector configuration. With the addition of a status callback, you can now get detailed information about the status of a SIPREC session. This feature can be used to quickly detect and troubleshoot any unexpected issues with a SIPREC session, such as an unexpected failure or interruption.
There are two ways to use SIPREC status callback:
From <Siprec> Twiml, for example:
<Start>
<Siprec name="my-first-siprec" connectorName="Gridspace1" statusCallback="https://87b252436d40.ngrok.app" statusCallbackMethod="GET"/>
</Start>
From Start/Stop SIPREC API, for example:
curl -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN -XPOST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Siprec.json --data-urlencode \
"Name=my-first-siprec" --data-urlencode "ConnectorName=Gridspace1" --data-urlencode "StatusCallback=https://XXXXXXXX.ngrok.app" --data-urlencode "StatusCallbackMethod=GET"
Parameters
Parameters in REST API format | |
---|---|
AccountSid
Path |
post sid<AC> Not PII
The SID of the Account that created this Siprec resource. |
CallSid
Path |
post sid<CA> Not PII
The SID of the Call the Siprec resource is associated with. |
SiprecSid
Path |
post string Not PII
The SID of the Siprec resource is associated with. |
SiprecName
Path |
post string Not PII
The Name of the Siprec resource is associated with. |
SiprecEvent
Path |
post string Not PII
The Event of the Siprec callback. Values can be: |
Timestamp
Path |
post string Not PII
The timestamp of when the Siprec callback was made.
|
If an error has occurred, additional params SiprecError
, SiprecErrorCode
will be set as well. These params will provide context on the error that has occurred with the SIPREC resouce.
Update a Siprec resource
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}/Siprec/{Sid}.json
Parameters
Parameters in REST API format | |
---|---|
account_sid
Path
|
The SID of the Account that created this Siprec resource. |
call_sid
Path
|
The SID of the Call the Siprec resource is associated with. |
sid
Path
|
The SID of the Siprec resource, or the |
status
Required
|
The status. Must have the value |
Example 1
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.