This section provides scenarios of normal basic call control procedures for call establishment and termination. Both Facility Associated Signaling (FAS) and Non-Facility Associated Signaling (NFAS) cases are illustrated.
Network initiated call (inbound call)Synchronous Programming: The incoming call terminates the cc_WaitCall( ) function. cc_WaitCall( ) must be issued for the next incoming call after the last call is terminated.
Application |
Device Driver |
State |
Firmware |
Network |
cc_WaitCall( ) |
ISDN_Unblock_Ts --> |
NULL |
Incoming call unblocked |
|
Set_Up <-- | ||||
*B-channel cut-thru CALL_PROCEEDING --> |
Proceeding --> | |||
CRN assigned termination of cc_WaitCall() <-- |
OFFERED |
CALL_INCOMING <-- |
||
cc_GetDNIS( ) |
||||
Return immediately with DNIS <-- |
||||
cc_GetANI( ) |
||||
Return immediately with ANI <-- |
||||
cc_CallProgress( ) |
Call_Progress --> |
P1=8 (in-band information is now available) CALL_PROGRESS --> |
Progress --> | |
Return immediately <-- |
No response from F/W to driver |
|||
cc_AcceptCall( ) |
Call_Alert --> |
CALL_ALERT --> |
Alerting --> | |
termination of cc_AcceptCall() <-- |
ACCEPTED |
CALL_ALERT_ACK <-- |
||
cc_AnswerCall( ) |
Call_Connect --> |
*B-channel cut-thru CALL_CONNECT --> |
Connect--> | |
termination of cc_AnswerCall() <-- |
CONNECTED |
CALL_CONNECT_ACK <-- |
Conn_ACK <-- | |
* Application may connect a voice resource channel to the B channel. | ||||
Asynchronous Programming: Incoming call notification is received as an event. cc_WaitCall( ) needs to be issued only once when the system is initialized.
Application |
Device Driver |
State |
Firmware |
Network |
cc_WaitCall( ) |
ISDN_Unblock_Ts --> |
NULL |
Incoming call unblocked |
|
<-- Set_Up | ||||
CALL_PROCEEDING --> |
Proceeding --> | |||
CRN assigned CCEV_OFFERED <-- |
OFFERED |
CALL_INCOMING <-- |
||
cc_GetDNIS( ) |
*B-channel cut-thru |
|||
Return immediately with DNIS <-- |
||||
cc_GetANI( ) |
||||
Return immediately with ANI <-- |
||||
cc_CallProgress( ) |
Call_Progress --> |
CALL_PROGRESS P1=8 (in-band information is now available) --> |
Progress --> | |
No response from F/W to driver |
||||
cc_AcceptCall( ) |
Call_Alert --> |
CALL_ALERT --> |
Alerting --> | |
CCEV_ACCEPTCALL --> |
ACCEPTED |
CALL_ALERT_ACK --> |
||
cc_AnswerCall( ) |
Call_Connect --> |
*B-channel cut-thru CALL_CONNECT --> |
Connect --> | |
CCEV_ANSWERCALL <-- |
CONNECTED |
CALL_CONNECT_ACK <-- |
Conn_ACK <-- | |
* Application may connect a voice channel to the B channel. | ||||
Network terminated callFirmware-controlled disconnect: This is the default setting for parameter 24 in the *.prm file
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
*B channel disconnected CALL_RELEASE --> |
Disconnect <-- | |||
CCEV_DISCONNECTED <-- |
DISCONNECTED |
CALL_DISC <-- |
||
**Release --> | ||||
Rel_Comp <-- | ||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
||
Termination of cc_DropCall() <-- |
CALL_CLEARED <-- |
|||
ISDN_Block_Ts --> |
Incoming call unblocked |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
NULL |
||
Driver releases CRN Return |
F/W releases CRN CALL_DEALLOC_ACK <-- |
|||
*In the firmware-controlled disconnect process, the firmware ensures that the RELEASE is sent out to the network immediately after the DISCONNECT is received. **cc_WaitCall( ) must be issued again to receive the next incoming call. | ||||
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
*B channel disconnected CALL_RELEASE --> |
Disconnect <-- | |||
CCEV_DISCONNECTED <-- |
DISCONNECTED |
CALL_DISCONNECTED <-- |
||
Release --> | ||||
Rel_Comp <-- | ||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
NULL |
||
Driver releases CRN Return |
F/W releases CRN CALL_DEALLOC_ACK <-- |
|||
*In the firmware-controlled disconnect process, the firmware ensures that the RELEASE is sent out to the network immediately after the DISCONNECT is received. | ||||
Host-controlled disconnect: Parameter 24 in the *.prm file = 01
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
CCEV_DISCONNECTED <-- |
DISCONNECTED |
CALL_DISC <-- |
Disconnect <-- | |
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
||
Termination of cc_DropCall() <-- |
CALL_CLEARED <-- |
|||
ISDN_Block_Ts --> |
Incoming call unblocked |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
NULL |
CALL_RELEASE --> |
*Release --> |
Driver releases CRN Return |
F/W releases CRN CALL_DEALLOC_ACK <-- |
|||
Rel_Comp <-- | ||||
* In the host-controlled disconnect process, the RELEASE message gets sent out only when the Host does a cc_ReleaseCall( ). The cc_WaitCall( ) must be issued again to receive the next incoming call. | ||||
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
CCEV_ DISCONNECTED <-- |
DISCONNECTED |
CALL_DISC <-- |
Disconnect <-- | |
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
|||
cc_ |
Call_Dealloc --> |
NULL |
CALL_RELEASE --> |
*Release --> |
Driver releases CRN Return |
F/W releases CRN CALL_DEALLOC_ACK <-- |
|||
Rel_Comp <-- | ||||
* In the host-controlled disconnect process, the RELEASE message gets sent out only when the Host does a cc_ReleaseCall( ). | ||||
Application initiated call (outbound call)
Application |
Device Driver |
State |
Firmware |
Network |
NULL |
||||
cc_MakeCall( ) |
CRN assigned Call_Outgoing --> |
|||
CALL_OUTGOING --> |
Set Up --> | |||
CCEV_PROCEEDING (if requested not masked) <-- |
DIALING |
*B channel cut thru CALL_PROCEEDING <-- |
Proceeding <-- | |
CCEV_PROGRESSING (if requested not masked) <-- |
PI=1 (interworking with a non-ISDN has occurred within the network) CALL_PROGRESS <-- |
Progress <-- | ||
CCEV_PROGRESSING (if requested not masked) <-- |
PI=2 (the destination user is not ISDN ) CALL_PROGRESS <-- |
Progress <-- | ||
Application may assign a voice resource to detect the in-band tone |
CCEV_PROGRESSING (if requested not masked) <-- |
PI=8 (in-band information is now available) CALL_PROGRESS <-- |
Progress <-- | |
CCEV_ALERTING (if requested not masked) <-- |
ALERTING |
CALL_ALERT <-- |
Alerting option <-- | |
CCEV_CONNECTED <-- |
CONNECTED |
CALL_CONNECT <-- |
Connect <-- | |
* Application may connect a voice channel to the B channel. | ||||
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
NULL |
||||
cc_MakeCall( ) |
CRN assigned Call_Outgoing --> |
|||
CALL_OUTGOING --> |
Set Up --> | |||
CCEV_PROCEEDING (if requested not masked) <-- |
DIALING |
*B channel cut thru CALL_PROCEEDING <-- |
Proceeding <-- | |
CCEV_PROGRESSING (if requested not masked) <-- |
PI=1 (interworking with a non-ISDN has occurred within the network) CALL_PROGRESS <-- |
Progress <-- | ||
CCEV_PROGRESSING (if requested not masked) <-- |
PI=2 (the destination user is not ISDN ) CALL_PROGRESS <-- |
Progress <-- | ||
Application may assign a voice resource to detect the in-band tone |
CCEV_PROGRESSING (if requested not masked) <-- |
PI=8 (in-band information is now available) CALL_PROGRESS <-- |
Progress <-- | |
CCEV_ALERTING (if requested not masked) <-- |
ALERTING |
CALL_ALERT <-- |
Alerting option <-- | |
CCEV_CONNECTED <-- |
CONNECTED |
CALL_CONNECT <-- |
Connect <-- | |
* Application may connect a voice channel to the B channel. | ||||
Aborting cc_MakeCall( )When a B channel negotiation is used in call setup, the application must select CCEV_PROCEEDING as the termination point for the cc_MakeCall( ) function or use the asynchronous programming model. The following scenario illustrates a case where the application uses an asynchronous model to abort the cc_MakeCall( ) attempt.
Asynchronous Programming
Application |
Device driver |
State |
Firmware |
Network |
NULL |
||||
cc_MakeCall( ) |
CRN assigned Call_Outgoing --> |
|||
CALL_OUTGOING (request for channel "x") --> |
Set Up --> | |||
CCEV_PROCEEDING (indicating the network requested channel) <-- |
DIALING |
CALL_PROCEEDING (network wishes to use a B channel other than "x") <-- |
Proceeding <-- | |
cc_DropCall( ) |
Call_Disconnected (cause value = 1) --> |
IDLE |
||
B channel disconnected CALL_DISC --> |
disconnect --> | |||
Continue the "disconnect" process described below in the "Application Terminated Call" table |
----- |
--- |
---- |
--- |
Application Terminated CallFirmware-controlled disconnect: This is the default setting for parameter 24 in the *.prm file
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
Disconnect --> | ||
Release <-- | ||||
termination of cc_DropCall() <-- |
CALL_CLEARED <-- **RELEASE_DONE --> |
**Rel_Comp --> | ||
ISDN_Block_Ts --> |
Incoming call unblocked |
|||
*cc_ReleaseCall( ) |
Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
||
*cc_WaitCall( ) must be issued again to receive the next incoming call. **Note that for the firmware-controlled disconnect process, the firmware immediately sends a RELEASE_DONE (and therefore a RELEASE COMPLETE) to the network after receiving a RELEASE message. | ||||
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
Disconnect --> | ||
Release <-- | ||||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- RELEASE_DONE --> |
Rel_Comp --> | ||
cc_ReleaseCall( ) |
Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
Host-controlled disconnect: This is the default setting for parameter 24 in the *.prm file
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
Disconnect --> | ||
Release <-- | ||||
termination of cc_DropCall() <-- |
CALL_CLEARED <-- |
|||
ISDN_Block_Ts --> |
Incoming call unblocked |
|||
*cc_ReleaseCall( ) |
Call_Dealloc --> |
**RELEASE_DONE --> |
**Rel_Comp --> | |
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
||
*cc_WaitCall( ) must be issued again to receive the next incoming call. **Note that for the host-controlled disconnect process, the firmware sends a RELEASE_DONE (and therefore a RELEASE COMPLETE) to the network only when the host does a cc_ReleaseCall( ) . | ||||
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
Disconnect --> | ||
Release <-- | ||||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
RELEASE_DONE --> |
Rel_Comp --> | |
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
Click here to contact Dialogic Customer Engineering
Copyright 2001, Dialogic Corporation