Summary:ASTERISK-06473: One-touch pause/unpause for agents (big efficiency gain).
Reporter:Matt King, M.A. Oxon. (kebl0155)Labels:
Date Opened:2006-03-04 06:01:47.000-0600Date Closed:2006-03-04 08:33:42.000-0600
Versions:Frequency of
Environment:Attachments:( 0) chan_agent.c

I've installed Asterisk for a very busy call centre, and have migrated them to the Asterisk ACD.  In order to provide the functionality required, I had to patch chan_agent.c

As it's had a huge and positive impact on their performance, I thought I should share this immediately with the community.

My apologies if this is a feature request, rather than a minor bug - for this customer it was critical (i.e. no sale without it!).


The customer didn't want a room full of ringing phones, so I couldn't use AgentCallbackLogin.

Some of their incoming calls require wrap up time, others don't.  I therefore used AgentLogin, and set ackcall=always in the queues.conf file, however the customer was still unhappy as:

1) Agents were bothered by beeps while they were completing their wrap up (due to other callers being presented inappropriately).

2) Agents had to acknowledge every call, even when no wrap up was required.

This was leading to a big drop in efficiency compared to their legacy system, which fed callers automatically to agents unless they were paused (i.e. agents had to specifically request wrap up time during the call).

I decided that agents needed to be able to pause and unpause themselves with the handset.  As '*' is hang up, '#' is transfer (or acknowledge), I've made '0' Pause (during a call) and Unpause (after a call, whilst paused).

I wanted to do this with features.conf, but dynamic features are not supported within agent channels (or so it seems), so I had to patch chan_agent.c (attached - from version 1.2.4) to call PauseQueueMember and UnpauseQueueMember.  For best results use the attached patch with ackcall=no and short wrapup times.

My edits are preceded with a //MATT comment.

Comments:By: Matt King, M.A. Oxon. (kebl0155) 2006-03-04 06:16:05.000-0600

Sorry for the dupe! My original HTTP Request timed out...