Module: sems Branch: master Commit: 2618b89d56fb131460f72f5635c58aeb42046754 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=2618b89d56fb131460f72f5635c58aeb42046754
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Wed Aug 17 00:38:29 2011 +0200 SBC: fixing incomplete silenceSupp media attrib --- apps/sbc/SDPFilter.cpp | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/apps/sbc/SDPFilter.cpp b/apps/sbc/SDPFilter.cpp index add2f4c..7370b66 100644 --- a/apps/sbc/SDPFilter.cpp +++ b/apps/sbc/SDPFilter.cpp @@ -85,6 +85,22 @@ void fix_missing_encodings(SdpMedia& m) { } } +void fix_incomplete_silencesupp(SdpMedia& m) { + for (std::vector<SdpAttribute>::iterator a_it = + m.attributes.begin(); a_it != m.attributes.end(); a_it++) { + if (a_it->attribute == "silenceSupp") { + vector<string> parts = explode(a_it->value, " "); + if (parts.size() < 5) { + string val_before = a_it->value; + for (int i=parts.size();i<5;i++) + a_it->value += " -"; + DBG("fixed SDP attribute silenceSupp:'%s' -> '%s'\n", + val_before.c_str(), a_it->value.c_str()); + } + } + } +} + int normalizeSDP(AmSdp& sdp) { for (std::vector<SdpMedia>::iterator m_it= sdp.media.begin(); m_it != sdp.media.end(); m_it++) { @@ -93,6 +109,10 @@ int normalizeSDP(AmSdp& sdp) { // fill missing encoding names (a= lines) fix_missing_encodings(*m_it); + + // fix incomplete silenceSupp attributes (see RFC3108) + // (only media level - RFC3108 4.) + fix_incomplete_silencesupp(*m_it); } return 0; } _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
