ARI Outbound Websockets

Asterisk can now establish websocket sessions _to_ your ARI applications
as well as accepting websocket sessions _from_ them.
Full details: http://s.asterisk.net/ari-outbound-ws

Code change summary:
* Added an ast_vector_string_join() function,
* Added ApplicationRegistered and ApplicationUnregistered ARI events.
* Converted res/ari/config.c to use sorcery to process ari.conf.
* Added the "outbound-websocket" ARI config object.
* Refactored res/ari/ari_websockets.c to handle outbound websockets.
* Refactored res/ari/cli.c for the sorcery changeover.
* Updated res/res_stasis.c for the sorcery changeover.
* Updated apps/app_stasis.c to allow initiating per-call outbound websockets.
* Added CLI commands to manage ARI websockets.
* Added the new "outbound-websocket" object to ari.conf.sample.
* Moved the ARI XML documentation out of res_ari.c into res/ari/ari_doc.xml

UserNote: Asterisk can now establish websocket sessions _to_ your ARI applications
as well as accepting websocket sessions _from_ them.
Full details: http://s.asterisk.net/ari-outbound-ws
This commit is contained in:
George Joseph
2025-03-28 06:54:21 -06:00
committed by github-actions[bot]
parent 5a3164c0b2
commit c873f2ae7e
15 changed files with 2948 additions and 963 deletions

View File

@@ -35,3 +35,24 @@ enabled = yes ; When set to no, ARI support is disabled.
; When set to plain, the password is in plaintext.
;
;password_format = plain
; Outbound Websocket Connections
;
;[connection1] ; The connection name
;type = outbound_websocket ; Must be "outbound_websocket"
;websocket_client_id = myid ; The id of a websocket client defined in
; websocket_client.conf.
; Default: none
;apps = app1, app2 ; A comma-separated list of Stasis applications
; that will be served by this connection.
; No other connection may serve these apps.
; Default: none
;subscribe_all = no ; If set to "yes", the server will receive all
; events just as though "subscribeAll=true" was
; specified on an incoming websocket connection.
; Default: no
;local_ari_user = local_user ; The name of a local ARI user defined above.
; This controls whether this connection can make
; read/write requests or is read-only.
; Default: none