/mcppersistent call. This functionality helps with backward compatibility so applications do not need to make any changes to their current implementations. No new APIs are added to disconnect the persistent calls. Existing Call.drop() and Connection.disconnect() JTAPI APIs can be used to disconnect or drop the persistent calls. Persistent calls cannot be dropped if there is an active call to the remote device. Persistent calls can also be dropped in any of the following scenarios: • The call is dropped by the remote destination (the remote destination hangs up). • The remote destination is no longer active. If there is an active call, as soon as that call is over, the persistent call will drop. After they are created, persistent calls remain connected until the maximum call duration timer expires in which case the call will be cleared. Some of the new JTAPI Error Codes introduced as part of this feature include the following: • CiscoJtapiException.CTIERR_CREATE_PERSISTENT_CALL_FAILED: Indicates that there is an issue with creating a persistent call. • CiscoJtapiException.CTIERR_PERSISTENT_CALL_EXISTS: Indicates that a persistent call already exists. • CiscoJtapiException.CTIERR_OPERATION_NOT_ALLOWED_ON_PERSISTENT_CALL: Indicates that the specified operation is not allowed on a persistent call. • CiscoJtapiException.CTIERR_DISCONNECT_PERSISTENT_CALL_FAILED_CALL_ACTIVE: Indicates that the request to disconnect the persistent call failed because there is an active customer call. Only when there are no active calls can the persistent call be disconnected. • CiscoJtapiException.CTIERR_PERSISTENT_CALL_BEING_SETUP: Indicates that the request failed because a persistent call is already being set up. Backward Compatibility This feature is backward compatible and existing applications are not affected by this feature. Interface CiscoAddress Changes CiscoAddress is enhanced with the addition of new APIs to create a persistent call and to retrieve the connection object that is associated to the persistent call. createPersistentCall (Terminal terminal, String callerIDNumber, String callerIDName) This interface creates a persistent call for this address and will return the call object for the newly created call. Note that CiscoProvider and the address must be in IN_SERVICE state, otherwise InvalidStateException will be thrown. This API cannot be invoked on external addresses. Doing so will result in MethodNotSupportedException to be thrown. If while trying to allocate a globalCallId for the persistent call and an error occurs, ResourceUnavailableException will be thrown. All other errors encountered will result in PlatformException to be thrown. CiscoCall getPersistentConnection (Terminal terminal) This interface will return the connection object that is associated with the persistent call. It returns null if there is no persistent call. This API cannot be invoked on external addresses. Doing so will result in MethodNotSupportedException to be thrown. Connection Cisco Unified JTAPI Developers Guide for Cisco Unified Communications Manager, Release 15 and SUs 136 Features Supported by Cisco Unified JTAPI Persistent Connection