Previous Page Table Of Contents../index.html IndexNext Page


Normal Call Establishment and Termination

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.

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( )
    or
    cc_ReqANI( )
    (option)
    -->
       
 
    Return immediately with ANI
      
      <--
     
    cc_CallProgress( )
    (option)
    -->
    Call_Progress
      
    -->
 
    P1=8 (in-band information is now available)  
    CALL_PROGRESS
    
    -->
    Progress
      
    -->
 
    Return immediately
      
      <--
 
    No response from F/W to driver
 
    cc_AcceptCall( )
    (option)
    -->
    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( )
    (option) -->
   
    *B-channel cut-thru
 
 
    Return immediately with DNIS <--
     
    cc_GetANI( )
    or
    cc_ReqANI( )
    (option) -->
       
 
    Return immediately with ANI <--
     
    cc_CallProgress( )
    (option)
    -->
    Call_Progress
      
    -->
 
    CALL_PROGRESS P1=8 (in-band information is now available) -->
    Progress
      
    -->
     
    No response from F/W to driver
 
    cc_AcceptCall( )
    (option) -->
    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.

Firmware-controlled disconnect: This is the default setting for parameter 24 in the *.prm file

Synchronous Programming

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

Synchronous Programming

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_
    ReleaseCallEx( )
    -->
    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( ).

Synchronous 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.

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.

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
    -----
    ---
    ----
    ---

Firmware-controlled disconnect: This is the default setting for parameter 24 in the *.prm file

Synchronous Programming

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

Synchronous Programming

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
      
      <--
 


Previous PageTable Of ContentsTop Of PageIndexNext Page

Click here to contact Dialogic Customer Engineering

Copyright 2001, Dialogic Corporation
All rights reserved
This page generated December, 2001