# Using extended parameters

An application can send various types of ISDN-specific information during certain call control operations. This information includes address information, user-to-user information (UUI), and other values.

When using the NCC API, information is sent through extended parameter structures. An application can provide the extended parameter structures during the following operations:

- Call establishment (with nccPlaceCall)

- Call answering (with nccAnswerCall)

- Call accepting (with nccAcceptCall)

- Call rejection (with nccRejectCall)

- Call disconnect (with nccDisconnectCall)

- Call establishment (with nccSendDigits)

- Call transfer (with nccTransferCall)

In each case, the information is sent when the function call is made.

To specify the information to be sent, fill a data structure and specify p_data as the name for the pointer to the structure. Then, specify the p_data structure as the void * argument in the appropriate function invocation.

Not all fields in these data structures can be used at all times. The fields valid for a given message differ depending upon the network protocol variant used and the actual ISDN message sent on the trunk in response to the function call.

Refer to the nms\include\isdnval.h file that contains the values for many of the fields found in extended parameter structures and the NCC_ISDN_EXT_CALL_STATUS structure.

For each of the extended parameter descriptions, tables list valid field values for each network protocol variant. The fields valid for a function depend not on the function itself, but on the ISDN message that the function sends on the trunk (for example, SETUP, CALL PROCEEDING, and so on). For nccAnswerCall, nccAcceptCall, and nccRejectCall, the message sent by each function depends upon the setting of the NCC.X.ADI_ISDN.START_EXT.flags parameter. Refer to ISDN TCP parameters overview for more information.

Only one message of a given type (such as CALL PROCEEDING, PROGRESS, and ALERTING) can be sent to the network. For example, if your application sets the NCC.X.ADI_ISDN.START_EXT.flags parameter such that a PROGRESS message is to be sent with nccAcceptCall and nccRejectCall, and then calls both functions, only one PROGRESS message is sent.