Hello List I have a question regarding the client_nat_test() in the mediaproxy module. If i have an INVITE something like this.
INVITE sip:5555848114@mydomain.com SIP/2.0. Via: SIP/2.0/UDP sipgw.mydomain.com:5060; branch=z9hG4bKNxvDQVViBAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_. Via: SIP/2.0/TCP xx.xx.154.68:14123. From: sip:22408100@sipgw.mydomain.com;tag=3655298548. To: sip:5555848114@mydomain.com. CSeq: 1 INVITE. Call-ID: 3406152498@sipgw.mydomain.com. Contact: sip:22408100@sipgw.mydomain.com. Accept: application/sdp. Max-Forwards: 69. Content-Type: application/sdp. Content-Length: 200. . v=0. o=sipgw.mydomain.com 811562435 1354711274 IN IP4 xx.xx.154.36. s=SIP Library call. c=IN IP4 xx.xx.154.68. t=3312294794 0. m=audio 23264 RTP/AVP 18 4. a=rtpmap:18 G729/8000. a=rtpmap:4 g723/8000.
How is possible to mediaproxy module detect this client as a NAT'd? Because all the calls coming from this GW are being proxied by mediaproxy. It suppose that this GW's has a public IP, so i don't understand why is this happening.
Beside this can someone tell me if this is ok that a VIA parameter has a domain name ????
The snippet for my NAT'd mediaproxy enviroment is :
if (client_nat_test("3")) { log(1, "NAT: Requerimiento de IP privada --> fixed contact (en rutina principal)\n"); setflag(5); force_rport(); fix_contact(); append_hf("P-hint: fixed NAT contact for request\r\n");
....
if (method=="INVITE") { log(1, "ROUTING: Reply processing (online user) enabled to handle NAT'd resonses\n"); t_on_reply("1"); if ( (isflagset(5)) && (method=="INVITE" || method=="ACK") ) { log(1, "NAT: Invite received --> enabling media proxy (else del lookup 2do if)\n"); use_media_proxy(); append_hf("P-hint: request forced to media proxy\r\n"); }; };
....
onreply_route[1] { # If we've got here, it's because we've previously passed through a block # which handles NAT requests and has set a t_on_reply condition. DB 03-08-2004 if (status =~ "(183)|(2[0-9][0-9])") { if (client_nat_test("3") || isflagset(5)) { log(1, "NAT: Reply from NAT'd client --> fixing contact (onreply_route)\n"); fix_contact(); use_media_proxy(); setflag(5); }; log(1, "NAT: NAT'd transaction answered --> enabling media proxy (onreply_route)\n"); # use_media_proxy(); };
}
Thanks in advance.
Best reegards, Ricardo.-