[Serusers] Mediaproxy question : client_nat_test ().?

Ricardo Martinez rmartinez at redvoiss.net
Fri Dec 17 22:28:17 CET 2004


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 at 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 at sipgw.mydomain.com>;tag=3655298548.
To: sip:5555848114 at mydomain.com.
CSeq: 1 INVITE.
Call-ID: 3406152498 at sipgw.mydomain.com.
Contact: <sip:22408100 at 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.-




More information about the sr-users mailing list