]> git.ipfire.org Git - thirdparty/asterisk.git/commit
ARI: REST over Websocket
authorGeorge Joseph <gjoseph@sangoma.com>
Wed, 12 Mar 2025 21:58:51 +0000 (15:58 -0600)
committerGeorge Joseph <gjoseph@sangoma.com>
Wed, 2 Apr 2025 12:16:35 +0000 (12:16 +0000)
commit6bc055416bab24e1b27d9e2d2ff8dfc529ebfafd
tree3bea5bcbf60449512d4ed50f79ff519b422aaf78
parentca8adc245422b26c489456b82c6b3a9fdcf74e4d
ARI: REST over Websocket

This commit adds the ability to make ARI REST requests over the same
websocket used to receive events.

For full details on how to use the new capability, visit...

https://docs.asterisk.org/Configuration/Interfaces/Asterisk-REST-Interface-ARI/ARI-REST-over-WebSocket/

Changes:

* Added utilities to http.c:
  * ast_get_http_method_from_string().
  * ast_http_parse_post_form().
* Added utilities to json.c:
  * ast_json_nvp_array_to_ast_variables().
  * ast_variables_to_json_nvp_array().
* Added definitions for new events to carry REST responses.
* Created res/ari/ari_websocket_requests.c to house the new request handlers.
* Moved non-event specific code out of res/ari/resource_events.c into
  res/ari/ari_websockets.c
* Refactored res/res_ari.c to move non-http code out of ast_ari_callback()
  (which is http specific) and into ast_ari_invoke() so it can be shared
  between both the http and websocket transports.

UpgradeNote: This commit adds the ability to make ARI REST requests over the same
websocket used to receive events.
See https://docs.asterisk.org/Configuration/Interfaces/Asterisk-REST-Interface-ARI/ARI-REST-over-WebSocket/
20 files changed:
include/asterisk/ari.h
include/asterisk/http.h
include/asterisk/json.h
main/http.c
main/json.c
res/Makefile
res/ari/ari_model_validators.c
res/ari/ari_model_validators.h
res/ari/ari_websocket_requests.c [new file with mode: 0644]
res/ari/ari_websockets.c
res/ari/ari_websockets.h [new file with mode: 0644]
res/ari/internal.h
res/ari/resource_events.c
res/ari/resource_events.h
res/res_ari.c
res/res_ari_events.c
rest-api-templates/ari_resource.h.mustache
rest-api-templates/res_ari_resource.c.mustache
rest-api/api-docs/events.json
tests/test_ari.c