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

Bogdan-Andrei Iancu bogdan at opensips.org
Wed Nov 22 10:14:38 EST 2017


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/232b7872/attachment-0001.html>


More information about the Users mailing list