# Placing on hold and retrieving a call

Use nccHoldCall or nccRetrieveCall to place a call on hold and retrieve a previously held call.

#### Prototype

DWORD NMSAPI nccHoldCall ( NCC_CALLHD callhd, void *holdparms)

Argument | Description
callhd | Call handle returned to the application with the NCCEVN_SEIZURE_DETECTED event or returned from nccPlaceCall.
holdparms | Not used with SIP for NCC.

#### Details

nccHoldCall sends a RE-INVITE using the SDP that was used when establishing the call. The SDP is modified by marking the stream as sendonly or inactive if previously marked as sendrecv or recvonly respectively. For backward compatibility, the connection address is also set to 0.0.0.0. The call must be in the connected state.

#### Example

ret = nccHoldCall(callhd, NULL);

#### Prototype

DWORD NMSAPI nccRetrieveCall ( NCC_CALLHD callhd, void *holdparms)

Argument | Description
callhd | Call handle returned to the application with the NCCEVN_SEIZURE_DETECTED event or returned from nccPlaceCall.
holdparms | Not used with SIP for NCC.

#### Details

nccRetrieveCall sends a RE-INVITE using the SDP that was used when establishing the call. The call be on hold prior to using this function.

#### Example

ret = nccRetrieveCall(callhd, NULL);