Hi Anthony, Thanks, I will try it out right away. Kind regards, Leon On Oct 4, 2010, at 4:27 PM, Anthony Minessale wrote:
the registrations table intentionally does not consider the hostname so you can cluster many boxes on the same domain.
On Mon, Oct 4, 2010 at 6:57 AM, Leon de Rooij <leon@scarlet-internet.nl
wrote: Hello List,
This is going to be a long mail, please bear with me :-)
I'd like to configure High Availability for a FreeSWITCH installation by using a failover server. I already discussed it a bit with Sekil on IRC, but I thought it'd be useful to discuss it here as well.
The idea is as follows:
- I have 2 servers both with an identical FreeSWITCH installation, FS1 and FS2. - Both servers have different static IP's but also one floating IP by means of heartbeat / haresources. - Both FS instances have one Sofia SIP profile that use the floating IP. - Both FS instances are always started (so the backup server will fail to load its SIP profile because the IP is not configured - which is expected behaviour) - There'll be a /etc/ha.d/resource.d "resource script" that starts the SIP profile (through fs_cli -x) the moment it becomes primary - The resource script will also send a "sofia recover" after the SIP profile has been brought up
This way:
- There'll be one logical switch. - The moment FS2 becomes primary, users will be reachable through the entry in 'sip_registrations' table in the ODBC db, even though they may have registered on FS1 - FS2 will start to send SIP options to NAT'ed useragents (keepalive / udp hole punching) the moment the SIP profile is started. - No client useragent involvement is necessary when failing over (like re-register) - Running calls will be continued because of the "sofia recover"
Only problem here is that when a useragent registers to us, then FS also stores its own hostname in "sip_registrations" table in the columns "hostname" and "orig_hostname" (from mod_sofia_globals.hostname). This column is also used in the SELECT query when bridging to a user - so that means if the user registered to FS1, then a failover happens, then if a call is bridged towards that user on FS2, it won't find it because it will search with FS2's hostname in the SELECT query, right ?
If everything I'm writing so far is correct, then would it be alright to override the hostname in sofia.conf ? I think that would solve my problem. I already looked it up - it is first set in mod_sofia.c at line 4565 through gethostname(). It can be overriden in sofia.c (function config_sofia) around line 2845. It would probably also work to give both hosts an identical hostname in the OS, but I don't like that (because of rsyslog and more).
I'm not convinced yet on how to proceed, please let me know if I'm going the wrong direction. If I'm successful on getting this running, I'll document everything on the wiki - also the haresources script I already wrote I'll put in my contrib dir (or elsewhere in main tree if preferred).
Thanks for your time,
Leon
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ Twitter: http://twitter.com/FreeSWITCH_wire
AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org googletalk:conf+888@conference.freeswitch.org pstn:+19193869900
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org