Re: Exception in Transfering a call

"Potluri, Mohan" <[email protected]>
Newsgroups gmane.comp.java.sun.jtapi
Message-ID <6677B3346233B94EBB11C0609351012009F666DF@vtg-um-e2k1.sj21ad.cisco.com>
Use setTransferEnable on the new call that you created using CreateCall.

Call callNew = provider.createCall();
    Connection c[] = ((CallControlCall)
callNew.setTransferEnable(true);



-----Original Message-----
From: Discussion list for Java Telephony API
[mailto:[email protected]] On Behalf Of Kumkum Bagchi
Sent: Tuesday, March 01, 2005 11:56 AM
To: [email protected]
Subject: [JTAPI] Exception in Transfering a call

Hi

I am having problem transfering a call from my JTAPI application.  When
I
try to set callOnTerminal.setTransferEnable(true) , I get the following
exception
com.cisco.jtapi.InvalidStateExceptionImpl: Unable to set transferEnable.
I have checked the pre-condition before invoking this method and find
the
Call in Active state where it should be in IDLE state before I can
invoke
this method.  Here is the code snippet from the callChangedEvent method
-
please let me know where I am going wrong.

//Code
public void callChangedEvent(CallEv[] evlist)
{
for (int i = 0; i < evlist.length; i++)
{
 dbg("CallEv: "+evlist[i]);
 if (evlist[i] instanceof ConnEv)
 {
  ConnEv e=(ConnEv)evlist[i];
  dbg("ConnEv  "+e.getConnection().getAddress());
 }
 else if (evlist[i] instanceof CallEv)
 {
  CallEv e=(CallEv)evlist[i];
  dbg(" CallEv "+e.getCall());
 }
        try
 {
  if (evlist[i] instanceof ConnInProgressEv)
  {
   ConnInProgressEv e=(ConnInProgressEv)evlist[i];
   dbg("callChangedEvent::ConnInProgressEv");
  }
  else if (evlist[i] instanceof CallCtlConnEstablishedEv)
  {
  dbg("callChangedEvent::CallCtlConnEstablishedEv");
   }
   else if (evlist[i] instanceof CiscoTransferEndEv)
   {
    dbg("callChangedEvent::CiscoTransferEndEv");

   }
   else if (evlist[i] instanceof CallInvalidEv)
   {
    dbg("callChangedEvent::ConnInProgressEv");
   }
   else if (evlist[i] instanceof TermConnRingingEv)
   {
    dbg("callChangedEvent::TermConnRingingEv");

    ringingTc = ((TermConnEv)evlist[i]).getTerminalConnection();
    ringingTc.answer();

    dbg("Exiting TermConnRingingEv.ID");

   }
   else if (evlist[i] instanceof TermConnActiveEv)
   {
    dbg("callChangedEvent::TermConnActiveEv");
    talkingTc = ((TermConnEv)evlist[i]).getTerminalConnection();
   }
   else if (evlist[i] instanceof CallCtlTermConnTalkingEv)
   {
    dbg("callChangedEvent::CallCtlTermConnTalkingEv");

    final Address origaddr = provider.getAddress("3596");
    Terminal[] terminals = origaddr.getTerminals();
    final Terminal origterm = terminals[0];

    ((CallControlTerminalConnection) talkingTc).hold();

    callOnTerminal = (CallControlCall)
((TermConnEv)evlist[i]).getCall();

    if (provider.getState()== Provider.IN_SERVICE)
     dbg("Pre-Condition Provider State : Provider.IN_SERVICE" );
    if (callOnTerminal.getState()== Call.IDLE)
     dbg("Pre-Condition Call State : Call.IDLE" );
    if (callOnTerminal.getState()== Call.ACTIVE)
     dbg("Pre-Condition Call State : Call.ACTIVE" );
    if (callOnTerminal.getState()== Call.INVALID)
     dbg("Pre-Condition Call State : Call.INVALID" );

    callOnTerminal.setTransferEnable(true);
    callOnTerminal.setTransferController(talkingTc);

    Call callNew = provider.createCall();
    Connection c[] = ((CallControlCall)
callNew).connect(origterm,origaddr,sDialedDigit);

    if (provider.getState()== Provider.IN_SERVICE)
     dbg("Pre-Condition Provider State : Provider.IN_SERVICE" );
    if (callNew.getState()== Call.IDLE)
     dbg("Pre-Condition callNew State : Call.IDLE" );
    if (callNew.getState()== Call.ACTIVE)
     dbg("Pre-Condition callNew State : Call.ACTIVE" );
    if (callNew.getState()== Call.INVALID)
     dbg("Pre-Condition callNew State : Call.INVALID" );

    try
    {
     ((CallControlCall) callNew).transfer(callOnTerminal);
    }
    catch(Exception e)
    {
     dbg("Exception");
    }

   }
  }
  catch (Exception e)
  {
   println("ERR: Exception (7) "+e); }
 }

========================================================================
===
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".
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.