Hello all, I think Lee has given me a head start, but I'm still running in a circle (at least i'm in the lead). The problem is with my queues. The phones go to their own voicemail after 5 rings. That's about the same time I allow the phone to ring before trying another phone in the queue. Is there a way to tell asterisk....? If this call is coming from a queue, do not follow a normal dial plan for the phone (don't send to user's voicemail). In stead, once timed out (t|||60), send to Voicemail(u1000). Lee recommended QUEUESTATUS, but that seems to return if anyone is in a specific queue, and not if the current call came from a queue. I probably just misunderstand how it all works. :) Thanks all! Rob ----------------- I would recommend that you download the following tool and play with it (if you have a windows box): http://www.datatrakpos.com/pos/datatalk/Default.aspx Check out the Visual Menu Builder included. There is a Queue widget included. Try playing around with that and building the project and inspecting the resulting script that the program generates. This should give you a better idea of how to do what you are trying to do, I think. Also, check out the channel variable QUEUESTATUS. See if it's set to determine whether the call is coming from a queue. I'm not sure if it's normally blank or has a default value so you may want to check that out too.
In the queues that I've established, I've assigned a different number to queue-agents than their normal extension. If their extension is 2120, their roll-over (second extension) would be 3120 and their queue-agent-id would be 4120. That way I can assign a different dial-plan for 4120 that doesn't include voicemail (or if it does, it's the queue's voicemail rather than the individual agent's voicemail). Hope that helps. Rob Schall wrote:> Hello all, > > I think Lee has given me a head start, but I'm still running in a circle > (at least i'm in the lead). > > The problem is with my queues. The phones go to their own voicemail > after 5 rings. > That's about the same time I allow the phone to ring before trying > another phone in the queue. Is there a way to tell asterisk....? > > If this call is coming from a queue, do not follow a normal dial plan > for the phone (don't send to user's voicemail). In stead, once timed out > (t|||60), send to Voicemail(u1000). > > Lee recommended QUEUESTATUS, but that seems to return if anyone is in a > specific queue, and not if the current call came from a queue. I > probably just misunderstand how it all works. :) > > Thanks all! > Rob > > > > ----------------- > I would recommend that you download the following tool and play with it > (if you have a windows box): > > http://www.datatrakpos.com/pos/datatalk/Default.aspx > > Check out the Visual Menu Builder included. There is a Queue widget > included. Try playing around with that and building the project and > inspecting the resulting script that the program generates. > > This should give you a better idea of how to do what you are trying to > do, I think. > > Also, check out the channel variable QUEUESTATUS. See if it's set to > determine whether the call is coming from a queue. I'm not sure if it's > normally blank or has a default value so you may want to check that out > too. > _______________________________________________ > --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 >
Hi Rob, put your call centre stuff in a context that is separate from all other extensions (like internal, long distance, etc) and have it contain it's own, dedicated dial() code. [incoming-to-callcentre] ; Incoming calls to Call Centre arrive in this context ; IVR stuff..... ; .... ; If Q1 selected... exten => 1,1,Goto(5210,1) ; If Q2 selected... exten => 2,1,Goto(5220,1) include => [callcentre] [call-centre] ; All Call Centre dial stuff goes here ; Q1 exten => 5210,n,Queue(Q1) ; Q2 exten => 5220,n,Queue(Q2) ; All CC extensions start with 6 exten => _6XX,1,macro(ccexten,${EXTEN}) [macro-ccexten] ; Special dial stuff for Call Centre only exten => s,1,Dial(EXTEN) ; Handle timeouts, etc here ....... exten => s,n,Voicemail(u1000) regards, Drew Rob Schall wrote:> Hello all, > > I think Lee has given me a head start, but I'm still running in a circle > (at least i'm in the lead). > > The problem is with my queues. The phones go to their own voicemail > after 5 rings. > That's about the same time I allow the phone to ring before trying > another phone in the queue. Is there a way to tell asterisk....? > > If this call is coming from a queue, do not follow a normal dial plan > for the phone (don't send to user's voicemail). In stead, once timed out > (t|||60), send to Voicemail(u1000). >-- Drew Gibson Systems Administrator OANDA Corporation 416-593-6767 x322 www.oanda.com
Rob Schall wrote:> Hello all, > > Lee recommended QUEUESTATUS, but that seems to return if anyone is in a > specific queue, and not if the current call came from a queue. I > probably just misunderstand how it all works. :) > > Thanks all! > Rob >Hi Rob, Remember that I am pretty new to Asterisk myself. ;) I'm not sure how you have setup your queues, but with mine, the caller doesn't go to the agent's voicemail (is it even supposed to?) if the queue times out. If the queue times out for me, it will go to the next line in the dialplan (or to the context specified if you allow them to exit out). So my suggestion was to see if QUEUESTATUS was set when the call kicks out of the queue or into whatever context/extension in question, in a way that could tell you if the call was coming out of a queue. For my dialplans, I dedicate a single context for entering a queue like this snippet from my dialplan: [support_afterhours] exten=>s,1,Answer() exten=>s,2,Set(LAST_MENU_REACHED=support_afterhours) exten=>s,3,Playback(custom/support_reminder) exten=>s,4,Background(custom/support_afterhours) exten=>1,1,Queue(support,t|||60) exten=>1,2,Macro(DialExtenNoVM,112|60|tm) Because this I already know that extension 1,1 is for entering the queue, we can assume that if the call gets to 1,2 then there was a timeout. If the context or extension is not setup so that you can assume a timeout, then I was suggesting that you checkout the QUEUESTATUS variable: From the wiki: http://www.voip-info.org/wiki/view/Asterisk+cmd+Queue "The application sets the following channel variable upon completion: QUEUESTATUS. The status of the call as a text string, one of TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL" I just wasn't sure (haven't tested it) if the QUEUESTATUS var is initially set as a null string if Queue() has not been called yet for that channel. This would allow you to determine if the call was coming out of a queue fairly easily: exten=>s,1,GotoIf($["${QUEUESTATUS}" != ""],?2:3) exten=>s,2,Macro(MyMacroToHandleQueueTimeouts) exten=>s,3,Macro(MyNormalDialplanLogicMacro) Of course, it could be that I completely misunderstood what you are trying to do ;) -- Warm Regards, Lee