Hi, I'm using rtpengine for RTP proxying with kamailio. I use it just for audio. But eventually some terminal reinvites offering video. I don't want to refuse the request but just disable RTP proxying for video as my employer has limited bandwidth and want to reserve it only for audio. So I checked the rtpengine module documentation but it seems there is no way to restrict RTP proxying to be performed only for m=audio. I tried some things like replace_body("^m=video [0-9]+", "m=video 0"); and subst_body('/^m=video [0-9]+ /m=video 0 /'); and msg_apply_changes(); but still the RTP proxying for video is set up.
Any hints on how to solve this?
Hello,
already tried the sdpops module? https://kamailio.org/docs/modules/5.5.x/modules/sdpops.html#sdpops.f.sdp_rem...
Cheers,
Henning
-- Henning Westerholt – https://skalatan.de/blog/ Kamailio services – https://gilawa.comhttps://gilawa.com/
From: sr-users sr-users-bounces@lists.kamailio.org On Behalf Of mayamatakeshi Sent: Thursday, August 25, 2022 1:49 AM To: Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org Subject: [SR-Users] Disabling video rtp proxing
Hi, I'm using rtpengine for RTP proxying with kamailio. I use it just for audio. But eventually some terminal reinvites offering video. I don't want to refuse the request but just disable RTP proxying for video as my employer has limited bandwidth and want to reserve it only for audio. So I checked the rtpengine module documentation but it seems there is no way to restrict RTP proxying to be performed only for m=audio. I tried some things like replace_body("^m=video [0-9]+", "m=video 0"); and subst_body('/^m=video [0-9]+ /m=video 0 /'); and msg_apply_changes(); but still the RTP proxying for video is set up.
Any hints on how to solve this?
Hi, Yes, I tried. I had this code in my cfg file:
sdp_remove_media("video"); append_hf("P-hint: video removed\r\n"); rtpengine_offer("symetric direction=pub direction=priv codec-transcode=PCMU codec-transcode=PCMA codec-transcode=GSM codec-transcode=G729");
But when I check the INVITE going out from kamailio, I see the P-hint header but the m=video line is still there in the SDP:
INVITE sip:user2@10.255.255.1997072 SIP/2.0 Max-Forwards: 70 Record-Route: sip:192.168.2.198;lr=on;ftag=837235;vsf=AAAAAEVGVUMAcUVUQkUAbhcKHnQxLmNvbQ--;did=662.4f01 To: sip:05022222222@192.168.2.198 From: 05011111111 sip:05011111111@test1.com;tag=837235 Call-ID: 368391 CSeq: 14806 INVITE Content-Type: application/sdp Contact: sip:user1@192.168.2.50:7070 User-Agent: Zoiper Allow-Events: presence, kpml, talk Via: SIP/2.0/UDP 192.168.2.198;branch=z9hG4bK82de.2d1517380038597f70a08f7217851c70.0 Via: SIP/2.0/UDP 10.255.255.199:7070 ;received=192.168.2.50;branch=z9hG4bK794289;rport=7070 Content-Length: 518 P-hint: video removed
v=0 v=0 o=71924084 8000 8001 IN IP4 192.168.2.110 s=SIP Call c=IN IP4 192.168.2.198 t=0 0 m=audio 48882 RTP/AVP 0 8 3 18 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 GSM/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:48883 a=ptime:20 m=video 48912 RTP/AVP 105 b=AS:704 a=rtcp-fb:* nack pli a=rtcp-fb:* ccm fira=rtpmap:105 H264/90000 a=fmtp:105 profile-level-id=428016; packetization-mode=1 a=sendrecv a=rtcp:48913
I also tried doing the removal after rtpengine_offer()/rtpengine_manage() but the same thing happens. I also tried to use msg_apply_changes(); with the same results.
So it seems rtpengine_offer() is executed later in the processing and over the original SDP.
Checking the docs what eventually worked was this:
# set rtpengine to read the body from an AVP: modparam("rtpengine", "read_sdp_pv", "$avp(sdp)")
# set $avp(sdp) to a copy of $rb and replace the m=video line: $avp(sdp) = $rb; subst_attr("$sdp","/m=video [0-9]*/m=video 0/");
So rtpengine would operate on a m=video 0 RTP/AVP XXX line and so it would not set up rtp proxying for it.
Then the original SDP line: m=video 10004 RTP/AVP 105 became this in the forwarded SDP: m=video 0 RTP/AVP 0
Thanks.
On Thu, Aug 25, 2022 at 3:39 PM Henning Westerholt hw@gilawa.com wrote:
Hello,
already tried the sdpops module?
https://kamailio.org/docs/modules/5.5.x/modules/sdpops.html#sdpops.f.sdp_rem...
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
*From:* sr-users sr-users-bounces@lists.kamailio.org *On Behalf Of * mayamatakeshi *Sent:* Thursday, August 25, 2022 1:49 AM *To:* Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org *Subject:* [SR-Users] Disabling video rtp proxing
Hi,
I'm using rtpengine for RTP proxying with kamailio.
I use it just for audio.
But eventually some terminal reinvites offering video.
I don't want to refuse the request but just disable RTP proxying for video as my employer has limited bandwidth and want to reserve it only for audio.
So I checked the rtpengine module documentation but it seems there is no way to restrict RTP proxying to be performed only for m=audio.
I tried some things like
replace_body("^m=video [0-9]+", "m=video 0");
and subst_body('/^m=video [0-9]+ /m=video 0 /');
and
msg_apply_changes();
but still the RTP proxying for video is set up.
Any hints on how to solve this?
The easiest way I see is: Set up mod parameters for rtpengine Read_avp and write_avp During the request processing get $rb and put it into read_avp
Change/remove needed lines from the sdp in avp using regexp or lua/js/python (do not use sdpos as it works with initial sdp, so it won't affect the data in avp )
Call rtpengine_manage Use write_avp after in the call of set_body to apply updated value
https://www.kamailio.org/docs/modules/devel/modules/textops.html#textops.f.s...
Then you get your changes.
On Fri, 26 Aug 2022, 01:23 mayamatakeshi, mayamatakeshi@gmail.com wrote:
Hi, Yes, I tried. I had this code in my cfg file:
sdp_remove_media("video"); append_hf("P-hint: video removed\r\n"); rtpengine_offer("symetric direction=pub direction=priv
codec-transcode=PCMU codec-transcode=PCMA codec-transcode=GSM codec-transcode=G729");
But when I check the INVITE going out from kamailio, I see the P-hint header but the m=video line is still there in the SDP:
INVITE sip:user2@10.255.255.1997072 SIP/2.0 Max-Forwards: 70 Record-Route: sip:192.168.2.198;lr=on;ftag=837235;vsf=AAAAAEVGVUMAcUVUQkUAbhcKHnQxLmNvbQ--;did=662.4f01 To: sip:05022222222@192.168.2.198 From: 05011111111 sip:05011111111@test1.com;tag=837235 Call-ID: 368391 CSeq: 14806 INVITE Content-Type: application/sdp Contact: sip:user1@192.168.2.50:7070 User-Agent: Zoiper Allow-Events: presence, kpml, talk Via: SIP/2.0/UDP 192.168.2.198;branch=z9hG4bK82de.2d1517380038597f70a08f7217851c70.0 Via: SIP/2.0/UDP 10.255.255.199:7070 ;received=192.168.2.50;branch=z9hG4bK794289;rport=7070 Content-Length: 518 P-hint: video removed
v=0 v=0 o=71924084 8000 8001 IN IP4 192.168.2.110 s=SIP Call c=IN IP4 192.168.2.198 t=0 0 m=audio 48882 RTP/AVP 0 8 3 18 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 GSM/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:48883 a=ptime:20 m=video 48912 RTP/AVP 105 b=AS:704 a=rtcp-fb:* nack pli a=rtcp-fb:* ccm fira=rtpmap:105 H264/90000 a=fmtp:105 profile-level-id=428016; packetization-mode=1 a=sendrecv a=rtcp:48913
I also tried doing the removal after rtpengine_offer()/rtpengine_manage() but the same thing happens. I also tried to use msg_apply_changes(); with the same results.
So it seems rtpengine_offer() is executed later in the processing and over the original SDP.
Checking the docs what eventually worked was this:
# set rtpengine to read the body from an AVP: modparam("rtpengine", "read_sdp_pv", "$avp(sdp)")
# set $avp(sdp) to a copy of $rb and replace the m=video line: $avp(sdp) = $rb; subst_attr("$sdp","/m=video [0-9]*/m=video 0/");
So rtpengine would operate on a m=video 0 RTP/AVP XXX line and so it would not set up rtp proxying for it.
Then the original SDP line: m=video 10004 RTP/AVP 105 became this in the forwarded SDP: m=video 0 RTP/AVP 0
Thanks.
On Thu, Aug 25, 2022 at 3:39 PM Henning Westerholt hw@gilawa.com wrote:
Hello,
already tried the sdpops module?
https://kamailio.org/docs/modules/5.5.x/modules/sdpops.html#sdpops.f.sdp_rem...
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
*From:* sr-users sr-users-bounces@lists.kamailio.org *On Behalf Of * mayamatakeshi *Sent:* Thursday, August 25, 2022 1:49 AM *To:* Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org *Subject:* [SR-Users] Disabling video rtp proxing
Hi,
I'm using rtpengine for RTP proxying with kamailio.
I use it just for audio.
But eventually some terminal reinvites offering video.
I don't want to refuse the request but just disable RTP proxying for video as my employer has limited bandwidth and want to reserve it only for audio.
So I checked the rtpengine module documentation but it seems there is no way to restrict RTP proxying to be performed only for m=audio.
I tried some things like
replace_body("^m=video [0-9]+", "m=video 0");
and subst_body('/^m=video [0-9]+ /m=video 0 /');
and
msg_apply_changes();
but still the RTP proxying for video is set up.
Any hints on how to solve this?
Kamailio - Users Mailing List - Non Commercial Discussions
- sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe:
That's what I'm using. Thanks.
On Fri, Aug 26, 2022 at 3:54 PM Yuriy Gorlichenko ovoshlook@gmail.com wrote:
The easiest way I see is: Set up mod parameters for rtpengine Read_avp and write_avp During the request processing get $rb and put it into read_avp
Change/remove needed lines from the sdp in avp using regexp or lua/js/python (do not use sdpos as it works with initial sdp, so it won't affect the data in avp )
Call rtpengine_manage Use write_avp after in the call of set_body to apply updated value
https://www.kamailio.org/docs/modules/devel/modules/textops.html#textops.f.s...
Then you get your changes.
On Fri, 26 Aug 2022, 01:23 mayamatakeshi, mayamatakeshi@gmail.com wrote:
Hi, Yes, I tried. I had this code in my cfg file:
sdp_remove_media("video"); append_hf("P-hint: video removed\r\n"); rtpengine_offer("symetric direction=pub direction=priv
codec-transcode=PCMU codec-transcode=PCMA codec-transcode=GSM codec-transcode=G729");
But when I check the INVITE going out from kamailio, I see the P-hint header but the m=video line is still there in the SDP:
INVITE sip:user2@10.255.255.1997072 SIP/2.0 Max-Forwards: 70 Record-Route: sip:192.168.2.198;lr=on;ftag=837235;vsf=AAAAAEVGVUMAcUVUQkUAbhcKHnQxLmNvbQ--;did=662.4f01 To: sip:05022222222@192.168.2.198 From: 05011111111 sip:05011111111@test1.com;tag=837235 Call-ID: 368391 CSeq: 14806 INVITE Content-Type: application/sdp Contact: sip:user1@192.168.2.50:7070 User-Agent: Zoiper Allow-Events: presence, kpml, talk Via: SIP/2.0/UDP 192.168.2.198;branch=z9hG4bK82de.2d1517380038597f70a08f7217851c70.0 Via: SIP/2.0/UDP 10.255.255.199:7070 ;received=192.168.2.50;branch=z9hG4bK794289;rport=7070 Content-Length: 518 P-hint: video removed
v=0 v=0 o=71924084 8000 8001 IN IP4 192.168.2.110 s=SIP Call c=IN IP4 192.168.2.198 t=0 0 m=audio 48882 RTP/AVP 0 8 3 18 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 GSM/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:48883 a=ptime:20 m=video 48912 RTP/AVP 105 b=AS:704 a=rtcp-fb:* nack pli a=rtcp-fb:* ccm fira=rtpmap:105 H264/90000 a=fmtp:105 profile-level-id=428016; packetization-mode=1 a=sendrecv a=rtcp:48913
I also tried doing the removal after rtpengine_offer()/rtpengine_manage() but the same thing happens. I also tried to use msg_apply_changes(); with the same results.
So it seems rtpengine_offer() is executed later in the processing and over the original SDP.
Checking the docs what eventually worked was this:
# set rtpengine to read the body from an AVP: modparam("rtpengine", "read_sdp_pv", "$avp(sdp)")
# set $avp(sdp) to a copy of $rb and replace the m=video line: $avp(sdp) = $rb; subst_attr("$sdp","/m=video [0-9]*/m=video 0/");
So rtpengine would operate on a m=video 0 RTP/AVP XXX line and so it would not set up rtp proxying for it.
Then the original SDP line: m=video 10004 RTP/AVP 105 became this in the forwarded SDP: m=video 0 RTP/AVP 0
Thanks.
On Thu, Aug 25, 2022 at 3:39 PM Henning Westerholt hw@gilawa.com wrote:
Hello,
already tried the sdpops module?
https://kamailio.org/docs/modules/5.5.x/modules/sdpops.html#sdpops.f.sdp_rem...
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
*From:* sr-users sr-users-bounces@lists.kamailio.org *On Behalf Of * mayamatakeshi *Sent:* Thursday, August 25, 2022 1:49 AM *To:* Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org *Subject:* [SR-Users] Disabling video rtp proxing
Hi,
I'm using rtpengine for RTP proxying with kamailio.
I use it just for audio.
But eventually some terminal reinvites offering video.
I don't want to refuse the request but just disable RTP proxying for video as my employer has limited bandwidth and want to reserve it only for audio.
So I checked the rtpengine module documentation but it seems there is no way to restrict RTP proxying to be performed only for m=audio.
I tried some things like
replace_body("^m=video [0-9]+", "m=video 0");
and subst_body('/^m=video [0-9]+ /m=video 0 /');
and
msg_apply_changes();
but still the RTP proxying for video is set up.
Any hints on how to solve this?
Kamailio - Users Mailing List - Non Commercial Discussions
- sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe:
Kamailio - Users Mailing List - Non Commercial Discussions
- sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: