[asterisk-users] Hitting # to Transfer out of a Queue

Douglas Garstang dgarstang at oneeighty.com
Tue Jul 18 11:58:38 MST 2006


> -----Original Message-----
> From: Douglas Garstang 
> Sent: Tuesday, July 18, 2006 12:30 PM
> To: 'Asterisk Users Mailing List - Non-Commercial Discussion'
> Subject: RE: [asterisk-users] Hitting # to Transfer out of a Queue
> 
> 
> > -----Original Message-----
> > From: Patrick [mailto:asterisk-list at puzzled.xs4all.nl]
> > Sent: Tuesday, July 18, 2006 12:20 PM
> > To: Asterisk Users Mailing List - Non-Commercial Discussion
> > Subject: RE: [asterisk-users] Hitting # to Transfer out of a Queue
> > 
> > 
> > On Tue, 2006-07-18 at 10:29 -0600, Douglas Garstang wrote:
> > [snip]
> > > exten => oe_ccare,1,                NoOp(*** Incoming call 
> > from ${CALLERID} to queue oe_ccare)
> > > exten => oe_ccare,n,                Set(TIMEOUT(response)=5)
> > > exten => oe_ccare,n,                
> > GotoIfTime(8:00-17:00|mon-fri|*|*?one_queue_acd,oe_ccare-open,1)
> > > exten => oe_ccare,n,                Goto(oe_ccare-shut,1)
> > > exten => oe_ccare-open,1,           Answer
> > > exten => oe_ccare-open,n,           
> > Set(__TRANSFER_CONTEXT=one_start)
> > > exten => oe_ccare-open,n,           NoOp(${__TRANSFER_CONTEXT})
> > > exten => oe_ccare-open,n(queue1),   Queue(oe_custcare||||30) 
> > 
> > Is this a literal copy of your dialplan? If so I was not 
> > aware you could
> > put spaces between priorities and actions. Have you tried 
> > removing them:
> > exten => foo,1,NoOP(spaces are evil, mostly)
> 
> Patrick, yes, this is a literal portion. I have no reason to 
> believe that spsaces between the priority, and the command 
> cause problems, so I haven't tried that yet. Just trying to 
> make the horrible assembler-like Asterisk dialplan language 
> more readable.
> 
> I just tried this with a very simple dialplan example that 
> didn't involve queues.
> 
> exten => 4001,1,Set(__TRANSFER_CONTEXT=footest)
> exten => 4001,2,Dial(SIP/2944093,20,tr)
> 
> [footest]
> exten => 1234,1,Answer
> exten => 1234,2,Wait,1
> exten => 1234,3,Playback(blue-eyed-polar-bear)
> 
> I dial 4001, and answer the call at 2944093. I then hit #1, 
> and asterisk plays 'pbx-transfer' followed by dial tone. I 
> put in 1234, and extension 1234 in context footest is called. 
> Works fine.
> 
> I'm starting to wonder if this is a bug of some sort, and 
> TRANSFER_CONTEXT cannot be used with queues. Has anyone 
> actually tried it?
> 
> exten => oe_ccare,1,                NoOp(*** Incoming call 
> from ${CALLERID} to queue oe_ccare)
> exten => oe_ccare,n,                Set(TIMEOUT(response)=5)
> exten => oe_ccare,n,                
> GotoIfTime(8:00-17:00|mon-fri|*|*?one_queue_acd,oe_ccare-open,1)
> exten => oe_ccare,n,                Goto(oe_ccare-shut,1)
> exten => oe_ccare-open,1,           Answer
> exten => oe_ccare-open,n,           Set(__TRANSFER_CONTEXT=one_start)
> exten => oe_ccare-open,n,           NoOp(${__TRANSFER_CONTEXT})
> exten => oe_ccare-open,n(queue1),   Queue(oe_custcare||||30)  
>              
> ... more stuff here
> 
> and we also have the context where agent callbacks are. I 
> even tried putting the TRANSFER_CONTEXT where the agent is called.
> 
> [one_callback]
> ;
> ; Agent callbacks. Used by the AgentCallBackLogin app to dial agents.
> ;
> exten => 80014054,1,                NoOp(Dialling Customer Care Spare)
> exten => 80014054,n,                Set(__TRANSFER_CONTEXT=one_start)
> exten => 80014054,n,                Dial(SIP/80014054)
> 
> The one_start context should match any number dialled, as it 
> has _X. as a pattern match. However, as I said, as soon as I 
> enter a digit, asterisk plays pbx-invalid.

Further to this, I've added some debugging statements...

exten => oe_ccare,1,                NoOp(*** Incoming call from ${CALLERID} to queue oe_ccare)
exten => oe_ccare,n,                Set(TIMEOUT(response)=5)
exten => oe_ccare,n,                GotoIfTime(8:00-17:00|mon-fri|*|*?one_queue_acd,oe_ccare-open,1)
exten => oe_ccare,n,                Goto(oe_ccare-shut,1)
exten => oe_ccare-open,1,           Answer
exten => oe_ccare-open,n,           Set(__TRANSFER_CONTEXT=one_start)
exten => oe_ccare-open,n,           NoOp(BEFORE Q ${TRANSFER_CONTEXT})
exten => oe_ccare-open,n(queue1),   Queue(oe_custcare||||30)
exten => oe_ccare-open,n,           NoOp(AFTER Q ${TRANSFER_CONTEXT})

The variable TRANSFER_CONTEXT is not modified by the Queue command. It remains unchanged. I also put debugging where we dial the agent...

exten => 80014054,1,                NoOp(BEFORE DIAL AGENT ${TRANSFER_CONTEXT})
exten => 80014054,n,                Dial(SIP/80014054)

The variable is still unchanged before dialling the agent. HOWEVER, the asterisk console still logs this when I try and do a transfer. It looks like the DIAL command is IGNORING the TRANSFER_CONTEXT variable when called from a queue.

Jul 18 11:51:48 VERBOSE[30143] logger.c:     -- Unable to find extension '1' in context ''







More information about the asterisk-users mailing list