El Friday 03 August 2007 11:15:57 Marc LEURENT escribió:
Hello everybody,
To remind you, I'm trying to set a SIP architecture for NATTED SIP users without using any rtp proxy (because of lack of ressource). STUN is working very well between 2 users in 2 differents NATs. But when they are behing the same NAT, they cannot reach the other.. In the INVITE and 200Ok SDP fields, they have put their public address with a port reserved with STUN: it's not working! I think that it is because it's difficult for them to reach the public IPaddress/port where they should send the RTP stream from inside the NAT.
So my idea was: Why not rewriting SDP fields to put their private address when they are behind the same NAT But I don't know how to rewrite the SDP fields for both users. (I have the private address of both users in the location database)
In NAT cases I compare the source IP of the caller with the IP where the called is:
NOTE: modparam("usrloc", "nat_bflag", 6)
if (nat_uac_test("19")) { ... setbflag(6); # NAT flag general if (method!="REGISTER") { fix_nated_contact(); setbflag(5); # NAT flag just for the caller
...
if (isbflagset(5)) { # Caller is behind NAT if ( $dd == $si ) { xlog("L_INFO", "Both users behind same NAT, so we dont use RtpProxy\n"); resetbflag(6); # Unset NAT flag general. } }
I think this is better choice than using RtpProxy and setting private IP's in SDP and Contact header.