[asterisk-dev] AGI:async

Daniel McFarlane daniel at szeto.ca
Tue Nov 22 11:33:38 CST 2016


Hi,

Unfortunately, I wish I had a simple queue to share but my 
implementation is quite complex due to how I control the call on a 
per-operation basis.  If you choose this route then perhaps you can use 
store your channel/queue name(s) within simple storage elements such as 
a stack, array, or even a hashtable (although the last may not be ideal 
for retrieving calls in order) and then use AMI to control the calls 
from there.  Sorry I can't be more helpful in providing you an example.

I imagine Asterisk queue's work though, so perhaps it might be worth 
your while to pursue that approach a bit more (unfortunately I've never 
tried them, so I can't tell you how it's done!).  That being said, 
perhaps getting Asterisk Queue's going will require a more step-by-step 
approach to figure out why it's not working for you.  Here are my 
suggestions:

Have you tried the exact dialplans in the examples within 
http://www.voip-info.org/wiki/view/Asterisk+cmd+Queue ?  i.e.: Have you 
been able to get Asterisk queue's working without AMI?  If not, that 
might be where to start and then add AMI in afterward..

Another suggestion I have is to use the QueueAdd AMI command, rather 
then calling Queue within your dialplan.  If you have success on doing 
something like an Answer/Playback via AMI, then you will probably have 
no issues with the QueueAdd AMI command. Please try that and maybe 
you'll have more luck.  Here's the API reference: 
http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+QueueAdd

Hope this helps & good luck,

Daniel


On 11/22/2016 10:35 AM, Salvatore Franco wrote:
>
> Hi,
> Thanks for your suggestions.
> The comma was an error in my email, not in my dialplan.
> Even if i use Answer command before Queue i received the same error 
> back, so i think the best way is to have my own queue.
> Have you got any example of how to implement a simple queue that use 
> the "fewestcalls" strategy?
>
> Best Regards
>
> Salvatore
>
>
> ------------------------------------------------------------------------
>
> Da: asterisk-dev-bounces at lists.digium.com
> A: "Asterisk Developers Mailing List" asterisk-dev at lists.digium.com
> Cc:
> Data: Tue, 22 Nov 2016 10:04:58 -0500
> Oggetto: Re: [asterisk-dev] AGI:async
>
> Hi Salvatore,
>
> I don't have any experience with the "Queue" command, as I basically 
> pass the call directly to agi:async and control the call every step of 
> the way from my C program (where I've implemented my own queue/call 
> tracking).
>
> However, here are my suggestions:
>
> 1) Upon taking a quick look at 
> http://www.voip-info.org/wiki/view/Asterisk+cmd+Queue, I think your 
> "failed to add agi command to channel.." error may be since the call 
> is not answered yet.  You'll notice on that web page that the dial 
> plan calls "Answer" before Queue in example 1, and Playback (which 
> itself internally answers the call to be able to then play the 
> announcement) before Queue in example 3 (I'm skipping example 2, as 
> it's a link to a German site and not directly on the page).  Please 
> try one of those commands, before calling your Queue command, and I 
> think you'll get better results.
>
> 2) You are correct that AGI(agi:async) stops execution of the 
> dialplan.  In your attempt to execute AGI(agi:async) before Queue, 
> that's exactly what happened.  The call entered agi:async mode and 
> from that point on you are supposed to issue commands to control the 
> call from your AGI program.
>
> That's probably the reason you don't hear ringing on the phone, as (in 
> your AGI call on priority 1 example) your inbound call never reached 
> the "Queue" dialplan priority.
>
> 3) This is a minor detail, but I'm not sure your syntax is correct.  
> Try removing the comma before the "n", so that you have the following 
> in your dial plan: "same => n,AGI(agi:async)"
>
> Hope this helps,
>
> Daniel
>
>
>
> On 11/22/2016 05:03 AM, Salvatore Franco wrote:
>> Hi,
>> I'm trying to answer a call that is in Queue through AMI, launching 
>> AGI command ANSWER.
>> I read about putting AGI(agi:async) in extensions.conf dialplan but 
>> if i set in this order:
>>
>> exten=> 1000,1,Queue(queuename)
>> same=>        ,n,AGI(agi:async)
>>
>> and try to answer using AMI the response is : failed to add agi 
>> command to channel XXX queue.
>>
>> Else if i set the dial plan in this order:
>>
>>
>> exten=>1000,1,AGI(agi:async)
>> same=>       ,n,Queue(queuename)
>>
>>  the phone doesn't ring and the command execute successful, but 
>> nothing happens. Isn't agi:async "really" async but stops execution 
>> of the dialplan?
>>
>> Any suggestions?
>>
>>
>> Thanks
>>
>> Best Regards
>>
>> *Salvatore Franco*
>>
>>
>>
>>
>
>


-- 
Daniel McFarlane
Szeto Technologies Inc.
885 Ellingham Ave
Pointe Claire, Québec
Canada, H9R 5E8
tel: (514) 630-7878
fax: (514) 630-6394
http://www.szeto.ca

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20161122/e65f0811/attachment.html>


More information about the asterisk-dev mailing list