Revision
17351
Author
dyatsin
Date
2010-04-20 16:05:47 -0500 (Tue, 20 Apr 2010)

Log Message

freetdm:Bug fixes in freetdm queue mode
freetdm:Added freetdm to compile/install list

Modified Paths

Property Changed

Diff

Modified: freeswitch/trunk/bootstrap.sh (17350 => 17351)


--- freeswitch/trunk/bootstrap.sh	2010-04-20 20:40:21 UTC (rev 17350)
+++ freeswitch/trunk/bootstrap.sh	2010-04-20 21:05:47 UTC (rev 17351)
@@ -4,7 +4,7 @@
 BASEDIR=`pwd`;
 LIBDIR=${BASEDIR}/libs;
 SUBDIRS="ilbc curl iksemel js js/nsprpub libdingaling libedit libsndfile pcre sofia-sip \
-        speex sqlite srtp openzap spandsp libg722_1 portaudio unimrcp tiff-3.8.2 broadvoice silk";
+        speex sqlite srtp openzap freetdm spandsp libg722_1 portaudio unimrcp tiff-3.8.2 broadvoice silk";
 
 if [ ! -f modules.conf ]; then 
     cp build/modules.conf.in modules.conf

Modified: freeswitch/trunk/configure.in (17350 => 17351)


--- freeswitch/trunk/configure.in	2010-04-20 20:40:21 UTC (rev 17350)
+++ freeswitch/trunk/configure.in	2010-04-20 21:05:47 UTC (rev 17351)
@@ -3,10 +3,10 @@
 
 # Must change all of the below together
 # For a release, set revision for that tagged release as well and uncomment
-AC_INIT([freeswitch], [1.0.6], BUG-REPORT-ADDRESS)
+AC_INIT([freeswitch], [1.0.head], BUG-REPORT-ADDRESS)
 AC_SUBST(SWITCH_VERSION_MAJOR, [1])
 AC_SUBST(SWITCH_VERSION_MINOR, [0])
-AC_SUBST(SWITCH_VERSION_MICRO, [6])
+AC_SUBST(SWITCH_VERSION_MICRO, [head])
 #AC_SUBST(SWITCH_VERSION_REVISION, [])
 
 AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
@@ -954,6 +954,7 @@
 AC_CONFIG_SUBDIRS([libs/speex])
 AC_CONFIG_SUBDIRS([libs/portaudio])
 AC_CONFIG_SUBDIRS([libs/openzap])
+AC_CONFIG_SUBDIRS([libs/freetdm])
 AC_CONFIG_SUBDIRS([libs/unimrcp])
 AC_CONFIG_SUBDIRS([libs/tiff-3.8.2])
 AC_CONFIG_SUBDIRS([libs/spandsp])

Modified: freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c (17350 => 17351)


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-04-20 20:40:21 UTC (rev 17350)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-04-20 21:05:47 UTC (rev 17351)
@@ -691,13 +691,13 @@
 				if (ftdmchan->state == FTDM_CHANNEL_STATE_UP ||
 					ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA ||
 					ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS) {
-					ftdm_log(FTDM_LOG_CRIT, "ZCHAN CALL ACK STATE UP -> Changed to TERMINATING %d:%d\n", event->span+1,event->chan+1);
+					ftdm_log(FTDM_LOG_CRIT, "FTDMCHAN CALL ACK STATE UP -> Changed to TERMINATING %d:%d\n", event->span+1,event->chan+1);
 					ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, 0, r);
 				} else if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP ||  ftdm_test_sflag(ftdmchan, SFLAG_HANGUP)) {
-					ftdm_log(FTDM_LOG_CRIT, "ZCHAN CALL ACK STATE HANGUP  -> Changed to HANGUP COMPLETE %d:%d\n", event->span+1,event->chan+1);
+					ftdm_log(FTDM_LOG_CRIT, "FTDMCHAN CALL ACK STATE HANGUP  -> Changed to HANGUP COMPLETE %d:%d\n", event->span+1,event->chan+1);
 					ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, 0, r);
 				} else {
-					ftdm_log(FTDM_LOG_CRIT, "ZCHAN STATE INVALID State %s on IN CALL ACK %d:%d\n",
+					ftdm_log(FTDM_LOG_CRIT, "FTDMCHAN STATE INVALID State %s on IN CALL ACK %d:%d\n",
 						 ftdm_channel_state2str(ftdmchan->state),event->span+1,event->chan+1);
 				}
 				ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG);
@@ -817,7 +817,9 @@
 		if (sangoma_boost_data->sigmod) {
 			ftdmchan = OUTBOUND_REQUESTS[event->call_setup_id].ftdmchan;
 			CALL_DATA(ftdmchan)->last_event_id = event->event_id;
+			CALL_DATA(ftdmchan)->call_setup_id = event->call_setup_id;
 			ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING);
+			ftdm_clear_sflag_locked(ftdmchan, SFLAG_SENT_FINAL_MSG);
 		} else {
 			sangomabc_exec_command(mcon,
 						   0,
@@ -859,7 +861,7 @@
 	sangomabc_exec_command(mcon,
 					   event->span,
 					   event->chan,
-					   0,
+					   event->call_setup_id,
 					   SIGBOOST_EVENT_CALL_START_NACK_ACK,
 					   0, 0);
 }
@@ -1004,23 +1006,25 @@
 			if (ftdmchan->state == FTDM_CHANNEL_STATE_UP ||
 				ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS_MEDIA ||
 				ftdmchan->state == FTDM_CHANNEL_STATE_PROGRESS) {
-				ftdm_log(FTDM_LOG_CRIT, "ZCHAN STATE UP -> Changed to TERMINATING %d:%d\n", event->span+1,event->chan+1);
+				ftdm_log(FTDM_LOG_CRIT, "s%dc%d:FTDMCHAN STATE UP -> Changed to TERMINATING\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
 				ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING, 0, r);
 			} else if (ftdmchan->state == FTDM_CHANNEL_STATE_HANGUP ||  ftdm_test_sflag(ftdmchan, SFLAG_HANGUP)) {
-				ftdm_log(FTDM_LOG_CRIT, "ZCHAN STATE HANGUP -> Changed to HANGUP COMPLETE %d:%d\n", event->span+1,event->chan+1);
+				ftdm_log(FTDM_LOG_CRIT, "s%dc%d:FTDMCHAN STATE HANGUP -> Changed to HANGUP COMPLETE\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
 				ftdm_set_state_r(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, 0, r);
+      } else if (ftdmchan->state == FTDM_CHANNEL_STATE_DIALING) {
+        ftdm_log(FTDM_LOG_WARNING, "s%dc%d:Collision, hanging up incoming call\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
 			} else {
-				ftdm_log(FTDM_LOG_CRIT, "ZCHAN STATE INVALID %s on IN CALL %d:%d\n", ftdm_channel_state2str(ftdmchan->state),event->span+1,event->chan+1);
+				ftdm_log(FTDM_LOG_CRIT, "s%dc%d:FTDMCHAN STATE INVALID %s on IN CALL\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event), ftdm_channel_state2str(ftdmchan->state));
 			}
 			ftdm_set_sflag(ftdmchan, SFLAG_SENT_FINAL_MSG);
 			ftdmchan = NULL;
 		}
-		ftdm_log(FTDM_LOG_CRIT, "START CANT FIND CHAN %d:%d\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
+		ftdm_log(FTDM_LOG_CRIT, "s%dc%d:START CANT FIND CHAN\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
 		goto error;
 	}
 
 	if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) {
-		ftdm_log(FTDM_LOG_CRIT, "START CANT OPEN CHAN %d:%d\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
+		ftdm_log(FTDM_LOG_CRIT, "s%dc%d:START CANT OPEN CHAN\n", BOOST_EVENT_SPAN(mcon->sigmod, event), BOOST_EVENT_CHAN(mcon->sigmod, event));
 		goto error;
 	}
 	
@@ -1074,7 +1078,7 @@
 	sangomabc_exec_command(mcon,
 						   event->span,
 						   event->chan,
-						   0,
+						   event->call_setup_id,
 						   SIGBOOST_EVENT_CALL_START_NACK,
 						   hangup_cause, 0);
 		
@@ -1375,7 +1379,7 @@
 					sangomabc_exec_command(mcon,
 									BOOST_SPAN(ftdmchan),
 									BOOST_CHAN(ftdmchan),
-									0,
+									CALL_DATA(ftdmchan)->call_setup_id,
 									SIGBOOST_EVENT_CALL_START_NACK_ACK,
 									0, 0);