[Asterisk-Users] Asterisk Dial Failover

burke at tailorhosting.com burke at tailorhosting.com
Fri Dec 9 09:14:36 MST 2005


WEll I personally have not implemented a Linux-HA cluster mainly because I
don't have the resources to do so. I study Asterisk purley as a hobby
(nerd.. yeahI know) because it is an awesome OSS product. Anyways, after
some searching around I think it would not be TOO difficult to implement a
resource failover using a combination of Linux HA (linux-ha.org), Mon
(www.kernel.org/software/mon) and SIPp (sipp.sourceforge.net).

Linux HA supports failover on resources or machine based
failures(inherently if a machine goes down all the resources will be gone
too). However Linux HA just provides the interface to say which machine is
the "Active" machine in the cluster for a specific resource (aka
Asterisk). That is where Mon would come in. Mon montiors services on a
machine and can be configured to react if a service fails the periodic
test. But Mon does not have a per-defined monitor script for Asterisk.
That is where SIPp would come in. You could create a Mon script that calls
SIPp and looks for the return code after a number of calls through the
server. SIPp will return a 0 if all the calls succeeded. That way in your
Mon script if SIPp returned anything other than a 0 then register it as a
failure. Once a failure occurs you can configure Mon to switch the active
Asterisk server using the Linux HA functionality.

Like I said, there is turn key way of doing this, but it looks like a good
little project for the wiki? Maybe I'll start working on this in my spare
time, I just need to get some time to play with the different components.

There are a few more logicistical things that would have to be taken care,
mainly anything file realted, but that could be alleviated with some kind
of remote mounted filesystem.

Hope this helps,
Ryan

> Yes, that's a great question. I'm wondering the same thing. Can these
> heartbeat apps monitor applications as well as network connectivity? The
> heartbeat utility at www.linux-ha.org talks about monitoring some standard
> apps like web servers and such but isn't clear about other apps... like
> Asterisk or SER.
>
> -----Original Message-----
> From: John Cianfarani [mailto:jcianfarani at rogers.com]
> Sent: Friday, December 09, 2005 8:10 AM
> To: Asterisk Users Mailing List - Non-Commercial Discussion
> Subject: RE: [Asterisk-Users] Asterisk Dial Failover
>
>
> Ryan/Jonathan,
>
> Couple quick questions regarding your setup?
> Do you operate this in a strictly master/slave setup?
> Do you have anything(mon/ha's internal status/monitor options) that
> actually monitors the asterisk process (to determine if it is hung). Or
> is it only with total box failure to you fail over?
> Do you use something to sync config/vm/cdr? Rsync/unison?
>
> Thanks
> John
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Jonathan
> k. Creasy
> Sent: Friday, December 09, 2005 8:45 AM
> To: Asterisk Users Mailing List - Non-Commercial Discussion
> Subject: RE: [Asterisk-Users] Asterisk Dial Failover
>
> I chose this method and have been happy with the results.
>
> -Jonathan
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of
> burke at tailorhosting.com
> Sent: Friday, December 09, 2005 7:51 AM
> To: Asterisk Users Mailing List - Non-Commercial Discussion
> Subject: Re: [Asterisk-Users] Asterisk Dial Failover
>
> Your other option is to setup the OpenSER boxes in a truly redundant
> configuration using Linux HA (www.linux-ha.org). That way you setup all
> your PSTN calls to forward to one shared virtual IP between the boxes.
> One
> of the boxes is the Master, the other is the Slave. There is a heartbeat
> between the boxes that goes at a configurable rate. If the Master fails
> then the Slave will take over and it can even be configured for
> sub-second
> failover. I think there is a article on voip-info.org about this, but
> don't have time to look it up.
>
> Good luck and let us know what you choose to do.
>
> Ryan
>
>> All,
>>
>> I have an Asterisk system that sends PSTN calls to an OpenSER system
> to be
>> routed. I have a command like this in my extensions.conf:
>>
>> exten => 1_.,1,Dial(SIP/${EXTEN}@proxy,20,tr)
>>
>> There's actually two OpenSER systems for redundancy. I'm trying to
> find a
>> way to have Asterisk attempt to route the call to one OpenSER system,
> and
>> if it's down, fallback to another.
>>
>> Any first thoughts on how to achieve this?
>>
>> I can't have Asterisk do a DNS SRV lookup because Asterisks SRV
> lookups
>> are broken. If I issue a series of Dial commands, such as this:
>>
>> exten => 1_.,1,Dial(SIP/${EXTEN}@proxy1,20,tr)
>> exten => 1_.,2,Dial(SIP/${EXTEN}@proxy2,20,tr)
>>
>> ... what seems to happen is that when proxy1 is down, Asterisk waits
> the
>> full 20 seconds before returning control. Also, This 20s includes the
> time
>> is takes for the other end to answer, so if I put a small value of say
> 5s
>> in there, the dial command will probably give up before someone
> answers at
>> the other end. Neither is workable.
>>
>> Asterisk SHOULD be able to distinguish between a TRYING and no
> response.
>> In the event it gets no TRYING response to a dial command within a
>> specified timeout it should return control and flag an error. If on
> the
>> other hand it does get a TRYING response (and maybe a RINGING too) it
>> should continue to wait until the 20s has expired.
>>
>> I can't use dynamic DNS (ie putting two A records for a hostname in
> DNS)
>> because Asterisk reads the extensions.conf on startup and also seems
> to
>> cache what the host maps to on startup. Subsequent calls to the host
>> always return the same IP address.
>>
>> But... in general... how have people implemented this?
>>
>> Help appreciated!
>> Doug
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> --Bandwidth and Colocation provided by Easynews.com --
>>
>> Asterisk-Users mailing list
>> To UNSUBSCRIBE or update options visit:
>>    http://lists.digium.com/mailman/listinfo/asterisk-users
>>
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>




More information about the asterisk-users mailing list