[Freeswitch-svn] [commit] r4390 - freeswitch/trunk/src/mod/endpoints/mod_sofia

Freeswitch SVN mikej at freeswitch.org
Sun Feb 25 16:00:26 EST 2007


Author: mikej
Date: Sun Feb 25 16:00:26 2007
New Revision: 4390

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c

Log:
Detect proper telephone-event id to use.  fix to http://jira.freeswitch.org/browse/MODENDP-4 .  using pt.diff.  

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	Sun Feb 25 16:00:26 2007
@@ -26,6 +26,7 @@
  * Anthony Minessale II <anthmct at yahoo.com>
  * Ken Rice, Asteria Solutions Group, Inc <ken at asteriasgi.com>
  * Paul D. Tinsley <pdt at jackhammer.org>
+ * Bret McDanel <trixter AT 0xdecafbad.com>
  *
  *
  * mod_sofia.c -- SOFIA SIP Endpoint
@@ -2334,6 +2335,7 @@
 static uint8_t negotiate_sdp(switch_core_session_t *session, sdp_session_t *sdp)
 {
 	uint8_t match = 0;
+	switch_payload_t te = 0;
 	private_object_t *tech_pvt;
 	sdp_media_t *m;
 	sdp_attribute_t *a;
@@ -2390,8 +2392,15 @@
 				int32_t i;
                 const switch_codec_implementation_t *mimp = NULL, *near_match = NULL;
 
-				if (!strcasecmp(map->rm_encoding, "telephone-event")) {
-					tech_pvt->te = (switch_payload_t)map->rm_pt;
+				if (!te && !strcasecmp(map->rm_encoding, "telephone-event")) {
+					te = tech_pvt->te = (switch_payload_t)map->rm_pt;
+				}
+
+				if (match) {
+					if (te) {
+						break;
+					}
+					continue;
 				}
 
 				for (i = 0; i < tech_pvt->num_codecs; i++) {
@@ -2464,7 +2473,6 @@
 					if (tech_set_codec(tech_pvt, 1) != SWITCH_STATUS_SUCCESS) {
 						match = 0;
 					}
-					break;
 				}
 			}
 		}



More information about the Freeswitch-svn mailing list