[OpenSIPS-Devel] [opensips] RTP Engine transport-protocol bug (#415)

eldonogithub notifications at github.com
Wed Feb 18 14:31:30 CET 2015


The following is a patch for rtpengine.c, the code originally was attempting to get the index of the transport array from the ng_flags.transport bitfield. It was using 0x5 which happens to be the length of the transports array but not the correct value for a mask of the index. Instead, the lowest 3 bits are the index, not just the 1st and 3rd bit ( which is all 0x5 gives ). So a mask of 0x7 is required here.

We found this when attempting to change the protocol to RTP/SAVPF (0x03). 

diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c
index 6c7b3e6..056c835 100644
--- a/modules/rtpengine/rtpengine.c
+++ b/modules/rtpengine/rtpengine.c
@@ -1272,9 +1272,10 @@
         bencode_dictionary_add(ng_flags.dict, "flags", ng_flags.flags);
     if (ng_flags.replace && ng_flags.replace->child)
         bencode_dictionary_add(ng_flags.dict, "replace", ng_flags.replace);
-    if ((ng_flags.transport & 0x100))
+    if ((ng_flags.transport & 0x100)) {
         bencode_dictionary_add_string(ng_flags.dict, "transport-protocol",
-                transports[ng_flags.transport & 0x005]);
+                transports[ng_flags.transport & 0x007]);
+    }
     if (ng_flags.rtcp_mux && ng_flags.rtcp_mux->child)
         bencode_dictionary_add(ng_flags.dict, "rtcp-mux", ng_flags.rtcp_mux);


---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/415
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/devel/attachments/20150218/33c66b2a/attachment.htm>


More information about the Devel mailing list