Cisco Unified JTAPI Extensions

The Cisco Unified JTAPI extension consists of a set of classes and interfaces that expose the additional functionality not readily exposed in JTAPI 1.2 specification but are available in Cisco Unified Communications Manager. Developers can use the extensions to create new applications or modify existing extensions to create new methods.

This chapter describes the extensions (interfaces and classes) that are available for implementation in a Cisco Unified Communications Manager and contains the following sections:

Inherited Methods

Related Documentation

None

CiscoG711MediaCapability

The CiscoG711MediaCapability object specifies the properties for a G.711 encoded RTP stream. Applications that support G.711 media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds.

Related Documentation

CiscoG723MediaCapability

The CiscoG723MediaCapability object specifies the properties for a G.723 encoded RTP stream. Applications that support G.723 media termination use this object to specify their preferred packet size and bit rate when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds and the default bit rate is 6.4k.

Related Documentation

CiscoG729MediaCapability

The CiscoG729MediaCapability object specifies the properties for a G.729 encoded RTP stream. Applications that support G.729 media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds.

Related Documentation

CiscoGSMMediaCapability

The CiscoGSMMediaCapability object specifies the properties for a GSM encoded RTP stream. Applications that support GSM media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is thirty milliseconds.

Related Documentation

None

CiscoJtapiVersion

This class gives the version information of the installed Cisco JTAPI. Programs can get the version number using the accessor methods. Cisco Jtapi Version is in a.b(x.y) format where "a" indicates the major version, "b" indicates the minor version, "x" indicates the revision number, and "y" indicates the build number .

Class History

Cisco Unified Communications Manager Release

Description

7.1x

Added history table to track changes.

Declaration

public class CiscoJtapiVersion extends java.lang.Object

java.lang.Object

com.cisco.jtapi.extensions.CiscoJtapiVersion

Constructors

public CiscoJtapiVersion() None

Fields

None

Methods

Table 6-11 Methods in CiscoJtapiVersion

Interface

Method

Description

java.lang.String

getBuildDescription()

Returns "release" if it is a release version or debug if it is not a release version.

int

getBuildNumber()

Returns the build number of the version.

int

getExtendedBuildNumber()

Returns the extended build number of the version.

int

getMajorVersion()

Returns the major version number.

int

getMinorVersion()

Returns the minor version number.

int

getRevisionNumber()

Returns the revision number of the version.

public java.lang.String

getVersion()

Returns the version information in a.b(x.y)-z format without a name.

public java.lang.String

toString()

Returns the version information in a.b(x.y)-z format. Overrides toString in class java.lang.Object.

Inherited Methods

Related Documentation

None

CiscoMediaCapability

The CiscoMediaCapability object specifies the properties of a particular media format that an application can support for CiscoMediaTerminals that it registers. Because CiscoMediaCapability is an abstract class, applications may only construct its subclasses directly.

Related Documentation

CiscoRegistrationException

The CiscoMediaTerminal.register method throws this exception when the registration process fails for any reason. For example, registration would fail if the Provider were OUT_OF_SERVICE or if the device were already registered.

Related Documentation

CiscoRTPParams

You can use the CiscoRTPParams class to specify a dynamic RTP address and port number for a media terminal on a per-call basis. Applications can pass this object in setRTPParams() of CiscoMediaTerminal. These parameters are only valid for a particular call.

Class History

Cisco Unified Communications Manager Release

Description

7.1x

Added history table to track changes.

Declaration

public class CiscoRTPParams extends java.lang.Object

java.lang.Object

Constructors

CiscoRTPParams (java.net.InetAddress, rtpAddress, int rtpPort)

Fields

None

Methods

Table 6-16 Methods in CiscoRTPParams

Interface

Method

Description

java.net.InetAddress

getRTPAddress()

Returns the Internet address for the inbound RTP stream of the associated call.

java.lang.String

getRTPAddressHostName()

Returns the IP host name for the inbound RTP stream of the associated call.

byte[]

getRTPByteAddress()

Returns the Internet address in byte format for the inbound RTP stream.

Inherited Methods

Related Documentation

See CiscoTerminal and CiscoMediaTerminal.

CiscoUnregistrationException

The CiscoMediaTerminal.unregister method throws this exception when the unregistration process fails. For example, registration fails if the Provider is OUT_OF_SERVICE or the Terminal is already unregistered.

Related Documentation

See CiscoMediaTerminal.unregister(), Serialized Form.

CiscoWideBandMediaCapability

The CiscoWideBandMediaCapability object specifies the properties for a wide band encoded RTP stream. Applications that support wide band media termination use this object to specify their preferred packet size when registering a CiscoMediaTerminal. The default packet size is ten milliseconds.

CiscoAddrActivatedEv

If an address is controlled and the restriction status changes to active, the system sends the CiscoAddrActivatedEv event to the application. Applications see this event whenever an Address or associated Terminal is in the control list. If any observers exist on the address already, applications see CiscoAddrInServiceEv. If no observers are present, applications can try to add observers, and the address will go in service.

Related Documentation

The CiscoCallCtlConnOfferedEv interface extends the CallCtlConnOfferedEv interface to let applications obtain the IP Address of the calling party Terminal. The IP Address information might not be available for all calling party devices. A return value of 0 (or null) indicates that the information is not available.

Related Documentation

CiscoAddrAddedToTerminalEv

The system sends CiscoAddrAddedToTerminalEv when:

•A user adds a Terminal into the control list that contains a shared line, the system sends this event to the application. If a user has an address in the control list, and you add a new Terminal with the same address in control list, this event gets sent.

•An Extension Mobility (EM) user logs into a Terminal with a profile that contains a shared line, this event notifies that a new Terminal has been added to an already existing address.

•A new shared line gets added to a Terminal in a user control list, the system sends this event to the application.

Related Documentation

CiscoAddrAutoAcceptStatusChangedEv

The system sends CiscoAddrAutoAcceptStatusChangedEv to applications whenever the AutoAccept status for the Address on the Terminal changes. If an Address has multiple Terminals, this event gets sent for the Address AutoAccept status on each individual Terminal.

If return value is AUTOANSWER_OFF, that means AutoAnswer is disabled. If return value is AUTOANSWER_WITHHEADSET, that means AutoAnswer is enabled with HEADSET. If return value is AUTOANSWER_WITHSPEAKERSET, that means AutoAnswer is enabled with SPEAKERSET. If return value is AUTOANSWER_UNKNOWN, that means AutoAnswer status is UNKNOWN.

Pre-Conditions

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

(getState() == IN_SERVICE

Parameters

•term - Terminal at which AutoAnswer is checked

Returns one of the following values:

•CiscoAddress.AUTOANSWER_OFF

•CiscoAddress.AUTOANSWER_WITHHEADSET

•CiscoAddress.AUTOANSWER_WITHSPEAKERSET

•CiscoAddress.AUTOANSWER_UNKNOWN

Throws

javax.telephony.InvalidStateException - The Provider or Address is not"IN_SERVICE".

javax.telephony.PlatformException - If Address is not on Terminal term

javax.telephony.MethodNotSupportedException - If Address is an External Address

javax.telephony.Terminal[]

getInServiceAddrTerminals()

Use this interface to find out which Shared Lines are in service. In Shared Lines, the same Address appears on different Terminals.

Returns: Terminal[]—An array of Terminals on which the Address is in service.

•CiscoAddress.APPLICATION_CONTROLLED_RECORDING—Calls get recorded only when the application initiates recording.

Throws

javax.telephony.InvalidStateException - The Provider or Address is not"IN_SERVICE".

javax.telephony.PlatformException - If Address is not on Terminal term

javax.telephony.MethodNotSupportedException - If Address is an External Address

int

getRegistrationState()

Deprecated.

This method has been replaced by the getState() method. Returns the state of this address can be any of the following constants:

•CiscoAddress.OUT_OF_SERVICE

•CiscoAddress.IN_SERVICE

javax.telephony.Terminal[]

getRestrictedAddrTerminals()

Returns the array of Terminals on which this Address is restricted. In shared lines, few lines on Terminals may be restricted.

Applications cannot see any call events for restricted Addresses. If a restricted Address is involved in a call with any other controlled Terminal, the system creates a Connection for the restricted Address, but there is not any TerminalConnection for the restricted Address.

Returns: Terminal[]—An array of Terminals on which this Address is restricted. If none is restricted, this method returns null.

int

getState()

Returns the state of this address. The state may be any of the following constants:

•CiscoAddress.OUT_OF_SERVICE

•CiscoAddress.IN_SERVICE

int

getType()

Returns the following address constants:

•CiscoAddress.INTERNAL

•CiscoAddress.EXTERNAL

•CiscoAddress.EXTERNAL_UNKNOWN

•CiscoAddress.UNKNOWN

•CiscoAddress.MONITORING_TARGET

boolean

isRestricted(javax.telephony.Terminal terminal)

This method returns true if this Address on Terminal is restricted.; false if not restricted.

This method lets an application enable AutoAccept for this Address on CiscoMediaTerminal and/or CiscoRouteTerminal.

Addresses on CiscoTerminal other than CiscoMediaTerminal or CiscoRouteTerminal will always have AutoAccept on. If the Terminal passed in the parameter is not a CiscoMediaTerminal or CiscoRouteTerminal, this method throws an exception.

For a CiscoMediaTerminal that shares an Address with CiscoTerminal, Cisco recommends enabling AutoAccept on CiscoMediaTerminal.

Pre-Conditions

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

(getState() == IN_SERVICE

Post-Conditions

Enables or Disables auto accept status

Parameters

•autoAcceptStatus - can be either CiscoAddress.AUTOACCEPT_OFF or CiscoAddress.AUTOACCEPT_ON. If autoAcceptStatus is AUTOACCEPT_ON, it will enable AutoAccept for Address on Terminal. If autoAcceptStatus is AUTOACCEPT_OFF, it will disable AutoAccept for Address on Terminal.

•terminal - The Terminal on which AutoAccept will be enabled

Throws

javax.telephony.InvalidStateException - The Provider or Address is not "In_Service".

javax.telephony.PlatformException - The Terminal does not have this Address.

javax.telephony.MethodNotSupportedException - If the Terminal is not CiscoMediaTerminal or CiscoRouteTerminal.

void

setMessageWaiting(java.lang.String destination, boolean enable)

Specifies whether the message-waiting indicator should be activated or deactivated for the Address specified by the destination. If enable is true, message-waiting gets activated if not already activated. If enable is false, message-waiting gets deactivated if not already deactivated.

Use this interface to set the message-waiting indicator along with voice/fax message waiting counts If enable is true, message-waiting gets activated if not already activated. If enable is false, message-waiting gets deactivated if not already deactivated.

Superinterfaces

Declaration

Fields

None

Methods

None

Inherited Methods

From Interface javax.telephony.AddressObserver

addressChangedEvent

Related Documentation

See CiscoAddrInServiceEv, CiscoAddrOutOfServiceEv for more information.

CiscoAddrEv

The CiscoAddrEv interface extends the JTAPI core javax.telephony.events.AddrEv interface and serves as the base interface for all Cisco extended JTAPI Address events. Every Address related event in this package extends this interface, directly or indirectly.

Related Documentation

See javax.telephony.events.AddrEv for more information.

CiscoAddrCreatedEv

CiscoAddrEvFilter provided for applications to set filters for address events. The application can use the following APIs to enable/disable the filters to receive the event notifications on address or to check the value set of the filter. Application can enable the filter, if it wishes to receive the new event (CiscoAddrParkStatusEv), for the rest of the events the filter values are true by default.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1)

Added this event for Park Monitoring and Assisted DPark Support feature.

Fields

None

Methods

Table 6-32 Methods in CiscoAddrEvFilter

Interface

Method

Description

boolean

getCiscoAddrParkStatusEvFilter()

Application can invoke this API to know status of the filter for CiscoAddrParkStatusEv. Default value returned is false.

Void

setCiscoAddrParkStatusEvFilter(Boolean filterValue)

Application can invoke this API to set the status of the filter for CiscoAddrParkStatusEv.

boolean

getCiscoAddrIntercomInfoChangedEvFilter()

Application can invoke this API to know the stutus of the filter for CiscoAddrIntercomInfoChangedEv. Default value is true.

void

setCiscoAddrIntercomInfoChangedEvFilter(boolean filter value)

Application can invoke this API to set the status of the filter for CiscoAddrIntercomInfoChangedEv.

boolean

getCiscoAddrIntercomInfoRestorationFailedEvFilter()

Application can invoke this API to know the status of the filter for CiscoAddrIntercomInfoRestorationFailedEv. Default value is true.

Inherited Methods

Parameters

Value Range

Related Documentation

CiscoAddrInServiceEv

The CiscoAddrInServiceEv indicates that the Address is now IN_SERVICE. With Shared Lines (where the same Address appears on different Terminals), applications may receive multiple CiscoAddressInService events for all the Terminals. Applications can use this interface to find out the Terminal on which the Address (or Shared Line) is going IN_SERVICE.

Related Documentation

CiscoAddrIntercomInfoChangedEv

The system sends the CiscoAddrIntercomInfoChangedEv event to the application whenever the target DN or intercom target label changes for a CiscoIntercomAddress. The system provides this event to all of the application observers that have been added to the CiscoIntercomAddress.

Related Documentation

CiscoAddrIntercomInfoRestorationFailedEv

The system sends the CiscoAddrIntercomInfoRestorationFailedEv event to the application when JTAPI cannot restore the application set intercom target DN or the intercom target label for the CiscoIntercomAddress during failover or fallback. The system provides this event on the application observer for the application that set the intercom target DN or the intercom target label.

Related Documentation

CiscoAddrOutOfServiceEv

The CiscoAddrOutOfServiceEv event notifies applications that an Address has gone OUT_OF_SERVICE. With Shared Lines(where the same Address appears on different Terminals), applications may receive multiple CiscoAddrOutOfServiceEv events for all the Terminals. Applications can use this interface to find out the Terminal on which the Address(or Shared Line) is going OUT_OF_SERVICE.

Related Documentation

CiscoAddrParkStatusEv

When parking a call using the Cisco Unified IP Phone, JTAPI reports park states by using this event. It is provided to all the applications, which have address observers added on the address, which has invoked park. This event gets delivered only when park gets invoked from Cisco Unified IP Phones.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Added interface for Park Monitoring and Assisted DPark feature.

Declaration

public interface CiscoAddrParkStatusEv extends CiscoAddrEv

Fields

Table 6-41 Fields in CiscoAddrParkStatusEv

Interface

Field

Description

static int

PARKED

Park status when the call is parked.

static int

REMINDER

Park status when the park monitoring reversion timer expires.

static int

RETRIEVED

Park status when the parked call is retrieved by the parker or a third party.

static int

FORWARDED

Park status when the parked call is forwarded when the park monitoring forward- no-retrieve timer expires.

static int

ABANDONED

Park status when the parked call is disconnected.

Inherited Fields

None

Methods

Table 6-42 Methods in CiscoAddrParkStatusEv

Interface

Method

Description

int

getParkState()

Returns the current park state of the parked call.

int

getTransactionID()

Returns an id which is unique for a particular parked call. Transaction ID would remain the same in the different park states for the same parked call.

Related Documentation

CiscoAddrRestrictedEv

If an Address is observed and the restriction status is changed to restricted, the system sends this event to the application.

Applications will see this event whenever an Address or an associated Terminal is Restricted from Cisco Unified Communications Manager Administration. For restricted lines, the Address will go OUT_OF_SERVICE and will not come back IN_SERVICE until it is activated again. If an Address is restricted, addCallObserver and addObserver will throw an exception.

For shared lines, if a few shared lines are restricted, and others are not, the system does not throw an exception but the restricted shared lines will not receive any events. If all shared lines are restricted, an exception is thrown when application try adding observers. If an Address gets restricted after observers are added, applications will see CiscoAddrOutOfServiceEv, and when the Address is activated, the Address will go IN_SERVICE.

CiscoCall

In Cisco Unified Communications Manager, every Call object comprises a set of call legs that share a common identifier: the global call handle. Connection objects represent call legs in JTAPI, and the Call object that relates a set of connections contains the global call handle that the underlying call legs share.

The global call handle within a CiscoCall is accessible by using CallManagerID and CallID properties. Taken together, the CallManagerID and CallID form the global call handle that Cisco Unified Communications Manager maintains. Consider this pair of properties as guaranteed to be unique among all ACTIVE Call objects, but when an ACTIVE call becomes INACTIVE, its CallManagerID and CallID may be reused to identify a newly created Call object. Therefore, an INACTIVE Call can have identical CallManagerID and CallID properties to those of a currently ACTIVE Call object.

This method is similar to the CallControlCall.transfer(String address) interface except that it also takes facCode (Forced Authorization Code) and cmcCode (Client Matter Code) if the transfer Address requires these codes to offer the call.

Note In Cisco Unified JTAPI implementation, CallControlCall.getCalledAddress() returns the first called party of the call which is the original called party.

Parameters

•origterm -

•origaddr -

•dialedDigits -

•featurePriority -

Conference Controller

For the conferencing feature to happen, a common participant must belong to all the Calls, as represented TerminalConnection of common participants on controller Terminal. These TerminalConnections are known as the conference controllers. At the most, only one of TerminalConnection on the Calls at controller Terminal would be in CallControlTerminalConnection.TALKING state, and hence, the TerminalConnection on the secondary Call should be in the CallControlTerminalConnection.HELD state. As a result of invokation of this method, all the conference controller TerminalConnection merge into one TerminalConnection.

Applications can set which Terminal would acts as the conference controller when a conference call gets set up by setting up Conference controller TerminalConnection via invoking CallControlCalll.setConferenceController() method. The CalControlCall.getConferenceController() method returns the current conference controller, or null if there is none. If no conference controller is set initially, the implementation chooses a suitable TerminalConnection when the conferencing feature is invoked.

Telephone Call Argument

All participants from the secondary Calls, passed as the argument to this method, move to the Call on which this method was invoked. That is, new Connections and TerminalConnections for the participant in the secondary Calls are created on this Call. The Connections and TerminalConnections on the secondary Calls get removed from the Call, and the Call moves to the Call.INVALID state.

Other Shared Participants

There may exist other Addresses and Terminals that are part of some calls in addition to the designated conference controller. In these instances, those participants that are shared between both Calls are merged into one. That is, the Connections and TerminalConnections on this Calls stay unchanged. The corresponding Connections and TerminalConnections on the secondary Calls get removed from that Call.

javax.telephony.InvalidArgumentException, javax.telephony.InvalidStateException, javax.telephony.InvalidPartyException, javax.telephony.MethodNotSupportedException, javax.telephony.PrivilegeViolationException, javax.telephony.ResourceUnavailableException This method is similar to the CallControlCall.transfer(String address) interface except that it also takes facCode (Forced Authorization Code) and cmcCode (Client Matter Code) if the transfer Address requires these codes to offer the call. If only one of the codes is required, the other code may need to be a null value.

If the user enters no codes, or invalid codes, the call may not be offered and platformException may contain the following error codes:

This overloaded version of this method transfers all participants currently on this Call, with the exception of the transfer controller participant, to another Address. This is often called a "single-step transfer" because the transfer feature places another call and performs the transfer simultaneously. The Address string argument to this method must be valid and complete.

The Transfer Controller

The transfer controller for this version of this method represents the participant on this Call around which the transfer is taking place and who drops off the Call after the transfer has completed. The transfer controller is a TerminalConnection that must be in the CallControlTerminalConnection.TALKING state.

Applications may control which TerminalConnection acts as the transfer controller via the CallControlCall.setTransferController() method. The CallControlCall.getTransferController() method returns the current transfer controller, or null if there is none. If no transfer controller is set, the implementation chooses a suitable TerminalConnection when the transfer feature gets invoked.

When the transfer feature gets invoked, the transfer controller moves into the CallControlTerminalConnection.DROPPED state. If it is the only TerminalConnection associated with its Connection, then its Connection moves into the CallControlConnection.DISCONNECTED state as well.

The New Connection

This method creates and returns a new Connection representing the party to which the Call was transferred. This Connection may be null if the Call has been transferred outside of the Provider domain and can no longer be tracked. This Connection must at least be in the CallControlConnection.IDLE state. The Connection state may have progressed beyond "idle" before this method returns, and should be reflected by an event. This new Connection will progress as any normal destination Connection on a call. Typical scenarios for this Connection are described by the Call.connect() method.

getCurrentCalledAddressPI boolean getCurrentCalledAddressPI() Returns the Presentation Indicator(PI) that is associated with CurrentCalledAddress. If it returns true, the application can display this Address name to the end users. If it returns false, the application should not display this Address name to end users.

getCurrentCalledDisplayNamePI boolean getCurrentCalledDisplayNamePI() Returns the Presentation Indicator(PI) that is associated with getCurredCalledDisplayNamePI. If it returns true, the application can display this DisplayName to the end users. If it returns false, the application should not display this DisplayName to the end users.

getCurrentCallingAddressPI boolean getCurrentCallingAddressPI() Returns the Presentation Indicator(PI) that is associated with getCurrentCallingAddressPI. If it returns true, the application can display this Address name to the end users. If it returns false, the application should not display this Address name to the end users.

getCurrentCallingDisplayNamePI boolean getCurrentCallingDisplayNamePI() Returns the Presentation Indicator(PI) that is associated with getCurrentCalledDisplayNamePI. If it returns true, the application can display this DisplayName to the end users. If it returns false, the application should not display this DisplayName to the end users.

getLastRedirectingAddressPI boolean getLastRedirectingAddressPI() Returns the Presentation Indicator(PI) that is associated with getLastRedirectingAddressPI. If it returns true, the application can display this Address name to the end users. If it returns false, the application should not display this Address name to the end users.

getCalledAddressPI boolean getCalledAddressPI() Returns the Presentation Indicator(PI) that is associated with getCalledAddressPI. If it returns true, the application can display this Address name to the end users If it returns false, the application should not display this Address name to the end users.

getCallingAddressPI boolean getCallingAddressPI() Returns the Presentation Indicator(PI) that is associated with getCallingAddressPI. If it returns true, the application can display this Address name to the end users. If it returns false, the application should not display this Address name to the end users.

getCurrentCalledPartyUnicodeDisplayName java.lang.String getCurrentCalledPartyUnicodeDisplayName() Returns the Unicode display name of the called party in the call. It returns null if the display name is unknown.

getCurrentCalledPartyUnicodeDisplayNamelocale int getCurrentCalledPartyUnicodeDisplayNamelocale() Returns the locale of the current called party Unicode display name. CiscoLocale interface lists the supported locales.

getCurrentCallingPartyUnicodeDisplayName java.lang.String getCurrentCallingPartyUnicodeDisplayName() Returns the Unicode display name of the calling party in the call. It returns null if the display name is unknown.

getCurrentCallingPartyUnicodeDisplayNamelocale int getCurrentCallingPartyUnicodeDisplayNamelocale() Returns the locale of the current called party Unicode display name.

getCurrentCallingPartyInfo CiscoPartyInfo getCurrentCallingPartyInfo() Returns the PartyInfo of the current calling party of the call.

getCurrentCalledPartyInfo CiscoPartyInfo getCurrentCalledPartyInfo() Returns the PartyInfo of the current called party of the call.

If the application is observing the monitor target (agent) Address, the application can use the Terminal connection of the monitor target (agent) to initiate a monitor request. This interface places a call from an originating endpoint to monitor the call at the monitor target.

•PlayToneDirection - - Indicates whether the tone needs to be played to the target, the initiator, or both. This should be one of CiscoCall.PLAYTONE_NOLOCAL_OR_REMOTE, CiscoCall.PLAYTONE_LOCALONLY, CiscoCall.PLAYTONE_REMOTEONLY, or CiscoCall.PLAYTONE_BOTHLOCALANDREMOTE

Throws

javax.telephony.ResourceUnavailableException

javax.telephony.PrivilegeViolationException

javax.telephony.InvalidPartyException

javax.telephony.InvalidArgumentException

javax.telephony.InvalidStateException

javax.telephony.MethodNotSupportedException

Related Documentation

See CallControlCall for more information.

CiscoCallChangedEv

The system delivers the CiscoCallChangedEv event to the call observer for all supported features whenever the Global Call ID (GCID) of the call changes. CiscoCallChangedEv gets delivered when the GCID of the call changes due to path replacement (QSIG_PR) and for other features, including transfer, conference, barge, cbarge, and unpark. In the case of shared lines, multiple CiscoCallChangedEv events get delivered.

The system also delivers this event when two or more calls get merged into one. Transfer, conference, unpark, Barge, and CBarge will trigger this event. Application can invoke CiscoCallEv.getCiscoFeatureReason() to find the feature code that caused this event.

The system reports this event via the CallControlCallObserver interface.

Related Documentation

CiscoCallConsultCancelledEv

This event notifies applications that a cancel operation has been invoked.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

New event for the Swap/Cancel - Transfer/Conference Behavior Change feature.

Superinterfaces

None

Declaration

public interface CiscoCallConsultCancelledEv

Fields

None

Inherited Fields

None

Methods

Table 6-56 Methods in CiscoCallConsultCancelledEv

Interface

Method

Description

CiscoCall

getConsultCall()

Returns the consult call for which consult operation is cancelled. If the consult call does not exist, it returns NULL.

The getCall() API on this call event returns the parent call.

Inherited Methods

None

Related Documentation

None.

CiscoCallCtlConnOfferedEv

The CiscoCallCtlConnOfferedEv interface extends the CallCtlConnOfferedEv interface to let applications obtain the IP Address of the calling party Terminal. The IP Address information might not be available for all calling party devices. A return value of 0 (or null) indicates that the information is not available.

Related Documentation

CiscoCallEv

The CiscoCallEv interface, which extends the JTAPI core javax.telephony.events.CallEv interface, serves as the base interface for all Cisco-extended JTAPI Call events. Every Call-related event in this package extends this interface, directly or indirectly.

Declaration

Fields

This cause indicates that the network could not deliver access information to the remote user as requested.

Static int

CAUSE_BARGE

It indicates the call is a BARGE call.

staticint

CAUSE_BCBPRESENTLYAVAIL

This cause indicates that the user has requested a bearer capability which is implemented by the equipment which generated this cause but which is not available at this time.

static int

CAUSE_BCNAUTHORIZED

This cause indicates that the user has requested a bearer capability which is implemented by the equipment which generated this cause but the user is not authorized to use.

static int

CAUSE_BEARERCAPNIMPL

This cause indicates that the equipment sending this cause does not support the bearer capability requested.

static int

CAUSE_CALLBEINGDELIVERED

This cause indicates that the user has been awarded the incoming call and that the incoming call is being connected to a channel already established to that user for similar calls.

static int

CAUSE_CALLIDINUSE

This cause indicates that the network has received a call suspended request containing a call identity (including the null call identity) which is already in use for a suspended call within the domain of interfaces over which the call might be resumed.

static int

CAUSE_CALLMANAGER_FAILURE

This cause indicates the failure due to CALL Manager Failure.

static int

CAUSE_CALLREJECTED

This cause indicates that the equipment sending this cause does not wish to accept this call.

static int

CAUSE_CALLSPLIT

This cause indicates the call split, it could mean conference or transfer.

static int

CAUSE_CHANTYPENIMPL

This cause indicates that the equipment sending this cause does not support the channel type requested.

static int

CAUSE_CHANUNACCEPTABLE

This cause indicates that the channel most recently identified is not acceptable to the sending entity for use in this call.

static int

CAUSE_CTICCMSIP400BADREQUEST

This cause indicates the call is rejected due to bad request.

static int

CAUSE_CTICCMSIP401UNAUTHORIZED

This cause indicates the request is valid but is not authorized.

static int

CAUSE_CTICCMSIP402PAYMENTREQUIRED

This cause indicates the payment is required for usage.

static int

CAUSE_CTICCMSIP403FORBIDDEN

This cause indicates the server understood the request, but is refusing to fulfill it..

static int

CAUSE_CTICCMSIP404NOTFOUND

This cause indicates the request URI cannot be located by the server.

static int

CAUSE_CTICCMSIP405METHODNOTALLOWED

This cause indicates the method specified in the Request-Line is understood, but not allowed for the address identified by the Request-URI.

static int

CAUSE_CTICCMSIP406NOTACCEPTABLE

This cause indicates the request cannot be proccessed due to requirements in the request cannot be met.

static int

CAUSE_CTICCMSIP407PROXYAUTHENTICATIONREQUIRED

This cause indicates that requset is not authorized and proxy authentication is required for the operation.

static int

CAUSE_CTICCMSIP408REQUESTTIMEOUT

This cause indicates the time out error for the request.

static int

CAUSE_CTICCMSIP410GONE

This cause indicates the requested resource is no longer available at the server and no forwarding address is known.

static int

CAUSE_CTICCMSIP411LENGTHREQUIRED

This cause indicates that an interworking message length is required.

static int

CAUSE_CTICCMSIP413REQUESTENTITYTOOLONG

This cause indicates that the server is refusing to process a request because the request entity-body is larger than the server is willing or able to process.

static int

CAUSE_CTICCMSIP414REQUESTURITOOLONG

This cause indicates that the server is refusing to service the request because the Request-URI is longer than the server is willing to interpret.

static int

CAUSE_CTICCMSIP415UNSUPPORTEDMEDIATYPE

This cause indicates the server is refusing to service the request because the message body of the request indicates the Media Type which is not supported by the server for the requested method.

static int

CAUSE_CTICCMSIP416UNSUPPORTEDURISCHEME

This cause indicates the server cannot process the request because the scheme of the URI in the Request-URI is unknown to the server.

static int

CAUSE_CTICCMSIP420BADEXTENSION

This cause indicates the server did not understand the protocol extension specified in a Proxy-Require or Require header field.

static int

CAUSE_CTICCMSIP421EXTENSTIONREQUIRED

This cause indicates the UAS needs a particular extension to process the request, but this extension is not listed in a Supported header field in the request.

static int

CAUSE_CTICCMSIP423INTERVALTOOBRIEF

This cause indicates that the server is rejecting the request because the expiration time of the resource refreshed by the request is too short.

static int

CAUSE_CTICCMSIP480TEMPORARILYUNAVAILABLE

This cause indicates the callee's end system was contacted successfully but the callee is currently unavailable (for example, is not logged in, logged in but in a state that precludes communication with the callee, or has activated the "do not disturb" feature).

static int

CAUSE_CTICCMSIP481CALLLEGDOESNOTEXIST

This cause indicates the the UAS received a request that does not match any existing dialog or transaction.

static int

CAUSE_CTICCMSIP482LOOPDETECTED

This cause indicates that the server has detected a loop.

static int

CAUSE_CTICCMSIP483TOOMANYHOOPS

This cause indicates the server received a request that contains a Max-Forwards header field with the value zero (or less than actual hops).

static int

CAUSE_CTICCMSIP484ADDRESSINCOMPLETE

This cause indicates that the server received a request with a Request-URI that was incomplete.

static int

CAUSE_CTICCMSIP485AMBIGUOUS

This cause indicates that the Request-URI was ambiguous.

static int

CAUSE_CTICCMSIP486BUSYHERE

This indicates that the callee's end system was contacted successfully, but the callee is currently not willing or able to take additional calls at this end system.

static int

CAUSE_CTICCMSIP487REQUESTTERMINATED

This cause indicates the request was terminated by a BYE or CANCEL request.

static int

CAUSE_CTICCMSIP488NOTACCEPTABLEHERE

This cause indicates the same meaning as 606 (Not Acceptable), but only applies to the specific resource addressed by the Request-URI and the request may succeed elsewhere.

static int

CAUSE_CTICCMSIP491REQUESTPENDING

This cause indicates the request was received by a UAS that had a pending request within the same dialog.

static int

CAUSE_CTICCMSIP493UNDECIPHERABLE

This cause indicates that the request was received by a UAS that contained an encrypted MIME body for which the recipient does not possess or will not provide an appropriate decryption key.

static int

CAUSE_CTICCMSIP500SERVERINTERNALERROR

This cause indicates the server encountered an unexpected condition that prevented it from fulfilling the request.

static int

CAUSE_CTICCMSIP501NOTIMPLEMENTED

This cause indicates the server does not support the functionality required to fulfill the request.

static int

CAUSE_CTICCMSIP502BADGATEWAY

This cause indicates the server, while acting as a gateway or proxy, received an invalid response from the downstream server it accessed in attempting to fulfill the request.

static int

CAUSE_CTICCMSIP503SERVICEUNAVAILABLE

This cause indicates the server is temporarily unable to process the request due to a temporary overloading or maintenance of the server.

static int

CAUSE_CTICCMSIP504SERVERTIMEOUT

This cause indicates the server did not receive a timely response from an external server it accessed in attempting to process the request.

static int

CAUSE_CTICCMSIP505SIPVERSIONNOTSUPPORTED

This cause indicates the server does not support, or refuses to support, the SIP protocol version that was used in the request.

static int

CAUSE_CTICCMSIP513MESSAGETOOLARGE

This cause indicates the server was unable to process the request since the message length exceeded its capabilities.

static int

CAUSE_CTICCMSIP600BUSYEVERYWHERE

This cause indicates the callee's end system was contacted successfully but the callee is busy and does not wish to take the call at this time.

static int

CAUSE_CTICCMSIP603DECLINE

This cause indicates the callee's machine was successfully contacted but the user explicitly does not wish to or cannot participate.

static int

CAUSE_CTICCMSIP604DOESNOTEXISTANYWHERE

This cause indicates the server has authoritative information that the user indicated in the Request-URI does not exist anywhere.

static int

CAUSE_CTICCMSIP606NOTACCEPTABLE

This cause indicates the user's agent was contacted successfully but some aspects of the session description such as the requested media, bandwidth, or addressing style were not acceptable.

static int

CAUSE_CTICONFERENCEFULL

This cause indicates the Conference Call is full and no more participants can be added to it.

static int

CAUSE_CTIDEVICENOTPREEMPTABLE

This cause indicates that the device cannot be preempted.

static int

CAUSE_CTIDROPCONFEREE

This cause indicates the disconnection because the party was dropped from conference.

static int

CAUSE_CTIMANAGER_FAILURE

This cause indicates the failure due to CTI Manager Failure.

static int

CAUSE_CTIPRECEDENCECALLBLOCKED

This cause indicates that there are no predictable circuits or that the called user is busy with a call of equal or higher preventable level.

static int

CAUSE_CTIPRECEDENCELEVELEXCEEDED

This cause indicates that the precedence level of the call has exceeded the authorized level.

static int

CAUSE_CTIPRECEDENCEOUTOFBANDWIDTH

This cause indicates the precedence call has hit low bandwidth and cannot proceed.

static int

CAUSE_CTIPREEMPTFORREUSE

This cause indicates that the call is being preempted and the circuit is reserved for reuse by the preempting exchange.

static int

CAUSE_CTIPREEMPTNOREUSE

This cause indicates the call is being preempted.

static int

CAUSE_DESTINATIONOUTOFORDER

This cause indicates that the destination indicated by the user cannot be reached because the interface to the destination is not functioning correctly.

static int

CAUSE_DESTNUMMISSANDDCNOTSUB

This cause indicates that the specified CUG does not exist.

static int

CAUSE_DPARK

It indicates the call is Directed-Parked call.

static int

CAUSE_DPARK_REMINDER

It indicates the call is Directed Park Reminder call.

static int

CAUSE_DPARK_UNPARK

It indicates that Directed Parked call is now unparked.

static int

CAUSE_EXCHANGEROUTINGERROR

This cause indicates that the exchange couldnt route the call to specified destination.

static int

CAUSE_FAC_CMC

It indicates the FAC(Force Authorization Code) or CMC(Client Matter Code) is needed to route the call.

static int

CAUSE_FACILITYREJECTED

This cause is returned when a supplementary service requested by the user cannot be provided by the network.

static int

CAUSE_IDENTIFIEDCHANDOESNOTEXIST

This cause indicates that the equipment sending this cause has received a request to use a channel not activated on the interface for a call.

static int

CAUSE_IENIMPL

This cause indicates that the equipment sending this cause has received a message which includes information element(s)/parameter(s) not recognized because the information element(s)/parameter name(s) are not defined or are defined but not implemented by the equipment sending the cause.

static int

CAUSE_INBOUNDBLINDTRANSFER

It indicates the call is IN bound Blind Transfer call.

static int

CAUSE_INBOUNDCONFERENCE

It indicates the call is IN bound Conference call.

static int

CAUSE_INBOUNDTRANSFER

It indicates the call is IN bound Transfer call.

static int

CAUSE_INCOMINGCALLBARRED

This cause indicates that the incoming calls for that number is barred.

static int

CAUSE_INCOMPATABLEDDESTINATION

This cause indicates that the equipment sending this cause has received a request to establish a call which has low layer compatibility.

static int

CAUSE_INTERWORKINGUNSPECIFIED

This cause indicates that an interworking call has ended.

static int

CAUSE_INVALIDCALLREFVALUE

This cause indicates that the equipment sending this cause has received a message with a call reference which is not currently in use on the user-network interface.

static int

CAUSE_INVALIDIECONTENTS

This cause indicates that the equipment sending this cause has received and information element which it has implemented; however, one or more of the fields in the information element are coded in such a way which has not been implemented by the equipment sending this cause.

static int

CAUSE_INVALIDMESSAGEUNSPECIFIED

This cause is used to report an invalid message event only when no other cause in the invalid message class applies.

static int

CAUSE_INVALIDNUMBERFORMAT

This cause indicates that the called party cannot be reached because the called party number is not in a valid format or is not complete.

static int

CAUSE_INVALIDTRANSITNETSEL

This cause indicates that a transit network identification was received which is of an incorrect format.

static int

CAUSE_MANDATORYIEMISSING

This cause indicates that the equipment sending this cause has received a message which is missing an information element which must be present in the message before that message can be processed.

static int

CAUSE_MSGNCOMPATABLEWCS

This cause indicates that a message has been received which is incompatible with the call state.

static int

CAUSE_MSGTYPENCOMPATWCS

This cause indicates that the equipment sending this cause has received a message such that the procedures do not indicate that this is a permissible message to receive while in the call state, or a STATUS message was received indicating an incompatible call state.

static int

CAUSE_MSGTYPENIMPL

This cause indicates that the equipment sending this cause has received a message with a message type it does not recognize either because this is a message not defined or defined but not implemented by the equipment sending this cause.

static int

CAUSE_NETOUTOFORDER

This cause indicates that the network is not functioning correctly and that the condition is likely to last a relatively long period of time.

static int

CAUSE_NOANSWERFROMUSER

This cause is used when the called party has been alerted but does not respond with a connect indication within a prescribed period of time.

static int

CAUSE_NOCALLSUSPENDED

This cause indicates that the network has received a call resume request containing a call identity information element which presently does not indicate any suspended call within the domain of interfaces over which calls may be resumed.

static int

CAUSE_NOCIRCAVAIL

This cause indicates that there is no appropriate circuit/channel presently available to handle the call.

static int

CAUSE_NOERROR

This is usually given when there is no error and operation completes successfuly.

static int

CAUSE_NONSELECTEDUSERCLEARING

This cause indicates that the user has not been awarded the incoming call.

static int

CAUSE_NORMALCALLCLEARING

This cause indicates that the call is being cleared because one of the users involved in the call has requested that the call be cleared.

static int

CAUSE_NORMALUNSPECIFIED

This cause is used to report a normal event only when no other cause in the normal class applies.

static int

CAUSE_NOROUTETODDESTINATION

This cause indicates that the called party cannot be reached because the network through which the call has been routed does not serve the destination desired.

static int

CAUSE_NOROUTETOTRANSITNET

This cause indicates that the equipment sending this cause has received a request to route the call through a particular transit network which it does not recognize.

static int

CAUSE_NOUSERRESPONDING

This cause is used when a called party does not respond to a call establishment message with either an alerting or connect indication within the prescribed period of time allocated.

static int

CAUSE_NUMBERCHANGED

This cause is returned to a calling party when the called party number indicated by the calling party is no longer assigned.

static int

CAUSE_ONLYRDIVEARERCAPAVAIL

This cause indicates that the calling party has requested an unrestricted bearer service but the equipment sending this cause only supports the restricted version of the requested bearer capability.

static int

CAUSE_OUTBOUNDCONFERENCE

It indicates the call is OUT bound Conference call.

static int

CAUSE_OUTBOUNDTRANSFER

It indicates the call is OUT bound Transfer call

static int

CAUSE_OUTOFBANDWIDTH

This cause indicates that the call could not proceed because of Low Bandwidth.

static int

CAUSE_PROTOCOLERRORUNSPECIFIED

This cause is used to report a protocol error event only when no other cause in the protocol error class applies.

static int

CAUSE_QSIG_PR

It indicates the QSIG Path Replacement in the call.

static int

CAUSE_QUALOFSERVNAVAIL

This cause is used to report that the requested Quality of Service, as defined in Recommendation X.213.

static int

CAUSE_QUIET_CLEAR

It indicates the Call is cleared as Call Manager has gone down, but media between endpoints remain connected.

static int

CAUSE_RECOVERYONTIMEREXPIRY

This cause indicates that a procedure has been initiated by the expiration of a timer in association with error handling procedures.

static int

CAUSE_REDIRECTED

This cause indicates the call is being redirected to different party.

static int

CAUSE_REQCALLIDHASBEENCLEARED

This cause indicates that the network has received a call resume request containing a call identity information element indicating a suspended call that has in the meantime been cleared while suspended (either by network time-out or by the remote user).

static int

CAUSE_REQCIRCNAVIL

This cause is returned when the circuit or channel indicated by the requesting entity cannot be provided by the other side of the interface.

static int

CAUSE_REQFACILITYNIMPL

This cause indicates that the equipment sending this cause does not support the requested.

static int

CAUSE_REQFACILITYNOTSUBSCRIBED

This cause indicates that the user has requested a supplementary service which is implemented by the equipment which generated this cause but the user is not authorized to use.

static int

CAUSE_RESOURCESNAVAIL

This cause is used to report a resource unavailable event.

static int

CAUSE_RESPONSETOSTATUSENQUIRY

This cause is included in the STATUS message when the reason for generating the STATUS message was the prior receipt of a STATUS INQUIRY.

static int

CAUSE_SERVNOTAVAILUNSPECIFIED

This cause is used to report a service or option not available event only when no other cause in the service or option not available class applies.

static int

CAUSE_SERVOPERATIONVIOLATED

This cause indicates that although the calling party is a member of the CUG for the outgoing CUG call.

static int

CAUSE_SERVOROPTNAVAILORIMPL

This cause is used to report a service or option not implemented event only when no other cause in the service or option not implemented class applies.

static int

CAUSE_SUBSCRIBERABSENT

This cause value is used when a mobile station has logged off.

static int

CAUSE_SUSPCALLBUTNOTTHISONE

This cause indicates that a call resume has been attempted with a call identity which differs from that in use for any presently suspended call(s).

static int

CAUSE_SWITCHINGEQUIPMENTCONGESTION

This cause indicates that the switching equipment generating this cause is experiencing a period of high traffic.

static int

CAUSE_TEMPORARYFAILURE

This cause indicates that the network is not functioning correctly and that the condition is not likely to last a long period of time; e.g., the user may wish to try another call attempt almost immediately.

static int

CAUSE_UNALLOCATEDNUMBER

This cause indicates that the destination requested by the calling user cannot be reached because, it is an invalid number.

static int

CAUSE_USERBUSY

This cause is used to indicate that the called party is unable to accept another call because the user busy condition has been encountered.

Methods

Table 6-60 Methods in CiscoCallEv

Interface

Method

Description

Int

getCiscoCause()

Returns the Cisco Unified Communications Manager cause for this event. To function properly, some applications need to know the reason why an event happened at an endpoint that the application is observing. For example, a Connection may be disconnected because the call was not answered (CAUSE_NOANSWERFROMUSER), or whether the caller it was disconnected because it was rejected (CAUSE_CALLREJECTED). Returns: The Cisco Unified Communications Manager cause for this event

Int

getCiscoFeatureReason()

Returns the Cisco Unified Communications Manager Feature Reason for this event. To function properly, some applications need to know the reason why an event happened. This interface provides the CiscoFeatureReason in JTAPI Call events for current and new features. Existing features, such as transfer, continue to receive the CiscoCause provided by the older interface CiscoCallEv.getCiscoCause(), while this interface will provide REASON_TRANSFER for transfer. Caution: Applications should make sure to handle unrecognized reasons and provide default behavior, because new reasons could be added in the future and this interface may not be backward compatible. The possible values are defined in the CiscoFeatureReason interface. Returns: The Cisco Unified Communications Manager Feature Reason for this event

Related Documentation

CiscoCallID

The CiscoCallID object represents a unique object that is associated with each call. Applications may use the object itself or the integer representation of the object that the intValue() method returns.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1)

Created history table to track changes.

Superinterfaces

CiscoObjectContainer

Declaration

Public interface CiscoCallID extends CiscoObjectContainer

Fields

None

Methods

Table 6-62 Methods in CiscoCallID

Interface

Method

Description

Int

intValue()

Returns an integer representation of this object. Returns: Int An integer representation of this object

CiscoCall

getCall()

Returns the CiscoCall corresponding to this CiscoCallID.

int

getCallManagerID()

Returns the Cisco Unified Communications Manager NodeID of the call associated with this CiscoCallID.

int

getGlobalCallID()

Returns the GlobalCallID of the call associated with this CiscoCallID.

Inherited Methods

From Interface com.cisco.jtapi.extensions.CiscoObjectContainer

getObject,setObject

Related Documentation

None

CiscoMediaCallSecurityIndicator

CiscoMediaCallSecurityIndicator lets you retrieve the security indicator for a call.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Created history table to track changes.

Declaration

public interface CiscoMediaCallSecurityIndicator

Fields

None

Methods

Table 6-63 Methods in CiscoMediaCallSecurityIndicator

Interface

Method

Description

CiscoCallID

getCallID()

Returns the CiscoCallID.

int

getCiscoMediaSecurityIndicator()

Returns the media security indicator, one of the following constants:

CiscoMediaSecurityIndicator.MEDIA_ENCRYPT_USER_NOT_AUTHORIZED

CiscoMediaSecurityIndicator.MEDIA_ENCRYPTED_KEYS_UNAVAILABLE

CiscoMediaSecurityIndicator.MEDIA_NOT_ENCRYPTED

CiscoRTPHandle

getCiscoRTPHandle()

Returns a CiscoRTPHandle object.Applications can get a call reference by using CiscoProvider.getCall. If there is no call observer or there was no call observer when this event was delivered, CiscoProvider.getCall may return null.

Related Documentation

CiscoConferenceChain

This interface provides links to conference chain connections for the conference calls that are linked together in a conference chain. You can obtain this object from CiscoConferenceChainAddedEv and CiscoConferenceChainRemovedEv.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1)

Created history table to track changes.

Declaration

public interface CiscoConferenceChain

Fields

None

Methods

Table 6-66 Methods in CiscoConferenceChain

Interface

Method

Description

javax.telephony.Connection[]

getChainedConferenceConnections()

Returns an array of Connections for Conference Calls that are chained together in a single conference. Applications can use this list to get all the Conference Calls that are linked together. To get the list of Connections for all the Calls that are chained together in the Conference, the provider must have an observer on at least one party in every conference call.

CiscoCall[]

getChainedConferenceCalls()

Returns an array of Calls that are chained together in a single conference. This interface returns only the Calls in the conference chain that are observed in the provider.

Related Documentation

See CiscoConferenceChainAddedEv and CiscoConferenceChainRemovedEv for more information.

CiscoConferenceChainAddedEv

The system sends a CiscoConferenceChainAddedEv event when a conference chain connection gets added to a call. This event gets sent every time a new conference chain connection gets added. This event gets reported via theCallControlCallObserver interface.

Related Documentation

CiscoConferenceChainRemovedEv

The system sends a CiscoConferenceChainRemovedEv event when a conference chain connection gets removed from a call. This event gets sent whenever a conference chain connection gets removed. This event gets reported via theCallControlCallObserver interface.

Methods

Returns the Address that currently acts as the conference controller for this call, the initiating call.

javax.telephony.Call

getConferencedCall()

Returns the call that merged. This call is in the Call.INVALID state.

javax.telephony.Call[]

getFailedCalls()

Returns list of Calls that could not be Conferenced.

javax.telephony.Call

getFinalCall()

Returns the call that remains active after the conference completes.

javax.telephony.TerminalConnection

getHeldConferenceController()

Returns the TerminalConnection that currently acts as the conference controller for this call -- the final call. This is the TerminalConnection that was in HELD state when the conference got initiated. This method returns null or TerminalConnection if the conference controller is not being observed.

javax.telephony.TerminalConnection

getTalkingConferenceController()

Returns the TerminalConnection that currently acts as the conference controller for this call -- the initiating call.This is the TerminalConnection that was in TALKING state. This method returns null or TerminalConnection if the conference controller is not being observed.

boolean

isSuccess()

Returns Boolean True or False depending on whether the conference succeeded or failed. The application can use this interface to determine whether a Conference is successful.

Conferences will fail in these situations:

•If the application issues the request Call.conference(otherCalls[]), the system considers the conference as failed if one or more than one Calls could not Join into Conference. Use getFailedCalls() to find the failed calls.

•If no conference bridge is available, and the conference could not complete. Use getFailedCalls() to get a list of the calls that could not join the conference.

•If the party being conferenced drops out before the conference could complete.

Methods

Returns the Address that currently acts as the conference controller for this call, the initiating call.

javax.telephony.Call

getConferencedCall()

Returns the call that will be conferenced. This is the call that will be merged into the initiating call. This interface returns the first call from the list of calls that are joining into conference.

javax.telephony.Call[]

getConferencedCalls()

Returns the list of the calls that will be conferenced. These calls are the ones that will be merged into the final call.

javax.telephony.Call

getFinalCall()

Returns the call that will remain active after the conference completes. This is the call into which all the calls will merge.

javax.telephony.TerminalConnection

getHeldConferenceController()

Returns the TerminalConnection that currently acts as the conference controller for this call, the initiating call. This is the TerminalConnection that was in HELD state. This method returns null if the conference controller is not being observed. This method returns the first held controller for a multiple call join scenario.

javax.telephony.TerminalConnection[]

getHeldConferenceControllers()

Returns all TerminalConnections on Conference Controller Terminal that are joining together and are in HELD State.

javax.telephony.Address

getOriginalConferenceControllerAddress()

Returns the Address of the participant that initiated the conference.

javax.telephony.TerminalConnection

getTalkingConferenceController()

Returns the TerminalConnection that currently acts as the conference controller for this call, the initiating call. This is the TerminalConnection that was in TALKING state. This method returns null if the conference controller is not being observed. This method returns null if there is no controller in talking state. Calls can be joined into a conference without any talking controller.

String

getControllerTerminalName()

Returns the terminal name of the controllers across which a conference is done.

Inherited Methods

From Interface com.cisco.jtapi.extensions.CiscoCallEv

getCiscoCause, getCiscoFeatureReason

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

From Interface javax.telephony.events.CallEv

getCall

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

Related Documentation

CiscoConnection

The CiscoConnection interface extends the CallControlConnection interface with additional Cisco specific capabilities. Applications can use the getReason method to obtain the reason for the creation of a connection.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Added two new methods: getPartyInfo and disconnect(CiscoPartyInfopartyInfo for Drop Any Party feature.

•CiscoConnection.REDIRECT_DROP_ON_FAILURE—This mode instructs the implementation to perform a redirect without checking the validity or availability of the destination. The original call gets dropped if the destination is invalid or busy.

•CiscoConnection.REDIRECT_NORMAL—This mode instructs the implementation to perform a redirect only after checking the validity or availability of the destination. This matches the behavior of the CallControlConnection.redirect() method. The system does not drop the original call on failure.

This method overloads the CallControlConnection.redirect() method. It takes two new parameters: redirectMode and callingSearchSpace.

The redirectMode selects which type of redirect to perform. The callingSearchSpace tells the implementation to use either the calling party search space or the redirect controller search space.

Parameters

mode—One of the following:

•CiscoConnection.REDIRECT_DROP_ON_FAILURE—This mode instructs the implementation to perform a redirect without checking the validity or availability of the destination. The original call gets dropped if the destination is invalid or busy.

•CiscoConnection.REDIRECT_NORMAL—This mode instructs the implementation to perform a redirect only after checking the validity or availability of the destination. This matches the behavior of the CallControlConnection.redirect() method. The system does not drop the original call on failure.

It takes three new parameters: mode, callingSearchSpace, and calledAddressOption. The redirectMode selects the type of redirect to perform. The callingSearchSpace tells the implementation to use either the calling party search space or the redirect controller search space. The calledAddressOption parameter controls whether to reset the original called fields.

This method overloads the CallControlConnection.redirect() method. It takes three new parameters: mode, callingSearchSpace, and calledAddressOption.

The redirectMode selects the type of redirect to perform. The callingSearchSpace tells the implementation to use either the calling party search space or the redirect controller search space. The calledAddressOption parameter controls whether to reset the original called fields.

If the FAC and CMC codes are missing or invalid, the call might not get offered and platformException may contain one of the following error codes:

•CiscoJTAPIException.CTIERR_FAC_CMC_REASON_FAC_NEEDED

•CiscoJTAPIException.CTIERR_FAC_CMC_REASON_CMC_NEEDED

•CiscoJTAPIException.CTIERR_FAC_CMC_REASON_FAC_CMC_NEEDED

•CiscoJTAPIException.CTIERR_FAC_CMC_REASON_FAC_INVALID

•CiscoJTAPIException.CTIERR_FAC_CMC_REASON_CMC_INVALID

Parameters

mode—One of the following:

•CiscoConnection.REDIRECT_DROP_ON_FAILURE

•CiscoConnection.REDIRECT_NORMAL

callingSearchSpace—One of the following:

•CiscoConnection.DEFAULT_SEARCH_SPACE

•CiscoConnection.CALLINGADDRESS_SEARCH_SPACE

•CiscoConnection.ADDRESS_SEARCH_SPACE

•preferredOriginalCalledParty—may be a DN that will be the originalCalledParty field when call is offered to destinationAddress. If this field * needs to be used, applications must set calledAddressOption as CALLED_ADDRESS_SET_TO_PREFERREDCALLEDPARTY. If applications are not interested in this field, you must pass the default value of null.

calledAddressOption—One of the following:

•CiscoConnection.CALLED_ADDRESS_DEFAULT

•CiscoConnection.CALLED_ADDRESS_UNCHANGED

•CiscoConnection.CALLED_ADDRESS_SET_TO_REDIRECT_DESTINATION

preferredOriginalCalledParty—may be a DN that will be the originalCalledParty field when call is offered to destinationAddress. If this field * needs to be used, applications must set calledAddressOption as CALLED_ADDRESS_SET_TO_PREFERREDCALLEDPARTY. If applications are not interested in this field, you must pass the default value of null.

facCode—required if the destinationAddress requires a forced authorization code to offer the call. Pass the FAC in this parameter. Pass the default value of null if the destinationAddress does not require a FAC code.

cmcCode—required if the destinationAddress requires a client matter code to offer the call. Pass the CMC in this parameter. Pass the default value of null if the destinationAddress does not require a CMC code.

Documentation

None

CiscoConnectionID

The CiscoConnectionID object represents a unique object that is associated with each connection. Applications may use the object itself or the integer representation of the object that the intValue() method returns.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Created history table to track changes.

Superinterfaces

CiscoObjectContainer

Declaration

public interface CiscoConnectionID extends CiscoObjectContainer

Fields

None

Methods

Table 6-77 Methods in CiscoConnectionID

Interface

Method

Description

CiscoConnection

getConnection()

Returns the CiscoConnection for the CiscoConnectionID.

Int

intValue()

Returns an integer representation of this object.

Inherited Methods

From Interface com.cisco.jtapi.extensions.CiscoObjectContainer

getObject, setObject

Related Documentation

None

CiscoConsultCall

The CiscoConsultCall interface extends the CiscoCall interface to expose certain properties of calls that have been created as part of a consultative transfer or consultative conference.

Methods

Table 6-78 Methods in CiscoConsultCall

Interface

Method

Description

javax.telephony.TerminalConnection

getConsultingTerminalConnection()

Returns the consulting TerminalConnection that was used to create this CiscoConsultCall. If this Call was created as part of a consultative transfer or consultative conference, the getConsultingTerminalConnection method returns the TerminalConnection that was used to perform the consultation on the original call. This method lets you correlate a ConsultCall with its original call. The original call itself does not have any methods that you can use determine the ConsultCall, if any, to which it is related. Returns: Null if this Call does not result from a consultation, or the consulting TerminalConnection of the original Call if this call resulted from a consultation.

Provides applications ability to initiate a consultative call without setting up media for it. This interface may be invoked when application is creating a consult call and completing transfer before media establishes for consult call.

Cisco Unified Communication Manager may some times run into erroneous race condition when consult call is answered, and application completes transfer in the middle of media setup for consult call.

To avoid this problem, application that does not wait for media setup completion for consult call, may use this method to setup consult call.

From CallEvent perspective, this method behaves similar to CallControlCall.consult(TerminalConnection tc, String dialedDigits).

Creates a consultation between this Call and an active Call without establishing the media. This consult call may only be transferred, not conferenced. Cisco JTAPI does not support this method with CallControlCall.setConferenceEnable(). Cisco JTAPI only supports this method with CallControlCall.setTransferEnable().

Related Documentation

See CiscoCall for more information.

CiscoConsultCallActiveEv

The CiscoConsultCallActiveEv event interface extends the JTAPI CallActiveEv event. This event indicates that the state of the call object changed to Call.ACTIVE and that the call was initiated as a result of a consultative transfer or consultative conference operation (manual or programmatic). Applications can obtain the consulting TerminalConnection on the original (consulting) call by using the CiscoConsultCall.getConsultingTerminalConnection method.

The system reports this event to applications via the CallObserver interface.

Returns the consulting TerminalConnection that was used to create this CiscoConsultCall. You can use this method to correlate a consultation call with its original call. The original call does not have any methods that you can use to determine the consultation call, if any, to which it is related. Returns: The consulting TerminalConnection of the call that created the call that is referenced by this event

Inherited Methods

From Interface com.cisco.jtapi.extensions.CiscoCallEv

getCiscoCause, getCiscoFeatureReason

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

From Interface javax.telephony.events.CallEv

getCall

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

From Interface javax.telephony.events.CallEv

getCall

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

Related Documentation

CiscoEv

The CiscoEv interface extends this code JTAPI javax.telephony.events.Ev interface and serves as the base interface for all Cisco-extended JTAPI events. Every event in this package extends this interface, directly or indirectly.

Methods

Sets the intercom target DN, intercom target label, and intercom target Unicode label that appears next to the intercom line on the phone. The phone displays the Unicode label if the phone has that capability; otherwise, the phone displays the ASCII target label.

Throws

javax.telephony.InvalidPartyException means that the target DN is invalid.

javax.telephony.InvalidStateException means that the address, terminal, or provider are not in service.

Parameters

•targetDN—Destination DN for the intercom call

•targetAsciiLabel—ASCII display label shown next to the intercom line on the phone target

•UnicodeLabel—Unicode display label shown on the phone

Boolean

isIntercomTargetSet()

Returns true if an application has overridden the current value, or false if the current value matches the default value configured in the database.

Returns the current intercom target DN that the application set. If the application has not set the intercom target DN, this interface returns the default intercom target DN that is configured in Cisco Unified CM Administration. Returns: The intercom target DN number, as a String.

java.lang.String

getIntercomTargetAsciiLabel()

Returns the current intercom target label that the application set. If the application has not set the intercom target label, this interface returns the default intercom target label that is configured in Cisco Unified CM Administration. Returns: The intercom target label string.

java.lang.String

getIntercomTargetUnicodeLabel()

Returns the current intercom target Unicode label that the application set. If the application has not set the Unicode label, this interface returns the default intercom target Unicode label that is configured in Cisco Unified CM Administration. Returns: The intercom Unicode target label string.

Related Documentation

See CiscoAddress for additional information.

CiscoJtapiException

The CiscoJtapiException interface defines error codes that CTI requests may return. Cisco JTAPI extends all of the JTAPI exceptions to implement this interface. You can get the error codes by casting the exception to CiscoJtapiException and calling the method getErrorCode().

For example, if "e" is any exception caught by an application, the following code checks whether the exception is an instance of CiscoJtapiException.

Inherited Methods

Related Documentation

CiscoJtapiPeer

By extending the com.cisco.services.tracing.TraceModule interface, CiscoJtapiPeer exposes trace information to applications. All instances of JtapiPeer objects that the Cisco JTAPI implementation creates implement this interface. Applications that want to manipulate the trace settings of the Cisco JTAPI implementation may use the CiscoJtapiPeer.getTraceManager method to obtain its TraceManager object. Applications can then manipulate the TraceManager object as described in the com.cisco.services.tracing package.

Fields

Methods

Defines the various methods that applications can use to modify the parameters that the JTAPI layer will use.

void

setJtapiProperties(CiscoJtapiProperties jtapiproperties)

Provides applications ability to save changes made to CiscoJtapiProperties in jtapi.ini file and activate these changes in properties for the providers in JTAPIPeer.

Inherited Methods

From Interface com.cisco.services.tracing.TraceModule

getTraceManager, getTraceModuleName

From Interface javax.telephony.JtapiPeer

getName, getProvider, getServices

From Interface com.cisco.jtapi.extensions.CiscoObjectContainer

getObject, setObject

Related Documentation

See CiscoJtapiProperties and TraceModule for more information.

CiscoJtapiProperties

Cisco Unified JTAPI behavior and functionality is tailored by many parameters which are read in from the jtapi.ini file when an instance of CiscoJtapiPeer is instantiated. These parameters are now exposed to applications for control via this CiscoJtapiproperties interface.

Applications can query the CiscoJtapiproperties properties object and change these parameters to better suit the application functionality. Exposing these properties via the CiscoJtapiproperties interface also allows applications to have a single point of administration (at the application end) for these parameters. The most visible parameters are those describing the tracing levels and tracing destinations.

In the above example an application has set the Java console tracing to off and set the trace path to D:\Traces\WorkFlowApp1.When the peer is obtained an object implementing CiscoJtapiProperties is created by reading parameters set in the jtapi.ini file. If no jtapi.ini file exists in the classpath default settings are used to create this object. The parameters used by Cisco Jtapi are read in and frozen when the first getProvider () call is made.

This method is replaced by overloaded method setSecurityPropertyForInstance which takes an extra parameter certStorePassphrase, a passphrase for java key store. This method might have some security vulnerability.

This method is replaced by overloaded method updateServerCertifcate which takes an extra parameter certStorePassphrase, a passphrase for java key store. This method might have some security vulnerability.

Methods

Related Documentation

CiscoMediaEncryptionAlgorithmType

The CiscoMediaEncryptionAlgorithmType interface indicates the SRTP algorithm type used for encryption. This interface lists all of the security indicator values that an application can get in CiscoRTPInputKeyEv and CiscoRTPOutputKeyEv. If an application is terminating its own media on CTIPorts and Media Terminated RPs, only one of the following algorithms needs to be provided in the register API.

Interface History

Cisco Unified Communications Manager Release

Description

3.x

Added the extension.

Superinterfaces

public interface CiscoMediaEncryptionAlgorithmType

Fields

Table 6-89 CiscoMediaEncryptionAlgorithmType Fields

Inteface

Field

Description

static int

AES_128_COUNTER

The algorithm used is based on Advanced Encryption Standard (AES), which is a computer security standard. The cryptography scheme is a symmetric block cipher that encrypts and decrypts 128-bit blocks of data.

Related Documentation

CiscoMediaEncryptionKeyInfo

The CiscoMediaEncryptionKeyInfo interface lets applications get information about SRTP keys.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Created history table to track changes.

Declaration

public interface CiscoMediaEncryptionKeyInfo

Fields

None

Methods

Table 6-90 Methods in CiscoMediaEncryptionKeyInfo

Interface

Method

Description

int

getAlgorithmID()

Returns the media encryption algorithm ID for the current stream.

int

getIsMKIPresent()

Indicates whether MKI is present.

byte[]

getKey()

Returns the master key for the stream.

int

getKeyLength()

Returns the keyLength of the key.

byte[]

getSalt()

Returns the salt key for the stream.

int

getSaltLength()

Returns the saltLength of the salt.

int

keyDerivationRate()

Indicates the SRTP key derivation rate for this session.

Related Documentation

See CiscoRTPInputKeyEv, CiscoRTPOutputKeyEv.

CiscoMediaOpenLogicalChannelEv

The system sends a CiscoMediaOpenLogicalChannelEv event each time that media gets established for a dynamically registered CiscoMediaTerminal or CiscoRouteTerminal. Upon receiving this event, applications must invoke setRTPParams on CiscoMediaTerminal or CiscoRouteTerminal and pass in the IP address and port number where they want to terminate the media, along with the rtpHandle that this event delivers.

Applications can get a call reference by using CiscoProvider.getCall(CiscoRTPHandle). Applications must be aware that the far end and local end may not be able to invoke features unless the setRTPParams method is invoked. If applications fail to respond to this event within the specified time, the call may get disconnected.

Returns CiscoRTPHandle object. Applications should pass this handle along with RTPParameters to CiscoMediaTerminal or CiscoRouteTerminal. Applications can get call reference using CiscoProvider.getCall If there is no callobserver or there was no callobserver when this event is delivered, then CiscoProvider.getCall may return null

int

getMediaConnectionMode()

Returns a CiscoMediaConnectionMode. Applications could get one of the following values:

Related Documentation

CiscoMediaTerminal

A CiscoMediaTerminal is a special kind of CiscoTerminal that allows applications to terminate RTP media streams. Unlike a CiscoTerminal, a CiscoMediaTerminal does not represent a physical telephony endpoint, which is observable and controllable in a third-party manner. Instead, a CiscoMediaTerminal is a logical telephony endpoint, which may be associated with any application that wants to terminate media. Such applications include voice messaging systems, interactive voice response (IVR), and softphones.

Note Only CTIPorts appear as CiscoMediaTerminals through Cisco Unified JTAPI.

Terminating media is a two-step process. To terminate media for a particular terminal, an application first adds an observer that implements the CiscoTerminalObserver interface using the Terminal.addObserver method. Finally, the application registers the IP address and port number to which incoming RTP streams for the terminal should be directed, by using the CiscoMediaTerminal.register method.

To supply an IP address and port number dynamically on a per-call basis, applications must register by only providing the capabilities that they support. Applications must react to the CiscoMediaOpenLogicalChannelEv that gets sent whenever media gets established. Applications registering with this type must be aware that, when this event is received, the far end and the local end may not be able to perform any feature operation unless media is established. If applications fail to respond to this event within the specified time, the call may get dropped.

This method registers the MediaTerminal. Ensure that the CiscoMediaTerminal is in the CiscoTerminal.UNREGISTERED state and its Provider is in the Provider.IN_SERVICE state.

This method returns successfully when the MediaTerminal gets registered. This method requires that the application have a TLS link established with CTIManager and have the SRTP Enabled flag enabled in Cisco Unified Communications Manager Administration for the user; otherwise, the system throws a PrivilegeViolationException.

The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state.

The successful effect of this method is to register the MediaTerminal. The activeAddressingMode indicates the application IP addressing capabilities. If application specifies activeAddressingMode as CiscoTerminal.IP_ADDRESSING_MODE_IPv4, then it must also specify address.

If application specifies activeAddressingMode as CiscoTerminal.IP_ADDRESSING_MODE_IPv6, then it must also specify address_v6.

If application specifies activeAddressingMode as CiscoTerminal.IP_ADDRESSING_MODE_IPv4_6, then it must also specify address and address_v6.

Method Arguments

This method has four arguments:

•The first argument specifies the internet address at which the RTP media stream for this Terminal will be terminated.

•The second indicates the UDP port at which RTP packets will be directed.

•The third argument indicates the type of RTP encodings that the application is willing to support for this Terminal

This method can be used only if application has TLS link established with CTIManager and if application has SRTP Enabled flag enabled in CM Admin pages for the user, otherwise PrivilegeViolationException is thrown.

Method Post-Conditions

This method returns successfully when the MediaTerminal is registered.

Parameters

•address—The internet address for inbound IPv4 RTP streams on this terminal, it can be null depending on application Addressing Mode.

•port—The UDP port for inbound RTP streams on this terminal

•capabilities—The list of RTP encodings supported by this terminal

•algorithmIDs—Indicates SRTP algorithms that this CTIPort supports. AlgorithmIDs may only be one of CiscoMediaEncryptionAlgorithmType

•address_v6—The IPv6 internet address for inbound IPv6 RTP streams on this terminal, it can be null depending upon activeAddressingMode

•activeAddressingMode—IP Addressing mode in which application intends to register this CiscoMediaTerminal. It can be:

This method registers the MediaTerminal with the specified CiscoMediaCapabilities. Applications should use this method when they want to supply the IP address and port dynamically for each call.

Applications that register with this method will receive a CiscoMediaOpenLogicalChannelEv for each call and must supply an IP address and port number by using the setRTPParams method on this object.

Ensure the CiscoMediaTerminal is in the CiscoTerminal.UNREGISTERED state and its Provider is in the Provider.IN_SERVICE state.

Method Arguments

Arguments indicate the type of RTP encodings that the application is willing to support for this Terminal.

Method Post-Conditions

This method returns successfully when the CiscoMediaTerminal is registered.

Parameters

capabilities—The list of RTP encodings that this terminal supports.

Throws

CiscoRegistrationException

void

register(CiscoMediaCapability[] capabilities, int[] algorithmIDs)

This method registers a MediaTerminal with the specified CiscoMediaCapabilities and supported SRTP algorithms.

Applications should use this method when they want to supply the IP address and port dynamically for each call and also want to specify the SRTP algorithm.

Applications that register with this method will receive a CiscoMediaOpenLogicalChannelEv for each call and must supply the IP address and port number by using the setRTPParams method on this object.

This form of register() also requires a second parameter that indicates which SRTP algorithm that the application supports.

This method requires that the application have a TLS link established with CTIManager and have the SRTP Enabled flag enabled in Cisco Unified Communications Manager Administration for the user; otherwise, the system throws a PrivilegeViolationException.

This method returns successfully when the CiscoMediaTerminal gets registered.

Ensure the CiscoMediaTerminal is in the CiscoTerminal.UNREGISTERED state and its Provider is in the Provider.IN_SERVICE state.

Parameters

•capabilities—The list of RTP encodings that this terminal supports

•algorithmIDs—The list of SRTP algorithms that this terminal supports. AlgorithmIDs must be one of CiscoMediaEncryptionAlgorithmType.

The CiscoMediaTerminal must be in the CiscoTerminal.UNREGISTERED state and its Provider must be in the Provider.IN_SERVICE state. The successful effect of this method is to register the MediaTerminal. It registers a Terminal with specified CiscoMediaCapabilities and supported SRTP algorithms. It also indicates that application is interested in supplying ipAddress and port dynamically for each call.

Applications registering with this method receive CiscoMediaOpenLogicalChannelEv for each call and have to supply ipAddress and port number using setRTPParams method on this object.

The second parameter indicates SRTP algorithm that application supports. This method can be used only if application has TLS link established with CTIManager and if application has SRTP Enabled flag enabled in Cisco Unified Communications Manager Administration for the user, otherwise PrivilegeViolationException is thrown.

Method Arguments

Arguments indicate the type of RTP encodings that the application is willing to support for this Terminal and the application or CTIManager failure persistence delay.

Method Post-Conditions

This method returns successfully when the CiscoMediaTerminal is registered.

Parameters

•capabilities—The list of RTP encodings supported by this terminal

•algorithmIDs—Indicates the list of SRTP algorithms supported by this terminal. AlgorithmIDs may only be one of CiscoMediaEncryptionAlgorithmType

•activeAddressingMode—Is the IP Addressing mode in which application intends to register this CiscoMediaTerminal. The activeAddressingMode can be:

Applications must use this method when they want to set the IP address and RTP port number to dynamically stream media for a call. In this situation, the application will have registered the MediaTerminal or CiscoRouteTeminal by providing only capabilities.

Applications must invoke this method upon receiving the CiscoCallOpenLogicalChannel on terminalObserver. Applications must pass in the rtpHandle that they receive in CiscoCallOpenLogicalChannelEv. Applications can get a CiscoCall reference by calling the CiscoProvider.getRTPHandle(rtpHandle) method.

This method may return null if no call observer is added on the terminal, or there was no callobserver at the time when this event got sent sent, or or there is no call associated with this handle.

Parameters

•rtpHandle—is obtained from. CiscoMediaCallOpenLogicalChannelEv

•rtpParams—is of type CiscoRTPParams, which is used to specify the dynamic RTP address and port number for a media terminal on a per-call basis.

This method unregisters the MediaTerminal and returns successfully when the MediaTerminal gets unregistered. The CiscoMediaTerminal must be registered and its Provider must be in the Provider.IN_SERVICE state.

Throws

CiscoUnregistrationException

boolean

isRegistered()

This method returns true if the CiscoMediaTerminal is registered and false otherwise. For a MediaTerminal, this method returns true if the MediaTerminal is InService and false if it is OutOfService. For CTIManager failure cases, this method returns false.

boolean

isRegisteredByThisApp()

This method returns true if this application issued a successful registration request. The registration remains valid even if the device is out-of-service because of a CTIManager failure. This will get set to true until this application unregisters the device.

int

getIPAddressingMode()

An application can invoke this API to query the IP Addressing Mode of the CiscoMediaTerminal Addressing mode may be any of the following constants:

Declaration

Fields

This NumberType is same as 4; it represents caller is from same Cisco Unified Communications Manager server.

Static int

INTERNATIONAL_NUMBER

This NumberType is same as 0; it represents nothing is configured

Static int

NATIONAL_NUMBER

This NumberType is same as 1; it represents caller is INTERNATIONAL

Static int

NET_SPECIFIC_NUMBER

This NumberType is same as 2; it represents caller is NATIONAL

Static int

RESERVED_FOR_EXTENSION

This NumberType is same as 6; it represents its a fast dial call - not being used currently

Static int

SUBSCRIBER_NUMBER

This NumberType is same as 3; it represents call is from MGCP/H.323 gateway

Static int

UNKNOWN_NUMBER

—

Methods

Table 6-101 Methods in CiscoPartyInfo

Interface

Method

Description

javax.telephony.Address

getAddress()

Returns the address.

boolean

getAddressPI()

Returns Presentation Indicator (PI) associated with Address. If it returns true, Application can display this Address name to end users. If it returns false, Applications should not display this Address name to end user.

java.lang.String

getDisplayName()

Returns display name of the party.

boolean

getDisplayNamePI()

Returns the PI associated with DisplayName. If it returns true, Application can display this DisplayName to end users. If it returns false, Applications should not display this DisplayName to end user.

int

getlocale()

Returns the locale of the party unicode display name.

int

getNumberType()

Returns number type of the party.

java.lang.String

getUnicodeDisplayName()

Returns unicode display name of the party.

CiscoUrlInfo

getUrlInfo()

Returns URL Info.

java.lang.String

getVoiceMailbox()

Returns voice mail box of the party.

Related Documentation

CiscoProvCallParkEv

CiscoProvCallParkEv event is delivered to providerobserver when a call is parked/unparked from any device in the cluster. To receive this event application should register using CiscoProvider.registerFeature() and CiscoProvFeatureID.MONITOR_CALLPARK_DN. User profile used by the application should have the Call Park Retrieval Allowed flag enabled to receive this event.

Related Documentation

CiscoProvEv

The CiscoProvEv interface, which extends JTAPI's core javax.telephony.events.ProvEv interface, serves as the base interface for all Cisco-extended JTAPI Provider events. Every Provider-related event in this package extends this interface, directly or indirectly.

Superinterfaces

Declaration

Fields

Inherited Fields

From Interface javax.telephony.Provider

IN_SERVICE, OUT_OF_SERVICE, SHUTDOWN

Methods

Table 6-106 Methods in CiscoProvider

Interface

Method

Description

CiscoTerminal

createTerminal(java.lang.String name)

Returns an instance of the CiscoTerminal class which corresponds to the given name. Application must have sufficient capability otherwise PrivilegeViolationException gets thrown CiscoProvider.createTerminal().

Pre-Conditions

this.getState() == Provider.IN_SERVICE

Post-Conditions

Create CiscoTerminal corresponding to name; terminal is an element of this.getTerminals().

Parameters

•name—The name of desired CiscoTerminal object.

Throws

javax.telephony.InvalidArgumentException—The name provided does not correspond to a name of any CiscoMediaTerminal known to the Provider or within the Provider's domain.

Removes the CiscoTerminal Object from providers control. Removes the CiscoTerminal Object from providers control. Application must have created this terminal using Provider.createTerminal() interface otherwise PreviledgeVoilationException gets thrown. CiscoProvider.deleteTerminal().

Pre-Conditions

this.getState() == Provider.IN_SERVICE

Post-Conditions

CiscoTerminal Object deleted from providers list of terminal. Terminal is not element of this.getTerminals() any more and Addresses belonging to terminal get deleted.

Parameters

•terminal—The referece to the desired CiscoTerminal object to be deleted.

Throws

javax.telephony.InvalidArgumentException—The terminal provided is not element of this.getTerminals() or terminal is not provider domain.

PrivilegeViolationException—The terminal given in the argument is not a terminal created using Provider.createTerminal() method. Applications can delete only those terminal which are created using Provider.createTerminal() interface.

javax.telephony.Address

getAddress(java.lang.String number, java.lang.String partition)

Returns an address object corresponding to the number and partition that is passed in the method. The address object will be unique for a particular number, partition combination.

Throws

javax.telephony.InvalidArgumentException

int

getAppDSCPValue()

Gets the DSCP value from the provider by using CiscoProvider.getAppDSCPValue().

Pre-Conditions

this.getState() == Provider.IN_SERVICE

Post-Conditions

The method will return the integer value of the DSCP value for applications set by CTI.

CiscoCall

getCall(CiscoRTPHandle rtpHandle)

Returns call object with the RTPHandle associated with a specific terminal.

CiscoCall

getCall(int callleg)

Returns CiscoCall present in provider domain and the call object with the RTPHandle associated with a specific terminal. This method may return null if this RTPHandle is no longer associated with any call or if there was no callObserver added on the terminal at the time when CiscoCallOpenLogicalChannelEv which contained this handle is sent to applications.

Throws

javax.telephony.InvalidStateException

boolean

getCallbackGuardEnabled()

None

CiscoIntercomAddress[]

getIntercomAddresses()

Returns array of CiscoInterComAddress present in provider domain.

CiscoMediaTerminal

getMediaTerminal(java.lang.String name)

Returns an instance of the CiscoMediaTerminal class which corresponds to the given name. Each CiscoMediaTerminal has a unique name associated with it, which is assigned to it by the JTAPI implementation.

If no CiscoMediaTerminal is available for the given name within the Provider domain, this method throws the InvalidArgumentException.

This CiscoMediaTerminal is contained in the arrays generated by Provider.getTerminals() and CiscoProvider.getMediaTerminals().

Pre-Conditions

Let CiscoMediaTerminal terminal = this.getMediaTerminal(name); terminal is an element of this.getTerminals(); terminal is an element of this.getMediaTerminals();

Post-Conditions

Let CiscoMediaTerminal terminal = this.getMediaTerminal(name); terminal is an element of this.getTerminals(); terminal is an element of this.getMediaTerminals();

Parameters

•name—The name of desired CiscoMediaTerminal object.

Throws

javax.telephony.InvalidArgumentException—The name provided does not correspond to a name of any CiscoMediaTerminal known to the Provider or within the Provider domain.

CiscoMediaTerminal[]

getMediaTerminals()

Returns an array of CiscoMediaTerminals associated with the Provider and within the Provider local domain.

Each CiscoMediaTerminal possesses a unique name, which is assigned to it by the JTAPI implementation.

If there are no CiscoMediaTerminals associated with this Provider, then this method returns null.

This array is a subset of the array returned by Provider.getTerminals().

javax.telephony.ResourceUnavailableException—Indicates the number of media terminals present in the Provider is too great to return as a static array.

java.lang.String

getVersion()

None

void

registerFeature(int featureID)

Registers a particular feature for which application gets Provider events. Applications should pass in the featureID of the softkey. Current supported features are listed in CiscoProvFeatureID interface.

Enables or disables try/catch logic for observer callbacks. In order to protect itself from application exceptions in observer callbacks, the Provider normally guards all invocations of application interfaces (e.g. observers) with the following code:

try {

observer.callStateChanged ( ... );

} catch ( Throwable t ) {

// log the exception here

}

This isolates application errors from the JTAPI implementation, allowing easier troubleshooting, since the JTAPI implementation can note the unhandled exception and continue operating.

Some errors are considered non-recoverable and will be re-thrown by JTAPI, generally resulting in application exit. Such errors include ThreadDeath, OutOfMemoryError, and StackOverflowError.

Applications wishing to trap errors within JTAPI threads should create a subclass of ThreadGroup and initialize JTAPI from a thread within that ThreadGroup.

By overriding the ThreadGroup.uncaughtException () method, the application can be made aware of all unrecoverable errors thrown on JTAPI threads. In some cases, JTAPI's aggressive error-catching approach may make it more difficult to troubleshoot applications within a java debugger.

Microsoft Visual J++ version 6.0, for example, does not handle breakpoints within application observer callbacks properly if JTAPI catches Throwable. In such cases, JTAPI application developers may choose to disable the internal JTAPI try/catch logic.

Note Disabling callback guards in this manner is only intended for use while troubleshooting applications, and never for use in production environments. By default, callback guards are always enabled.

Parameters

•enabled—if true, callback guard will be enabled; if false, callback guard will be disabled.

Superinterfaces

Declaration

Methods

Table 6-107 Methods in CiscoProviderCapabilities

Interface

Method

Description

boolean

canObserveAnyTerminal()

This method checks whether the user has been provisioned in the Cisco Unified Communications Manager with the privilege to observe any Terminal (and its addresses) in the system. Such Terminals and Addresses do not get returned as part of the list that JTAPI initializes at startup. The provider obtained with the login for a user with such privileges can be determined from the canObserverAnyTerminal method call in ProviderCapabilities. Returns True if the user can observe any Terminal in the system, or false if the user can only observe Terminals and Addresses in the control list.

This method checks whether the user has been provisioned in the Cisco Unified Communications Manager to monitor park DNs. Returns True if the user can monitor park DNs, or false otherwise.

boolean

canModifyCallingParty()

This method checks whether the user has been provisioned in the Cisco Unified Communications Manager to modify the calling party number of a call. Returns True if the user can modify the calling party number, or false otherwise.

boolean

canRecord()

This method checks whether the user has been provisioned in the Cisco Unified Communications Manager to record calls. Only users in 'Standard CTI Allow Call Recording' user group can record calls. Returns True if the user belongs to the group.

boolean

canMonitor()

This method checks whether a user has been provisioned in the Cisco Unified Communications Manager to monitor calls. Only users in 'Standard CTI Allow Call Monitoring' user group can initiate call monitoring request. Returns True if the user belongs to the group.

Inherited Methods

From Interface javax.telephony.capabilities.ProviderCapabilities

isObservable

Related Documentation

See canObserveAnyTerminal().

CiscoProviderCapabilityChangedEv

Application provider observers receive this event when a user gets added or removed from user groups (capabilitied) in Cisco Unified Communications Manager. The methods for this event let you check which capabilities changed.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Added hasIPv6CapabilityChanged() method.

Declaration

public interface CiscoProviderCapabilityChangedEv

Fields

Table 6-108 Fields in CiscoProviderCapabilityChangedEv

Interface

Field

Description

static int

ID

None

static int

MODIFY_CGPN

Deprecated

This constant is not returned by any interface, should not be used by application.

static int

MONITOR_PARKDN

Deprecated

This constant is not returned by any interface, should not be used by application.

static int

SUPERPROVIDER

Deprecated

This constant is not returned by any interface, should not be used by application.

Methods

Table 6-109 Methods in CiscoProviderCapabilityChangedEv

Interface

Method

Description

CiscoProviderCapabilities

getCapability()

This method returns the current CiscoProviderCapabilities object for the user.

boolean

hasIPv6CapabilityChanged()

This method can be used by applications to determine whether Enable IPv6 Enterprise Parameter has changed.

Methods

Table 6-111 Methods in CiscoProvTerminalCapabilityChangedEv

Interface

Method

Description

CiscoTerminal[]

getTerminals()

Returns an array of CiscoTerminals whose capabilities have changed. In Cisco Unified Communications Manager Release 7.0(1), CiscoTerminal[] interface was modified so that only CiscoMediaTerminals or CiscoRouteTerminals get returned.

Inherited Methods

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

From Interface javax.telephony.events.ProvEv

getProvider

From Interface javax.telephony.events.Ev

getCause, getID, getMetaCode, getObserved, isNewMetaEvent

Related Documentation

None

CiscoRecorderInfo

This interface provides information about the recorder in a recording session. When a recording session is active, this interface gives information about the recording device.

Interface History

Cisco Unified Communications Manager Release Number

Description

7.1(1 and 2)

Created history table to track changes.

Declaration

public interface CiscoRecorderInfo

Fields

None

Methods

Table 6-112 Methods in CiscoRecorderInfo

Interface

Method

Description

CiscoAddress

getAddress()

Returns the recorder address.

java.lang.String

getTerminalName()

Returns the terminal name of the recording device.

Related Documentation

None

CiscoRestrictedEv

The CiscoRestrictedEv event is the parent class for the CiscoAddrRestrictedEv and CiscoAddrRestrictedOnTerminalEv events. This is the base class for restricted events and defines the cause codes for all restricted events.

Related Documentation

None

CiscoRouteEvent

The CiscoRouteEvent interface extends the RouteEvent interface with additional Cisco-specific capabilities. Applications can use the getCallingPartyIpAddr method to obtain the IP address of the calling party device.

Fields

Inherited Fields

Methods

Table 6-115 Methods in CiscoRouteEvent

Interface

Method

Description

java.net.InetAddress

getCallingPartyIpAddr_v6()

Returns the IPv6 address of the calling party. If the IP address is not available, this method returns an InetAddress with the IP address 0::0 and a null host name. Printing this object yields a string representation of "null/0::0". Returns: InetAddress.

java.net.InetAddress

getCallingPartyIpAddr()

Returns the IP address of the calling party. If the IP address is not available, this method returns an InetAddress with the IP address 0.0.0.0 and a null host name. Printing this object yields a string representation of "null/0.0.0.0".

Superinterfaces

Declaration

Fields

Table 6-116 Fields in CiscoRouteSession

Interface

Field

Description

static final int

ERROR_ROUTESELECT_TIMEOUT

Each routeEvent() or reRouteEvent() that is sent starts a timer for the application to respond with a routeSelect() or endRoute(). The default value of this timer is 5 seconds. Should the application not respond within this time, the system calls an endRoute with this error.

static final int

ERROR_NO_CALLBACK

Because there is no default route mechanism in place, if there is no callback registered for this application, the system calls an endRoute with this error.

static final int

ERROR_INVALID_STATE

If an internal InvalidStateException occurred, or some preconditions or postconditions were not met during routing, the system calls endRoute with this error.

static final int

DEFAULT_SEARCH_SPACE

This indicates that the redirect should be done by using the search space that is the default for the implementation. The default is to use the caller search space.

static final int

CALLINGADDRESS_SEARCH_SPACE

This indicates that the redirect should be done by using the search space of the calling address.

static final int

ROUTEADDRESS_SEARCH_SPACE

This indicates that the redirect should be done by using the search space of the route point address.

static final int

DONOT_RESET_ORIGINALCALLED

This is a parameter value for the PreferedOriginalCalled option; it specifies not to reset OriginalCalled.

static final int

RESET_ORIGINALCALLED

This is a parameter value for PreferedOriginalCalled Option; if the value of preferedOriginalCalledOption is set to this, it will reset the OriginalCalled to preferedOriginalCalledNumber.

static final int

CAUSE_CTIERR_FAC_CMC_REASON_FAC_NEEDED

This constant returned by RouteSession.getCause() indicates that the routeSelectedElement in the selectRoute does not contain the required FAC code.

static final int

CAUSE_CTIERR_FAC_CMC_REASON_CMC_NEEDED

This constant returned by RouteSession.getCause() indicates that the routeSelectedElement in the selectRoute does not contain the required CMC code.

static final int

CAUSE_CTIERR_FAC_CMC_REASON_FAC_CMC_NEEDED

This constant returned by RouteSession.getCause() indicates that the routeSelectedElement in the selectRoute does not contain the required FAC and CMC codes.

static final int

CAUSE_CTIERR_FAC_CMC_REASON_FAC_INVALID

This constant returned by RouteSession.getCause() indicates that the routeSelectedElement in the selectRoute contains an invalid FAC code.

static final int

CAUSE_CTIERR_FAC_CMC_REASON_CMC_INVALID

This constant returned by RouteSession.getCause() indicates that the routeSelectedElement in the selectRoute contains an invalid CMC code.

Selects one or more possible routing destinations for a call with a modified calling number. This method takes as an argument that is a string array of destination telephone address names, modifyingCallingNumber, arranged in priority order.

The highest-priority destination is the first element in the specified array and routing is attempted with this destination first with the corresponding element of modifying calling number.

If modifiedCallingNumber is null for an element, the calling number is not modified if a call is routed to that particular routeSelected element. The system attempts to use the specified destination addresses in order until the system successfully selects a destination. The system delivers a RouteUsedEvent to the application when it routes the call to that destination.

•RouteSession.ROUTE_USED (if the Call was successfully routed.) A RouteUsedEvent gets delivered for this RouteSession if a successful destination was selected.

Parameters

•routeSelected—Possible destinations for callcallingSearchSpace can be CiscoRouteSession.DEFAULT_SEARCH_SPACE; CiscoRouteSession.CALLINGADDRESS_SEARCH_SPACE; or CiscoRouteSession.ROUTEADDRESS_SEARCH_SPACE.

•modifyingCallingNumber—An array of elements for which the application wants to modify the calling number when the call reaches the routeSelected element.

Throws

•com.cisco.jtapi.MethodNotSupportedExceptionImpl (The implementation does not support routing.)

•javax.telephony.PrivilegeViolationException (The user does not have the necessary privileges to use this method.)

Selects one or more possible destinations for routing the Call. This method takes as an argument a string array of destination telephone address names, in prioritized order, and a string array for the PreferredOriginalCalled number.

PreferedOriginalCalled number gets selected based on the index of the destination telephone names array. If the index corresponding to the destination array is not found in the PreferedOriginalCalled number array, preferedOriginalCalled gets set to the destination.

The highest-priority destination is the first element in the given array, and the system attempts to route with this destination first. The system attempts each given destination address in succession until the call gets successfully routed. The system delivers a RouteUsedEvent event to the application when a successful routing destination has been selected and the Call has been routed to that destination.

Pre-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() == RouteSession.ROUTE or

•RouteSession.RE_ROUTE

Post-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() ==

•RouteSession.ROUTE_USED (if the Call was successfully routed.) A RouteUsedEvent gets delivered for this RouteSession if a successful destination was selected.

Parameters

•routeSelected—Possible destinations for the call.

•preferedOriginalCalledNumber—List with each item corresponding to a route at the matching array index in the routeSelected list.

•preferedOriginalCalledOption—List of options, each corresponding to routeSelected list. The option specifies whether to set OriginalCalled to preferedOriginalCalledNumber. The option values are CiscoRouteSession.DONOT_RESET_ORIGINALCALLED and CiscoRouteSession.RESET_ORIGINALCALLED. If the value is unspecified or null, the default is CiscoRouteSession.DONOT_RESET_ORIGINALCALLED.

Throws

com.cisco.jtapi.MethodNotSupportedExceptionImpl (The implementation does not support routing.)

javax.telephony.PrivilegeViolationException (The user does not have the necessary privileges to use this method.)

Selects one or more possible routing destinations. It takes as arguments a string array of:

•destination telephone address names, in prioritized order

•PreferredOriginalCalled numbers

•FACs

•CMCs

The system selects the PreferedOriginalCalled number corresponding to the index of the destination telephone name array. If the index is not found in the PreferedOriginalCalled number array, the preferedOriginalCalled gets set to the destination.

The highest priority destination is the first element in the specified array, and the system attempts to route the call to that destination first. The system attempts the specified destination addresses in order, until the call gets routed successfully. The system delivers a RouteUsedEvent event to the application when the system has selected a successful routing destination and routed the call to that destination.

Pre-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() == RouteSession.ROUTE

•RouteSession.RE_ROUTE

Post-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() ==

•RouteSession.ROUTE_USED (if the call was successfully routed). A RouteUsedEvent gets delivered for this RouteSession if a successful destination was selected.

Parameters

•routeSelected—List of possible destinations.

•preferedOriginalCalledNumber—List with each member of corresponding to the route at the same array index in the routeSelected.

•list.preferedOriginalCalledOption—List of options, each corresponding to RouteList. The option specifies whether to set OriginalCalled to preferedOriginalCalledNumber. The option values are CiscoRouteSession.DONOT_RESET_ORIGINALCALLED and CiscoRouteSession.RESET_ORIGINALCALLED.If the value is unspecified or null, the default is CiscoRouteSession.DONOT_RESET_ORIGINALCALLED.

•modifyingCallingNumber—Array of elements for which the application wants modify the calling number when the call reaches the routeSelected element. If applications do not want to modify the number, a null value for this parameter must be passed by the application.

•facCode (Forced Authorization Code [FAC])—If a routeSelected element requires a FAC, the corresponding facCode element must contain that code. If no code is required for a routeSelected element, the application must pass a null value for this parameter.

•cmcCode - (Client Matter Code [CMC]) If a routeSelected element requires a CMC, the corresponding cmcCode element must contain that code. If no code is required for a routeSelected element, the application must pass a null value for this parameter.

Throws

•com.cisco.jtapi.MethodNotSupportedExceptionImpl (The implementation does not support routing.)

•javax.telephony.PrivilegeViolationException (The user does not have the necessary privileges to use this method.)

Selects one or more possible routing destinations. It takes a string array of:

•Destination telephone address names, in prioritized order

•PreferredOriginalCalled numbers

•FACs

•CMCs

•Integer priorities

The PreferedOriginalCalled number gets selected based on the index of the destination telephone name array. If the index tis not found in the PreferedOriginalCalled number array, preferedOriginalCalled gets set to the destination.

The highest-priority destination is the first element in the given array, and the system attempts to route with this destination first. The system tries the successive specified destination addresses until the call gets routed successfully. The system delivers a RouteUsedEvent event to the application when a successful routing destination has been selected and the call has been routed to that destination.

Pre-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() == RouteSession.ROUTE

•RouteSession.RE_ROUTE

Post-Conditions

•this.getRouteAddress().getProvider().getState() ==

•Provider.IN_SERVICE this.getState() ==

•RouteSession.ROUTE_USED (if the Call was successfully routed.)

Parameters

routeSelected—Possible destinations for the call.

preferedOriginalCalledNumber—List with each element corresponding to the route at the same array index in the routeSelected list.

preferedOriginalCalledOption—Options list, each corresponding to RouteList. The option specifies whether to set OriginalCalled to preferedOriginalCalledNumber. The option values are CiscoRouteSession.DONOT_RESET_ORIGINALCALLED and CiscoRouteSession.RESET_ORIGINALCALLED. If the value is unspecified or null, the default is CiscoRouteSession.DONOT_RESET_ORIGINALCALLED.

•modifyingCallingNumber—Array of elements for which the application would like to modify the calling number when the call reaches the routeselected element. If applications do not want to modify the number, they must pass a null value for this parameter.

•facCode (Forced Authorization Code [FAC])—If a routeSelected element requires a FAC, the corresponding facCode element must contain that code. If no code is required for a routeSelected element,the application must pass a null value for this parameter.

•cmcCode (Client Matter Code [CMC])—If a routeSelected element requires a CMC, the corresponding cmcCode element must contain that code. If no code is required for a routeSelected element, the application must pass a null value for this parameter.

•featurePriority—Sets the feature priority of the call. The application may set CiscoCall.FEATUREPRIORITY_NORMAL if the application does not want to set any specific priority. The featurePriority parameter may be: