diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index e2675a4c87..77c9fdd24c 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -890,6 +890,18 @@ void sofia_event_callback(nua_event_t event, break; case nua_i_subscribe: sofia_presence_handle_sip_i_subscribe(status, phrase, nua, profile, nh, sofia_private, sip, tags); + break; + case nua_r_authenticate: + + if (status >= 500) { + if (sofia_private && sofia_private->gateway) { + nua_handle_destroy(sofia_private->gateway->nh); + sofia_private->gateway->nh = NULL; + } else { + nua_handle_destroy(nh); + } + } + break; default: if (status > 100) {