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

_______________________________________________
--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

Reply via email to