Outgoing call rejected by the network
Application |
Device Driver |
State |
Firmware |
Network |
cc_MakeCall( ) |
CRN assigned Call_Outgoing --> |
DIALING |
||
CALL_OUTGOING --> |
Set up --> | |||
CCEV_ DISCONNECTED <-- |
*DISCONNECTED |
CALL_REJECTION <-- |
Rel_Comp <-- | |
ISDN_Block_Ts (sync mode only) --> |
Incoming call blocked |
|||
cc_DropCall( ) |
IDLE |
B channel disconnected CALL_DISC |
||
CCEV_DROPCALL |
CALL_CLEARED <-- |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
NULL |
||
Driver releases CRN Return <-- |
F/W releases CRN CALL_DEALLOC_ACK <-- |
|||
*Application can use cc_ResultValue( ) to determine the cause value for the disconnect (ERR_ISDN_CAUSE). | ||||
Incoming call rejected by the application Synchronous Programming
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_DropCall( ) |
Call_Disconnect (cause value ¹ 0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
disconnect --> | ||
Release <-- | ||||
termination of cc_DropCall( ) <-- |
CALL_CLEARED <-- |
Rel_Comp --> | ||
ISDN_Block_Ts |
Incoming call unblocked |
|||
cc_ReleaseCall( ) |
Returned immediately <-- Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
||
Set_Up <-- | ||||
OFFERED |
CALL_INCOMING <-- |
|||
cc_GetDNIS( ) |
||||
cc_CallAck( ) |
Proceeding --> | |||
*Application may control CALL_PROCEEDING by adding CCMSK_CALL_PROC and using cc_CallAck( ) to send event mask, proceeding toward network. | ||||
Asynchronous Programming
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( ) |
||||
Return immediately with DNIS <-- |
||||
cc_DropCall( ) |
Call_Disconnect (cause value ¹ 0) --> |
|||
IDLE |
B channel disconnected CALL_DISC --> |
disconnect --> | ||
Release <-- | ||||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
Rel_Comp --> | ||
cc_ReleaseCall( ) |
Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
||
Set_Up <-- | ||||
OFFERED |
CALL_INCOMING <-- |
|||
cc_GetDNIS( ) |
||||
cc_CallAck( ) |
Proceeding --> | |||
* Application may control CALL_PROCEEDING by adding CCMSK_CALL_PROC and using cc_CallAck( ) to send event mask, proceeding toward network. | ||||
Glare Condition 1: Call collision occurs after the SETUP message is sent to the networkA glare condition occurs when both an incoming and outgoing call request the same time slot. When glare occurs, the incoming call is assigned the time slot. In this scenario, the firmware detects an incoming SETUP message after transmitting the outgoing SETUP message to the network. In this case, the firmware contains a call reference number for both the incoming and outgoing calls. Therefore, the application must issue cc_DropCall( ) and cc_ReleaseCall( ) to release the outgoing call prior to processing the incoming call. This scenario applies to an exclusive service setting with a firmware-controlled release configuration.
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
cc_MakeCall()--> |
Host CRN # 1 assigned Call_Outgoing --> |
NULL |
||
Firmware CRN #1 is assigned CALL_OUTGOING --> |
Set up --> | |||
Set_Up <-- | ||||
*B channel cut-thru CALL_PROCEEDING --> |
Proceeding --> | |||
Host CRN # 2 assigned CCEV_OFFERED <-- |
OFFERED |
Firmware CRN #2 is assigned CALL_INCOMING <-- |
||
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 <-- | |
CCEV_DISCONNECTED <-- |
**DISCONNECTED |
CALL_REJECTION on CRN # 1 <-- |
Rel_Comp <-- | |
cc_DropCall() |
Call_Dis --> |
|||
CCEV_DROPCALL |
IDLE |
CALL_CLEARED <-- |
||
cc_ReleaseCall( ) |
Call_Dealloc --> |
NULL |
||
Host CRN #1 released |
Firmware CRN #1 released CALL_DEALLOC_ACK <-- |
|||
*Application may connect a voice channel to the B channel. | ||||
Glare Condition 2: Call collision occurs before the SETUP message is sent to the networkA glare condition occurs when both an incoming and outgoing call request the same time slot. When glare occurs, the incoming call is assigned the time slot. In this scenario, the firmware detects an incoming SETUP message prior to transmitting the outgoing SETUP message to the network. The application receives a failure to process the request to transmit the SETUP message (CCEV_TASKFAIL event). In this case, the application does not need to issue cc_DropCall( ) and cc_ReleaseCall( ), and continues to process the incoming call. This scenario applies to an exclusive service setting with a firmware-controlled release configuration.
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
cc_MakeCall()--> |
Host CRN # 1 assigned Call_Outgoing --> |
NULL |
||
Set_Up <-- | ||||
*B channel cut-thru CALL_PROCEEDING --> |
Proceeding --> | |||
ISDN Application does not need cc_DropCall() or cc_ReleaseCall() and continues processing the incoming call.) |
**Library receives ISDN_ERROR and releases host CRN #1 CCEV_TASKFAIL <-- |
NULL |
Firmware detects the collision prior to sending out the SETUP message to the network. Precedence is given to the incoming call. Firmware CRN #1 is released. ISDN_ERROR <-- |
|
Host CRN # 2 assigned CCEV_OFFERED <-- |
OFFERED |
CALL_INCOMING <-- |
||
cc_AcceptCall() |
Call_Alert --> |
CALL_ALERT --> |
Alerting --> | |
CCEV_ACCEPTCALL <-- |
ACCEPTED |
CALL_ALERT_ACK <-- |
||
cc_AnswerCall() |
Call_Connected --> |
*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. | ||||
Simultaneous disconnect (any state)A simultaneous disconnect condition occurs when both the application and the network attempt to disconnect the call. The following scenarios are written for the asynchronous programming model. For synchronous programming, CCEV_DROPCALL will terminate cc_DropCall( ).
The first simultaneous disconnect scenario covers the following conditions:
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
CCEV_ DISCONNECTED <-- |
DISCONNECTED |
CALL_DISC <-- |
Disconnect <-- | |
*cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
Firmware does nothing here until Release is sent |
Release --> |
**CCEV_DISCONNECTED <-- |
Release --> | |||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
Rel_Comp <-- | ||
***cc_ReleaseCall( ) |
Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
||
*Application should set a "drop call" flag. | ||||
The next scenario covers the following simultaneous disconnect conditions:
Asynchronous Programming
Application |
Device Driver |
State |
Firmware |
Network |
CONNECTED |
||||
CCEV_DISCONNECTED <-- |
DISCONNECTED |
CALL_DISC <-- |
Disconnect <-- | |
Release --> | ||||
Rel_Comp <-- | ||||
cc_DropCall( ) |
Call_Disconnected (cause value =0) --> |
IDLE |
||
CCEV_DROPCALL <-- |
CALL_CLEARED <-- |
|||
ISDN_Block_Ts (sync model only) |
Incoming call blocked |
|||
cc_ReleaseCall( ) |
Call_Dealloc --> |
|||
Driver releases CRN Return <-- |
NULL |
F/W releases CRN CALL_DEALLOC_ACK <-- |
Click here to contact Dialogic Customer Engineering
Copyright 2001, Dialogic Corporation