Hi,
I came across your project, and it is really interesting. I also got a link saying similar issue, maybe it's you or others:
[login to view URL]
Based on my experience, this is because of internal bug of asterisk with app-queue.c and redirect command. I agree that when you use redirect AMI to 'tear" the channel and put somewhere else, this will affect the normal "cleaning up" process of app-queue, thus resulting in non-proper idle time reset for the agent.
Common method will be modifying the app-queue.c source file, and compile it again. Although this might give the fix for this problem, there is one big caveat about this approach: your system should never be updated/upgraded, since the change will be lost immediately.
With my expertise, here is my simple solution: instead of using redirect command, we will try to "inject" agent channel and send DTMF keytone that will trigger a blink transfer to the ivr. You can think of this as same as when the agent manually presses the DTMF to make a blink transfer. As blink-transfer supported in app-queue.c, this will ensure proper reset of idle time for agent.
Since direct access is not allowed, it may need to setup a whole similar system here for testing. Therefore, please allow me 5 days including testing.
I have a good feeling that my method will fix your current problem, and is the best approach.
Feel free to read my reviews.
Await your early reply.
Best regards,
Bao