# adiStopDial

Stops the dial operation.

#### Supported board types

- AG

- CG

#### Prototype

DWORD adiStopDial ( CTAHD ctahd)

Argument | Description
ctahd | Context handle returned by ctaCreateContext or ctaAttachContext.

#### Return values

Return value | Description
SUCCESS |
CTAERR_FUNCTION_NOT_ACTIVE | Attempt made to stop a function that was not running.
CTAERR_INVALID_CTAHD | Context handle is invalid.
CTAERR_INVALID_SEQUENCE | Attempt made to stop a function that is already being stopped.
CTAERR_INVALID_STATE | Function not available in the current port state.
CTAERR_SVR_COMM | Server communication error.

#### Events

Event | Description
ADIEVN_DIAL_DONE | After the dial operation stops, the ADI service generates a DONE event with the value field set to CTA_REASON_STOPPED.

#### Details

Use adiStopDial to stop the dial function started by adiStartDial. You can restart the dial operation (and any other operation requiring voice output) after you receive the DONE event.

#### Example

int myStopDial( CTAHD ctahd )
{
CTA_EVENT event;
if( adiStopDial( ctahd ) != SUCCESS )
return MYFAILURE;
while( 1 )
{
myGetEvent( &event ); /* see ctaWaitEvent example */
switch( event.id )
{
case ADIEVN_DIAL_DONE:
if( event.value == CTA_REASON_RELEASED )
return MYDISCONNECT; /* call has been terminated */
else if( CTA_IS_ERROR( event.value ) )
return MYFAILURE; /* API error */
else
return SUCCESS; /* stopped normally */
break;
/* might include cases to handle disconnect, DTMFs, etc. */
}
}
}