Revision
17508
Author
moy
Date
2010-05-10 11:09:46 -0500 (Mon, 10 May 2010)

Log Message

freetdm: use SIGBOOST_EVENT_CALL_PROGRESS

Modified Paths

Diff

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


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-05-10 15:40:15 UTC (rev 17507)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c	2010-05-10 16:09:46 UTC (rev 17508)
@@ -1400,8 +1400,14 @@
 								BOOST_CHAN(ftdmchan),
 								0,
 								SIGBOOST_EVENT_CALL_START_ACK,
-								0, SIGBOOST_PROGRESS_MEDIA);
+								0, 0);
 				}
+				sangomabc_exec_command(mcon,
+							BOOST_SPAN(ftdmchan),
+							BOOST_CHAN(ftdmchan),
+							0,
+							SIGBOOST_EVENT_CALL_PROGRESS,
+							0, SIGBOOST_PROGRESS_MEDIA);
 			}
 		}
 		break;
@@ -1420,7 +1426,7 @@
 								BOOST_CHAN(ftdmchan),
 								0,
 								SIGBOOST_EVENT_CALL_START_ACK,
-								0, SIGBOOST_PROGRESS_RING);
+								0, 0);
 				}
 			}
 		}

Modified: freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/sangoma_boost_client.c (17507 => 17508)


--- freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/sangoma_boost_client.c	2010-05-10 15:40:15 UTC (rev 17507)
+++ freeswitch/trunk/libs/freetdm/src/ftmod/ftmod_sangoma_boost/sangoma_boost_client.c	2010-05-10 16:09:46 UTC (rev 17508)
@@ -223,12 +223,20 @@
 
 int sangomabc_exec_command(sangomabc_connection_t *mcon, int span, int chan, int id, int cmd, int cause, int flags)
 {
-    sangomabc_short_event_t oevent;
-    int retry = 5;
+	sangomabc_event_t *oevent;
+	sangomabc_short_event_t sevent;
+	sangomabc_event_t fevent;
+	int retry = 5;
 
-    sangomabc_event_init(&oevent, cmd, chan, span);
-    oevent.release_cause = (uint8_t)cause;
-    oevent.flags = flags;
+	if (boost_full_event(cmd)) {
+		sangomabc_event_init((void *)&fevent, cmd, chan, span);
+		oevent = &fevent;
+	} else {
+		sangomabc_event_init(&sevent, cmd, chan, span);
+		sevent.release_cause = (uint8_t)cause;
+		oevent = (sangomabc_event_t *)&sevent;
+	}
+	oevent->flags = flags;
 
 	if (cmd == SIGBOOST_EVENT_SYSTEM_RESTART || cmd == SIGBOOST_EVENT_SYSTEM_RESTART_ACK) {
 		mcon->rxseq_reset = 1;
@@ -237,21 +245,21 @@
 		mcon->txwindow = 0;
 	}
 
-    if (id >= 0) {
-        oevent.call_setup_id = (uint16_t)id;
-    }
+	if (id >= 0) {
+		oevent->call_setup_id = (uint16_t)id;
+	}
 
-    while (sangomabc_connection_write(mcon, (sangomabc_event_t*)&oevent) <= 0) {
-        if (--retry <= 0) {
-            ftdm_log(FTDM_LOG_CRIT, "Failed to tx on boost socket: %s\n", strerror(errno));
-            return -1;
-        } else {
-            ftdm_log(FTDM_LOG_WARNING, "Failed to tx on boost socket: %s :retry %i\n", strerror(errno), retry);
-	    ftdm_sleep(1);
-        }
-    }
+	while (sangomabc_connection_write(mcon, (sangomabc_event_t*)oevent) <= 0) {
+		if (--retry <= 0) {
+		    ftdm_log(FTDM_LOG_CRIT, "Failed to tx on boost socket: %s\n", strerror(errno));
+		    return -1;
+		} else {
+		    ftdm_log(FTDM_LOG_WARNING, "Failed to tx on boost socket: %s :retry %i\n", strerror(errno), retry);
+		    ftdm_sleep(1);
+		}
+	}
 
-    return 0;
+	return 0;
 }
 
 
@@ -540,7 +548,11 @@
 
 void sangomabc_event_init(sangomabc_short_event_t *event, sangomabc_event_id_t event_id, int chan, int span)
 {
-	memset(event, 0, sizeof(sangomabc_short_event_t));
+	if (boost_full_event(event_id)) {
+		memset(event, 0, sizeof(sangomabc_event_t));
+	} else {
+		memset(event, 0, sizeof(sangomabc_short_event_t));
+	}
 	event->event_id = event_id;
 	event->chan = (uint8_t)chan;
 	event->span = (uint8_t)span;