[asterisk-users] Service Level Compliance

lists at infoway.net lists at infoway.net
Wed Jan 10 09:18:09 MST 2007


Hello all,

We have a slight issue to resolve. We have a client who we are drafting an SLA for the delivery of telephony services using Asterisk. Nothing extraordinary. However, we do need a way to measure our service availability.

We currently use Nagios and Cacti to monitor server availability as well as asterisk and mysql responsiveness, and last, "ping" availability to our origination VoIP providers. In an ideal world, this should be fine. However, there are a few cases we have noticed this setup not to be enough.

Our particular setup is origination traffic comes into Asterisk box A, where the call goes through some AGI-based IVR. After navigating thru the IVR, the call is transfered to Asterisk box B, where the call is put in a queue and distributed to SIP-based agents.

The issues we would like to resolve are the following:

1) We can ping our originating SIP providers. However, that doesn't guaratee us that we can receive calls from them. In several occasions, some of our SIP providers have had routing (SIP) problems and when we dial any of the DIDs, they would not even hit our box. The call would simply die somewhere in their network or their providers' networks. How can we proactively confirm that they are actually routing calls to us? We thought we could probably dial out through any of our other providers so the call comes in via a different provider and maybe hit an AGI script. This script could update a MySQL table with a timestamp of the last successful "test". We could then take the data from that table and bring it to Nagios and/or Cacti. Is there a better approach?

2) We can test Asterisk responsiveness by doing something like 'asterisk -rx "show uptime"' and parse the results. We can also connect to MySQL and execute a test query. However, how can we verify that Asterisk is actually talking to MySQL and that it's connection hasn't died?

3) As stated above, we can test the responsiveness of asterisk. However, we have noticed in, at least, one occasion, that even though asterisk seems to be responsive, it would not accept or place any calls. Somehow it's "call" engine was locked and we had to restart asterisk. How can we verify that asterisk is actually capable of receiving and placing calls?

4) We have no Digium boards and all kernels are 2.6 or above, so we end us using ztdummy, if needed. The client's agents are in a different country and the average lantency is around 250ms. Most of the time, call quality is good. However, there are a few situations where people complaint about echo. Is there a way to measure or "improve" this? I know it has been a topic discussed at lenght and if we could probably script a way to measure some sort of a MOS value, that would be great. Any ideas?

5) Anything else that you could think of we could measure to make sure all components are working?

You input is greatly appreciated it. I promise that whatever solution is best recommended and scriptable, we will post our development and working solutions for the community to benefit from.

Thanks again,
Daniel



More information about the asterisk-users mailing list