Cisco JTAPI Developer Guide for Cisco CallManager 4.0(1)
Troubleshooting Cisco JTAPI
Downloads: This chapterpdf (PDF - 199.0KB) The complete bookPDF (PDF - 9.77MB) | Feedback

Troubleshooting Cisco JTAPI

Table Of Contents

Troubleshooting Cisco JTAPI

CTI Error Codes

CiscoEvent IDs

Additional Troubleshooting Information

Viewing JTAPI Debug Output


Troubleshooting Cisco JTAPI


This section contains CTI Error Codes, CiscoEvent IDs, and other information to assist with troubleshooting efforts.

CTI Error Codes

Table C-1 CTI Error Codes 

Error Name
Description

CFWDALL_ALREADY_OFF

Attempt to turn off CFWALL while it is already off

CFWDALL_ALREADY_SET

Attempt to set CFWALL while it is already set

CFWDALL_DESTN_INVALID

Attempt to CFWALL to an invalid destination

COMMAND_NOT_IMPLEMENTED_ON_DEVICE

Internal call processing error: device does not support the command.

CONFERENCE_ALREADY_PRESENT

Attempt to conference a party that is already in conference

CONFERENCE_FAILED

Conference complete was not successful.

CONFERENCE_FULL

All conference bridges are busy.

CONFERENCE_INACTIVE

Attempt to complete conference while consult conference is not active

CONFERENCE_INVALID_PARTICIPANT

Trying to conference to self or an invalid participant

CTIERR_ASSOCIATED_LINE_NOT_OPEN

Command issued on a line that must be open

CTIERR_CALL_AREADY_EXISTS

Another call already exists on the line.

CTIERR_CALLHANDLE_NOTINCOMINGCALL

Attempt to answer a call that either does not exists or is not in the correct state

CTIERR_CALLHANDLE_UNKNOWN_TO_LINECONTROL

Attempt to redirect call that was unknown to line control

CTIERR_CANNOT_OPEN_DEVICE

Device open failed because the associated device is shutting down (unregistering).

CTIERR_CANNOT_TERMINATE_MEDIA_ON_PHONE

An application cannot terminate media when the device has a physical phone (the phone always terminates the media).

CTIERR_CLUSTER_LINK_FAILURE

Link failed to one of the call managers in the cluster (network error).

CTIERR_COMMAND_NOT_IMPLEMENTED_ON_DEVICE

Device does not support the command.

CTIERR_DB_ERROR

Device query contained an illegal device type.

CTIERR_DB_ILLEGAL_DEVICE_TYPE

No longer used

CTIERR_DB_NO_MORE_DEVICES

No longer used

CTIERR_DEVICE_NOT_OPEN

Attempt to open either a line on a device that is not open or a device that must already be registered (that is, an IP phone device)

CTIERR_DIRECTORY_LOGIN_FAILED

Login to the directory server failed when the provider was opened.

CTIERR_HOLDFAILED

Line control or call control rejected hold.

CTIERR_ILLEGAL_CALLINGPARTY

Attempt to originate call by using a calling party that is not on the device

CTIERR_ILLEGAL_CALLSTATE

Line is not in a legal state to invoke the command.

CTIERR_ILLEGAL_HANDLE

Handle is unknown to the system.

CTIERR_ILLEGAL_MESSAGE_FORMAT

QBE protocol error (bug)

CTIERR_INCORRECT_MEDIA_CAPABILITY

Device registration failed due to incorrect media capability.

CTIERR_INVALID_DTMFDIGITS

Play DTMF request failed because it is an invalid DTMF digit.

CTIERR_LINECONTROL_FAILURE

Line control refuses to let a new call be initiated because of its state (probably bug).

CTIERR_MEDIA_ALREADY_TERMINATED

Attempt to terminate on a media device that already has media terminated

CTIERR_NOT_INITIALIZED

Attempt to open a provider before CTI initialization completes

CTIERR_OPERATION_FAILED_QUIETCLEAR

Feature unavailable for this call due to temporary failure

CTIERR_PROVIDER_ALREADY_OPEN

Attempt to reopen a provider

CTIERR_PROVIDER_NOT_OPEN

Attempt to issue a CTI command before the provider was open

CTIERR_REDIRECT_CALL_CALL_TABLE_FULL

Internal error returned from call control

CTIERR_REDIRECT_CALL_DESTINATION_BUSY

Redirect destination is busy.

CTIERR_REDIRECT_CALL_DESTINATION_OUT_OF_ORDER

Redirect destination is out of order.

CTIERR_REDIRECT_CALL_DIGIT_ANALYSIS_TIMEOUT

Internal error returned from call control

CTIERR_REDIRECT_CALL_DOES_NOT_EXIST

Attempt to redirect a call that does not exist or is not longer active

CTIERR_REDIRECT_CALL_INCOMPATIBLE_STATE

Internal error returned from call control

CTIERR_REDIRECT_CALL_MEDIA_CONNECTION_FAILED

Internal error returned from call control

CTIERR_REDIRECT_CALL_NORMAL_CLEARING

Internal error returned from call control

CTIERR_REDIRECT_CALL_ORIGINATOR_ABANDONED

Far end hung up on the call being redirected

CTIERR_REDIRECT_CALL_PARTY_TABLE_FULL

Internal error returned from call control

CTIERR_REDIRECT_CALL_PENDING_REDIRECT_TRANSACTION

Internal error returned from call control

CTIERR_REDIRECT_CALL_PROTOCOL_ERROR

Internal error returned from call control

CTIERR_REDIRECT_CALL_UNKNOWN_DESTINATION

Attempt to redirect to an unknown destination

CTIERR_REDIRECT_CALL_UNKNOWN_ERROR

Internal error returned from call control

CTIERR_REDIRECT_CALL_UNKNOWN_PARTY

Internal error returned from call control

CTIERR_REDIRECT_CALL_UNRECOGNIZED_MANAGER

Internal error returned from call control

CTIERR_REDIRECT_CALLINFO_ERR

Internal error returned from call control

CTIERR_REDIRECT_ERR

Internal error returned from call control

CTIERR_RETRIEVEFAILED

Line control or call control rejected retrieve.

CTIERR_SSAPI_NOT_REGISTERED

Redirect command was issued when the internal supporting interface was not initialized; either CTI has not yet finished its initialization or internal error occurred.

CTIERR_TIMEOUT

No longer used

CTIERR_TRANSFERFAILED

Transfer failed (probable cause is one of the call legs was hung up or disconnected from the far end).

CTIERR_TRANSFERFAILED_CALLCONTROL_TIMEOUT

Expected response from call control not received during a transfer

CTIERR_TRANSFERFAILED_DESTINATION_BUSY

Attempt to transfer to a busy destination

CTIERR_TRANSFERFAILED_DESTINATION_UNALLOCATED

Attempt to transfer to a directory number that is not registered

CTIERR_TRANSFERFAILED_TRANSFER_ALREADY_OUTSTANDING

Existing transfer is still in progress.

CTIERR_UNDEFINED_LINE

Line was specified that was not found on the device.

CTIERR_UNKNOWN_GLOBAL_CALL_HANDLE

No longer used

CTIERR_UNRECOGNIZABLE_PDU

QBE protocol error (bug)

DARES_INVALID_REQ_TYPE

Internal call processing error: DaRes invalid request type

DATA_SIZE_LIMIT_EXCEEDED

XML data object size is bigger than allowed.

DEVICE_OUT_OF_SERVICE

Device is out of service.

DIGIT_GENERATION_ALREADY_IN_PROGRESS

Digit generation is already in progress.

DIGIT_GENERATION_CALLSTATE_CHANGED

Call state invalid to continue

DIGIT_GENERATION_WRONG_CALL_HANDLE

Call handle is invalid and call may be already gone.

DIGIT_GENERATION_WRONG_CALL_STATE

Call state is not valid to generate digits.

DIRECTORY_TEMPORARY_UNAVAILABLE

Directory is temporarily unavailable.

INVALID_LINE_HANDLE

Attempt to perform a line operation on an invalid line handle

LINE_INFO_DOES_NOT_EXIST

Line information does not exist in database DbDNResponse.

LINE_NOT_PRIMARY

Internal error returned from call control

MAX_NUMBER_OF_CTI_CONNECTIONS_REACHED

The maximum number of CTI connections reached; may need to reconfigure the maximum number of CTI connections or log out of some applications to be able to log in

MSGWAITING_DESTN_INVALID

Attempt to set message waiting lamp for an invalid DN; Message Waiting Destination not found

OPERATION_NOTA_AVAILABLE_IN_CURRENT_STATE

Feature operation is not available in the current state.

PROVIDER_CLOSED

Attempt to close provider while it is already closed

PROTOCOL_TIMEOUT

Internal error returned from call control

RETRIEVEFAILED_ACTIVE_CALL_ON_LINE

Error occurred in retrieving held call; call may be already dropped.

TRANSFER_INACTIVE

Attempt to complete transfer while consult transfer is not there


CiscoEvent IDs

//Prov Ev
CiscoProvFeatureUnRegisteredEv = 0x40000008; 	
	//Term Ev
	CiscoTermCreatedEv = 0x40001001; 
	CiscoTermDataEv = 0x40001002; 
	CiscoTermInServiceEv = 0x40001003; 
	CiscoTermOutOfServiceEv = 0x40001004; 
	CiscoTermRemovedEv = 0x40001005; 
	CiscoTermActiveStatusEv = 0x40001006; 
	CiscoTermAlertingStatusEv = 0x40001007; 
	CiscoTermHoldStatusEv = 0x40001008; 
	CiscoTermIdleStatusEv = 0x40001009;
	CiscoTermButtonPressedEv = 0x40001010;
	CiscoTermRegistraionFailedEv = 0x40001011;
	//Addr Ev
	CiscoAddrCreatedEv = 0x40002001; 
	CiscoAddrInServiceEv = 0x40002002; 
	CiscoAddrOutOfServiceEv = 0x40002003; 
	CiscoAddrRemovedEv = 0x40002004; 
	CiscoOutOfServiceEv = 0x40002005;
	CiscoAddrAddedToTerminalEv = 0x40002006;
	CiscoAddrRemovedFromTerminalEv = 0x40002007;
	CiscoAddrAutoAcceptStatusChangedEv = 0x40002008;
	//Call Ev
	CiscoProvCallParkEv = 0x40003001; 
	CiscoConferenceEndEv = 0x40003002;
	CiscoConferenceStartEv = 0x40003003;
	CiscoConsultCallActiveEv = 0x40003004;
	CiscoTransferEndEv = 0x40003005;
	CiscoTransferStartEv = 0x40003006;
	//RTP/Misc Ev
	CiscoRTPInputStartedEv = 0x40004001; 
	CiscoRTPInputStoppedEv = 0x40004002; 
	CiscoRTPOutputStartedEv = 0x40004003; 
	CiscoRTPOutputStoppedEv = 0x40004004; 
	CiscoMediaOpenLogicalChannelEv = 0x40004005; 
	// TermConnEvent
	CiscoTermConnPrivacyChangedEv = 0x40005001;

Additional Troubleshooting Information

Viewing JTAPI Debug Output

To view JTAPI debug output, use the JTPREFS application to change the trace settings. The JTPREFS application allows you to enable or disable various kinds of tracing.

JTPREFS is installed in the %SystemRoot%\java\lib directory along with the JTAPI classes. Cisco JTAPI Preferences is installed by default in Program Files\JTAPITools.

To open the Cisco JTAPI Preferences utility, choose Start > Programs > Cisco JTAPI > JTAPI Preferences.

The following trace levels are defined:

WARNING - warning events

INFORMATIONAL - status events

DEBUG - debugging events

If DEBUG is enabled, JTPREFS allows you to enable or disable various debugging levels.

The following debugging levels are defined:

TAPI_DEBUGGING - to trace JTAPI methods and events

TAPI_IMPLDEBUGGING - internal JTAPI implementation trace

CTI_DEBUGGING - to trace CallManager events that are sent to the JTAPI implementation

CTIIMPL_DEBUGGING - internal CTICLIENT implementation trace

PROTOCOL_DEBUGGING - full CTI protocol decoding

MISC_DEBUGGING - miscellaneous low-level debug trace

Traces can be directed to a specific path and folder rather than to the application directory by default. The same trace folder could be used for successive or more than one simultaneous launch of JTAPI. Different launches of JTAPI would also send the traces to different folders. This allows simultaneous JTAPI instances to maintain independent trace destinations