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
