[Serusers] Routing BYEs

Giovanni Balasso giaso at yahoo.it
Tue Mar 29 15:52:43 CEST 2005


Hi serusers
another simple problem making me crazy. I can't get my NATed clients to send 
ACKs and BYEs thru ser. After inviting another uac with ser taking care of 
the relay (setting up rtpproxy and fixing nat), any other signaling message 
doesn't even hit ser and gets lost. 
My configuration is the following: I have ser running on a machine with only 
private ip, but reachable from the internet via router public ip and port 
forwarding. I noticed that the INVITE is sent by uacs to the right public ip 
but then every other signal (ACKs, BYEs, CANCELs) is sent by uacs to ser 
private ip. 
Let me understand something more about ser, please. Any ideas why BYEs are 
sent to private ip? Is ser forcing the uacs to modify sip header whith its 
own ip? where is it doing this? maybe in record_route or in 
fix_nated_contact?

Thanks in advance to everyone who will make some light on my doubts.

Here is the stripped ser.cfg


listen=192.168.1.100

if (nat_uac_test("3")) {
   if (method == "REGISTER" || !search("^Record-Route:")) {
      fix_nated_contact();
      if (method == "INVITE") {
         fix_nated_sdp("1");
      };
      force_rport();
      setflag(6);
   };
};  

record_route();
if (loose_route()) {
   route(1);
};

if (method=="INVITE") {
   if (lookup("location"))  {
      setflag(1);
      route(1); 
      break;
   };
};


route[1] {

    if (isflagset(6)){
        force_rtp_proxy();
        t_on_reply("1");
    };

    if (method == "BYE" || method == "CANCEL"){
       setflag(1);
    };

    if (!t_relay()){
        sl_reply_error();
    };
    break;
}



-- 
Giovanni Balasso
giaso at yahoo.it




More information about the sr-users mailing list