# Sending protocol-specific information

An application can send protocol-specific information with almost any function call. This information can include billing rate indications, user-to-user (UUI) information, or anything supported by the protocol. An application can also send protocol-specific line or call messages without invoking a call control function.

## Sending protocol-specific information with a function call

Most NCC API functions include a void* pointer that the application can use to reference a protocol-specific parameter structure. In cases where default parameters exist for a function, the application can pass NULL to use the default settings. To learn more about using this pointer with your protocol, see the protocol-specific documentation.

The following functions include the void* pointer:

- nccAcceptCall

- nccAnswerCall

- nccAutomaticTransfer
  Two protocol-specific parameter structures can be passed with this function: one contains call placement parameters for the second call; the other contains call transfer parameters.

- nccBlockCalls

- nccDisconnectCall

- nccHoldCall

- nccPlaceCall

- nccRejectCall

- nccReleaseCall

- nccRetrieveCall

- nccSendCallMessage

- nccSendDigits

- nccSendLineMessage

- nccStartProtocol

- nccStopProtocol

- nccTransferCall

- nccUnblockCalls

## Sending protocol-specific call and line messages

The NCC API provides two functions that serve as escape mechanisms for sending call and line messages:

Use this function... | To send a... | From this line state...
--- | --- | ---
nccSendCallMessage | Call message | Active or idle
nccSendLineMessage | Line message | Any line state except uninitialized

Not all protocols support sending of call messages or line messages using these escape mechanisms. The application can call nccQueryCapability to determine if the protocol supports one and/or the other. The NCC_CAP_SEND_CALL_MESSAGE bit in the capabilitymask indicates if the application can use nccSendCallMessage. NCC_CAP_SEND_LINE_MESSAGE indicates if the application can use nccSendLineMessage.

The application cannot use these mechanisms to specify a call or line message that causes a call or line state change as a result of successful message delivery.