FS-3594 if this does not work you will need to give me access to your box

This commit is contained in:
Anthony Minessale 2011-10-04 17:46:49 -05:00
parent 8e2793b45e
commit f04fd38c3e
2 changed files with 9 additions and 10 deletions

View File

@ -808,7 +808,7 @@ static void our_sofia_event_callback(nua_event_t event,
int check_destroy = 1; int check_destroy = 1;
if (sofia_private && sofia_private->de) { if (sofia_private && sofia_private->is_call && sofia_private->de) {
sofia_dispatch_event_t *qde = sofia_private->de; sofia_dispatch_event_t *qde = sofia_private->de;
sofia_private->de = NULL; sofia_private->de = NULL;
sofia_process_dispatch_event(&qde); sofia_process_dispatch_event(&qde);

View File

@ -68,6 +68,10 @@ static void sofia_reg_new_handle(sofia_gateway_t *gateway_ptr, int attach)
static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr) static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr)
{ {
if (gateway_ptr->nh) {
nua_handle_bind(gateway_ptr->nh, NULL);
}
if (gateway_ptr->state != REG_STATE_REGED) { if (gateway_ptr->state != REG_STATE_REGED) {
if (gateway_ptr->nh) { if (gateway_ptr->nh) {
nua_handle_destroy(gateway_ptr->nh); nua_handle_destroy(gateway_ptr->nh);
@ -76,19 +80,10 @@ static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr)
return; return;
} }
/*
if (!gateway_ptr->nh) {
sofia_reg_new_handle(gateway_ptr, SWITCH_FALSE);
}
*/
if (gateway_ptr->nh) { if (gateway_ptr->nh) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "UN-Registering %s\n", gateway_ptr->name); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "UN-Registering %s\n", gateway_ptr->name);
nua_unregister(gateway_ptr->nh, NUTAG_URL(gateway_ptr->register_url), NUTAG_REGISTRAR(gateway_ptr->register_proxy), TAG_END()); nua_unregister(gateway_ptr->nh, NUTAG_URL(gateway_ptr->register_url), NUTAG_REGISTRAR(gateway_ptr->register_proxy), TAG_END());
} }
} }
void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway, int status, const char *phrase) void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway, int status, const char *phrase)
@ -114,6 +109,10 @@ void sofia_reg_unregister(sofia_profile_t *profile)
switch_mutex_lock(mod_sofia_globals.hash_mutex); switch_mutex_lock(mod_sofia_globals.hash_mutex);
for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) { for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) {
if (gateway_ptr->nh) {
nua_handle_bind(gateway_ptr->nh, NULL);
}
if (gateway_ptr->sofia_private) { if (gateway_ptr->sofia_private) {
sofia_private_free(gateway_ptr->sofia_private); sofia_private_free(gateway_ptr->sofia_private);
} }