Re: CallControlCall.transfer(CallControlCall) not working

Paul Yago <[email protected]> Fri, 24 Mar 2006 16:27:56 -0800
Newsgroups gmane.comp.java.sun.jtapi
Message-ID <[email protected]>
Jörg, you're the king! 

Thanks

 

________________________________

From: Discussion list for Java Telephony API [mailto:[email protected]] On Behalf Of Jörg Wiesmann
Sent: Tuesday, March 21, 2006 12:12 AM
To: [email protected]
Subject: Re: [JTAPI] CallControlCall.transfer(CallControlCall) not working

 

if you just want to transfer a call, you may try this:

    public void transferCall(CallControlConnection connectionMaster, String numberToTransferTo) {

        if (observedAddress.getConnections() != null && observedAddress.getConnections()[0].getState() == Connection.CONNECTED) {
            CiscoCall callMaster = (CiscoCall) observedAddress.getConnections()[0].getCall();
            CiscoCall callCreateNew;
            try {
                callCreateNew = (CiscoCall) provider.createCall();
                try {
                    ((CallControlTerminalConnection) observedAddress.getTerminals()[0].getTerminalConnections()[0]).hold();
                    ((CiscoConnection) observedAddress.getConnections()[0]).redirect(numberToTransferTo, CiscoConnection.REDIRECT_NORMAL,
                            CiscoConnection.ADDRESS_SEARCH_SPACE);
                    // callCreateNew.transfer(callMaster);
                } catch (Exception e) {
                    TerminalConnection terminalNewCreated = observedAddress.getTerminals()[0].getTerminalConnections()[0];
                    if (callMaster.getConferenceController() == null) {

                        callMaster.setConferenceController(terminalNewCreated);
                        callCreateNew.setTransferEnable(true);
                    }
                    callCreateNew.consult(terminalNewCreated, numberToTransferTo);
                    callMaster.transfer(callCreateNew);
                }
            } catch (Exception e) {
                Logger.getLogger(this.getClass()).warn("Transfer failed created " + e);
            }
        } else {
            Logger.getLogger(this.getClass()).info("Connection must be established to transfer a call");
        }
    }

hope this helps
greets Jörg Wiesmann

Paul Yago wrote: 

Hello, does anyone have any ideas why this fails:

 

I'm using Cisco's implementation of jtapi with their 4.0.3 release. Jtapi 1.2.

The original call is coming in through a CTI port extension. 

8001 is the extension of a SCCP phone.

 

I'm attempting the following, where call2 is an existing call.

 

CallControlCall consultCall = (CallControlCall)jtapiProvider.createCall();

consultCall.consult(tc, "8001");

 

Thread.sleep(5000); // calling sleep to give the called party time to answer.

 

consultCall.transfer(call2);

 

 

I keep getting the following during the transfer() call.

com.cisco.jtapi.InvalidStateExceptionImpl: Did not meet pre-conditions.

 

 

However the following pre-conditions are all met:

 

//                    Check for preconditions

//                    Let tc1 be the transfer controller on this Call

//                    Let tc2 be the transfer controller on otherCall

//                    this != otherCall

//                    (this.getProvider()).getState() == Provider.IN_SERVICE

//                    this.getState() == Call.ACTIVE

//                    otherCall.getState() == Call.ACTIVE

//                    tc1.getCallControlState() == CallControlTerminalConnection.TALKING or CallControlTerminalConnection.HELD

//                    tc2.getCallControlState() == CallControlTerminalConnection.TALKING or CallControlTerminalConnection.HELD

=========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff JTAPI-INTEREST". For general help, send email to [email protected] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff JTAPI-INTEREST". For general help, send email to [email protected] and include in the body of the message "help". 

 

=========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff JTAPI-INTEREST". For general help, send email to [email protected] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff JTAPI-INTEREST".  For general help, send email to
[email protected] and include in the body of the message "help".