2009/2/10 Johansson Olle E <o...@edvina.net>: > If both devices are on private IP's, there's going to be two > RTP proxys involved if they're on different SIP networks. > > Each SIP service needs an RTP proxy for supporting their > local users.
Hi, I don't fully agree on it: alice --- (NAT A) --- ProxyA & RtpProxyA --- ProxyB & RtpProxyB --- (NAT B) --- bob In this case, when alice calls bob, ProxyA will apply RtpProxyA so the SDP will contain a public IP. Since ProxyB knows that bob is registered behind NAT, it will try to apply RtpProxyB but this will "fail" because the incoming SDP contains a line: a=nortpproxy:yes This line was added by ProxyA when applying RtpProxyA. When ProxyB executes "force_rtpproxy()" this function will not modify the SDP since that line is present. If not, there will be no audio because RtpProxyA would be waiting for audio from RtpProxyB and vice versa (lock condition). ProxyB must be well configured, this means that since "force_rtpproxy()" didn't success on the incoming INVITE, it must no execute "force_rtpproxy()" on the 18X/2XX response from bob. For this, I use a bflag(RTPPROXY_SET) which only set to 1 if "force_rtpproxy()" succeded in the incoming INVITE, and only run "force_rtpproxy()" for responses from bob if that bflag is on. "force_rtpproxy()" returns TRUE (1) just in case the SDP was modified. Best regards. -- Iñaki Baz Castillo <i...@aliax.net> _______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users