cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Walkthrough Wednesdays

redirect CTI Route Point

125
Views
0
Helpful
0
Comments
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
 
Content for Community-Ad