static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr)
{
+ if (gateway_ptr->state != REG_STATE_REGED) {
+ if (gateway_ptr->nh) {
+ nua_handle_destroy(gateway_ptr->nh);
+ gateway_ptr->nh = NULL;
+ }
+ return;
+ }
+
+ /*
if (!gateway_ptr->nh) {
sofia_reg_new_handle(gateway_ptr, SWITCH_FALSE);
}
+ */
if (gateway_ptr->nh) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "UN-Registering %s\n", gateway_ptr->name);
TAG_END());
}
+
+
}
static void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway) {
sofia_private_free(gateway_ptr->sofia_private);
}
- sofia_reg_kill_reg(gateway_ptr);
+ if (gateway_ptr->state == REG_STATE_REGED) {
+ sofia_reg_kill_reg(gateway_ptr);
+ }
}
}