Module: sems
Branch: master
Commit: 4c59623e14c2d6fea5955acc50c417d6bf3f1401
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=4c59623e14c2d6fea5955acc50c417d6bf3f1401

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Fri Apr 20 12:05:09 2012 +0200

b/f: lookup payload ids transcoder codecs

This fixes the payload ID for static payloads (<96). The SBC would have else 
generated dynamic payload IDs(>96).

---

 apps/sbc/SBCCallProfile.cpp |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/apps/sbc/SBCCallProfile.cpp b/apps/sbc/SBCCallProfile.cpp
index dffb807..dd05873 100644
--- a/apps/sbc/SBCCallProfile.cpp
+++ b/apps/sbc/SBCCallProfile.cpp
@@ -792,10 +792,22 @@ static bool read(const std::string &src, 
vector<SdpPayload> &codecs)
 {
   vector<string> elems = explode(src, ",");
 
+  AmPlugIn* plugin = AmPlugIn::instance();
+
   for (vector<string>::iterator it=elems.begin(); it != elems.end(); ++it) {
     SdpPayload p;
     if (!readPayload(p, *it)) return false;
-    codecs.push_back(p);
+    int payload_id = plugin->getDynPayload(p.encoding_name, p.clock_rate, 0);
+    amci_payload_t* payload = plugin->payload(payload_id);
+    if(!payload) {
+      ERROR("Ignoring unknown payload found in call profile: %s/%i\n",
+           p.encoding_name.c_str(), p.clock_rate);
+    }
+    else {
+      p.int_pt = payload_id;
+      p.payload_type = payload->payload_id;
+      codecs.push_back(p);
+    }
   }
   return true;
 }

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to