2010/4/24 Juha Heinanen jh@tutpro.com:
Iñaki Baz Castillo writes:
> If these rtpproxy use the same IP as the Kamailio's SIP signalling IP, > then there is no problem and no need to use "-r" flag.
inaki,
does it work in the common case where there is two sip proxys and two rtpproxies belonging to two organizations that don't have any trust relationship between them and ip addresses of the rtpproxies are not the same as sip proxy ip addresses?
In such case, the first Kamailio's nathelper module would add a line "a=nortpproxy" and force RTP throught its RtpProxy-1. The INVITE arrives to Kamailio-2 with the SDP *untouched* (same as nathelper-1 set).
Kamailio-2's nathelper would detect "a=nortpproxy" (hopefully) so it wouldn't force its RtpProxy-2. Ok, no problem.
But in my case, there is a buggy transparent SIP proxy between Kamailio-1 and Kamailio-2, and it removes the "a=nortpproxy" (by leaving untouched the rest of the SDP). Then, since RtpProxies listen in a IP different than Kamailio, and since both use "force_rtp_proxy()" with no "-r" flag, a deadlock occurs: Both RtpProxies prefill the caller and callee media address as remote "KAMAILIO_IP:SDP_PORT" (since "-r" flag is not used) so after sometomeout without receiving RTP both will send RTP to the prefilled media address (error, of course).
By using "-r" (in both or just one of the RtpProxies) it will work as such RtpProxy will prefill the remote media address with the SDP received media address (the IP from with the remote RtpProxy will sent RTP).
My conclussion is that using "-r" flag is MUCH better than not using it. Why?
Without "-r" flag: - RtpProxy prefills the remote address with SIP_RECEIVED_IP:SDP_PORT (which just makes sense in some corner cases). - If RtpProxy doesn't receive RTP in the port it publishes, it will forward its RTP to SIP_RECEIVED_IP:SDP_PORT.
With "-r" flag: - RtpProxy prefills the remote address with SDP_IP:SDP_PORT. - If RtpProxy doesn't receive RTP in the port it publishes, it will forward its RTP to SDP_IP:SDP_PORT.
In the case of two RtpProxy speaking between them, the second option (-r) is desired. If not, it will not work as described above.