[Serusers] udp error

Stephen Miles SMiles at callplus.co.nz
Fri Nov 7 02:01:08 CET 2003


Hi Jiri,

Thanks for that, makes a lot of sence. I did think thats what we were doing so here is my config file for you to have a look at.

Could you go through it and tell me where I am going wrong?

Thanks much,

Stephen

route{
        loose_route();
        force_rport();
        fix_nated_contact();
        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                break;
        };
        if (msg:len >=  max_len ) {
                sl_send_reply("513", "Message too big");
                break;
        };

        # we record-route all messages -- to make sure that
        # subsequent messages will go through our proxy; that's
        # particularly good if upstream and downstream entities
        # use different transport protocol
        if(method=="REGISTER") {
          setflag(1); # remember this is ATA
          force_rport();
          fix_nated_contact();
          log("LOG: In NAT clause\n");
          #fix_nated_sdp("3");
        };
        if (!method=="REGISTER") record_route();

        # subsequent messages withing a dialog should take the
        # path determined by record-routing
        if (loose_route()) {
                # mark routing logic in request
                append_hf("P-hint: rr-enforced\r\n");
                route(1);
                break;
        };
        if (uri=~"portal.commverge.co.nz") {
               if (method=="REGISTER") {
                  # Uncomment this if you want to use digest authentication
                  if (!www_authorize("portal.commverge.co.nz", "subscriber")) {
                    www_challenge("portal.commverge.co.nz", "0");
                    break;
                  };
                  save("location");
                  break;
                };
                # native SIP destinations are handled using our USRLOC DB
                if (!lookup("location")) {
                  forward(202.180.125.200,5060);
                  break;
                };
                # user on-line...forward to his current destination
                forward(uri:host,uri:port);
                break;
        };
        if (uri=~"202.180.83.14") {
          log("LOG: In Portal clause!\n");
          rewritehostport("portal.commverge.co.nz:5060");
          log("LOG: Out of Portal clause!\n");
        };

        if (!lookup("location")) {
           forward(202.180.125.200,5060);
           break;
        };
        # user on-line...forward to his current destination
        forward(uri:host,uri:port);
        break;

}

route[1]
{
        # send it out now; use stateful forwarding as it works reliably
        # even for UDP2TCP
        if (!t_relay()) {
                sl_reply_error();
        };
}


-----Original Message-----
From: Jiri Kuthan [mailto:jiri at iptel.org]
Sent: Friday, 7 November 2003 12:42 p.m.
To: Stephen Miles
Subject: RE: [Serusers] udp error


At 12:15 AM 11/7/2003, Stephen Miles wrote:
>Hi Jiri,
>
>SIP support is not turned on on our pix so it is just acting as a nat device, much the same as a linux box or standard router.

Than you will need RTP relay. Otherwise the media from public internet
to your natted client will be dropped by the nat box. Also, you will
have to configure ser to send replies symmetricaly (as opposed to
address advertised in Via). Use force_rport for that.

>What is happening though is that the firewall (pix in this case, cisco 827 in others) is not forwarding/natting the same port as the original request. e.i 192.168.18.12 sends sip message to portal on port 5060, firewall gets that and nats it but uses the next avalible port to send out on so the portal (our sip proxy running ser) gets the request from firewall:next_avalible_port, not firewall:5060. It seems that ser doesn't realise this and thats why we get the error, if I set my softphone (X-Lite) to use the next port the firewall is going to use (from watching logs etc) is works. Sortphone sends register as 192.168.18.12:65389 and the firewall does the same firewall:65389 and it works against ser, phone registers and calls can be make.

SIP servers are supposed to reply to port number advertised in
rquest's topmost via header field.

>I hope this makes more sence. If not please let me know as this could be a bit of a show stopper for us using ser and we would very much like to.

Nevertheless, the rtp relay workaround along with SER configured in a nat-friendly 
manner should help you out.

-jiri 




More information about the sr-users mailing list