We are using JTAPI to implement predictive dialing with the CallCenterCall.connectPredictive method. To monitor events, we are adding a CallListener directly to the remote Call.
However, we are encountering the following issues:
Sample Code
Below is a sample of the code we are using:
When the target is "busy," the callInvalid event occurs in an extremely short timeframe, leading to missed events in some cases.
Additionally, we tested attaching the CallListener to an extension and a VDN, but this did not resolve the issue.
Expectations:
However, we are encountering the following issues:
- When the target of the predictive call is "busy," the callInvalid event occurs very quickly.
- We suspect the Call.addCallListener(callListener) registration is pending at the time it is invoked.
- We confirmed that the connectPredictive method internally executes CSTA's MakePredictiveCall, followed by MonitorCall.If events occur in between these two operations, some events appear to be dropped.
Sample Code
Below is a sample of the code we are using:
Code:
Provider provider = getProvider(); Call call = provider.createCall(); call.addCallListener(callListener); // Listener registration seems to be in a pending state Address paramAddress = provider.getAddress(acdId); CallCenterCall ccc = (CallCenterCall) call; ccc.connectPredictive( null, paramAddress, dialNum, Connection.CONNECTED, maxRings, CallCenterCall.ANSWERING_TREATMENT_NONE, CallCenterCall.ENDPOINT_HUMAN_INTERVENTION ); // connectPredictive internally runs CSTAMakePredictiveCall → MonitorCall
Additionally, we tested attaching the CallListener to an extension and a VDN, but this did not resolve the issue.
Expectations:
- What are the best practices or recommended solutions for dealing with this issue?
- Are there suggested ways to prevent event drops and improve monitoring when using predictive dialing?