]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm - ISDN fix for channel getting stuck if we receive ALERT after sending DISCONNECT
authorDavid Yat Sin <dyatsin@sangoma.com>
Wed, 15 Feb 2012 18:07:07 +0000 (13:07 -0500)
committerDavid Yat Sin <dyatsin@sangoma.com>
Wed, 15 Feb 2012 18:07:07 +0000 (13:07 -0500)
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c

index 7507a0ec5ac75ee095ab834358d48c11bc0dbcba..76641f3893570d0a35fa2f87c7737897facdbc47 100644 (file)
@@ -446,7 +446,12 @@ void sngisdn_process_cnst_ind (sngisdn_event_data_t *sngisdn_event)
                                        /* Do nothing */
                                        break;
                                case FTDM_CHANNEL_STATE_RESET:
-                                       ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Processing SETUP but channel in RESET state, ignoring\n");
+                                       ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring ALERT/PROCEED/PROGRESS because channel is in RESET state\n");
+                                       break;
+                               case FTDM_CHANNEL_STATE_HANGUP:
+                               case FTDM_CHANNEL_STATE_HANGUP_COMPLETE:
+                                       /* Ignore this message as we already started the hangup process */
+                                       ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Ignoring ALERT/PROCEED/PROGRESS because we are already hanging up\n");
                                        break;
                                default:
                                        ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Processing ALERT/PROCEED/PROGRESS in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state));