[Asterisk-Users] Queues and local channels
Julian Lyndon-Smith
asterisk at dotr.com
Thu Jun 15 00:32:15 MST 2006
I am using AddQueueMember to add a local channel to a queue. My
(simplified) dial plan is
[AddMember]
exten => 789,1,AddQueueMember(SomeQ|Local/456 at Agent)
[Queue]
exten => 123,1,Queue(SomeQ|nt|||120)
exten => 123,2,Hangup()
exten => h,1,NoOp(InQ)
[Agent]
exten => 456,1,Dial(SIP/456)
exten => 456,2,Set(SomeVar=SomeValue)
exten => 456,3,Hangup
exten => h,1,NoOp(InAgent)
when a call comes into the Queue, it is passed to the 456 agent. All is
fine and well.
So, what's my problem ? Well, I want to be able to trap the hangup
event, but with data created in the [Agent] context. I noticed that the
hangup in the [agent] context *is* executed, but when the agent picks up
the call :) I suspect that this is because it is the local channel that
is being hung up as the call in the Queue has been connected to the
sip/456 call.
When the agent or caller hangs up, the h extension in [Queue] is
executed. However, I want the data set by the 456,2 extension.
Is there any way of passing variables back up from the local channel to
the other channels ?
I can use db put / get but would rather not ..
Julian
More information about the asterisk-users
mailing list