[OpenSIPS-Users] Getting the $rb or media port for egress message.
Bogdan-Andrei Iancu
bogdan at opensips.org
Thu Mar 28 10:32:06 UTC 2024
Hi Matthew,
For efficiency reasons, the changes over the SIP messages are not
applied (so vizible) on the spot, but only at the end, when the SIP
message is sent out. So, shortly, you cannot see the changes done by
your script, you all the time "see" the initial received message.
Options you have here:
1) force applying the changes, see the get_updated_body_part() [1]
if (has_body("application/sdp")){
rtpengine_offer();
get_updated_body_part( "application/sdp", $var(new_sdp));
$var(mline) = $(var(new_sdp){sdp.line,m,0});
xlog("TEST $var(mline)\n");
}
2) instruct rtpengine not to change the SDP in the message, but to do
the changes over an SDP stored in a variable. And you will push the new
SDP manually in the message.
if (has_body("application/sdp")){
$var(new_sdp)= $rb;
rtpengine_offer(,,,,,$var(new_sdp));
$var(mline) = $(var(new_sdp){sdp.line,m,0});
remove_body_part("application/sdp");
add_body_part($var(new_sdp),"application/sdp");
xlog("TEST $var(mline)\n");
}
[1]
https://opensips.org/html/docs/modules/3.4.x/sipmsgops.html#func_get_updated_body_part
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
https://www.opensips-solutions.com
https://www.siphub.com
On 26.03.2024 23:17, Matthew Schumacher wrote:
> Hello,
>
> I'm trying to log the media port for another system and using this
> code to grab the m line out of an SDP header:
>
> if (has_body("application/sdp")){
> rtpengine_offer();
> $var(mline) = $(rb{sdp.line,m,0});
> xlog("TEST $var(mline)\n");
> }
>
> The problem is that it only sees the ports for ingress SDP messages
> and not egress SDP messages. What can I do to grab the SDP messages
> leaving opensips?
>
> I want to take this data and inject a firewall rule that allows the
> media and remove it later because NAT helpers don't work on TLS
> traffic, my system already knows what port to expect, and I don't like
> having a huge pile of UDP ports allowed through.
>
> Honestly, I'm not sure why the kernel mode forwarding in rtpengine
> doesn't also allow traffic based on ports we are expecting to see
> traffic from.... that's what I thought it did at first until I
> realized that it's only forwarding the RTP packet through the kernel
> faster without needing userspace.
>
> Thanks,
> Matt
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list