The Stream resource represents a live audio stream during a live call.
Creating a Stream resource creates a unidirectional Media Stream. You can stop a unidirectional Media Stream by updating the status
of a Stream resource, regardless of whether the Stream was created via TwiML (with <Start><Stream>
) or via REST API (with the Stream resource).
Property nameTypeRequiredPIIDescription
Relative or absolute URL where WebSocket connection will be established.
The user-specified name of this Stream, if one was given when the Stream was created. This can be used to stop the Stream.
Trackenum<string>Optional The tracks to be included in the Stream. Possible values are inbound_track
, outbound_track
, both_tracks
. Default value is inbound_track
.
Possible values: inbound_track
outbound_track
both_tracks
StatusCallbackstring<uri>Optional Absolute URL to which Twilio sends status callback HTTP requests.
StatusCallbackMethodenum<http-method>Optional The HTTP method Twilio uses when sending status_callback
requests. Possible values are GET
and POST
. Default is POST
.
Parameter1.NamestringOptional
Parameter1.ValuestringOptional
Parameter2.NamestringOptional
Parameter2.ValuestringOptional
Parameter3.NamestringOptional
Parameter3.ValuestringOptional
Parameter4.NamestringOptional
Parameter4.ValuestringOptional
Parameter5.NamestringOptional
Parameter5.ValuestringOptional
Parameter6.NamestringOptional
Parameter6.ValuestringOptional
Parameter7.NamestringOptional
Parameter7.ValuestringOptional
Parameter8.NamestringOptional
Parameter8.ValuestringOptional
Parameter9.NamestringOptional
Parameter9.ValuestringOptional
Parameter10.NamestringOptional
Parameter10.ValuestringOptional
Parameter11.NamestringOptional
Parameter11.ValuestringOptional
Parameter12.NamestringOptional
Parameter12.ValuestringOptional
Parameter13.NamestringOptional
Parameter13.ValuestringOptional
Parameter14.NamestringOptional
Parameter14.ValuestringOptional
Parameter15.NamestringOptional
Parameter15.ValuestringOptional
Parameter16.NamestringOptional
Parameter16.ValuestringOptional
Parameter17.NamestringOptional
Parameter17.ValuestringOptional
Parameter18.NamestringOptional
Parameter18.ValuestringOptional
Parameter19.NamestringOptional
Parameter19.ValuestringOptional
Parameter20.NamestringOptional
Parameter20.ValuestringOptional
Parameter21.NamestringOptional
Parameter21.ValuestringOptional
Parameter22.NamestringOptional
Parameter22.ValuestringOptional
Parameter23.NamestringOptional
Parameter23.ValuestringOptional
Parameter24.NamestringOptional
Parameter24.ValuestringOptional
Parameter25.NamestringOptional
Parameter25.ValuestringOptional
Parameter26.NamestringOptional
Parameter26.ValuestringOptional
Parameter27.NamestringOptional
Parameter27.ValuestringOptional
Parameter28.NamestringOptional
Parameter28.ValuestringOptional
Parameter29.NamestringOptional
Parameter29.ValuestringOptional
Parameter30.NamestringOptional
Parameter30.ValuestringOptional
Parameter31.NamestringOptional
Parameter31.ValuestringOptional
Parameter32.NamestringOptional
Parameter32.ValuestringOptional
Parameter33.NamestringOptional
Parameter33.ValuestringOptional
Parameter34.NamestringOptional
Parameter34.ValuestringOptional
Parameter35.NamestringOptional
Parameter35.ValuestringOptional
Parameter36.NamestringOptional
Parameter36.ValuestringOptional
Parameter37.NamestringOptional
Parameter37.ValuestringOptional
Parameter38.NamestringOptional
Parameter38.ValuestringOptional
Parameter39.NamestringOptional
Parameter39.ValuestringOptional
Parameter40.NamestringOptional
Parameter40.ValuestringOptional
Parameter41.NamestringOptional
Parameter41.ValuestringOptional
Parameter42.NamestringOptional
Parameter42.ValuestringOptional
Parameter43.NamestringOptional
Parameter43.ValuestringOptional
Parameter44.NamestringOptional
Parameter44.ValuestringOptional
Parameter45.NamestringOptional
Parameter45.ValuestringOptional
Parameter46.NamestringOptional
Parameter46.ValuestringOptional
Parameter47.NamestringOptional
Parameter47.ValuestringOptional
Parameter48.NamestringOptional
Parameter48.ValuestringOptional
Parameter49.NamestringOptional
Parameter49.ValuestringOptional
Parameter50.NamestringOptional
Parameter50.ValuestringOptional
Parameter51.NamestringOptional
Parameter51.ValuestringOptional
Parameter52.NamestringOptional
Parameter52.ValuestringOptional
Parameter53.NamestringOptional
Parameter53.ValuestringOptional
Parameter54.NamestringOptional
Parameter54.ValuestringOptional
Parameter55.NamestringOptional
Parameter55.ValuestringOptional
Parameter56.NamestringOptional
Parameter56.ValuestringOptional
Parameter57.NamestringOptional
Parameter57.ValuestringOptional
Parameter58.NamestringOptional
Parameter58.ValuestringOptional
Parameter59.NamestringOptional
Parameter59.ValuestringOptional
Parameter60.NamestringOptional
Parameter60.ValuestringOptional
Parameter61.NamestringOptional
Parameter61.ValuestringOptional
Parameter62.NamestringOptional
Parameter62.ValuestringOptional
Parameter63.NamestringOptional
Parameter63.ValuestringOptional
Parameter64.NamestringOptional
Parameter64.ValuestringOptional
Parameter65.NamestringOptional
Parameter65.ValuestringOptional
Parameter66.NamestringOptional
Parameter66.ValuestringOptional
Parameter67.NamestringOptional
Parameter67.ValuestringOptional
Parameter68.NamestringOptional
Parameter68.ValuestringOptional
Parameter69.NamestringOptional
Parameter69.ValuestringOptional
Parameter70.NamestringOptional
Parameter70.ValuestringOptional
Parameter71.NamestringOptional
Parameter71.ValuestringOptional
Parameter72.NamestringOptional
Parameter72.ValuestringOptional
Parameter73.NamestringOptional
Parameter73.ValuestringOptional
Parameter74.NamestringOptional
Parameter74.ValuestringOptional
Parameter75.NamestringOptional
Parameter75.ValuestringOptional
Parameter76.NamestringOptional
Parameter76.ValuestringOptional
Parameter77.NamestringOptional
Parameter77.ValuestringOptional
Parameter78.NamestringOptional
Parameter78.ValuestringOptional
Parameter79.NamestringOptional
Parameter79.ValuestringOptional
Parameter80.NamestringOptional
Parameter80.ValuestringOptional
Parameter81.NamestringOptional
Parameter81.ValuestringOptional
Parameter82.NamestringOptional
Parameter82.ValuestringOptional
Parameter83.NamestringOptional
Parameter83.ValuestringOptional
Parameter84.NamestringOptional
Parameter84.ValuestringOptional
Parameter85.NamestringOptional
Parameter85.ValuestringOptional
Parameter86.NamestringOptional
Parameter86.ValuestringOptional
Parameter87.NamestringOptional
Parameter87.ValuestringOptional
Parameter88.NamestringOptional
Parameter88.ValuestringOptional
Parameter89.NamestringOptional
Parameter89.ValuestringOptional
Parameter90.NamestringOptional
Parameter90.ValuestringOptional
Parameter91.NamestringOptional
Parameter91.ValuestringOptional
Parameter92.NamestringOptional
Parameter92.ValuestringOptional
Parameter93.NamestringOptional
Parameter93.ValuestringOptional
Parameter94.NamestringOptional
Parameter94.ValuestringOptional
Parameter95.NamestringOptional
Parameter95.ValuestringOptional
Parameter96.NamestringOptional
Parameter96.ValuestringOptional
Parameter97.NamestringOptional
Parameter97.ValuestringOptional
Parameter98.NamestringOptional
Parameter98.ValuestringOptional
Parameter99.NamestringOptional
Parameter99.ValuestringOptional Create a Stream resource during a live call in order to start a new unidirectional Media Stream. Twilio sends the call's forked audio stream to the url
specified in this request.
A sample request is shown below.
_14// Download the helper library from https://www.twilio.com/docs/node/install
_14// Find your Account SID and Auth Token at twilio.com/console
_14// and set the environment variables. See http://twil.io/secure
_14const accountSid = process.env.TWILIO_ACCOUNT_SID;
_14const authToken = process.env.TWILIO_AUTH_TOKEN;
_14const client = require('twilio')(accountSid, authToken);
_14client.calls('CAXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_14 name: 'My Media Stream',
_14 url: 'wss://example.com/a-websocket-server'
_14 .then(stream => console.log(stream.sid));
_10 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "call_sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "sid": "MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "name": "My Media Stream",
_10 "status": "in-progress",
_10 "date_updated": "Thu, 30 Jul 2015 20:00:00 +0000",
_10 "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Streams/MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
You can also create a unidirectional Media Stream with custom parameters.
Twilio sends these custom parameters to your WebSocket server in the start
WebSocket message. Learn more on the WebSocket Messages page.
Use the parameter[x].name
and parameter[x].value
parameters to specify key-value pairs. For example, parameter1.name
is the key and parameter1.value
is the value of a key-value pair. You can provide up to 99 key-value pairs (parameter99.name
and parameter99.value
).
An example request is shown below.
_18// Download the helper library from https://www.twilio.com/docs/node/install
_18// Find your Account SID and Auth Token at twilio.com/console
_18// and set the environment variables. See http://twil.io/secure
_18const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18const authToken = process.env.TWILIO_AUTH_TOKEN;
_18const client = require('twilio')(accountSid, authToken);
_18client.calls('CAXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_18 name: 'My Media Stream',
_18 'parameter1.name': 'agent_name',
_18 'parameter1.value': 'Mary',
_18 'parameter2.name': 'Department',
_18 'parameter2.value': 'sales',
_18 url: 'wss://example.com/a-websocket-server'
_18 .then(stream => console.log(stream.sid));
_10 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "call_sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "sid": "MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "name": "My Media Stream",
_10 "status": "in-progress",
_10 "date_updated": "Thu, 30 Jul 2015 20:00:00 +0000",
_10 "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Streams/MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
Property nameTypeRequiredPIIDescription
Statusenum<string>required The status of the Stream you wish to stop. Only possible value is stopped
.
An example request is shown below.
_11// Download the helper library from https://www.twilio.com/docs/node/install
_11// Find your Account SID and Auth Token at twilio.com/console
_11// and set the environment variables. See http://twil.io/secure
_11const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11const authToken = process.env.TWILIO_AUTH_TOKEN;
_11const client = require('twilio')(accountSid, authToken);
_11client.calls('CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .streams('MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .update({status: 'stopped'})
_11 .then(stream => console.log(stream.name));
_10 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "call_sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "sid": "MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "date_updated": "Thu, 30 Jul 2015 20:00:00 +0000",
_10 "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Streams/MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
You can also use the Stream name
(if provided when creating the Stream) to stop the Stream. The example below shows how to stop a Stream with a name
of myStream
.
_11// Download the helper library from https://www.twilio.com/docs/node/install
_11// Find your Account SID and Auth Token at twilio.com/console
_11// and set the environment variables. See http://twil.io/secure
_11const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11const authToken = process.env.TWILIO_AUTH_TOKEN;
_11const client = require('twilio')(accountSid, authToken);
_11client.calls('CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .update({status: 'stopped'})
_11 .then(stream => console.log(stream.name));
_10 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "call_sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "sid": "MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_10 "date_updated": "Thu, 30 Jul 2015 20:00:00 +0000",
_10 "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Streams/MZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"