command
websocket server => jambonz
A command
message is sent by the websocket server to jambonz when the server wants to asynchronously provide a new set of instructions to jambonz.
property | type | meaning | required |
---|---|---|---|
type | string "command" | indicates this is a command message | yes |
command | string | describes the action to take, see allowed commands below | yes |
queueCommand | boolean | if true, queue this command until previous commands are completed; otherwise, interrupt and flush all previous commands and execute this command immediately | no |
data | array or object | data pertaining to the requested command | yes |
The command
property must be one of the values shown below.
Note:
redirect
is the most commonly-used value.
command value | meaning | data requirements |
---|---|---|
redirect | execute the application provided | data must be an array of jambonz verbs; i.e. a jambonz application. |
call:status | change the call status (e.g. hangup the call) | data must include a call_status property with a value of 'completed' or 'no-answer' |
mute:status | mute or unmute the call | data must include a mute_status property with a value of 'mute' or 'unmute' |
conf:mute-status | mute or unmute all non-moderator conference legs | data must include a conf_mute_status property with a value of either 'mute' or 'unmute' |
conf:hold-status | place a conference leg on hold or take off hold | data must include a conf_hold_status property with a value of either 'hold' or 'unhold' |
listen:status | Change the status of a listen stream | data must include a listen_status property with a value of 'pause' or 'resume' |
record | manage call recording that is done via SIPREC to a remote recording server | data must include an action with one of "startCallRecording", "stopCallRecording", "pauseCallRecording", or "resumeCallRecording". When starting a recording you must also supply "recordingID" and "siprecServerURL". You may optionally supply a headers object with custom headers to be sent to the remote SIPREC recording server. |
whisper | Play a whisper prompt to the caller (i.e only one party hears the prompt) | data must include a whisper property that can be an array of say or play verbs |
sip:request | Send a SIP INFO, NOTIFY, or MESSAGE request to the far end party | data must include a 'method' property (allowed values: 'INFO', 'NOTIFY', 'MESSAGE') and can include 'content_type', 'content', and 'headers' properties. |
dub | add, remove or operate on a dub track. | The data must include the properties defined for the dub verb |
Note: In the data payload when
redirect
is used, each jambonz verb in thedata
array may optionally include anid
property. If present, jambonz will provideverb:status
notifications when the verb starts and ends execution.
{
"type": "command",
"command": "redirect",
"queueCommand": true,
"data": [
{
"say": {
"id": "b5e39996",
"text": "Hello it's me Mario"
}
}
]
}