[asterisk-users] Service Level Compliance
Adam Goryachev
mailinglists at websitemanagers.com.au
Tue Jan 16 01:56:44 MST 2007
lists at infoway.net wrote:
> 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?
>
Solve all of 1 - 3 with a couple of scripts plus AGI. You have a test
asterisk server using either voip or a local pstn line (or bri/pri)
which calls the customers number. I'd try to use a PSTN line since this
is the method most of your customers' customers will use to call. When
the call arrives to your asterisk box A, write the date/time or
something, to a text file (which is read and reported to your monitoring
server), then pass the call into an AGI which does some mysql lookups
(similar to a normal call would), and write the result of these lookups
into another text file (which again is read and compared to the result
you should get, and reported back to the monitoring system - assuming
some sort of static result can be obtained). Finally, pass the call to
Asterisk B, which places the call into the queue. Finally, when the
agent answers the call, they hear a recording from your original test
box (ie, the originator of the call) which simply loops with "Please
press 1 to acknowledge, or 0 if you can't understand/hear this
properly", the originator is simply waiting for the dtmf (with some
configurable timeout), if you get answered and get a 1 or 0, then return
that to your monitoring server, either via text file or directly. If
you timeout, also report that as needed (possible queue problem, or
perhaps the agent took too long to answer, you decide on the timeout
value and the alerting to send back).
> 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?
>
If you have no PSTN interfaces, ie, everything is voip, then you can't
be responsible for echo (neither introducing it, nor removing it). If
you are responsible for the echo that your voip provider is leaving in
the call, then you are pretty much stuffed. You can't really measure it
(AFAIK), but you could perhaps ask your provider for an SLA on echo, and
see what they have to say about it. Then just copy what they say into
your own....
> 5) Anything else that you could think of we could measure to make sure all components are working?
>
The best method to ensure that the whole end-to-end system is working,
is by testing the entire end-to-end system.
> 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.
>
While this would be nice, and could probably be used as a guideline for
other people, it should be mostly useless to anyone else, since their
end-to-end system will be very different (assuming you really are
testing your system properly).
Just my 0.02c worth.
Regards,
Adam
--
Adam Goryachev
Website Managers
Ph: +61 2 8304 0000 adam at websitemanagers.com.au
Fax: +61 2 8304 0001 www.websitemanagers.com.au
More information about the asterisk-users
mailing list