1.12. Error Handling - ISDN Cause Values
In addition to Global Call cause values that may be retrieved when an error occurs in an ISDN environment, ISDN cause values may also apply. (See Table 6, Error Location Values to identify the source of the cause and for a cross-reference to tabular listings of various ISDN causes.) These ISDN cause values are retrieved using either the gc_ErrorInfo( ) function when <0 is returned or the gc_ResultInfo( ) function when any event, such as GCEV_TASKFAIL or GCEV_RESTARTFAIL, is returned. For more information see the "Error Handling" section in the Global Call API Programming Guide.
ISDN causes comprise two parts: error location and reason. The error location is the upper byte and the reason is the lower byte. For example, the error code ERR_ISDN_FW | ISDN_CHRST_ERR indicates that the error is located in the firmware and the reason for the failure is a channel restart error. The ISDN error location values are listed in Table 6.
Table 6. Error Location Values
|
Error Location
|
Description
|
| FirmwareERR_ISDN_FW |
Indicates a firmware-related cause/error. Firmware errors are listed in the isdncmd.h file and in Table 7. Note: ISDN Firmware-Related Cause values are supported when using Springware boards only; not supported when using DM3 boards. |
| NetworkERR_ISDN_CAUSE |
Returned with a GCEV_DISCONNECTED event. Network cause values are listed in the isdncmd.h file and in Table 8. The values listed in this table refer to International Telecommunications Union (ITU) Q.931 standards. Not all cause values are universally supported across switch types. |
| ISDN LibraryERR_ISDN_LIB |
Indicates an ISDN call control library-related cause/error. ISDN library errors are listed in the isdnerr.h file and in Table 9. Note: ISDN Call Control Library Cause values are supported when using Springware boards only; not supported when using DM3 boards. |
Table 7. ISDN Firmware-Related Cause Values
|
Cause
|
Description
|
| ISDN_BADARGU |
Invalid internal firmware command argument(s) possibly caused by an invalid function parameter. |
| ISDN_BADCALLID |
Invalid call ID. No call record exists for specified call ID. |
| ISDN_BADDSL |
Wrong DSL (Digital Subscriber Line) number. Will not occur in non-NFAS environment. |
| ISDN_BADIF |
Invalid ISDN interface ID. Will not occur in non-NFAS environment. |
| ISDN_BADMSG |
Unsupported messages for DASS2: ALERTING, CONGESTION, FACILITY, FACILITY_ACKNOWLEDGEMENT, FACILITY_REJECT, UUI, NOTIFY, and RELEASE. |
| ISDN_BADSERVICE |
The requested network service, such as gc_ReqANI( ) or gc_SndMsg( ), is not supported by the network and was rejected. |
| ISDN_BADSS |
Unspecified service state was requested. |
| ISDN_BADSTATE |
Cannot accept the event in the current state. |
| ISDN_BADSTR |
Invalid phone number string. Phone digits string contains an invalid phone digit number. |
| ISDN_BADTS |
Wrong time slot. Will occur when a second call is placed on an already active channel. |
| ISDN_CFGERR |
Configuration error |
| ISDN_CHRST_ERR |
Channel restart error |
| ISDN_INVALID_EVENT |
Invalid event for the switch. |
| ISDN_INVALID_SWITCH_TYPE |
Switch type not supported. |
| ISDN_LINKFAIL |
Layer 2 data link failed. Firmware cannot send a message due to Layer 2 data link failure. |
| ISDN_MISSIE |
Missing mandatory IE. |
| ISDN_NOAVAIL |
Out-of-memory, cannot accept a new call request. |
| ISDN_OK |
Normal return code. |
| ISDN_TSBUSY |
Time slot already in use. |
| Note: ISDN Firmware-Related Cause Values are not supported when using DM3 boards. |
Table 8. ISDN Network Cause Values
|
Cause
|
Q.931 Cause Number: Name
|
| UNASSIGNED_NUMBER |
Cause 01: Unassigned (unallocated) number |
| NO_ROUTE |
Cause 02: No route to specified transit network |
| CHANNEL_UNACCEPTABLE |
Cause 06: Channel unacceptable |
| NORMAL_CLEARING |
Cause 16: Normal call clearing |
| USER_BUSY |
Cause 17: User busy |
| NO_USER_RESPONDING |
Cause 18: No user responding |
| CALL_REJECTED |
Cause 21: Call rejected |
| NUMBER_CHANGED |
Cause 22: Number changed |
| DEST_OUT_OF_ORDER |
Cause 27: Destination out of order |
| INVALID_NUMBER_FORMAT |
Cause 28: Invalid number format (incomplete number) |
| FACILITY_REJECTED |
Cause 29: Facility rejected |
| RESP_TO_STAT_ENQ |
Cause 30: Response to STATUS ENQUIRY |
| UNSPECIFIED_CAUSE |
Cause 31: Normal, unspecified |
| NO_CIRCUIT_AVAILABLE |
Cause 34: No circuit/channel available |
| NETWORK_OUT_OF_ORDER |
Cause 38: Network out of order |
| TEMPORARY_FAILURE |
Cause 41: Temporary failure |
| NETWORK_CONGESTION |
Cause 42: Switching equipment congestion |
| REQ_CHANNEL_NOT_AVAIL |
Cause 44: Requested circuit/channel not available |
| PRE_EMPTED |
Cause 45: Call preempted |
| FACILITY_NOT_SUBSCRIBED |
Cause 50: Requested facility not subscribed (see Q.850) |
| OUTGOING_CALL_BARRED |
Cause 52: Outgoing call barred |
| INCOMING_CALL_BARRED |
Cause 54: Incoming call barred |
| BEAR_CAP_NOT_AVAIL |
Cause 58: Bearer capability not presently available |
| SERVICE_NOT_AVAIL |
Cause 63: Service or option not available, unspecified |
| CAP_NOT_IMPLEMENTED |
Cause 65: Bearer capability not implemented |
| CHAN_NOT_IMPLEMENTED |
Cause 66: Channel type not implemented |
| FACILITY_NOT_IMPLEMENT |
Cause 69: Requested facility not implemented |
| INVALID_CALL_REF |
Cause 81: Invalid call reference value |
| CHAN_DOES_NOT_EXIST |
Cause 82: Identified channel does not exist |
| INCOMPATIBLE_DEST |
Cause 88: Incompatible destination |
| INVALID_MSG_UNSPEC |
Cause 95: Invalid message, unspecified |
| MANDATORY_IE_MISSING |
Cause 96: Mandatory information element is missing |
| NONEXISTENT_MSG |
Cause 97: Message type non-existent or not implemented |
| WRONG_MESSAGE |
Cause 98: Message not compatible with call state or message type non-existent or not implemented |
| BAD_INFO_ELEM |
Cause 99: Information element non-existent or not implemented |
| INVALID_ELEM_CONTENTS |
Cause 100: Invalid information element contents |
| WRONG_MSG_FOR_STATE |
Cause 101: Message not compatible with call state |
| TIMER_EXPIRY |
Cause 102: Recovery on time expiry |
| MANDATORY_IE_LEN_ERR |
Cause 103: Invalid length for information element |
| PROTOCOL_ERROR |
Cause 111: Protocol error, unspecified |
| INTERWORKING_UNSPEC |
Cause 127: Interworking, unspecified |
Table 9. ISDN Call Control Library Cause Values
|
Cause
|
Description
|
| E_ISSUCC |
Message acknowledged |
| E_ISREADY |
Board not ready |
| E_ISCONFIG |
Configuration error |
| E_ISNOINFO |
Information not available |
| E_ISNOFACILITYBUF |
Network facility buffer not ready |
| E_ISBADBUFADDR |
Invalid buffer address |
| E_ISBADTS |
Invalid time slot |
| E_ISMAXLEN |
Exceeds maximum length |
| E_ISNULLPTR |
Null pointer error |
| E_ISNOMEM |
Out of memory |
| E_ISFILEOPENFAIL |
Failed to open a file |
| E_ISTNACT |
Trace is not activated; application either tried to stop a non-existent trace function or to start the trace function twice on the same D channel. |
| E_ISBADPAR |
Invalid input parameter(s) |
| E_ISBADCALLID |
Invalid call identifier |
| E_ISBADCRN |
Invalid call reference number |
| E_ISNOINFOBUF |
Information requested by the gc_GetCallInfo( ) function call is not available. |
| E_ISINVNETWORK |
Invalid network type (applies only to the gc_ReqANI( ) function). |
| E_FB_UNAVAIL |
Flexible billing unavailable (applies only to the gc_SetBilling( ) function). |
| E_ISBADIF |
Invalid interface number |
| E_TRACEFAIL |
Failed to get trace information |
| E_UNKNOWNRESULT |
Unknown result code |
| E_BADSTATE |
Invalid state |
| E_ABORTED |
Previous task aborted by gc_ResetLineDev( ) function. |
| Note: ISDN Call Control Library Cause Values are not supported when using DM3 boards. |