From 7ec7c920d1ef37a6b9753db0321dd19b2f3332a9 Mon Sep 17 00:00:00 2001 From: Matteo Brancaleoni Date: Mon, 22 Sep 2014 10:55:27 +0200 Subject: [PATCH] OPENZAP-220 fix blocked into read and add cause for a correct hangup --- libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c | 2 ++ libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c index be301f3da8..aa071870a0 100644 --- a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c +++ b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c @@ -1251,6 +1251,8 @@ static ftdm_status_t state_advance(ftdm_channel_t *chan) } else if (caller_data->hangup_cause == PRI_CAUSE_DESTINATION_OUT_OF_ORDER) { /* Can happen when we have a DL link expire or some timer expired */ ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); + } else if (caller_data->hangup_cause == PRI_CAUSE_INVALID_NUMBER_FORMAT) { + ftdm_set_state_locked(chan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); } } } diff --git a/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c b/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c index 9c5ea6696f..369a05d1d0 100644 --- a/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c +++ b/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c @@ -1402,7 +1402,7 @@ static FIO_READ_FUNCTION(zt_read) } else { ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Skipping one IO read cycle due to DTMF event processing\n"); } - continue; + break; } /* Read error, keep going unless to many errors force us to abort ...*/