ā06-29-2015 04:06 AM
Hi,
We need to get Client IP address and Client port number from CTIOS server for only specific agents to use in a web application.
Our CTIOS version is 8.0.3 and ICM version is 8.5.4.
We used monitoring mode and a filter includes RTPStart and RTPStop events and an AgentID we want to observe like below:
private void ProcessOnConnectionWithConnectionPending(Arguments args) {
const string methodName = "ProcessOnConnectionWithConnectionPending";
m_tracer.Trace(Logger.TRACE_MASK_EVT_REQ_HIGH, methodName, "Entering method");
// Create a monitor mode connection that filters on AgentStateEvent and
// QueryAgentStateEvent.
Arguments setMsgFilterArgs = new Arguments();
string filterString = string.Format("MessageID = {0}, {1}, {2}, {3} ; AGENTID = 3024", (int)EventID.eAgentStateEvent, (int)EventID.eQueryAgentStateConf, (int)EventID.eRTPStartedEvent, (int)EventID.eRTPStoppedEvent);
setMsgFilterArgs.SetValue(Enum_CtiOs.CTIOS_FILTER, filterString);
setMsgFilterArgs.SetValue(Enum_CtiOs.CTIOS_MONITORSESSIONSNAPSHOTMODE, 1);
if (null != m_ctiosSession)
{
m_ctiosSession.SetMessageFilter(setMsgFilterArgs);
m_state = CTIObjectState.Connected;
}
else
{
// Irrecoverable programming error
string msg = string.Format("ERROR: Null session reference!");
m_tracer.Trace(Logger.TRACE_MASK_WARNING, methodName, msg);
}
}
But, we got the following lines, although we are able to get the RTPStart and RTPStop events without using any filter.
CtiOsSession(34948909).CCtiOsSession::OnEvent, No CTIOS Objects are capable of processing Event( eRTPStartedEvent ) CtiOsSession(34948909).CCtiOsSession::OnEvent, No CTIOS Objects are capable of processing Event( eRTPStoppedEvent )
How can we get Client IP address and Client port number while filtering AgentIDs?
ā07-03-2015 03:50 AM
The Error message āNo CTIOS Objects are capable of processing Event( eRTPStartedEvent / eRTPStopEvent ) ā comes whenever the CTIOS target object with respect to agent , call and skill objects comes as NULL.
Client reports this error with CIL Error code E_CTIOS_TARGET_ OBJECT_ NOT_FOUND ( -109 ). You can locate the description within the java cil API documentation or CTIOS developer guide ( Link shared in the end ).
So in your case also you need to verify whether you are getting a valid target objects .
Now regarding the IP address and Port info of the client, you can get these values from the arguments array which comes with RTPStart and Stop events only.
Here are one reference screenshot for you for client port. More details you can get from the CTIOS developer guide shared in the end . please refer it for complete details.
Hope it helps
Regards
Hemant
ā07-05-2015 11:13 PM
Hi Hemant,
Thank you for your detailed answer. We are already able to get events contains IP and port info while filtering only events (RTPStart and RTPStop). The problem is when we add AgentIDs to the filter (so have RTP events +AgentIDs in the filter), we can't get any event. Do you know another way to get RTP events while filtering AgentIDs?
ā07-06-2015 01:15 AM
With monitor mode application , if you are trying to perform agent and call control , then it is not supported.
But If you want a monitor mode application to receive notification of the agentid of the call that was answered by an agent mode application, for UCCE you may be able to use the RTP Start event which can contain the
agentid.
On CTIOS side, we will unpack all the parameters for the RTPStart and Stop events which also includes the agentID .
I think adding AgentID separately with RTP event is not required.
As per the parameter list for RTPStart/Stop events, i can see AgentID/instrument as optional fields.
Have you tried using those events without adding them in the filters ?
ā07-06-2015 03:52 AM
We have a project with a 3rd party, they make some analysis on our call center calls for only some specific agents of our company. The production CTI server that we have provides data for too many agents, so we should filter the CTI data for only those specific AgentIDs for security purpose and also in terms of the performance of the 3rd party application. But at the same time, client IP address and port number are needed for the 3rd party application. Thats's why we are looking for such a filter. If anyone knows a way to achive what we need, i will be glad.
Thanks.
ā07-16-2015 04:30 AM
OnCallRTPStartedEvent is part of ISilentMonitorEvents interface, and your code looks like twisting of IAgentEvents-related filter.
Have you added listeners for ISilentMonitorEvents or IGenericEvents interfaces?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide