This document was generated from CDN thread
Created by: Gionata Navarra on 20-04-2010 08:18:20 AM
I open a new thread linked with "configuring CTI port" thread.
Trying to realize a multyPartyCall application I'm using a CTI Route Point to make multiple call to several DN, following suggestions you gave me:
- Launch X number of calls via the CTI RP
- As each call becomes connected, Redirect the call to the CTI port
- Answer the call on the CTI port and hold/add-to-conference
- When the conference is over, drop the primary call at the CTI port
The problem is when I redirect the call to the cti port, because I obtain:
CCNException not handled: com.cisco.cti.client.CCNException: redirect failure
It looks like redirect is not supported by route point.
Here my code:
*************************************************************************
try {
ciscoRoutePoint = (CiscoRouteTerminal) provider.getTerminal("CTIRP");
} catch (Exception e) {
throw new ServiceException("...", null);
}
CiscoMediaCapability[] capabilities = new CiscoMediaCapability[3];
capabilities[0] = new CiscoG711MediaCapability();
capabilities[1] = new CiscoG723MediaCapability();
capabilities[2] = new CiscoG729MediaCapability();
try{
ciscoRoutePoint.register(capabilities, CiscoRouteTerminal.NO_MEDIA_REGISTRATION);
} catch (Exception e) {
// TODO: handle exception
}
CiscoCall call = (CiscoCall) provider.createCall();
Address calling = provider.getAddress(callParticipants.get(0)); //my route point DN
String callee = callParticipants.get(1); //first party number
MyObserver obs = new MyObserver(this, callSessionId, pbx, null);
call.addObserver(obs);
calling.addObserver(obs);
calling.addCallObserver(obs);
provider.getAddress(callParticipants.get(1)).addObserver(obs);
provider.getAddress(callParticipants.get(1)).addCallObserver(obs);
provider.getAddress(callParticipants.get(2)).addObserver(obs); // second party to which redirect
provider.getAddress(callParticipants.get(2)).addCallObserver(obs);
Thread.sleep(500);
call.connect(calling.getTerminals()[0],calling,callee);
Connection[] conns = call.getConnections();
CiscoConnection conn = (CiscoConnection) conns[0];
conn.redirect("3001"); //this is my second party
************************************************************************
3001 is a registered number on CUCM.
This is a list of scenarios I've tried with relative exceptions:
CtiRoutePoint calls first party A;
first party A answers the call;
redirect CRP connection to second party B
exception: com.cisco.jtapi.PlatformExceptionImpl: CCNException not handled: com.cisco.cti.client.CCNException: redirect failure
The same if I try to redirect first party A:
CtiRoutePoint calls first party A;
first party A answers the call;
redirect A connection to second party B.
exception: com.cisco.jtapi.PlatformExceptionImpl: CCNException not handled: com.cisco.cti.client.CCNException: redirect failure
Redirect runs well only if working with registered number instead of a CtiRP or in this scenario:
CtiRoutePoint calls first party A;
first party A ringing;
redirect CRP connection to second party B
but in this case it looks like a call forwarding and it's not what I need.
Isn't it possible that Cti Route Point doesn't support redirect method?
Thank you
Gionata Navarra