# Getting status information

The following status information is available:

- Line status information, including the current state of the line and the name of the protocol running on the line.

- Call status information, including the current call state and the calling address (caller ID).

- Protocol-specific call status information.

## Getting line status information

To get status information on a line, the application can invoke nccGetLineStatus with the line handle. This synchronous function can be called at any time, regardless of the line state or call state.

Line status information is returned in an NCC_LINE_STATUS structure. For details on this structure, refer to nccGetLineStatus.

## Getting call status information

To get status information on a call, the application can invoke nccGetCallStatus with the call handle. This synchronous function can be invoked in any call state, as long as the line is in an active or an idle line state.

Call status information is returned in an NCC_CALL_STATUS structure. For details on this structure, refer to nccGetCallStatus.

If the calling address information (caller ID) changes, the application receives NCCEVN_CALL_STATUS_UPDATE. This event can occur in any call state, as long as the line state is active or idle. The value field of the event contains reason code NCC_CALL_STATUS_CALLINGADDR. The application can then invoke nccGetCallStatus to get the updated information.

This event is generated only if the NCC_REPORT_STATUSINFO bit is set in the NCC.START.eventmask parameter. For more information, refer to NCC API global parameters.

## Getting protocol-specific call status information

With certain protocols, the application can retrieve a separate structure containing protocol-specific call status information. The application can invoke nccQueryCapability to determine if the protocol supports this feature. Protocol-specific call status information may include billing rates and user-to-user information (UUI). To learn more about the structure specific to your protocol, see your protocol-specific documentation.

To retrieve a structure containing protocol-specific information, the application invokes nccGetExtendedCallStatus. This synchronous function can be invoked in any call state, as long as the line state is active or idle.

If protocol-specific call status information changes, the application receives NCCEVN_EXTENDED_CALL_STATUS_UPDATE. The application can then invoke nccGetExtendedCallStatus to get the updated information.

This event is generated only if the NCC_REPORT_STATUSINFO bit is set in the NCC.START.eventmask parameter. For more information, refer to NCC API global parameters.