I have been looking into a way to automatically record UCCX agents without supervisor involvement. One option I am reseaching is to use IPC (Remote Access).
My thinking is to configure CAD to send an IPC message to a server when the agent receives a call. The server would be configured to randomly send an IPC Record Start message to the CAD client to start a recording. CAD would also send an IPC message when the call ends. The server would be configured to send the Record Stop message (If necessary; not sure about that).
I would not want to record many calls during the day, so the server would be configured to only send a record start message only x times a day.
Does anyone know the syntax for the IPC Record Start and Record Stop commands? Also, would the IPC stop command be necessary? I'm not sure if the CAD would keep recording every call if it didn't receive a Record Stop command.
NOTE: Another option I was looking into was to randomly set an enterprise data field to 1 which would be a rule in a record action on CAD. CAD does record when I statically set the value to 1, but I haven't been able to figure out how to get the random value into the script though.
As a thank you, here is a Ruby program that does exactly what you were asking for. It uses both IPC send and receive to accomplish this.
I have no doubt that you could expand on this feature to include, per team statistics, logging, etc.
Install Ruby on your designated IPC Server (this could be your own PC for testing)
Configure CAD Remote Access enable for port 58000
Configure CAD voice action "Answer" to send IPC event to server address and port 58001
Include a User Define variable called "action" with value "call_start"
Include a Data Field variable called "agent_id" with value [AGENT_ID]
Run the ruby program provided on the IPC server
Launch CAD, and start taking calls
Again, thank you for exposing me to this awesome feature!
I would definately go with plan B - sounds much more reliable that messing with random IPC commands....
To get a random number, create yourself an integer (iRandom) for example, and do something like this:
java.lang.Math.random() creates a random number between 0 and 1., *10 makes it a number between 0 and 9.. so you have a 10% chance of getting a 1. Use a smaller or larger multiplier to change the chance of getting a 1 in whichever direction you prefer.
Then, as you suggest, launch the record utility if it matches 1.
Please rate helpful posts...