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

Bogdan-Andrei Iancu bogdan at opensips.org
Wed Nov 22 12:16:03 EST 2017


Marco,

In this is case it exclusivelydepends on the rtpengine if it updates or 
creates a new session when you call the "offer" for the second time. If 
the existing session (created for the first branch) will be updated on 
the second "offer", the port in the replies (towards caller) will not 
change, right ?

But, based on your tests, I assume it does change the port send to 
caller after the second offer :( .

Again, this depends on the media relay implementation, it is not 
something to be controlled by OpenSIPS.

As asimple alternative, move your media server on the public network, so 
you will not need a second offer. For the second branch, you will simply 
do asecond answer.

Regards,

Bogdan-Andrei Iancu
   OpenSIPS Founder and Developer
   http://www.opensips-solutions.com

On 11/22/2017 06:37 PM, Marco Hierl wrote:
>
> 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 2^nd 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/a57ba988/attachment-0001.html>


More information about the Users mailing list