Skip to content
Snippets Groups Projects
Commit 42f738e0 authored by Alexei Gradinari's avatar Alexei Gradinari
Browse files

res_pjsip_mwi: don't create mwi subscriptions if initial unsolicited disabled

If sending unsolicited mwi to all endpoints on startup is disabled
(mwi_disable_initial_unsolicited=yes) do not need to create subscriptions.
If there are many (thousands) realtime endpoints configured with unsolicited mwi
and Vociemail Storage configured as ODBC or IMAP there will be huge number of
DB/IMAP requests on startup.

ASTERISK-26230 #close

Change-Id: I50ae909639e3ee298b931a54def4b2b9e0fb86c5
parent abe1dd30
Branches
Tags
No related merge requests found
...@@ -1278,7 +1278,9 @@ static struct ast_sorcery_observer global_observer = { ...@@ -1278,7 +1278,9 @@ static struct ast_sorcery_observer global_observer = {
static int reload(void) static int reload(void)
{ {
create_mwi_subscriptions(); if (!ast_sip_get_mwi_disable_initial_unsolicited()) {
create_mwi_subscriptions();
}
return 0; return 0;
} }
...@@ -1301,13 +1303,13 @@ static int load_module(void) ...@@ -1301,13 +1303,13 @@ static int load_module(void)
ast_sip_unregister_subscription_handler(&mwi_handler); ast_sip_unregister_subscription_handler(&mwi_handler);
return AST_MODULE_LOAD_DECLINE; return AST_MODULE_LOAD_DECLINE;
} }
create_mwi_subscriptions();
ast_sorcery_observer_add(ast_sip_get_sorcery(), "contact", &mwi_contact_observer); ast_sorcery_observer_add(ast_sip_get_sorcery(), "contact", &mwi_contact_observer);
ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &global_observer); ast_sorcery_observer_add(ast_sip_get_sorcery(), "global", &global_observer);
ast_sorcery_reload_object(ast_sip_get_sorcery(), "global"); ast_sorcery_reload_object(ast_sip_get_sorcery(), "global");
if (!ast_sip_get_mwi_disable_initial_unsolicited()) { if (!ast_sip_get_mwi_disable_initial_unsolicited()) {
create_mwi_subscriptions();
if (ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) { if (ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)) {
ast_sip_push_task(NULL, send_initial_notify_all, NULL); ast_sip_push_task(NULL, send_initial_notify_all, NULL);
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment