I need to collect some statistics about different kinds of calls the agents are receiving.
I’d like my agents to be directed to a designated destination when the queue call is complete, where they can, e.g. enter some information using touch-tone keypad about the call.
Is there some way to do this in a relatively straightforward way?
Alternatively, how can I run a serverside script (i.e. shell script or whatever) when a queue call is completed (perhaps originate a call back to the caller with some channel variable set or something).
I’m just not sure how you get the answering agent’s sip channel in the dialplan? does the queue app set that so that after the Queue() (and before the Hangup) we can do something with the agent?
Also, I’m looking at the (generated) ext-queues and the other thing I don’t know is how I would modify the generated dialplan to get something inserted before calling macro-hangupcall or in macro-hangupcall other than replacing the entire queue dialplan for that queue with a custom destination… Which isn’t the end of the world I guess.
But the main thing is getting the agent’s channel.
The way the queue code is written today this this is not anything you could easily configure into the gui. With some modifications, it would be possible to pass on information that could be pulled up as part of the dial command to the agent such that upon the calling party hanging up from a call, that the call was then vectored to another configurable destination.
This might be something interesting for us to think about putting into the advanced virtual queue module that is being developed that will also add a few advanced capabilities to normal queues. It would be a question of how common this may be and of course would not solve the problem of what that desired destination is you want to direct them to, since you are talking about either custom dialplan or a custom module that creates such surveys where you could send them.
The crux here is today you are talking about something very doable but somewhat custom for the call vectoring part and then what ever you already have in mind for the survey part…
I suppose that via the manager api I could monitor the queue events, collect “agent” information and then at the end use “originate” with some extra variables or something to connect the agent to my “survey” (custom context of some sort - don’t know yet).
If I set a wrap-up time, it should give the system time to call-back the agent with the survey.
you can do that though that may be a lot more complicated since you need to monitor the call. The dialplan work, although currently custom, is more straight forward.
We will very likely add this into the module I referred to as well as the more common request, which is upon an agent hanging up, sending the caller to a new destination automatically.
from what you are asking to do, you want it such that when the caller hangs up, the agent will then be redirected to another destination and the their channel left open, not hung up.
I actually made some changes in the 2.11 code that will be designed to address that if another module is written that sets things up appropriately,
it’s simply some additional options on the dial command used to call queue agents that will allow the call to continue in the dialplan once the caller hangs up. If the agent hangs up, it will not continue and nothing will call them back.