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

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Nov 21 05:09:50 EST 2017


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


More information about the Users mailing list