[OpenSIPS-Users] rtp port changed in REPLY's SDP after announcement

Marco Hierl marco.hierl at next-id.de
Wed Nov 22 11:37:52 EST 2017


Hi Bogdan,

yes, that's correct!

Best regards
  Marco

Von: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
Gesendet: Mittwoch, 22. November 2017 16:15
An: Marco Hierl; OpenSIPS users mailling list
Betreff: Re: AW: [OpenSIPS-Users] rtp port changed in REPLY's SDP after announcement

Hi Marco,

If I understand correctly, you *NEED* to do get different SDP's in the 2 INVITE branches as the first branch going to the media server needs to have a private IP, while the second branch going to the calle needs to have a public IP, right ?

Regards,


Bogdan-Andrei Iancu

  OpenSIPS Founder and Developer

  http://www.opensips-solutions.com
On 11/21/2017 12:49 PM, Marco Hierl wrote:
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/20171122/67ae2d39/attachment-0001.html>


More information about the Users mailing list