Egads. Getting queues to work is like pulling teeth. extensions.conf: exten => q_main,1,Queue(oneeighty_main||||1) exten => 80014055,1,Dial(SIP/80014018,15,tr) exten => 80014057,1,Dial(SIP/80014018,15,tr) exten => 80014052,1,Dial(SIP/80014018,15,tr) queues.conf: [oneeighty_main] musiconhold = default joinempty = strict leavewhenempty = strict strategy = rrmemory retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 With this configuration, the timeout of 1 in Queue() is completely ignored. Why? If I remove the timeout of 1 from Queue() and put it in the queueu def, like this: [oneeighty_main] musiconhold = default timeout = 1 joinempty = strict leavewhenempty = strict strategy = rrmemory retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 then the timeout DOES appear to be honored, except that Queue returns CHANUNAVAIL, and does not proceed to the next step in the dialplan. Again, Why? I'm just trying to find the right combination of configuration VOODOO that lets me ring each queue member basically once for 15s. Doug.
You may wanna try... extensions.conf: exten => q_main,1,Queue(oneeighty_main||||300) ... [oneeighty_main] musiconhold = default timeout = 15 ... Cheers. On 3/24/06, Douglas Garstang <dgarstang@oneeighty.com> wrote:> > Egads. Getting queues to work is like pulling teeth. > > extensions.conf: > exten => q_main,1,Queue(oneeighty_main||||1) > exten => 80014055,1,Dial(SIP/80014018,15,tr) > exten => 80014057,1,Dial(SIP/80014018,15,tr) > exten => 80014052,1,Dial(SIP/80014018,15,tr) > > queues.conf: > [oneeighty_main] > musiconhold = default > joinempty = strict > leavewhenempty = strict > strategy = rrmemory > retry = 0 > member => Agent/80014055 > member => Agent/80014057 > member => Agent/80014052 > > With this configuration, the timeout of 1 in Queue() is completely > ignored. Why? > > If I remove the timeout of 1 from Queue() and put it in the queueu def, > like this: > > [oneeighty_main] > musiconhold = default > timeout = 1 > joinempty = strict > leavewhenempty = strict > strategy = rrmemory > retry = 0 > member => Agent/80014055 > member => Agent/80014057 > member => Agent/80014052 > > then the timeout DOES appear to be honored, except that Queue returns > CHANUNAVAIL, and does not proceed to the next step in the dialplan. Again, > Why? > > I'm just trying to find the right combination of configuration VOODOO that > lets me ring each queue member basically once for 15s. > > Doug. > _______________________________________________ > --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 >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20060323/da2e815b/attachment.htm
A queue timeout of 300 isn't really what I'm trying to do. I want to ring each agent once, for a specified period of time, say 15s, and then exit the queue. I've tried setting timeout=15 (which the docs are contracting on the meaning off), and set my queue timeout to agents in queue x 15.... no dice... doesn't work the way I want. Still don't understand why Queue() enters, and then exits with CHANUNAVAIL. What's that all about? Doug -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 9:29 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues You may wanna try... extensions.conf: exten => q_main,1,Queue(oneeighty_main||||300) ... [oneeighty_main] musiconhold = default timeout = 15 ... Cheers. On 3/24/06, Douglas Garstang <dgarstang@oneeighty.com> wrote: Egads. Getting queues to work is like pulling teeth. extensions.conf: exten => q_main,1,Queue(oneeighty_main||||1) exten => 80014055,1,Dial(SIP/80014018,15,tr) exten => 80014057,1,Dial(SIP/80014018,15,tr) exten => 80014052,1,Dial(SIP/80014018,15,tr) queues.conf: [oneeighty_main] musiconhold = default joinempty = strict leavewhenempty = strict strategy = rrmemory retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 With this configuration, the timeout of 1 in Queue() is completely ignored. Why? If I remove the timeout of 1 from Queue() and put it in the queueu def, like this: [oneeighty_main] musiconhold = default timeout = 1 joinempty = strict leavewhenempty = strict strategy = rrmemory retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 then the timeout DOES appear to be honored, except that Queue returns CHANUNAVAIL, and does not proceed to the next step in the dialplan. Again, Why? I'm just trying to find the right combination of configuration VOODOO that lets me ring each queue member basically once for 15s. Doug. _______________________________________________ --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 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/ms-tnef Size: 6026 bytes Desc: not available Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20060323/b6a87763/attachment.bin
Thanks, but I don't really follow your reply. Agents are being logged in with AgentCallBacklogin. If I do a 'show agents' command, I see them... all nice and logged into their queues... -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 9:31 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues You still need to bind Agent/* with SIP/* via AgentLogin/CallbackLogin/etc. to make it work (i.e., solving the CHANUNAVAIL prob.) then the timeout DOES appear to be honored, except that Queue returns CHANUNAVAIL, and does not proceed to the next step in the dialplan. Again, Why? I'm just trying to find the right combination of configuration VOODOO that lets me ring each queue member basically once for 15s. Doug. _______________________________________________ --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
"300" is the maximum time a call can be placed in a queue, after that, next priority will be executed. "15" is the time each agent will be rung before * tries the next agent. "CHANUNAVAIL" happens since Queue rings Agent/xyz, Agent/xyz in turn tries to ring SIP/abc but cannot find it, hence... BTW, you may find this helpful: http://www.oinko.net/astrecipes/index.php?n=118 Cheers -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20060323/57912f18/attachment.htm
I don't see why I'd be getting CHANUNAVAIL. As I said, all the agents are logged in and are in astdb and 'sip show peers'. I just had another go, I passed a timeout of 300 to the Queue() command and set timeout=30 in queues.conf for the queue. The Queue timed out after TWO minutes (120s) and only rang 4 of the 6 agents (30s each). It also then did not continue execution at the next priority in the dial plan. I also tried with a timeout of 300 passed to Queue() but a timeout of 15 in queues.conf. It rang ALL 6 agents for 15s each. This is well below the queue timeout of 300s, but at this point it stopped, and didn't continue at the next priority in the dialplan. See what I mean? If I go and change some timeouts around, the behaviour becomes equally screwy, but for a different reason. Yeah I saw that link earlier today.... based on the results I'm getting it isn't much help, Doug. -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 10:32 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues "300" is the maximum time a call can be placed in a queue, after that, next priority will be executed. "15" is the time each agent will be rung before * tries the next agent. "CHANUNAVAIL" happens since Queue rings Agent/xyz, Agent/xyz in turn tries to ring SIP/abc but cannot find it, hence... BTW, you may find this helpful: http://www.oinko.net/astrecipes/index.php?n=118 Cheers -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/ms-tnef Size: 5062 bytes Desc: not available Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20060323/be296788/attachment.bin
Here you go. I'm not sure this is much use. It's a bit hard to explain as I have one system calling another via IAX where the Queue() command is executed... Calls are VOIP->VOIP, on our network... This case below is where each agent (there's 6) is rung for 30sec, but the Queue aborts after 120s, not 300s! extensions.conf(Caller): [macro-DialIAX] exten => s,1,Dial(IAX2/pbxuser@${ARG1}/${ARG2}@${ARG3}) exten => s,2,Goto(s-${DIALSTATUS},1) exten => s-ANSWER,1,Goto(s-OK,1) exten => s-NOANSWER,1,Goto(s-ERROR,1) exten => s-CONGESTION,1,Goto(s-ERROR,1) exten => s-CHANUNAVAIL,1,Goto(s-ERROR,1) exten => s-ERROR,1,Answer() exten => s-ERROR,2,Wait,1 exten => s-ERROR,3,Set(i=1) exten => s-ERROR,4,While($[${i} < 4]) exten => s-ERROR,5,Playback(cannot-complete-network-error) exten => s-ERROR,6,Playback(message-number) exten => s-ERROR,7,Playback(letters/o) exten => s-ERROR,8,Playback(letters/e) exten => s-ERROR,9,Playback(digits/9) exten => s-ERROR,10,Playback(digits/0) exten => s-ERROR,11,Playback(digits/0) exten => s-ERROR,12,Set(i=$[${i} + 1]) exten => s-ERROR,13,EndWhile exten => s-ERROR,14,Hangup() exten => s-OK,1,MacroExit ... exten => 2944000,1,Macro(DialIAX,acdserver1,q_main,oneeighty_acd) exten => 2944000,2,NoOp(IM BACK) extensions.conf(Callee): exten => q_main,1,Queue(oneeighty_main||||300) exten => q_main,2,NoOp(${QUEUESTATUS}) exten => q_main,3,NoOp(${DIALSTATUS}) exten => q_main,4,Hangup queues.conf(Callee): [oneeighty_main] musiconhold = default joinempty = strict leavewhenempty = strict strategy = rrmemory timeout = 30 ;retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 member => Agent/80014051 member => Agent/80014033 member => Agent/80014050 -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 11:16 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues In that case, you should post part of extensions.conf which is related to Queues/agents, which makes it easier to troubleshoot your problem. Besides, you haven't mentioned how incoming calls get into your queue. PSTN or VoIP calls? All providers set some limit on the time a call can be placed on their trunks without being answered. For PSTN, the time limit is 90 sec. Could that be the cause for your Queue timeout of 120 sec?
I think your requirements are different to ours. I need each agents phone to ring for a given period of time, once. Once each agent has been tried once, the caller should drop out of the queue. I can't set the queue timeout to 0... we don't want people to be stuck in the queue forever, or even for more than a few minutes if all the agents are busy on other calls. I don't think automatically logging an agent out is a good idea. I think it's better to have a short ring time for each. A limitation of Asterisk (ohoh, I hope no one reads this bit) is that it can't provide visual feedback back to the agent's phone about their status. If they where to be automatically logged out, they'd never know. You know, this would all be quite simple if Queues seem to work the way the docs implied. I can't understand why the timeout passed to the Queue() command doesn't seem to work. I've given it values of 200,300 and it aborts way before that. I've seen it ring 4/6 agents with a timeout of 30, and 6/6 agents with a timeout of 15 (both well below 200 and 300). It also doesn't seem to go to the next step in the dialplan. I've also seen where it sends CHANUNAVAIL back to the dial plan on the CALLING server (one server calls another via IAX who then executes the Queue()), even after the call was answered. What's up with that? All in all, it seems completely flaky, and I'm waaay past frustrated. Doug -----Original Message----- From: Joe Dennick [mailto:joe@dennick.net] Sent: Thu 3/23/2006 11:17 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues Queues don't process the dial-plan, period. When you pass a call to a queue, it's either going to be answered by an available agent, or stay in the queue until the queue time-out has been reached. As you have already seen, the agent time-out value will automatically log out an agent who doesn't answer a call within the time-out period. Once that happens, the queue tries the next available agent. I've got the queue time-out set to 0 (meaning it never times out) and the agent time-out set to 20 (rings an agent for 20 seconds, which is usually about four rings). That way if there is a call in the queue, but no agents are logged in, one can log in and take the call. We use the Flash Operator Panel to identify who is logged in, and how many calls are in the queue. I have found, however that not using the agent time-out is bad because the queue continues to send a caller to the same agent, even though that agent isn't at his/her desk to answer the call. Automatically logging that agent out allows the call to be passed to the next available agent. Douglas Garstang wrote: >I don't see why I'd be getting CHANUNAVAIL. As I said, all the agents are logged in and are in astdb and 'sip show peers'. > >I just had another go, I passed a timeout of 300 to the Queue() command and set timeout=30 in queues.conf for the queue. The Queue timed out after TWO minutes (120s) and only rang 4 of the 6 agents (30s each). It also then did not continue execution at the next priority in the dial plan. > >I also tried with a timeout of 300 passed to Queue() but a timeout of 15 in queues.conf. It rang ALL 6 agents for 15s each. This is well below the queue timeout of 300s, but at this point it stopped, and didn't continue at the next priority in the dialplan. > >See what I mean? > >If I go and change some timeouts around, the behaviour becomes equally screwy, but for a different reason. > >Yeah I saw that link earlier today.... based on the results I'm getting it isn't much help, > >Doug. > > > > -----Original Message----- > From: CC Jay [mailto:jjcoolio@gmail.com] > Sent: Thu 3/23/2006 10:32 PM > To: Asterisk Users Mailing List - Non-Commercial Discussion > Cc: > Subject: Re: [Asterisk-Users] Tearing my hair out with Queues > > > "300" is the maximum time a call can be placed in a queue, after that, next priority will be executed. > "15" is the time each agent will be rung before * tries the next agent. > "CHANUNAVAIL" happens since Queue rings Agent/xyz, Agent/xyz in turn tries to ring SIP/abc but cannot find it, hence... > > BTW, you may find this helpful: http://www.oinko.net/astrecipes/index.php?n=118 > > Cheers > > > > >------------------------------------------------------------------------ > >_______________________________________________ >--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 > > _______________________________________________ --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
Oh your kidding. I have to call Answer() first? I thought Queue() implicitly called Answer. Anyway, now that I have Answer() in there, it seems to be behaving a lot better. Thanks for your help. I'll check it out more tomorrow. Really... I thought Queue() and other apps called Answer() themselves... Doug. -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 11:54 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues Let's try the obvious first, how about exten => q_main,1,Answer exten => q_main,2,etc. Fingers crossed :) On 3/24/06, Douglas Garstang <dgarstang@oneeighty.com> wrote: Here you go. I'm not sure this is much use. It's a bit hard to explain as I have one system calling another via IAX where the Queue() command is executed... Calls are VOIP->VOIP, on our network... This case below is where each agent (there's 6) is rung for 30sec, but the Queue aborts after 120s, not 300s! extensions.conf(Caller): [macro-DialIAX] exten => s,1,Dial(IAX2/pbxuser@${ARG1}/${ARG2}@${ARG3}) exten => s,2,Goto(s-${DIALSTATUS},1) exten => s-ANSWER,1,Goto(s-OK,1) exten => s-NOANSWER,1,Goto(s-ERROR,1) exten => s-CONGESTION,1,Goto(s-ERROR,1) exten => s-CHANUNAVAIL,1,Goto(s-ERROR,1) exten => s-ERROR,1,Answer() exten => s-ERROR,2,Wait,1 exten => s-ERROR,3,Set(i=1) exten => s-ERROR,4,While($[${i} < 4]) exten => s-ERROR,5,Playback(cannot-complete-network-error) exten => s-ERROR,6,Playback(message-number) exten => s-ERROR,7,Playback(letters/o) exten => s-ERROR,8,Playback(letters/e) exten => s-ERROR,9,Playback(digits/9) exten => s-ERROR,10,Playback(digits/0) exten => s-ERROR,11,Playback(digits/0) exten => s-ERROR,12,Set(i=$[${i} + 1]) exten => s-ERROR,13,EndWhile exten => s-ERROR,14,Hangup() exten => s-OK,1,MacroExit ... exten => 2944000,1,Macro(DialIAX,acdserver1,q_main,oneeighty_acd) exten => 2944000,2,NoOp(IM BACK) extensions.conf(Callee): exten => q_main,1,Queue(oneeighty_main||||300) exten => q_main,2,NoOp(${QUEUESTATUS}) exten => q_main,3,NoOp(${DIALSTATUS}) exten => q_main,4,Hangup queues.conf(Callee): [oneeighty_main] musiconhold = default joinempty = strict leavewhenempty = strict strategy = rrmemory timeout = 30 ;retry = 0 member => Agent/80014055 member => Agent/80014057 member => Agent/80014052 member => Agent/80014051 member => Agent/80014033 member => Agent/80014050 -----Original Message----- From: CC Jay [mailto:jjcoolio@gmail.com] Sent: Thu 3/23/2006 11:16 PM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Subject: Re: [Asterisk-Users] Tearing my hair out with Queues In that case, you should post part of extensions.conf which is related to Queues/agents, which makes it easier to troubleshoot your problem. Besides, you haven't mentioned how incoming calls get into your queue. PSTN or VoIP calls? All providers set some limit on the time a call can be placed on their trunks without being answered. For PSTN, the time limit is 90 sec. Could that be the cause for your Queue timeout of 120 sec? _______________________________________________ --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
It is not so bad - it's the docs that aren't so clear - try this: http://www.oinko.net/astrecipes/index.php?q=astrecipes/understanding+queue+logic and beware of timeouts l. In data Fri, 24 Mar 2006 02:00:10 +0100, Douglas Garstang <dgarstang@oneeighty.com> ha scritto:> Egads. Getting queues to work is like pulling teeth. > > extensions.conf: > exten => q_main,1,Queue(oneeighty_main||||1) > exten => 80014055,1,Dial(SIP/80014018,15,tr) > exten => 80014057,1,Dial(SIP/80014018,15,tr) > exten => 80014052,1,Dial(SIP/80014018,15,tr) > > queues.conf: > [oneeighty_main] > musiconhold = default > joinempty = strict > leavewhenempty = strict > strategy = rrmemory > retry = 0 > member => Agent/80014055 > member => Agent/80014057 > member => Agent/80014052 > > With this configuration, the timeout of 1 in Queue() is completely > ignored. Why? > > If I remove the timeout of 1 from Queue() and put it in the queueu def, > like this: > > [oneeighty_main] > musiconhold = default > timeout = 1 > joinempty = strict > leavewhenempty = strict > strategy = rrmemory > retry = 0 > member => Agent/80014055 > member => Agent/80014057 > member => Agent/80014052 > > then the timeout DOES appear to be honored, except that Queue returns > CHANUNAVAIL, and does not proceed to the next step in the dialplan. > Again, Why? > > I'm just trying to find the right combination of configuration VOODOO > that lets me ring each queue member basically once for 15s. > > Doug. > _______________________________________________ > --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-- Assum est, versa et manduca.