I am using AddQueueMember to add a local channel to a queue. My (simplified) dial plan is

[AddMember]
exten => 789,1,AddQueueMember(SomeQ|Local/[EMAIL PROTECTED])

[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
_______________________________________________
--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

Reply via email to