# NMS ISDN Messaging API application overview

An NMS ISDN Messaging API application typically performs the following tasks:

The following table provides a summary of the tasks illustrated:

In this phase... | The application...
--- | ---
Initialize Natural Access | Makes CT bus switch connections to route D channel data to the HDLC controller, and to route B channel information to DSP resources (if necessary). Initializes Natural Access services, and creates one context for each B channel and D channel. Starts the nocc (no call control) trunk control program (TCP) on each B channel context.
Initialize NMS ISDN protocol stack | Calls isdnStartProtocol to start up an ISDN protocol stack instance on each D channel context. This function also determines whether the stack runs in LAPD, ACU, or channelized stack mode.
Establish connection | Uses isdnSendMessage to send ACU or LAPD messages to the stack to establish a connection.
Perform tasks | Uses functions from Natural Access or from other services to play or record voice, generate or detect DTMF tones, send and receive faxes, and other tasks.
Disconnect | Uses isdnSendMessage to send ACU or LAPD messages to the stack to terminate the connection.
Stop protocol stack | Calls isdnStopProtocol to stop the ISDN protocol stack.

## Initializing boards

Before you can run an NMS ISDN application, you must initialize and load DSP files, trunk control programs (TCPs), and protocol stack runfiles to your board(s). The items to load to the boards are specified in board keyword files. To load the components to your boards, run oamsys, the board initialization and monitoring utility. To learn how to create a configuration file for your setup, see the NMS ISDN Installation Manual, the installation manual for your board, and the NMS OAM System User's Manual.