I am trying to use the agent transfer feature part of Queue. I have everything set up right in features.conf and have used this before in different set ups, but could not get it to work for the queue.
I wondered if it had something to do with the fact that my queue endpoints are local channels rather than direct devices (which is a common practice, even according to Asterisk documentation). When I swapped a Local channel that rang the end device to just the end device, then the transfer feature works as expected.
I don’t believe DTMF filtering would be the issue here. I added a FRAME_TRACE on DTMF frames on the actual caller channel. Furthermore, when pressing the transfer code on the agent phone, I can hear the DTMF come through very clearly on the customer phone (in the working scenario, Asterisk removes the DTMF so you hear a little blip, but not a clear tone pass through). The frame trace also confirms the customer channel can “see” the DTMF frames come through.
Queue is in-between the customer channel and the agent, and if the DTMF is getting to the other end, why is Queue failing to pick this up and intercept it? Judging by the how clear the DTMF is coming through, the “transfer” part is not even active on a local channel endpoint. Is this intentional behavior, and is there a way to fix this? Changing the endpoint in queues.conf with no changes to the dialplan gets transfer to work, but direct-dialing end devices is not going to work for me.
Ensure that the /n dial flag is actually in queues.conf, just like with Dial(), or local optimization won’t be prevented.