/*
* Created on Sep 11, 2003
*
*/
package javax.jcat;
import javax.csapi.cc.jcc.InvalidStateException;
import javax.csapi.cc.jcc.MethodNotSupportedException;
import javax.csapi.cc.jcc.PrivilegeViolationException;
import javax.csapi.cc.jcc.ResourceUnavailableException;
/**
A JcatTerminalConnection object maintains a state that reflects the relationship between a JcatTerminal and a JcatConnection. A JcatTerminalConnection object state is distinct from the JcatConnection object states. The JcatConnection object states describe the relationship between an entire JcatAddress endpoint and a JcatCall, whereas the JcatTerminalConnection state describes the relationship between one of the JcatTerminal objects at the endpoint JcatAddress on the JcatCall with respect to its JcatConnection. Different JcatTerminals on a JcatCall, which are associated with the same, JcatConnection may be in different states. Furthermore, the state of the JcatTerminalConnection has a dependency and specific relationship to the state of its JcatConnection.
* <P>...
*/
public interface JcatTerminalConnection {
// don't know values yet
public static final int IDLE = 1;
public static final int RINGING = 2;
public static final int DROPPED = 4;
public static final int BRIDGED = 8;
public static final int TALKING = 16;
public static final int INUSE = 32;
public static final int HELD = 64;
void answer();
JcatConnection getConnection();
int getState();
JcatTerminal getTerminal();
void hold()
throws InvalidStateException,
MethodNotSupportedException,
PrivilegeViolationException,
ResourceUnavailableException;
void join()
throws InvalidStateException,
MethodNotSupportedException,
PrivilegeViolationException,
ResourceUnavailableException;
void leave()
throws InvalidStateException,
MethodNotSupportedException,
PrivilegeViolationException,
ResourceUnavailableException;
void unhold()
throws InvalidStateException,
MethodNotSupportedException,
PrivilegeViolationException,
ResourceUnavailableException;
}