on 01-24-2014 01:54 AM
In the documentation, it says this value on the Agent object will be 0, 1 or 2:
CTIOS_INCOMINGOROUTGOING indicates the direction of the call. The defined values are
0 = the direction of the call is unknown
1 = the call is an incoming call and the agent may enter wrapup data
2 = the call is an outgoing call and the agent may not enter wrapup data
This value may be obtained using the GetValueInt method on the Agent object.
(p4-54, Cisco CTI OS Release 7.0(0), July 2005)
However, I am seeing values like: 21327 in my logs.
Is this a bad cast in the Arguments.toString() method? Are there times when this value should be considered invalid and not tested?
Thanks,
Chris
I had similar problems on a 7.2 Monitor mode app. What I did was monitor the call events and if the Dialed Number was the same as the agents extension then it is inbound if the Dialing Number is the agents extension the call is outbound. I found the Incoming and Outgoing values to be useless.
Thanks, Shannon.
I've added this method to my event sink object. Turns out that the remote ID changes places, depending on the event (e.g., AnsweringDeviceID, CallingDeviceID, etc.). Wish there was a constant key such as "RemoteDeviceID" but this allows me just to pass in the individual keys as needed.
Also - I hope this works within OnAgentStateChange (e.g., that CTIOS_ANSWERINGDEVICEID survivies the life of the call, not just until OnCallEstablished...)
/**
* Provides a way to see if the value of the passed device key in the args applies to the
* current agent's instrument number, thereby telling the programmer that the agent's side of
* the call segment is the one to which the action applies.
*
* The power of the Cisco CTI stream is that you can see all events, everywhere. It's also
* the curse.
*
* @param curArgs
* @param deviceKey
* @return boolean
*/
private boolean compareDevice( Arguments curArgs, int deviceKey )
{
String specifiedDevice = curArgs.GetValueString( deviceKey );
if( myDeviceConstant == null )
try {
myDeviceConstant = m_appFrame.myCTIData.getConstant("agentExtension") ;
if( myDeviceConstant == null )
throw new IllegalArgumentException( "Can't get agent instrument for event filter." );
} catch( Throwable e ) {
return false;
}
if( (specifiedDevice != null && specifiedDevice.equals(myDeviceConstant) )
|| specifiedDevice == null )
return true;
else
return false;
}
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: