# Natural Access environment

NMS ISDN applications are built primarily on the Natural Access platform. This topic provides background information about Natural Access and summarizes the main elements of the Natural Access environment. You must have Natural Access installed on your system to build applications using NMS ISDN.

For detailed information about Natural Access, see the Natural Access Developer's Reference Manual.

## Natural Access components

Natural Access telephony functions are divided into groups of logically related functions called services.

A context organizes services and accompanying resources around a single process. A context usually represents an application instance controlling a single telephone call. A service can be opened only once on a context.

An event queue is the communication path from a service to an application. A service generates events indicating certain conditions or state changes. An application retrieves the events from the event queue.

## Natural Access programming model

Natural Access employs an asynchronous programming model to take advantage of concurrent processing. When called, most functions return immediately indicating the operation was initiated. The application can then call other functions while Natural Access is processing the command.

Asynchronous functions return SUCCESS if the function is successfully initiated. The execution result arrives later in an event. Asynchronous functions that return a non-zero value were never initiated. Therefore, no subsequent events are generated. If an asynchronous function fails after being initiated, Natural Access delivers a DONE event to the application with an error code in the event value field.

Synchronous functions indicate completion by sending a return value. The return value is either SUCCESS or an error code.

Refer to the Function summary for a list of all NMS ISDN functions and whether they are synchronous or asynchronous.