Thanks Patrick, I have re-configured a common database for the servers and I am still having the same issues. Can this be an issue with PAT at the Load balancer after failover since the INVITE is coming from openser_2 and going to the same IP:port associated with openser_1.
I am also open to trying other methods to achieve OpenSER registrar HA if any available. Thanks. Buki A > ---------- Forwarded message ---------- > From: Patrick Miccio <[EMAIL PROTECTED]> > To: <[email protected]> > Date: Thu, 6 Mar 2008 11:04:40 +0100 > Subject: Re: [OpenSER-Users] issue - remote sip client must re-register > after failover in Openser Registrar HA config > Hi, > > you need to have a common mysql table for the registrations so that when > OpenSER_2 taks over it has the informations > OpenSER_1 wrote in the DB. > > you can achieve this with a single mysql server, or better with a cluster > ;) > > > cheers, > > Patrick. > > > > Hi friends, > > > > I am having problems setting up seamless openser registrar failover. I > am trying to setup OpenSER registrar HA using > > 2 openser registrars v1.3.0 behind a Netscaler citrix Load balancer and > I cant get the failover scenario to work > > without re-registration of the remote sip client. > > > > I am desperately looking for tips to make this configuration work or any > other ideas to achieve SIP registrar HA > > using OpenSER. Thanks. > > > > > > > > The setup is configured as active-passive and the 2nd OpenSER becomes > active only after a Openser_1 fails and the LB > > fails-over to the 2nd. The 2 openser servers are SIP registrars for my > voice network. > > > > REGISTRATION: > > remote SIP UA ---> remote firewall ---> internet ---> my firewall ---> > citrix NA loadbalancer (VIP) ----> openSER_1 > > > \---> > > openSER_2 > > > > 1. Remote SIP client configures the LB VIP as the SIP proxy and > registers > > 2. the citrix LB gets the registrations and forwards to the active > openser (say, openser_1) > > 3. openser_1 stores the contact as MIP:port in the mysql database > > 4. openser_1 replicates the registration to openser_2 (t_replicate) > > > > OUT-GOING CALL - before fail-over > > remote SIP UA <--- remote firewall <--- internet <--- my firewall <--- > citrix NA loadbalancer (VIP) <----> openSER_1 > > > ^ > > openSER_2 | > > > Asterisk > > > > 1. call (INVITE) is generated from asterisk and sent to LB VIP > > 2. the citrix LB gets the INVITE and forwards to the active openser > (say, openser_1) > > 3. openser_1 looks-up the URI in the MySQL database, finds the > MIP:port that the registration was received from the > > LB and forwards the INVITE to that destination. 4. the LB receives the > INVITE and forwards it to the remote SIP > > client > > > > > > OUT-GOING CALL - after fail-over > > remote SIP UA ---x remote firewall ---x internet ---x my firewall ---x > citrix NA loadbalancer (VIP) ----x openSER_1 > > > ^ > > \-----< openSER_2 | > > > Asterisk > > > > 1. call (INVITE) is generated from asterisk and sent to LB VIP > > 2. the citrix LB gets the INVITE and forwards to the openser now > active (openser_2) > > 3. openser_2 looks-up the URI in the MySQL database, finds the same > MIP:port of the LB that was replicated from > > openser_1 and forwards the INVITE to that destination. 4. the LB > receives the INVITE and drops the packet without > > forwarding it out to the remote SIP client > > > > > > > > For the outgoing call to work: the remote sip client either has to > re-register, so the registration gets passed to > > openser_2. OR, openser_1 is made active again. > > > > > > Configuration of OpenSER: > > > > REGISTRATION: > > # If this is a registration from the public UA, > > # then we store it > > fix_nated_contact(); # use ip address of the packet > instead of the sip message > > force_rport(); # append rport. might not be necessary > > > > # save Registration in location table > > save("location"); > > xlog("L_DBG", "SipMsgId[$mi] Save Registration: To[$tu] > Contact[$ct]\n"); > > append_hf("CtlRegFwd: \r\n"); > > # replicate the register message to the backup registrar > > # if I am the backup, ignore the message > > if(!t_replicate("sip:openser_2:5060")) { > > xlog("L_WARN", "SipMsgId[$mi] Fail to replicate > Contact[$ct] to fail over registrar\n"); > > > > OUTGOING CALL: > > > > # Do lookup so it gets to the correct NATed destination > > if (!lookup("location")) > > { > > # this user has not REGISTERed or registration has > expired > > xlog("L_INFO", "SipMsgId[$mi] Send 404-Not Found (Msg > rejected because user not found)\n"); > > sl_send_reply("404", "Not Found"); > > exit; > > }; > > > > # keep track of reply > > t_on_reply("11"); > > if (!t_relay()) > > { > > xlog("L_DBG", "SipMsgId[$mi] Failed t_relay. Do > sl_reply_error.\n"); > > sl_reply_error(); > > }; > > > > > > > > Thank you for your anticipated help. > > > > Regards, > > > > Buki A > > >
_______________________________________________ Users mailing list [email protected] http://lists.openser.org/cgi-bin/mailman/listinfo/users
