Channels¶
Method | Path (Parameters are case-sensitive) | Return Model | Summary |
---|---|---|---|
GET | /channels | List[Channel] | List all active channels in Asterisk. |
POST | /channels | Channel | Create a new channel (originate). |
POST | /channels/create | Channel | Create channel. |
GET | /channels/{channelId} | Channel | Channel details. |
POST | /channels/{channelId} | Channel | Create a new channel (originate with id). |
DELETE | /channels/{channelId} | void | Delete (i.e. hangup) a channel. |
POST | /channels/{channelId}/continue | void | Exit application; continue execution in the dialplan. |
POST | /channels/{channelId}/move | void | Move the channel from one Stasis application to another. |
POST | /channels/{channelId}/redirect | void | Redirect the channel to a different location. |
POST | /channels/{channelId}/answer | void | Answer a channel. |
POST | /channels/{channelId}/ring | void | Indicate ringing to a channel. |
DELETE | /channels/{channelId}/ring | void | Stop ringing indication on a channel if locally generated. |
POST | /channels/{channelId}/dtmf | void | Send provided DTMF to a given channel. |
POST | /channels/{channelId}/mute | void | Mute a channel. |
DELETE | /channels/{channelId}/mute | void | Unmute a channel. |
POST | /channels/{channelId}/hold | void | Hold a channel. |
DELETE | /channels/{channelId}/hold | void | Remove a channel from hold. |
POST | /channels/{channelId}/moh | void | Play music on hold to a channel. |
DELETE | /channels/{channelId}/moh | void | Stop playing music on hold to a channel. |
POST | /channels/{channelId}/silence | void | Play silence to a channel. |
DELETE | /channels/{channelId}/silence | void | Stop playing silence to a channel. |
POST | /channels/{channelId}/play | Playback | Start playback of media. |
POST | /channels/{channelId}/play/{playbackId} | Playback | Start playback of media and specify the playbackId. |
POST | /channels/{channelId}/record | LiveRecording | Start a recording. |
GET | /channels/{channelId}/variable | Variable | Get the value of a channel variable or function. |
POST | /channels/{channelId}/variable | void | Set the value of a channel variable or function. |
POST | /channels/{channelId}/snoop | Channel | Start snooping. |
POST | /channels/{channelId}/snoop/{snoopId} | Channel | Start snooping. |
POST | /channels/{channelId}/dial | void | Dial a created channel. |
GET | /channels/{channelId}/rtp_statistics | RTPstat | RTP stats on a channel. |
POST | /channels/externalMedia | Channel | Start an External Media session. |
list¶
GET /channels¶
List all active channels in Asterisk.
originate¶
POST /channels¶
Create a new channel (originate). The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.
Query parameters¶
- endpoint: string - (required) Endpoint to call.
- extension: string - The extension to dial after the endpoint answers. Mutually exclusive with 'app'.
- context: string - The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.
- priority: long - The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.
- label: string - The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.
- app: string - The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- callerId: string - CallerID to use when dialing the endpoint or extension.
- timeout: int - Timeout (in seconds) before giving up dialing, or -1 for no timeout.
- Default: 30
- channelId: string - The unique id to assign the channel on creation.
- otherChannelId: string - The unique id to assign the second channel when using local channels.
- originator: string - The unique id of the channel which is originating this one.
- formats: string - The format name capability list to use if originator is not specified. Ex. "ulaw,slin16". Format names can be found with "core show codecs".
Body parameter¶
- variables: containers - The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } }
Error Responses¶
- 400 - Invalid parameters for originating a channel.
- 409 - Channel with given unique ID already exists.
create¶
POST /channels/create¶
Create channel.
Query parameters¶
- endpoint: string - (required) Endpoint for channel communication
- app: string - (required) Stasis Application to place channel into
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- channelId: string - The unique id to assign the channel on creation.
- otherChannelId: string - The unique id to assign the second channel when using local channels.
- originator: string - Unique ID of the calling channel
- formats: string - The format name capability list to use if originator is not specified. Ex. "ulaw,slin16". Format names can be found with "core show codecs".
Body parameter¶
- variables: containers - The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } }
Error Responses¶
- 409 - Channel with given unique ID already exists.
get¶
GET /channels/{channelId}¶
Channel details.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
originateWithId¶
POST /channels/{channelId}¶
Create a new channel (originate with id). The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.
Path parameters¶
Parameters are case-sensitive. * channelId: string - The unique id to assign the channel on creation.
Query parameters¶
- endpoint: string - (required) Endpoint to call.
- extension: string - The extension to dial after the endpoint answers. Mutually exclusive with 'app'.
- context: string - The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'.
- priority: long - The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'.
- label: string - The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'.
- app: string - The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'.
- callerId: string - CallerID to use when dialing the endpoint or extension.
- timeout: int - Timeout (in seconds) before giving up dialing, or -1 for no timeout.
- Default: 30
- otherChannelId: string - The unique id to assign the second channel when using local channels.
- originator: string - The unique id of the channel which is originating this one.
- formats: string - The format name capability list to use if originator is not specified. Ex. "ulaw,slin16". Format names can be found with "core show codecs".
Body parameter¶
- variables: containers - The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } }
Error Responses¶
- 400 - Invalid parameters for originating a channel.
- 409 - Channel with given unique ID already exists.
hangup¶
DELETE /channels/{channelId}¶
Delete (i.e. hangup) a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- reason_code: string - The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/
- reason: string - Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'.
- Allowed values: normal, busy, congestion, no_answer, timeout, rejected, unallocated, normal_unspecified, number_incomplete, codec_mismatch, interworking, failure, answered_elsewhere
Error Responses¶
- 400 - Invalid reason for hangup provided
- 404 - Channel not found
continueInDialplan¶
POST /channels/{channelId}/continue¶
Exit application; continue execution in the dialplan.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- context: string - The context to continue to.
- extension: string - The extension to continue to.
- priority: int - The priority to continue to.
- label: string - The label to continue to - will supersede 'priority' if both are provided.
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
move¶
POST /channels/{channelId}/move¶
Move the channel from one Stasis application to another.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- app: string - (required) The channel will be passed to this Stasis application.
- appArgs: string - The application arguments to pass to the Stasis application provided by 'app'.
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
redirect¶
POST /channels/{channelId}/redirect¶
Redirect the channel to a different location.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- endpoint: string - (required) The endpoint to redirect the channel to
Error Responses¶
- 400 - Endpoint parameter not provided
- 404 - Channel or endpoint not found
- 409 - Channel not in a Stasis application
- 422 - Endpoint is not the same type as the channel
- 412 - Channel in invalid state
answer¶
POST /channels/{channelId}/answer¶
Answer a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
ring¶
POST /channels/{channelId}/ring¶
Indicate ringing to a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
ringStop¶
DELETE /channels/{channelId}/ring¶
Stop ringing indication on a channel if locally generated.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
sendDTMF¶
POST /channels/{channelId}/dtmf¶
Send provided DTMF to a given channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- dtmf: string - DTMF To send.
- before: int - Amount of time to wait before DTMF digits (specified in milliseconds) start.
- between: int - Amount of time in between DTMF digits (specified in milliseconds).
- Default: 100
- duration: int - Length of each DTMF digit (specified in milliseconds).
- Default: 100
- after: int - Amount of time to wait after DTMF digits (specified in milliseconds) end.
Error Responses¶
- 400 - DTMF is required
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
mute¶
POST /channels/{channelId}/mute¶
Mute a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- direction: string - Direction in which to mute audio
- Default: both
- Allowed values: both, in, out
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
unmute¶
DELETE /channels/{channelId}/mute¶
Unmute a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- direction: string - Direction in which to unmute audio
- Default: both
- Allowed values: both, in, out
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
hold¶
POST /channels/{channelId}/hold¶
Hold a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
unhold¶
DELETE /channels/{channelId}/hold¶
Remove a channel from hold.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
startMoh¶
POST /channels/{channelId}/moh¶
Play music on hold to a channel. Using media operations such as /play on a channel playing MOH in this manner will suspend MOH without resuming automatically. If continuing music on hold is desired, the stasis application must reinitiate music on hold.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- mohClass: string - Music on hold class to use
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
stopMoh¶
DELETE /channels/{channelId}/moh¶
Stop playing music on hold to a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
startSilence¶
POST /channels/{channelId}/silence¶
Play silence to a channel. Using media operations such as /play on a channel playing silence in this manner will suspend silence without resuming automatically.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
stopSilence¶
DELETE /channels/{channelId}/silence¶
Stop playing silence to a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
play¶
POST /channels/{channelId}/play¶
Start playback of media. The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- media: string - (required) Media URIs to play.
- Allows comma separated values.
- lang: string - For sounds, selects language for sound.
- offsetms: int - Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.
- skipms: int - Number of milliseconds to skip for forward/reverse operations.
- Default: 3000
- playbackId: string - Playback ID.
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
playWithId¶
POST /channels/{channelId}/play/{playbackId}¶
Start playback of media and specify the playbackId. The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id * playbackId: string - Playback ID.
Query parameters¶
- media: string - (required) Media URIs to play.
- Allows comma separated values.
- lang: string - For sounds, selects language for sound.
- offsetms: int - Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.
- skipms: int - Number of milliseconds to skip for forward/reverse operations.
- Default: 3000
Error Responses¶
- 404 - Channel not found
- 409 - Channel not in a Stasis application
- 412 - Channel in invalid state
record¶
POST /channels/{channelId}/record¶
Start a recording. Record audio from a channel. Note that this will not capture audio sent to the channel. The bridge itself has a record feature if that's what you want.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- name: string - (required) Recording's filename
- format: string - (required) Format to encode audio in
- maxDurationSeconds: int - Maximum duration of the recording, in seconds. 0 for no limit
- Allowed range: Min: 0; Max: None
- maxSilenceSeconds: int - Maximum duration of silence, in seconds. 0 for no limit
- Allowed range: Min: 0; Max: None
- ifExists: string - Action to take if a recording with the same name already exists.
- Default: fail
- Allowed values: fail, overwrite, append
- beep: boolean - Play beep when recording begins
- terminateOn: string - DTMF input to terminate recording
- Default: none
- Allowed values: none, any, *, #
Error Responses¶
- 400 - Invalid parameters
- 404 - Channel not found
- 409 - Channel is not in a Stasis application; the channel is currently bridged with other hcannels; A recording with the same name already exists on the system and can not be overwritten because it is in progress or ifExists=fail
- 422 - The format specified is unknown on this system
getChannelVar¶
GET /channels/{channelId}/variable¶
Get the value of a channel variable or function.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- variable: string - (required) The channel variable or function to get
Error Responses¶
- 400 - Missing variable parameter.
- 404 - Channel or variable not found
- 409 - Channel not in a Stasis application
setChannelVar¶
POST /channels/{channelId}/variable¶
Set the value of a channel variable or function.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- variable: string - (required) The channel variable or function to set
- value: string - The value to set the variable to
Error Responses¶
- 400 - Missing variable parameter.
- 404 - Channel not found
- 409 - Channel not in a Stasis application
snoopChannel¶
POST /channels/{channelId}/snoop¶
Start snooping. Snoop (spy/whisper) on a specific channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- spy: string - Direction of audio to spy on
- Default: none
- Allowed values: none, both, out, in
- whisper: string - Direction of audio to whisper into
- Default: none
- Allowed values: none, both, out, in
- app: string - (required) Application the snooping channel is placed into
- appArgs: string - The application arguments to pass to the Stasis application
- snoopId: string - Unique ID to assign to snooping channel
Error Responses¶
- 400 - Invalid parameters
- 404 - Channel not found
snoopChannelWithId¶
POST /channels/{channelId}/snoop/{snoopId}¶
Start snooping. Snoop (spy/whisper) on a specific channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id * snoopId: string - Unique ID to assign to snooping channel
Query parameters¶
- spy: string - Direction of audio to spy on
- Default: none
- Allowed values: none, both, out, in
- whisper: string - Direction of audio to whisper into
- Default: none
- Allowed values: none, both, out, in
- app: string - (required) Application the snooping channel is placed into
- appArgs: string - The application arguments to pass to the Stasis application
Error Responses¶
- 400 - Invalid parameters
- 404 - Channel not found
dial¶
POST /channels/{channelId}/dial¶
Dial a created channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Query parameters¶
- caller: string - Channel ID of caller
- timeout: int - Dial timeout
- Allowed range: Min: 0; Max: None
Error Responses¶
- 404 - Channel cannot be found.
- 409 - Channel cannot be dialed.
rtpstatistics¶
GET /channels/{channelId}/rtp_statistics¶
RTP stats on a channel.
Path parameters¶
Parameters are case-sensitive. * channelId: string - Channel's id
Error Responses¶
- 404 - Channel cannot be found.
externalMedia¶
POST /channels/externalMedia¶
Start an External Media session. Create a channel to an External Media source/sink.
Query parameters¶
- channelId: string - The unique id to assign the channel on creation.
- app: string - (required) Stasis Application to place channel into
- external_host: string - (required) Hostname/ip:port of external host
- encapsulation: string - Payload encapsulation protocol
- Default: rtp
- Allowed values: rtp, audiosocket
- transport: string - Transport protocol
- Default: udp
- Allowed values: udp, tcp
- connection_type: string - Connection type (client/server)
- Default: client
- Allowed values: client
- format: string - (required) Format to encode audio in
- direction: string - External media direction
- Default: both
- Allowed values: both
- data: string - An arbitrary data field
Body parameter¶
- variables: containers - The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } }
Error Responses¶
- 400 - Invalid parameters
- 409 - Channel is not in a Stasis application; Channel is already bridged