# ISDN Software application overview

The following flowchart shows the tasks that are typically performed by an ISDN Software application:

The following table describes each of these tasks:

In this phase... | The application...
--- | ---
Initialize NaturalAccess | Makes switch connections to route D channel data to the HDLC controller and to route B channel information to DSP resources (if necessary). Initializes NaturalAccess services and creates one context for each B channel. The application also creates a dummy context for each D channel.
Initialize ISDN Software protocol stack | Invokes isdnStartProtocol to start an ISDN or DPNSS protocol stack instance on each dummy context.
Initialize TCP | Uses nccStartProtocol to start a trunk control program (TCP) on each B channel context, loading country specific parameters if necessary.
Establish call | Uses NCC service call control functions to place outgoing calls, receive incoming calls, or both.
Perform tasks | Uses functions from NaturalAccess or other APIs to play or record voice, generate or detect DTMF tones, send and receive faxes, and other tasks.
Disconnect call | Uses NCC service call control functions to disconnect and release the call. The application then establishes another call, or stops the protocol stack.
Stop protocol stack | Invokes isdnStopProtocol to stop the ISDN or DPNSS protocol stack.

## Initializing the boards

Before you can run an ISDN Software application, you must initialize and load DSP files, TCPs, and protocol stack runfiles to the boards. The items to load to the boards are specified in a board keyword file.

To load the components to your boards, run oamsys, the board initialization and monitoring utility. This utility reads the board keyword file and sets up your boards as described in the file.

For more information, refer to the Dialogic® NaturalAccess™ ISDN Software Installation Manual and the Dialogic® NaturalAccess™ OAM System Developer’s Manual.