I am in the process of making my FreeSWITCH installation highly available and I'm running into a couple of snags that was hoping that someone may have some insight on. First, the setup as it is now. There are two installations of FS on two different servers, lets call them fs1 and fs2. They each pull their configurations, dialplan, directory and post CDR's all using mod_curl from a central web server. That part works great. Calls into and out of FS go through an OpenSER proxy set up using carrierroute. That part also works great for outbound calls to the PSTN. Inbound calls also come in through this OpenSER proxy and get routed to the primary switch fs1. That also works perfectly as long as its going to fs1. fs1 and fs2 are both setup to use an ODBC connection to store registrations. This is pointed to a MySQL database made highly available using the RedHat Cluster Suite on a shared fibre channel partition. fs1 and fs2 both share the same database. Voicemail storage on fs1 is directly mounted on a GFS2 partition, fs2 is mounting the shared storage from a different server via NFS for no single point of failure. For the phones, I have them setup to use SRV records and have fs1 at priority 10 and fs2 at priority 20 for acme.domain.com. I've tested this and phones register to the correct server and the sip_registration table shows either fs1 or fs2 as the hostname as I would expect. Here is the problem. If user 100@acme.domain.com registers on fs2 and a call comes in from the OpenSER proxy to fs1, bridging the call to /sofia/internal/100%acme.domain.com from fs1 doesn't ring the phone. Is there a difference between 'sofia/internal/100%acme.domain.com' and 'user/100@acme.domain.com'? Calls out from either fs1 or fs2 routed to the proxy work fine, its just calls coming in from the proxy. If the call doesn't go to the switch the user is registered on, the user's phone doesn't ring. It still goes to voicemail, etc., so that part works. Is there a better way to cluster FreeSWITCH than DNS SRV records and a shared state database? Also, as a side note to Anthony, Brian, et al, if this is the best way, I'll be happy to write up a wiki page on how I have this setup with a lot more detail than this. I was not able to find much in the way of highly available configurations or cluster configurations, so I put together this system using information cobbled from the wiki, mailing list messages and lurking on IRC. Thanks. - Marc -- Marc Lewis Avvatel Corporation
This all seems right and would make a great wiki page. What you have described *should* work. when a phone registers try doing sofia_contact <user@domain.com> from the cli on each box and see what you get. you can also use this function in the dialpan ${sofia_contact(user@domain.com)} check that they are both using the same domain name as the profile name or at least have an alais for it etc. if it's a bug i can fix it pretty fast as that is the intended behaviour perhaps you can join irc and get us in the box(s) to have a look at it as we do not have that situation labbed up anywhere. On Tue, Oct 28, 2008 at 6:41 PM, Marc Lewis <marc@avvatel.com> wrote:
I am in the process of making my FreeSWITCH installation highly available and I'm running into a couple of snags that was hoping that someone may have some insight on.
First, the setup as it is now.
There are two installations of FS on two different servers, lets call them fs1 and fs2. They each pull their configurations, dialplan, directory and post CDR's all using mod_curl from a central web server. That part works great.
Calls into and out of FS go through an OpenSER proxy set up using carrierroute. That part also works great for outbound calls to the PSTN. Inbound calls also come in through this OpenSER proxy and get routed to the primary switch fs1. That also works perfectly as long as its going to fs1.
fs1 and fs2 are both setup to use an ODBC connection to store registrations. This is pointed to a MySQL database made highly available using the RedHat Cluster Suite on a shared fibre channel partition. fs1 and fs2 both share the same database. Voicemail storage on fs1 is directly mounted on a GFS2 partition, fs2 is mounting the shared storage from a different server via NFS for no single point of failure.
For the phones, I have them setup to use SRV records and have fs1 at priority 10 and fs2 at priority 20 for acme.domain.com. I've tested this and phones register to the correct server and the sip_registration table shows either fs1 or fs2 as the hostname as I would expect.
Here is the problem. If user 100@acme.domain.com registers on fs2 and a call comes in from the OpenSER proxy to fs1, bridging the call to /sofia/internal/100%acme.domain.com from fs1 doesn't ring the phone. Is there a difference between 'sofia/internal/100%acme.domain.com' and 'user/100@acme.domain.com'?
Calls out from either fs1 or fs2 routed to the proxy work fine, its just calls coming in from the proxy. If the call doesn't go to the switch the user is registered on, the user's phone doesn't ring. It still goes to voicemail, etc., so that part works.
Is there a better way to cluster FreeSWITCH than DNS SRV records and a shared state database?
Also, as a side note to Anthony, Brian, et al, if this is the best way, I'll be happy to write up a wiki page on how I have this setup with a lot more detail than this. I was not able to find much in the way of highly available configurations or cluster configurations, so I put together this system using information cobbled from the wiki, mailing list messages and lurking on IRC.
Thanks.
- Marc
-- Marc Lewis Avvatel Corporation
_______________________________________________ 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/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
participants (2)
-
Anthony Minessale
-
Marc Lewis