From 88a25833a4d3605b1dfca618aa39b5706ac2d89a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 26 Apr 2006 21:04:11 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1268 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_exosip/mod_exosip.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/mod/endpoints/mod_exosip/mod_exosip.c b/src/mod/endpoints/mod_exosip/mod_exosip.c index 7339819cca..277f80fadd 100644 --- a/src/mod/endpoints/mod_exosip/mod_exosip.c +++ b/src/mod/endpoints/mod_exosip/mod_exosip.c @@ -323,18 +323,24 @@ static switch_status exosip_on_init(switch_core_session *session) static const switch_codec_implementation *imp; for (i = 0; i < num_codecs; i++) { int x = 0; + uint32_t sps; snprintf(tmp, sizeof(tmp), "%u", codecs[i]->ianacode); sdp_message_m_payload_add(tech_pvt->local_sdp, 0, osip_strdup(tmp)); - for (imp = codecs[i]->implementations; imp; imp = imp->next) { - /* Add to SDP config */ - sdp_add_codec(tech_pvt->sdp_config, codecs[i]->codec_type, codecs[i]->ianacode, codecs[i]->iananame, - imp->samples_per_second, x++); - /* Add to SDP message */ + imp = codecs[i]->implementations; + sps = imp->samples_per_second; - snprintf(tmp, sizeof(tmp), "%u %s/%d", codecs[i]->ianacode, codecs[i]->iananame, imp->samples_per_second); + while(NULL != imp) { + /* Add to SDP config */ + sdp_add_codec(tech_pvt->sdp_config, codecs[i]->codec_type, codecs[i]->ianacode, codecs[i]->iananame, sps, x++); + + /* Add to SDP message */ + snprintf(tmp, sizeof(tmp), "%u %s/%d", codecs[i]->ianacode, codecs[i]->iananame, sps); sdp_message_a_attribute_add(tech_pvt->local_sdp, 0, "rtpmap", osip_strdup(tmp)); memset(tmp, 0, sizeof(tmp)); + if (imp) { + imp = imp->next; + } } } }