Prequisites for ARI Outbound Websockets

stasis:
* Added stasis_app_is_registered().
* Added stasis_app_control_mark_failed().
* Added stasis_app_control_is_failed().
* Fixed res_stasis_device_state so unsubscribe all works properly.
* Modified stasis_app_unregister() to unsubscribe from all event sources.
* Modified stasis_app_exec to return -1 if stasis_app_control_is_failed()
  returns true.

http:
* Added ast_http_create_basic_auth_header().

md5:
* Added define for MD5_DIGEST_LENGTH.

tcptls:
* Added flag to ast_tcptls_session_args to suppress connection log messages
  to give callers more control over logging.

http_websocket:
* Add flag to ast_websocket_client_options to suppress connection log messages
  to give callers more control over logging.
* Added username and password to ast_websocket_client_options to support
  outbound basic authentication.
* Added ast_websocket_result_to_str().
This commit is contained in:
George Joseph
2025-04-16 13:40:52 -06:00
parent 956e0a9b56
commit 9d75b0447f
12 changed files with 285 additions and 41 deletions

View File

@@ -102,6 +102,11 @@ struct stasis_app_control {
* When set, /c app_stasis should exit and continue in the dialplan.
*/
unsigned int is_done:1;
/*!
* When set, /c app_stasis should exit indicating failure and continue
* in the dialplan.
*/
unsigned int failed:1;
};
static void control_dtor(void *obj)
@@ -368,6 +373,17 @@ void control_mark_done(struct stasis_app_control *control)
ao2_unlock(control->command_queue);
}
void stasis_app_control_mark_failed(struct stasis_app_control *control)
{
control->failed = 1;
}
int stasis_app_control_is_failed(const struct stasis_app_control *control)
{
return control->failed;
}
struct stasis_app_control_continue_data {
char context[AST_MAX_CONTEXT];
char extension[AST_MAX_EXTENSION];