[asterisk-users] Adding Congestion to CDR logs

Gareth Blades list-asterisk at skycomuk.com
Wed Jun 30 06:14:29 CDT 2010


Using standard AGI will add a fair bit of load and most of that will be 
due to loading the perl or php interpreter every time it is called. Your 
call volume is relativly high so I agree that whatever solution you go 
for you want to make it as streamlined as possible.
Therefore I would advise that you make use of EAGI where you have a 
separate application process running all the time listening for 
connections from asterisk providing information on the calls. Since it 
is running all the time you dont get the startup overhead so it is 
purely database work. You can even have this on a separate box. You can 
define a short timeout so if the app does fail then your dialplan can 
just fail back to a safe provider.

It all comes down to database queries in the end. You can query the last 
X number of calls to a provider made withing the last Y minutes to 
identify a possible problem and avoid using them and generate an alert 
if there is a suspected problem. Lots of things you can do once this 
sort of system is inplace and by having AGI set variables you can even 
simplify the asterisk dialplan and take load away from the asterisk box 
onto a separate database server which makes future expansion much easier.

Kenny Watson wrote:
> Hi Gareth,
> 
> The problem I have had in the past with providers is either that the registrar is still up and its further down the line in the provider that the call is being congestied, so the qualify doesnt work!
> 
> or that the providers registrar has issues but the rest of their services is up so the qualify shows the peer as down but it will still process calls (I disabled qualify for this provider).
> 
> How much load would adding agi in produce, I'm processing about 2000 call attempts per hour which is going to possibly double on this box.  I've been trying to keep things as light as possible.
> 
> If I can get congestion into a cdr and have it sending cdr off to a SQL db it would be ideal.
> 
> 
> Thanks
> 
> Kenny
> 
> 
> 
> Support contact details: support at geniusgroupltd.com
> 
> ----- Original Message -----
> From: "Gareth Blades" <list-asterisk at skycomuk.com>
> To: "Asterisk Users Mailing List - Non-Commercial Discussion" <asterisk-users at lists.digium.com>
> Sent: Wednesday, 30 June, 2010 11:44:58 AM
> Subject: Re: [asterisk-users] Adding Congestion to CDR logs
> 
> Kenny Watson wrote:
>> Hi,
>>
>>
>> I had a breif telco outage with one of my sip providers.
>>
>> Is there a way to add failed calls to the cdr aswell as the connected ones?
>>
>>  
>>
>> I was also thinking about having an automated process that monitored 
>> congested calls vs Succesful ones on a carrier and weight the dial plan 
>> using this.
>>
>>  
>>
>> My dial plan is already run by global varialbes for day/night for 
>> landline/mobile and I was thinking that I could use the manager 
>> interface to change these variables depending on the sucess rate from an 
>> application.   Not done that much research into it but I beleive that 
>> this is possible!
>>
>>  
>>
>> Thanks
>>
>> Kenny Watson
>>
> Yes you could certenly do that. If one of your sip providers goes down 
> and you have qualify=yes for them then the call should fail immediatly 
> and you can detect the return code and automatically fail over to a 
> different provider.
> 
> A better way would be to make use of AGI and write code to lookup calls 
> costs for the specific destination so you can perform least cost routing 
> between your providers. When the call is hungup you can record stats 
> about that provider such as if the call failed.
> 




More information about the asterisk-users mailing list