From 20ffa32772ab152d74a9a1637cd593ff33fc74cf Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Sun, 25 Feb 2007 21:00:26 +0000 Subject: [PATCH] Detect proper telephone-event id to use. fix to http://jira.freeswitch.org/browse/MODENDP-4 . using pt.diff. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4390 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 1d5e0e134d..5a993a8139 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -26,6 +26,7 @@ * Anthony Minessale II * Ken Rice, Asteria Solutions Group, Inc * Paul D. Tinsley + * Bret McDanel * * * mod_sofia.c -- SOFIA SIP Endpoint @@ -2334,6 +2335,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session 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 @@ static uint8_t negotiate_sdp(switch_core_session_t *session, sdp_session_t *sdp) 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 @@ static uint8_t negotiate_sdp(switch_core_session_t *session, sdp_session_t *sdp) if (tech_set_codec(tech_pvt, 1) != SWITCH_STATUS_SUCCESS) { match = 0; } - break; } } }