[OpenSIPS-Users] rtp port changed in REPLY's SDP after announcement
Marco Hierl
marco.hierl at next-id.de
Tue Nov 21 05:49:52 EST 2017
Hi Bogdan,
no, he did not say anything yet, but I expect that it is paragraph 3.2:
"A UAS cannot send a new offer in the reliable
provisional response, so the UPDATE method is the only method for a
UAS to update an early session."
(I'm not quite sure if this really fits to our situation, because the UAS itself changed.)
According to your suggestion:
I used "rtpengine_offer(external internal..." to adjust the SDP the first time. So I get an internal IP in the INVITE to the announcement. And this will be seen in the 2nd INVITE to the callee if I do NOT make "rtpengine_offer(external external..." to the INVITE to the callee. But the callee has public IP and I need to use the external interface.
Thanks for your help!
Marco
Von: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
Gesendet: Dienstag, 21. November 2017 11:10
An: OpenSIPS users mailling list; Marco Hierl
Betreff: Re: [OpenSIPS-Users] rtp port changed in REPLY's SDP after announcement
Hello Marco,
Did the interconnection partner mentioned the chapter/paragraph in RFC6337 where the restriction on the port is mentioned (I was not able to find it on a quick scan) ? it is the first time I hear about anything like this.
Now, if you use rtpproxy (I do not know about rtpengine) on your side and you do rtpproxy_offer only once (when getting the call from the carrier) , you can do rtpproxy_answer multiple time (during the serial forking). In this case, the RTP IP:port towards the carrier will never change, but the RTP callee leg will be changed.
Best regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 11/21/2017 11:07 AM, Marco Hierl wrote:
Dear all,
I want to play an early announcement before connecting a call. The announcement can be heard by the caller, but the callee can't hear the caller after the call is connected!
To be more precise:
The openSIPS proxy receives a call from an external interconnection partner (public IP on external interface) and sends it on to an announcement server (private IP on internal interface).
After REPLY 183 the announcement starts and the caller can hear the announcement. It finishes with REPLY603 that comes to the openSIPS failure route. Some stuff is done (e.g. changing R-URI),
a new t_relay will be done and an INVITE is send to the callee (public IP on external interface). The callee sends 200ok, it's forwarded to the caller, that sends ACK like usual.
But the caller does not send RTP to the IP/PORT indicated in the 200OK.
The interconnection partner said that the problem is, that the RTP port in REPLY 183 is different to that in REPLY200 (not allowed, see RFC6337). (just to mention: the to-tag is different too)
I'm using openSIPS 2.3 and in order to overcome the issue with internal and external addresses and also to keep the rtp streams I'm using rtpengine 5.4 (on a different machine)
Is the change of the RTP Port allowed in this way? If not, what I can do better? Or is it a fault from rtp-engine, should it keep the first port?
Any help is very appreciated!
I tried to make a picture... maybe it helps a bit to understand what I was not able to explain above...
No From To Message
1 external ownProxy Request: INVITE sip:+49xxx at us.de;user=phone
2 ownProxy external Status: 100 Giving a try
rtpengine_offer(external internal replace-session-connection ICE=remove trust-address replace-origin)
3 to announcement server Request: INVITE sip:ANNC at mediaserver:5060;user=phone |
4 from announcement server Status: 100 Trying |
5 from announcement server Status: 183 Session Progress |
o=root 1135152900 1135152900 IN IP4 mediaserver
m=audio 13788 RTP/AVP 8 101
rtpengine_answer(internal external replace-session-connection ICE=remove trust-address replace-origin)
6 ownProxy external Status: 183 Session Progress
o=root 1135152900 1135152900 IN IP4 ownProxy
m=audio 23024 RTP/AVP 8 101
< ========== ANNOUNCEMENT ========= >
7 from announcement server Status: 603 Declined
openSIPS failure route
and rtpengine_offer(external external replace-session-connection ICE=remove trust-address replace-origin)
and new t_relay
8 to callee Request: INVITE sip:bob at externalcarrier:5060;user=phone
9 from callee Status: 100 Trying
10 from callee Status: 200 OK
o=- 239036129 823630844 IN IP4 10.0.203.7
m=audio 1044 RTP/AVP 8 101
rtpengine_answer(external external replace-session-connection ICE=remove trust-address replace-origin)
11 ownProxy external Status: 200 OK
o=- 239036129 823630844 IN IP4 ownProxy
m=audio 23056 RTP/AVP 8 101
< ========== RTP from B to A is ok, A send NO RTP to B ========= >
12 external ownProxy Request: ACK sip:ownProxy;did=5db.a2833e17
13 external ownProxy Request: BYE sip:ownProxy;did=5db.a2833e17
14 ownProxy external Status: 200 OK
version: opensips 2.3.0 (x86_64/linux)
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
git revision: fe0ebcb45
main.c compiled on 09:02:02 Sep 14 2017 with gcc 6.3.0
rtpengine version 5.4.0.0+0~mr5.4.0.0 git-master-a9d55c6
Thanks and best regards!!!
Marco
_______________________________________________
Users mailing list
Users at lists.opensips.org<mailto:Users at lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20171121/e02a20ff/attachment-0001.html>
More information about the Users
mailing list