Configuration for chan_websocket
WebSocket Channel Driver
20.18.0
22.8.0
23.2.0
Global settings for chan_websocket
20.18.0
22.8.0
23.2.0
Determines the format used for sending and receiving
control mesages on the websocket.
The legacy plain text single-line message format.
The new JSON format.
WebSocket Dial Strings:
Dial(WebSocket/connectionid[/websocket_options])
WebSocket Parameters:
For outgoing WebSockets, this is the ID of the connection
in websocket_client.conf to use for the call. To accept incoming
WebSocket connections use the literal INCOMING
Options to control how the WebSocket channel behaves.
If not specified, the first codec from the caller's channel will be used.
Normally, the WebSocket channel will be answered when
connection is established with the remote app. If this
option is specified however, the channel will not be
answered until the ANSWER command is
received from the remote app or the remote app calls the
/channels/answer ARI endpoint.
format:
In passthrough mode, the channel driver won't attempt
to re-frame or re-time media coming in over the websocket from
the remote app. This can be used for any codec but MUST be used
for codecs that use packet headers or whose data stream can't be
broken up on arbitrary byte boundaries. In this case, the remote
app is fully responsible for correctly framing and timing media
sent to Asterisk and the MEDIA text commands that could be sent
over the websocket are disabled. Currently, passthrough mode is
automatically set for the opus, speex and g729 codecs.
This option allows you to add additional parameters to the
outbound URI. The format is:
v(param1=value1,param2=value2...)
You must ensure that no parameter name or value contains
characters not valid in a URL. The easiest way to do this is to
use the URIENCODE() dialplan function to encode them. Be aware
though that each name and value must be encoded separately. You
can't simply encode the whole string.
Examples:
same => n,Dial(WebSocket/connection1/c(sln16))
same => n,Dial(WebSocket/connection1/c(opus))
same => n,Dial(WebSocket/INCOMING/n)
same => n,Dial(WebSocket/connection1/v(${URIENCODE(vari able)}=${URIENCODE(${CHANNEL})},variable2=$(URIENCODE(${EXTEN})}))
same => n,Dial(WebSocket/connection1/f(json))