--- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
------------------------------------------------------------------------------
+chan_sip
+------------------
+ * The websockets_enabled option has been added to the general section of
+ sip.conf. The option is enabled by default to match the previous behavior.
+ The option should be disabled when using res_pjsip_transport_websockets to
+ ensure chan_sip will not conflict with PJSIP websockets.
+
Dialplan Functions
------------------
* The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
int bindport = 0;
int acl_change_subscription_needed = 0;
int min_subexpiry_set = 0, max_subexpiry_set = 0;
+ int websocket_was_enabled = sip_cfg.websocket_enabled;
run_start = time(0);
ast_unload_realtime("sipregs");
ast_log(LOG_WARNING, "'%s' is not a valid websocket_write_timeout value at line %d. Using default '%d'.\n", v->value, v->lineno, AST_DEFAULT_WEBSOCKET_WRITE_TIMEOUT);
sip_cfg.websocket_write_timeout = AST_DEFAULT_WEBSOCKET_WRITE_TIMEOUT;
}
+ } else if (!strcasecmp(v->name, "websocket_enabled")) {
+ sip_cfg.websocket_enabled = ast_true(v->value);
}
}
notify_types = NULL;
}
+ /* If the module is loading it's not time to enable websockets yet. */
+ if (reason != CHANNEL_MODULE_LOAD && websocket_was_enabled != sip_cfg.websocket_enabled) {
+ if (sip_cfg.websocket_enabled) {
+ ast_websocket_add_protocol("sip", sip_websocket_callback);
+ } else {
+ ast_websocket_remove_protocol("sip", sip_websocket_callback);
+ }
+ }
+
run_end = time(0);
ast_debug(4, "SIP reload_config done...Runtime= %d sec\n", (int)(run_end-run_start));
sip_register_tests();
network_change_stasis_subscribe();
- ast_websocket_add_protocol("sip", sip_websocket_callback);
+ if (sip_cfg.websocket_enabled) {
+ ast_websocket_add_protocol("sip", sip_websocket_callback);
+ }
return AST_MODULE_LOAD_SUCCESS;
}
ast_sip_api_provider_unregister();
- ast_websocket_remove_protocol("sip", sip_websocket_callback);
+ if (sip_cfg.websocket_enabled) {
+ ast_websocket_remove_protocol("sip", sip_websocket_callback);
+ }
network_change_stasis_unsubscribe();
acl_change_event_stasis_unsubscribe();
; unauthenticated sessions that will be allowed
; to connect at any given time. (default: 100)
+;websocket_enabled = true ; Set to false to prevent chan_sip from listening to websockets. This
+ ; is neeeded when using chan_sip and res_pjsip_transport_websockets on
+ ; the same system.
+
;websocket_write_timeout = 100 ; Default write timeout to set on websocket transports.
; This value may need to be adjusted for connections where
; Asterisk must write a substantial amount of data and the