# Sending and receiving signaling patterns

This topic describes how to:

- Query the current state of the supervisory signaling bits.

- Assert a supervisory signaling pattern at a station.

These functions are not intended for use in typical applications. Ordinarily, the supervisory signaling is transparently controlled by the on-board DSP. Use these functions when special-purpose applications require explicit control of the supervisory signaling. In such cases, disable enhanced mode as described in CX 2000 modes.

## Querying signaling bits

To retrieve the current state of the supervisory signaling bits for a station, invoke cdiGetSignalState, passing the context handle to the station. cdiGetSignalState returns a pointer to a value indicating the state of the bits:

Pattern Value | Description
--- | ---
00000xxx (xxx is any value) | The bits are low (the station is on-hook).
00001xxx (xxx is any value) | The bits are high (the station is off-hook).

Do not use cdiGetSignalState when enhanced mode is enabled.

## Asserting a signaling pattern at a station

To assert a signaling pattern at a station, invoke cdiAssertSignal. With the invocation, pass the context handle to the station and one of the following values:

Pattern value | Description
--- | ---
0x00 | Battery off, no ringing
0x08 | Battery on, no ringing
0x0C | Battery on, continuous ringing

Do not use cdiAssertSignal when enhanced mode is enabled.