I am using Asterisk 13. Sorry for the long post but i tried to explain the whole context.
Here is the scenario: I have Queue where an Agent is joined. A Customer calls the Queue and is connected to the Agent in Call 1. So Customer has channel 1.a and Agent has channel 1.b.
While connected to the queue call Agent makes a call to a Supervisor from phone gets connected in Call 2. So the Agent has channel 2.a and Supervisor has channel 2.b.
Customer channel 1.a <----Queue()----> Agent channel 1.b(Held)
Agent channel 2.a <-----Dial()-----> Supervisor channel 2.b(Active)
Now Agent wants to bridge Customer channel 1.a with Supervisor channel 2.b.
Agent executes AMI Action Bridge https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ManagerAction_Bridge.
Expected both channels of Agent 1.b and 2.a will hangup.
Actual result channel 2.a hangup properly. but channel 1.b hangup from phone but not from asterisk.
Executing cli command “core show channels” shows the channel 1.b in “Up” state. Also it cannot be hangup. trying “channel request hangup 1.b” fails with saying “1.b is not a known channel”.
Executing cli command “queue show” reveals the Agent is “In call and In Use”
Because of all these the Agent does not get any new Queue call until Customer 1.a channel is hungup.
Note: If the Customer was connected through Dial() instead of Queue() the agent end of the channel hangup properly.
Question: How can I use the Queue() and still get Agent released from the Queue call when Bridge action is executed?
Is this a bug? Is there any parameter that i need to change to get the expected result?
Please advise. Thanks.