[mod_sofia] Fix handling of sip-options-respond-503-on-busy profile parameter

This commit is contained in:
Gustavo Almeida
2026-05-25 19:15:13 +01:00
committed by GitHub
parent 90da63c0d1
commit 7d35ea2986
+4 -2
View File
@@ -2460,13 +2460,15 @@ void sofia_event_callback(nua_event_t event,
}
if (!sofia_private) {
if (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING) || !switch_core_ready_inbound()) {
int unavailable = (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING) || !switch_core_ready_inbound());
int bypass = (event == nua_i_options && !sofia_test_pflag(profile, PFLAG_OPTIONS_RESPOND_503_ON_BUSY));
if (unavailable && !bypass) {
nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END());
nua_handle_destroy(nh);
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());
nua_handle_destroy(nh);