com.cisco.jtapi.extensions
Interface CiscoRemoteTerminal

All Superinterfaces:
CiscoObjectContainer, CiscoTerminal, javax.telephony.Terminal

public interface CiscoRemoteTerminal
extends CiscoTerminal

Introduction

CiscoRemoteTerminal is a new interface that is being exposed to applications, it extends the interface of CiscoTerminal. A CiscoRemoteTerminal is a special kind of CiscoTerminal that allows applications to monitor remote devices such as PSTN, PBX, Mobiles phones, etc. A CiscoRemoteTerminal shall have an enterprise number associated to it, along with remote destinations. The max number of remote destinations can be configured for a single CiscoRemoteTerminal depends on its owner user's max remote destinations configuration (from 1 to 10, with a default max of 4) on the CUCM Admin user page. If there are multiple remote destinations (RD), only one of them can be set as the active remote destination (Active RD). Each Remote Destination Number must be unique within the CUCM cluster. Like CiscoTerminal, a CiscoRemoteTerminal endpoint is observable and controllable in a third-party manner. A remote device's remote destination is exposed through the CiscoRemoteDestinationInfo interface of the associated CiscoRemoteTerminal.

NOTE: Only "CTIRD" (CTI Remote Device) and "CUCSF (Cisco Unified Client Services Framework) device in Extend mode" appear as CiscoRemoteTerminal through JTAPI.

To monitor and control a particular CiscoRemoteTerminal, an application first adds an observer that implements the CiscoTerminalObserver interface using the Terminal.addObserver method. Applications can observe/control the call connected at the remote destination by adding callobserver on the address/terminal of associated CiscoRemoteTerminal.

For Incoming call to CiscoRemoteTerminal, JTAPI events sent to applications is similar to other CTI controlled Cisco Terminals. If an active remote destination is set for a CiscoRemoteTerminal, an incoming call only rings at the active remote destination; if not set, all remote destinations can ring, and any of these remote destinations will be able to answer the call. Only after a remote destination answers the call, the call will be connected to the CiscoRemoteTerminal. For Outgoing DVO (Dial via Office) call from CiscoRemoteTerminal, the behavior is different than an usual outgoing call from other Cisco Terminals. It requires an active remote destination to be set on the CiscoRemoteTerminal that the outgoing call will be made from. To place DVO outbound call, application use the same Call.connect() interface as usual. Only after the active remote destination answers the call, the call will then be offered to the actual called party.

See Also:
CiscoTerminal

Field Summary
static int EXTEND_MEDIA_REGISTRATION
          This registration type applies to "Cisco Unified Client Services Framework" device/terminal that is registered in Extend mode, which as a result is represented as a CiscoRemoteTerminal.
static int NO_EXTEND_MEDIA_REGISTRATION
          This registration type applies to non-"Cisco Unified Client Services Framework" device/terminal that is static registered and is represented as a CiscoRemoteTerminal, such as a "CTI Remote Device".
 
Fields inherited from interface com.cisco.jtapi.extensions.CiscoTerminal
APPLICATION, ASCII_ENCODING, DEVICESTATE_ACTIVE, DEVICESTATE_ALERTING, DEVICESTATE_HELD, DEVICESTATE_IDLE, DEVICESTATE_UNKNOWN, DEVICESTATE_WHISPER, DEVICETYPE_12S, DEVICETYPE_12SP, DEVICETYPE_14_BUTTON_SIDECAR, DEVICETYPE_30SPP, DEVICETYPE_7915_12_BUTTON_SIDECAR, DEVICETYPE_7915_24_BUTTON_SIDECAR, DEVICETYPE_7916_12_BUTTON_SIDECAR, DEVICETYPE_7916_24_BUTTON_SIDECAR, DEVICETYPE_7920, DEVICETYPE_7931, DEVICETYPE_9951, DEVICETYPE_ANALOG_PHONE, DEVICETYPE_ATA_186, DEVICETYPE_CISCO_6901, DEVICETYPE_CISCO_6911, DEVICETYPE_CISCO_6921, DEVICETYPE_CISCO_6941, DEVICETYPE_CISCO_6945, DEVICETYPE_CISCO_6961, DEVICETYPE_CISCO_7902, DEVICETYPE_CISCO_7906, DEVICETYPE_CISCO_7911, DEVICETYPE_CISCO_7912, DEVICETYPE_CISCO_7925, DEVICETYPE_CISCO_7926, DEVICETYPE_CISCO_7936, DEVICETYPE_CISCO_7937, DEVICETYPE_CISCO_7941, DEVICETYPE_CISCO_7941G_GE, DEVICETYPE_CISCO_7942, DEVICETYPE_CISCO_7945, DEVICETYPE_CISCO_7961, DEVICETYPE_CISCO_7961G_GE, DEVICETYPE_CISCO_7962, DEVICETYPE_CISCO_7965, DEVICETYPE_CISCO_7970, DEVICETYPE_CISCO_7971, DEVICETYPE_CISCO_7975, DEVICETYPE_CISCO_7989, DEVICETYPE_CISCO_8941, DEVICETYPE_CISCO_8945, DEVICETYPE_CISCO_8961, DEVICETYPE_CISCO_9971, DEVICETYPE_CISCO_ATA_187, DEVICETYPE_CISCO_CIUS, DEVICETYPE_CISCO_CIUS_SP, DEVICETYPE_CISCO_IP_PHONE_7905, DEVICETYPE_CISCO_SOFTPHONE_SE_M, DEVICETYPE_CISCO_UNIFIED_COMMUNICATIONS_FOR_RTX, DEVICETYPE_CISCO_UNIFIED_COMMUNICATOR, DEVICETYPE_CISCO_UNIFIED_MOBILE_COMMUNICATOR, DEVICETYPE_CKEM_36_BUTTON, DEVICETYPE_CLIENT_SERVICES_FRAMEWORK, DEVICETYPE_CP7921, DEVICETYPE_CTI_PORT, DEVICETYPE_CTI_REMOTE_DEVICE, DEVICETYPE_CTI_ROUTE_POINT, DEVICETYPE_DEVICE_PILOT, DEVICETYPE_IP_CONFERENCE_PHONE, DEVICETYPE_ISDN_BRI_PHONE, DEVICETYPE_TELECASTER_BID, DEVICETYPE_TELECASTER_BUSINESS, DEVICETYPE_TELECASTER_MGR, DEVICETYPE_UNKNOWN, DEVICETYPE_VGC_PHONE, DND_OPTION_CALL_REJECT, DND_OPTION_NONE, DND_OPTION_RINGER_OFF, IN_SERVICE, IP_ADDRESSING_MODE_IPV4, IP_ADDRESSING_MODE_IPV4_V6, IP_ADDRESSING_MODE_IPV6, IP_ADDRESSING_MODE_UNKNOWN, IP_ADDRESSING_MODE_UNKNOWN_ANATRED, NATIVE_LOGIN, NO_LOGIN, NO_ROLLOVER, NOT_APPLICABLE, OUT_OF_SERVICE, PHONE_USER, ROLLOVER_ANY_DN, ROLLOVER_SAME_DN, UCS2UNICODE_ENCODING, UNKNOWN_ENCODING, VISITOR_LOGIN
 
Method Summary
 void addRemoteDestination(java.lang.String remoteDestinationName, java.lang.String remoteDestinationNumber, boolean isActiveRD)
          This API will add a new remote destination to the CiscoRemoteTerminal.
 CiscoRemoteDestinationInfo[] getActiveRemoteDestinations()
          This API will return an array CiscoRemoteDestinationInfo representing all active remote destinations of the CiscoRemoteTerminal, or null if none.
 CiscoRemoteDestinationInfo[] getAllRemoteDestinations()
          This API will return an array of CiscoRemoteDestinationInfo representing all remote destinations of the CiscoRemoteTerminal, or null if none.
 int getRegistrationType()
          This API will return the registration type with which this terminal has been registered in.
 boolean isMyAppLastToSetActiveRD()
          This API will return true if this application is the last application to set active remote destination for the CiscoRemoteTerminal; return false otherwise.
 boolean isRegisteredByThisApp()
          This API will return true if this application issued a successful registration request to register this terminal in Extend mode.
 void removeAllRemoteDestinations()
          This API will remove all associated remote destinations from the CiscoRemoteTerminal.
 void removeRemoteDestination(java.lang.String remoteDestinationNumber)
          This API will remove a remote destination from the CiscoRemoteTerminal based on the remote destination number.
 void setActiveRemoteDestination(java.lang.String remoteDestinationNumber, boolean isActiveRD)
          This API will set/unset an active remote destination of the CiscoRemoteTerminal based on the remote destination number.
 void updateRemoteDestination(java.lang.String remoteDestinationNumber, java.lang.String remoteDestinationName, java.lang.String newRemoteDestinationNumber, boolean isActiveRD)
          This API will update a remote destination of the CiscoRemoteTerminal based on the remote destination number.
 void updateRemoteDestinationName(java.lang.String remoteDestinationNumber, java.lang.String remoteDestinationName)
          This API will update the name of a remote destination of the CiscoRemoteTerminal based on the remote destination number.
 void updateRemoteDestinationNumber(java.lang.String remoteDestinationNumber, java.lang.String newRemoteDestinationNumber)
          This API will update the number of a remote destination of the CiscoRemoteTerminal based on the remote destination number.
 
Methods inherited from interface com.cisco.jtapi.extensions.CiscoTerminal
canConsultCallRollOver, canDirectTransferAcrossLines, canDirectTransferOnSameLine, canJoinAcrossLines, canJoinOnSameLine, canOutBoundCallRollOver, createSnapshot, directedPickup, getAltScript, getDeviceState, getDNDOption, getDNDStatus, getEMLoginUsername, getFilter, getIPAddressingMode, getIPV4Address, getIPV6Address, getLocale, getLoginType, getProtocol, getRegistrationState, getRollOverConfig, getRTPInputProperties, getRTPOutputProperties, getState, getSupportedEncoding, getType, getTypeName, groupPickup, isBuiltInBridgeEnabled, isRegistered, isRestricted, otherPickup, pickup, register, sendData, sendData, setDNDStatus, setFilter, unPark, unregister
 
Methods inherited from interface javax.telephony.Terminal
addCallObserver, addObserver, getAddresses, getCallObservers, getCapabilities, getName, getObservers, getProvider, getTerminalCapabilities, getTerminalConnections, removeCallObserver, removeObserver
 
Methods inherited from interface com.cisco.jtapi.extensions.CiscoObjectContainer
getObject, setObject
 

Field Detail

EXTEND_MEDIA_REGISTRATION

static final int EXTEND_MEDIA_REGISTRATION
This registration type applies to "Cisco Unified Client Services Framework" device/terminal that is registered in Extend mode, which as a result is represented as a CiscoRemoteTerminal.

Since:
9.0.1
See Also:
Constant Field Values

NO_EXTEND_MEDIA_REGISTRATION

static final int NO_EXTEND_MEDIA_REGISTRATION
This registration type applies to non-"Cisco Unified Client Services Framework" device/terminal that is static registered and is represented as a CiscoRemoteTerminal, such as a "CTI Remote Device".

Since:
9.0.1
See Also:
Constant Field Values
Method Detail

getAllRemoteDestinations

CiscoRemoteDestinationInfo[] getAllRemoteDestinations()
                                                      throws javax.telephony.InvalidStateException
This API will return an array of CiscoRemoteDestinationInfo representing all remote destinations of the CiscoRemoteTerminal, or null if none. Note that CiscoProvider must be in IN_SERVICE state.

Returns:
CiscoRemoteDestinationInfo[]
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
Since:
9.0.1

getActiveRemoteDestinations

CiscoRemoteDestinationInfo[] getActiveRemoteDestinations()
                                                         throws javax.telephony.InvalidStateException
This API will return an array CiscoRemoteDestinationInfo representing all active remote destinations of the CiscoRemoteTerminal, or null if none. Note that CiscoProvider must be in IN_SERVICE state.

Returns:
CiscoRemoteDestinationInfo[]
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
Since:
9.0.1

setActiveRemoteDestination

void setActiveRemoteDestination(java.lang.String remoteDestinationNumber,
                                boolean isActiveRD)
                                throws javax.telephony.InvalidStateException,
                                       javax.telephony.InvalidArgumentException
This API will set/unset an active remote destination of the CiscoRemoteTerminal based on the remote destination number. Note that the Remote Destination Number must be of a valid associated remote destination. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationNumber -
isActiveRD -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

addRemoteDestination

void addRemoteDestination(java.lang.String remoteDestinationName,
                          java.lang.String remoteDestinationNumber,
                          boolean isActiveRD)
                          throws javax.telephony.InvalidStateException,
                                 javax.telephony.InvalidArgumentException
This API will add a new remote destination to the CiscoRemoteTerminal. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationName -
remoteDestinationNumber -
isActiveRD -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

removeRemoteDestination

void removeRemoteDestination(java.lang.String remoteDestinationNumber)
                             throws javax.telephony.InvalidStateException,
                                    javax.telephony.InvalidArgumentException
This API will remove a remote destination from the CiscoRemoteTerminal based on the remote destination number. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationNumber -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

removeAllRemoteDestinations

void removeAllRemoteDestinations()
                                 throws javax.telephony.InvalidStateException
This API will remove all associated remote destinations from the CiscoRemoteTerminal. Note that CiscoProvider must be in IN_SERVICE state.

Throws:
javax.telephony.InvalidStateException - If Provider is not in service
Since:
9.0.1

updateRemoteDestinationName

void updateRemoteDestinationName(java.lang.String remoteDestinationNumber,
                                 java.lang.String remoteDestinationName)
                                 throws javax.telephony.InvalidStateException,
                                        javax.telephony.InvalidArgumentException
This API will update the name of a remote destination of the CiscoRemoteTerminal based on the remote destination number. Note that the Remote Destination Number must be of a valid associated remote destination. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationNumber -
remoteDestinationName -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

updateRemoteDestinationNumber

void updateRemoteDestinationNumber(java.lang.String remoteDestinationNumber,
                                   java.lang.String newRemoteDestinationNumber)
                                   throws javax.telephony.InvalidStateException,
                                          javax.telephony.InvalidArgumentException
This API will update the number of a remote destination of the CiscoRemoteTerminal based on the remote destination number. Note that the Remote Destination Number must be of a valid associated remote destination. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationNumber -
newRemoteDestinationNumber -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

updateRemoteDestination

void updateRemoteDestination(java.lang.String remoteDestinationNumber,
                             java.lang.String remoteDestinationName,
                             java.lang.String newRemoteDestinationNumber,
                             boolean isActiveRD)
                             throws javax.telephony.InvalidStateException,
                                    javax.telephony.InvalidArgumentException
This API will update a remote destination of the CiscoRemoteTerminal based on the remote destination number. It can update any or all of its remote destination name, remote destination number, and isActiveRD at the same time. Note that the Remote Destination Number must be of a valid associated remote destination. Note that CiscoProvider must be in IN_SERVICE state.

Parameters:
remoteDestinationNumber -
remoteDestinationName -
newRemoteDestinationNumber -
isActiveRD -
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
javax.telephony.InvalidArgumentException - If the parameter is null
Since:
9.0.1

isRegisteredByThisApp

boolean isRegisteredByThisApp()
This API will return true if this application issued a successful registration request to register this terminal in Extend mode. It will remain as true until this application unregisters the terminal from Extend mode.

Returns:
boolean
Since:
9.0.1

getRegistrationType

int getRegistrationType()
This API will return the registration type with which this terminal has been registered in. The registration type returned will be:

isMyAppLastToSetActiveRD

boolean isMyAppLastToSetActiveRD()
                                 throws javax.telephony.InvalidStateException
This API will return true if this application is the last application to set active remote destination for the CiscoRemoteTerminal; return false otherwise. Note that CiscoProvider must be IN_SERVICE state.

Returns:
boolean
Throws:
javax.telephony.InvalidStateException - If Provider is not in service
Since:
9.0.1