I'm trying to get simple register replicated across 4 servers sharing the
same sip
domain. A user can register to any of the proxies. I have 1 major problem
with this setup
and a slightly minor one.

1) NAT does not work at all, why ? if the call goes to the wrong proxy no
deal!, Is there a way
I can force the Invite to go via the registering proxy ? Call without NAT
work 100%.

2) the third server I forward the register to ends up getting 4 Via
statements? Is this proper?

I have attached a sample trace of the (minor) issue and a snippet of my
config file.
I'm close to wits end here. Any ideas most welcome.
I have tried using t_replicate but it only sends to one server as per TM
docs. how do I
setup ""If multiple destinations are to be used, the additional SIP URIs
have to be set as branches."" as per
TM module?

thanks.

-- 
TC
#-------Path module-------
loadmodule "path.so"
modparam("path", "use_received", 0)
########################################################################
# Request route 'base-route-register'
########################################################################
route[BASE_ROUTE_REGISTER]
{
        if((src_ip==server2))
        {
                xlog("L_INFO","route[BASE_ROUTE_REGISTER] : Register Received 
from Peer $si Saving ...");
                save("location","m");
                exit();
        } 
        if((src_ip==server3))
        {
                xlog("L_INFO","route[BASE_ROUTE_REGISTER] : Register Received 
from Peer $si Saving ...");
                save("location","m");
                exit();
        }       
        if((src_ip==server4))
        {
                xlog("L_INFO","route[BASE_ROUTE_REGISTER] : Register Received 
from Peer $si Saving ...");
                #add_path();
                save("location","m");
                exit();
        } 
        #if((src_ip==server1))
        #{
        #       xlog("L_INFO","route[BASE_ROUTE_REGISTER] : Register Received 
from Peer $si Saving ...");
        #       save("location","m");
        #       exit();
        #} 
        else 
        { 
                
                sl_send_reply("100", "Trying");
                if(!www_authorize("", "v_voipusers"))
                {

                        xlog("L_INFO", "route[BASE_ROUTE_REGISTER] : Register 
authentication failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
                        www_challenge("", "0");
                        exit;
                }
                if(!db_check_to())
                {

                        xlog("L_INFO", "route[BASE_ROUTE_REGISTER] : Spoofed 
To-URI detected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
                        sl_send_reply("403", "Spoofed To-URI Detected");
                        exit;
                }
                consume_credentials();
                if(!search("^Contact:[ ]*\*") && nat_uac_test("19"))
                {
                        force_rport();
                        nat_keepalive();
                        fix_nated_register();
                        setbflag(6);
                }
                if(!save("location"))
                {

                        xlog("L_ERR", "route[BASE_ROUTE_REGISTER] : Saving 
contact failed - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
                        sl_reply_error();
                        exit;
                }
                add_path();
                add_sock_hdr("Local-Sock");
                force_send_socket("server1");
                forward("server2:5060");
                forward("server3:5060");
                forward("server4:5060");

                xlog("L_INFO", "route[BASE_ROUTE_REGISTER] : Registration 
successful - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
                exit;
        }

}
######################
U server1:5060 -> server4:5060
REGISTER sip:server1 SIP/2.0.
Call-ID: 8bf4caccc5ac04802189bf004c6f3...@0:0:0:0:0:0:0:0.
CSeq: 147 REGISTER.
From: <sip:4...@server1>;tag=5b1ba465.
To: <sip:4...@server1>.
Max-Forwards: 69.
User-Agent: SIP Communicator1.0-alpha3-nightly.build.2507Linux.
Expires: 3600.
Contact: "402" 
<sip:[email protected]:5060;transport=udp;registering_acc=server4>;expires=3600.
Via: SIP/2.0/UDP server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Via: SIP/2.0/UDP server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Via: SIP/2.0/UDP server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Via: SIP/2.0/UDP 
172.16.16.39:5060;rport=5060;received=172.16.16.39;rport=5060;received=172.16.16.39;rport=5060;received=172.16.16.39;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Content-Length: 0.
Path: <sip:server1;lr>.
Local-Sock: udp:server1:5060.
.

#
U server4:5060 -> server1:5060
SIP/2.0 200 OK.
Call-ID: 8bf4caccc5ac04802189bf004c6f3...@0:0:0:0:0:0:0:0.
CSeq: 147 REGISTER.
From: <sip:4...@server1>;tag=5b1ba465.
To: <sip:4...@server1>;tag=cbb2b2a10f3d8c83c2c81c71e59f19d7.5e13.
Via: SIP/2.0/UDP 
server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730;rport=5060.
Via: SIP/2.0/UDP server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Via: SIP/2.0/UDP server1;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Via: SIP/2.0/UDP 
172.16.16.39:5060;rport=5060;received=172.16.16.39;rport=5060;received=172.16.16.39;rport=5060;received=172.16.16.39;branch=z9hG4bKceb07dac86ca0962499ff271dc43d070373730.
Contact: 
<sip:[email protected]:5060;transport=udp;registering_acc=server4>;q=1;expires=3600.
OpenSIPS Server.
Content-Length: 0.

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to