From f87ae15fc65e244dc5004e598b53f12d16281c3b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 7 Mar 2014 23:46:26 +0500 Subject: [PATCH] don't refuse invites on established sessions due to session limits --- src/mod/endpoints/mod_sofia/sofia.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 09d66c7ae2..8344a842b1 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2061,21 +2061,24 @@ void sofia_event_callback(nua_event_t event, case nua_i_notify: case nua_i_info: - if (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING) || !switch_core_ready_inbound()) { - nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END()); - goto end; - } + if (!sofia_private) { + if (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING) || !switch_core_ready_inbound()) { + nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END()); + goto end; + } - if (switch_queue_size(mod_sofia_globals.msg_queue) > (unsigned int)critical) { - nua_respond(nh, 503, "System Busy", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END()); - goto end; + if (switch_queue_size(mod_sofia_globals.msg_queue) > (unsigned int)critical) { + nua_respond(nh, 503, "System Busy", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END()); + goto end; + } + + if (sofia_test_pflag(profile, PFLAG_STANDBY)) { + nua_respond(nh, 503, "System Paused", NUTAG_WITH_THIS(nua), TAG_END()); + goto end; + } } - if (sofia_test_pflag(profile, PFLAG_STANDBY)) { - nua_respond(nh, 503, "System Paused", NUTAG_WITH_THIS(nua), TAG_END()); - goto end; - } break; default: