Project "FreeSWITCH Source" received a push.

branch: master updated

       via: ae4b2873b0e56090658953f503157166825b66bc (commit)
      from: be370d45ebf5bc7fc329ef0b1abd48c2e38c8e9b (commit)


= COMMIT LOG ===========================================================
committer: David Yat Sin
comments: 
chlog: freetdm: isdn: fix for 5ESS call clearing procedures

diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
index df528ae..97984fb 100644
--- a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
+++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
@@ -683,8 +683,8 @@ static ftdm_status_t ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdm
 				if (!sngisdn_test_flag(sngisdn_info, FLAG_SENT_PROCEED)) {
 					/* By default, we do not send a progress indicator in the proceed */
 					ftdm_sngisdn_progind_t prog_ind = {SNGISDN_PROGIND_LOC_USER, SNGISDN_PROGIND_DESCR_INVALID};
-					
 					sngisdn_set_flag(sngisdn_info, FLAG_SENT_PROCEED);
+					
 					sngisdn_snd_proceed(ftdmchan, prog_ind);
 				}
 			}
@@ -800,6 +800,15 @@ static ftdm_status_t ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdm
 						/* If we never received a PROCEED/ALERT/PROGRESS/CONNECT on an outgoing call, we need to send release instead of disconnect */
 						sngisdn_snd_release(ftdmchan, 0);
 						break;
+					case FTDM_CHANNEL_STATE_PROCEED:
+						if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND) &&
+							((sngisdn_span_data_t*)(ftdmchan->span->signal_data))->switchtype == SNGISDN_SWITCH_5ESS) {
+							
+							/* When using 5ESS, if the user wants to clear an inbound call, the correct procedure is to send a PROGRESS with in-band info available, and play tones. Then send a DISCONNECT. If we reached this point, it means user did not try to play-tones, so send a RELEASE because remote side does not expect DISCONNECT in state 3 */
+							sngisdn_snd_release(ftdmchan, 0);
+							break;
+						}
+						/* fall-through */
 					default:
 						sngisdn_snd_disconnect(ftdmchan);
 						break;
========================================================================

Summary of changes:
 .../ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c  |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

this email was generated because of /git/your-repo.git/hooks/post-receive by the file /git-core/contrib/hooks/post-receive-email
For more info, see http://blog.chomperstomp.com/?p=630 --
FreeSWITCH Source