cnrg.itx.signal
Class DesktopSignaling

java.lang.Object
  |
  +--cnrg.itx.signal.DesktopSignaling

public class DesktopSignaling
extends java.lang.Object

The primary Signaling Object that allows the application to access all telephony services.


Inner Class Summary
 class DesktopSignaling.Result
          Inner Class containing the result of a Dial Sequence.
 
Constructor Summary
DesktopSignaling(SignalingObserver so)
          Constructor for DesktopSignaling for applications that run without a Directory Service - i.e.
DesktopSignaling(SignalingObserver so, int port)
          Constructor for DesktopSignaling for applications that run without a Directory Service - i.e.
DesktopSignaling(SignalingObserver so, java.lang.String uid, int port)
          Constructor for DesktopSignaling for applications that run without a Directory Service - i.e.
DesktopSignaling(SignalingObserver so, java.lang.String uid, java.lang.String pass)
          Constructor for a DesktopSignaling component for an application with no specified description and config file.
DesktopSignaling(SignalingObserver so, java.lang.String uid, java.lang.String pass, java.lang.String desc, java.lang.String config)
          Constructor for DesktopSignaling with an app description and config file for Directory Service
DesktopSignaling(SignalingObserver so, java.lang.String uid, java.lang.String pass, java.lang.String desc, java.lang.String config, boolean ifSIP)
          Constructor for DesktopSignaling as above with a boolean stating if this uses the SIP protocol
 
Method Summary
 SignalConnection Dial(Location peerLoc)
          Returns a SignalConnection containing the data connection object to be used to transferring sound data.
 SignalConnection Dial(Location peerLoc, Channel cInput, Channel cOutput)
          Returns a SignalConnection containing the data connection object to be used to transferring sound data.
 SignalConnection Dial(Location peerLoc, Channel cInput, Channel cOutput, SignalConnectionObserver sco)
          Returns a SignalConnection containing the data connection object to be used to transferring sound data.
 SignalConnection Dial(Location peerLoc, SignalConnectionObserver sco)
          Returns a SignalConnection containing the data connection object to be used to transferring sound data.
 SignalConnection Dial(java.lang.String userid)
          Dials a peer application and returns a SignalConnection containing the connection object to use for communication.
 SignalConnection Dial(java.lang.String userid, Channel cInput, Channel cOutput)
          Returns a SignalConnection containing the connection object to use for communication.
 SignalConnection Dial(java.lang.String userid, Location peerLoc)
          Returns a SignalConnection containing the data connection object to be used to transferring sound data.
 SignalConnection Dial(java.lang.String userid, Location destAdd, Channel cInput, Channel cOutput)
          This is the primary Location-based, blocking, Dial method.
 SignalConnection Dial(java.lang.String userid, Location userLoc, Channel cInput, Channel cOutput, SignalConnectionObserver sco)
          Returns a SignalConnection containing the connection object to use for communication.
 SignalConnection Dial(java.lang.String userid, Location userLoc, SignalConnectionObserver sco)
          Returns a SignalConnection containing the connection object to use for communication.
 DirectoryService getDirectory()
          This method allows application to get a handle to a ready-to-use Directory Service.
 LocationList getLocationList(java.lang.String userid)
          This method allows an application to get a list of possible locations for a given user.
 java.lang.String getName()
          Returns the name of the computer on which we are running
 int getPort()
          This method returns the port on which the SignalingServer is listening
 int getTimeout()
          This method returns the timeout value currently being used for socket connections by Signaling.
 void Hangup(SignalConnection sc)
          Hangs up a given SignalConnection being used for a call.
 boolean isAlive(SignalConnection sc)
          This method queries a peer application to check if it is still running.
 void logout()
          This method unregisters the Signaling Component with Directory Services (if myDirS is not null) and kills the server thread.
 void sendDTMF(java.lang.String s, SignalConnection sc)
          This method sends a DTMF tone, as a string, to the destination on a given SignalConnection
 void setTimeout(int t)
          This method allows the application to set the timeout value to use for socket connections.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesktopSignaling

public DesktopSignaling(SignalingObserver so,
                        java.lang.String uid,
                        java.lang.String pass)
                 throws DirectoryServiceException
Constructor for a DesktopSignaling component for an application with no specified description and config file.
Parameters:
so - the SignalingObserver handle for the Application
uid - the UserID of the user
pass - the password of the user
Throws:
DirectoryServiceException -  
See Also:
DirectoryServiceException

DesktopSignaling

public DesktopSignaling(SignalingObserver so,
                        java.lang.String uid,
                        java.lang.String pass,
                        java.lang.String desc,
                        java.lang.String config)
                 throws DirectoryServiceException
Constructor for DesktopSignaling with an app description and config file for Directory Service
Parameters:
so - the SignalingObserver handle for the Application
uid - the UserID of the user
pass - the password of the user
desc - the String representing the type of application instantiating this component
config - is the name of the configuration file to use for Directory Service
Throws:
DirectoryServiceException -  
See Also:
DirectoryServiceException

DesktopSignaling

public DesktopSignaling(SignalingObserver so,
                        java.lang.String uid,
                        java.lang.String pass,
                        java.lang.String desc,
                        java.lang.String config,
                        boolean ifSIP)
                 throws DirectoryServiceException
Constructor for DesktopSignaling as above with a boolean stating if this uses the SIP protocol
Parameters:
so - the SignalingObserver handle for the Application
uid - the UserID of the user
pass - the password of the user
desc - the String representing the type of application instantiating this component
config - is the name of the configuration file to use for Directory Service
ifSIP - true if DesktopSignaling uses SIP; false otherwise
Throws:
DirectoryServiceException -  
See Also:
DirectoryServiceException

DesktopSignaling

public DesktopSignaling(SignalingObserver so)
Constructor for DesktopSignaling for applications that run without a Directory Service - i.e. they don't register themselves nor do they do directory lookups. This version of the constructor listens on a free port selected by the Java library.
Parameters:
so - - SignalingObserver that will handle SigEvents

DesktopSignaling

public DesktopSignaling(SignalingObserver so,
                        int port)
Constructor for DesktopSignaling for applications that run without a Directory Service - i.e. they don't register themselves nor do they do directory lookups. This version listens on a specified port.
Parameters:
this - - SignalingObserver that will handle SigEvents
port - - the port on which the server should listen. (If 0, the server will listen on any free port)

DesktopSignaling

public DesktopSignaling(SignalingObserver so,
                        java.lang.String uid,
                        int port)
Constructor for DesktopSignaling for applications that run without a Directory Service - i.e. they don't register themselves nor do they do directory lookups. This version listens on a specified port and specifies a the name of the user.
Parameters:
this - - SignalingObserver that will handle SigEvents
uid - - String representing the identity of the client.
port - - the port on which the server should listen. (If 0, the server will listen on any free port)
Method Detail

Dial

public SignalConnection Dial(java.lang.String userid)
                      throws DataException,
                             DesktopSignalingException,
                             DirectoryServiceException
Dials a peer application and returns a SignalConnection containing the connection object to use for communication. This dial is blocking. It automatically tries all locations for the given user and returns the first established connection.
Parameters:
userid - the String representing the email address or phone number or userID to call
Returns:
a SignalConnection object for data transfer
Throws:
DesktopSignalingException -  
DataException -  
DirectoryServiceException -  
See Also:
SignalConnection, DataException, DesktopSignalingException, DirectoryServiceException

Dial

public SignalConnection Dial(java.lang.String userid,
                             Channel cInput,
                             Channel cOutput)
                      throws DataException,
                             DesktopSignalingException,
                             DirectoryServiceException
Returns a SignalConnection containing the connection object to use for communication. This dial is blocking. It automatically tries all locations for the given user and returns the first established connection. The application provides the input and output channels to use for the call.
Parameters:
userid - the String representing the email address or phone number or userID to call
cInput - Input Channel to add to result
cOutput - Output Channel to add to result
Returns:
a SignalConnection object for data transfer
Throws:
DesktopSignalingException -  
DataException -  
DirectoryServiceException -  
See Also:
SignalConnection, DataException, DesktopSignalingException, DirectoryServiceException

Dial

public SignalConnection Dial(java.lang.String userid,
                             Location userLoc,
                             SignalConnectionObserver sco)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the connection object to use for communication. This dial is non-blocking and requires the application to implement the SignalConnectionObserver interface. The method returns immediately with a SignalConnection. The SignalConnection can then be used to control the call (eg. startCall, abortCall etc.)
Parameters:
userid - the String representing the email address or phone number or userID to call
userLoc - the Location object that needs to be dialed.
sco - the SignalConnectionObserver object that is used by the application to control the dial process
Returns:
a SignalConnection object for the call.
Throws:
DesktopSignalingException -  
DataException -  
See Also:
SignalConnectionObserver, SignalConnection, DataException, DesktopSignalingException

Dial

public SignalConnection Dial(java.lang.String userid,
                             Location userLoc,
                             Channel cInput,
                             Channel cOutput,
                             SignalConnectionObserver sco)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the connection object to use for communication. This dial is non-blocking and requires the application to implement the SignalConnectionObserver interface. This method allows the app to specify the input and output channels to use for data exchange. The method returns immediately with a SignalConnection. The SignalConnection can then be used to control the call (eg. startCall, abortCall etc.)
Parameters:
userid - the String representing the email address or phone number or userID to call
userLoc - the Location object that needs to be dialed
cInput - the input channel to use for data exchange
cOutput - the output channel to use for data exchange
sco - the SignalConnectionObserver object that is used by the application to control the dial process
Returns:
a SignalConnection object for the call.
Throws:
DesktopSignalingException -  
DataException -  
See Also:
SignalConnectionObserver, SignalConnection, DataException, DesktopSignalingException

Dial

public SignalConnection Dial(Location peerLoc)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is blocking and returns to the user only when the invite has received a reply from the peer, or if we timeout. The default name of our peer application is "anonymous server", and default Channels are used for data communication (mic, speakers, network)
Parameters:
peerLoc - - the Location of our peer
Throws:
DesktopSignalingException - is thrown when
DataException - is thrown when default audio connection could not be set up for some reason

Dial

public SignalConnection Dial(Location peerLoc,
                             Channel cInput,
                             Channel cOutput)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is blocking and returns to the user only when the invite has received a reply from the peer, or if we timeout. The default name of our peer application is "anonymous server".
Parameters:
peerLoc - - the Location of our peer
cInput - - Input channel to be used for data communications
cOuput - - output channel to be used for data communications
Throws:
DesktopSignalingException - is thrown when

Dial

public SignalConnection Dial(java.lang.String userid,
                             Location peerLoc)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is blocking and returns to the user only when the invite has received a reply from the peer, or if we timeout. Default channels are used for data communication (mic, speakers, and network)
Parameters:
userid - - name for server app, our peer
peerLoc - - the Location of our peer
Throws:
DesktopSignalingException - is thrown when
DataException - is thrown when the default audio connection could not be set up for some reason

Dial

public SignalConnection Dial(java.lang.String userid,
                             Location destAdd,
                             Channel cInput,
                             Channel cOutput)
                      throws DataException,
                             DesktopSignalingException
This is the primary Location-based, blocking, Dial method. Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is blocking and returns to the user only when the invite has received a reply from the peer, or if we timeout.
Parameters:
userid - - name for server app, our peer
destAdd - - the Location of our peer
cInput - - Input channel to be used for data communications
cOuput - - output channel to be used for data communications
Throws:
DesktopSignalingException - is thrown when
DataException - is thrown when

Dial

public SignalConnection Dial(Location peerLoc,
                             SignalConnectionObserver sco)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is non-blocking and requires the application to implement the SignalConnectionObserver interface. This method returns immediately with a SignalConnection. The SignalConnection can then be used to control the call (e.g. startCall, abortCall, etc.) Default channels are used for data communication (mic, speakers, and network). Default userid of "anonymous server" is used.
Parameters:
peerLoc - - the Location of our peer
sco - the SignalConnectionObserver object that is used by the application to control the dial process
Returns:
a SignalConnection object for the call.
Throws:
DesktopSignalingException - is thrown when?
DataException - is thrown when the default audio connection could not be set up for some reason.

Dial

public SignalConnection Dial(Location peerLoc,
                             Channel cInput,
                             Channel cOutput,
                             SignalConnectionObserver sco)
                      throws DataException,
                             DesktopSignalingException
Returns a SignalConnection containing the data connection object to be used to transferring sound data. This dial is non-blocking and requires the application to implement the SignalConnectionObserver interface. This method returns immediately with a SignalConnection. The SignalConnection can then be used to control the call (e.g. startCall, abortCall, etc.) Default userid of "anonymous server" is used.
Parameters:
peerLoc - - the Location of our peer
cInput - - Input channel to be used for data communications
cOutput - - Output channel to be used for data communications
sco - the SignalConnectionObserver object that is used by the application to control the dial process
Returns:
a SignalConnection object for the call.
Throws:
DesktopSignalingException - is thrown when?
DataException - is thrown when the default audio connection could not be set up for some reason.

Hangup

public void Hangup(SignalConnection sc)
            throws ConnectException
Hangs up a given SignalConnection being used for a call.
Parameters:
sc - the SignalConnection to hangup
Returns:
void
Throws:
ConnectException -  

sendDTMF

public void sendDTMF(java.lang.String s,
                     SignalConnection sc)
              throws ConnectException
This method sends a DTMF tone, as a string, to the destination on a given SignalConnection
Parameters:
s - is the string representation of the DTMF tone.
sc - is the SignalConnection currently in use with the peer application.
Returns:
void
Throws:
ConnectException -  

isAlive

public boolean isAlive(SignalConnection sc)
                throws ConnectException
This method queries a peer application to check if it is still running. If the peer application does not respond then the data connection between them is closed and removed.
Parameters:
sc - is the SignalConnection currently in use with the peer application.
Returns:
TRUE if the application is still running, FALSE otherwise
Throws:
ConnectException -  

getDirectory

public DirectoryService getDirectory()
This method allows application to get a handle to a ready-to-use Directory Service. The application needs to know the Directory Service API.
Parameters:
None. -  
Returns:
A handle to a DirectoryService Object

getLocationList

public LocationList getLocationList(java.lang.String userid)
                             throws DirectoryServiceException
This method allows an application to get a list of possible locations for a given user. This should be used in conjuntion with the non-blocking dial to call specific locations.
Parameters:
userid - is the String representation of a user.
Returns:
A LocationList for the given userid.
Throws:
DirectoryServiceException -  

setTimeout

public void setTimeout(int t)
This method allows the application to set the timeout value to use for socket connections.
Parameters:
t - is the timeout in milliseconds to be used for Sockets.
Returns:
void

getTimeout

public int getTimeout()
This method returns the timeout value currently being used for socket connections by Signaling.
Parameters:
None -  
Returns:
the integer value of the timeout

getPort

public int getPort()
This method returns the port on which the SignalingServer is listening
Parameters:
None -  
Returns:
the integer value of port on which we are listening

getName

public java.lang.String getName()
Returns the name of the computer on which we are running
Parameters:
None -  
Returns:
the string value of the the IP address of the computer on which we are running

logout

public void logout()
This method unregisters the Signaling Component with Directory Services (if myDirS is not null) and kills the server thread.
Parameters:
None. -  
Returns:
void