# isdncta (ISDN daemon)

Starts and stops the ISDN protocol stack. Demonstrates:

- Using NaturalAccess to start and stop the ISDN protocol stack.

- Performing switching connections necessary to support ISDN Software.

Once the ISDN protocol stack is started using this program, you can run any other NaturalAccess call control program with ISDN Software.

#### Featured functions

isdnStartProtocol, isdnStopProtocol

#### Requirements

- A digital trunk interface board.

- NaturalAccess installed.

#### Usage

isdncta [options]

where options is one or more of the following:

Option | Description | Default
--- | --- | ---
-a nai | Network access identifier of trunk to use. | 0
-g group_# | NFAS group number if multiple CCID is configured. |
-b board_# | Board number (terminal equipment interface). Do not use -B if this option is specified. | 0
-B board_# | Board number (network terminator interface). Do not use -b if this option is specified. | 0
-I hex_bit | (Optional) Setting for in_calls_behaviour, in hexadecimal. Use to make bit settings required for overlap receiving and/or channel ID setting: CC_TRANSPARENT_OVERLAP_RCV = 0x0080 CC_SET_CHAN_ID = 0x2000 | 0x0
-o operator | Network operator variant. Allowed values: 3 = France Telecom VN6 8 = Northern Telecom DMS 100 9 = INS-1500 NTT 11 = EuroISDN 15 = Australian Telecom 1 16 = QSIG 17 = Hong Kong Telephone 20 = US National ISDN 2 23 = AT&T 5ESS10 24 = AT&T 4ESS 25 = Korea 50 = Taiwan 51 = DPNSS Use EuroISDN (11) and Australian Telecom (15) for the following countries: Austria, Denmark, Finland, Greece, Iceland, Ireland, Italy, Liechtenstein, Luxembourg, Netherlands, Norway, Portugal, Russia, Spain, and Switzerland. | 23 (AT&T 5ESS10)
-N hex_bit | (Optional) Setting for ns_behaviour, in hexadecimal. Determines the responses of the NS layer. Use to make bit settings required for allowing sending and receiving of ISDN-specific messages: NS_ACCEPT_UNKNOWN_FAC_IE =0x0004 NS_IE_RELAY_BEHAVIOUR =0x0010 NS_SEND_USER_CONNECT_ACK =0x0100 (ETSI only) NS_EXPLICIT_INTERFACE_ID =0x0200 NS_PRESERVE_EXT_BIT_IN_CHAN_ID =0x0400 (DMS only) | 0x0
-A hex_bit | (Optional) Setting for acu_behaviour, in hexadecimal. Use to make bit setting required (by ETSI, Q.SIG, and NI2 variants) to enable the stack to forward to the application ISDN-specific messages containing unrecognized facility IEs. See Sending and receiving ISDN-specific messages: ACU_SEND_UNKNOWN_FACILITY =0x0004 | 0x0
-O hex_bit | (Optional) Setting for out_calls_behaviour, in hexadecimal. Use to make bit settings required for overlap sending and/or A-law/mu law coding. See Sending and receiving ISDN-specific messages: CC_USER_SENDING_COMPLETE =0x0002 CC_USE_MU_LAW=0x0010 CC_USE_A_LAW=0x0020 | 0x0
-c country | Country. The behavior of a network operator can change depending on the country specified. The default country depends on the operator. Allowed values: 1 = USA 32 = Belgium 33 = France 44 = Great Britain 46 = Sweden 49 = Germany 61 = Australia 81 = Japan 82 = Korea 86 = China 92 = Singapore 52 = Hong Kong 866 = Taiwan 1000 = Europe Note: Use Europe (1000) for the following countries: Austria, Denmark, Finland, Greece, Iceland, Ireland, Italy, Liechtenstein, Luxembourg, Netherlands, Norway, Portugal, Russia, Spain, and Switzerland. | 1 (USA)
-s | Creates the default connections to support ISDN call control. Only necessary if switching is enabled in the board keyword file (such as, Clocking.HBus.ClockMode = MASTER_A, MASTER_B, or SLAVE). | No connections are made. (Assumes switching is disabled.)
-T | t309 option for D channel backup configurations. See the Dialogic® NaturalAccess™ ISDN Software Installation Manual for information on D channel backup. | Disabled.
-h or -? | Display a help screen and terminate the program. | N/A

#### Functional overview

To enable other NaturalAccess programs to place or receive calls on an ISDN trunk, start the ISDN protocol stack by running isdncta. This program allows you to choose from several ISDN operator variants based on command line options.

When isdncta is launched, it performs the following actions:

Step | Action
1 | Parses command line arguments and ensures that all arguments are valid and do not conflict.
2 | Initializes NaturalAccess.
3 | If the -s option is specified, isdncta makes connections needed to support ISDN call control. (If Clocking.HBus.ClockMode = MASTER_A, MASTER_B, or SLAVE in the configuration file, these connections are made automatically when the board boots.) For more information, see Making switch connections for ISDN Software.
4 | If the -g option is specified, isdncta sets ENABLE_MULTIPLE_CCID parameters in the ISDN_PROTOCOL_PARMS_CHANNELIZED structure to enable Multiple CCID configuration, and passes the provided NFAS group number as an extra argument to isdnStartProtocol.
5 | Starts the ISDN protocol stack on the board specified on the command line, either as Terminal Equipment (TE) or as Network Equipment (NT), with the specified network operator variant and country variant.
6 | Waits for Q to be pressed. When the Q key is pressed, the daemon program stops the ISDN protocol stack and terminates.

#### Procedure

Complete the following steps to launch isdncta:

Step | Action
1 | Set up the configuration file to describe the board and software. For more information, see the Dialogic® NaturalAccess™ ISDN Software Installation Manual.
2 | Run oamsys to initialize the hardware and to make the configuration file changes effective.
3 | To start the ISDN protocol stack, enter: isdncta [options] where options is one or more of the command line options as previously described.
4 | Launch another demonstration program.
5 | When you have finished, press Q to terminate isdncta.

#### Compilation

isdncta is supplied in executable form and as source code. If you need to recompile isdncta, do one of the following:

Under this OS... | Go to this directory... | Enter...
--- | --- | ---
Windows | \nms\ctaccess\demos\isdncta | nmake
UNIX | /opt/nms/ctaccess/demos/isdncta | make

For more information, see the ISDN Software readme file.

## isdncta structure and coding features

isdncta is based on the NaturalAccess asynchronous programming model. The NaturalAccess function names start with ncc, adi, or cta. For example, nccStartProtocol starts a TCP instance on a context. Other functions in isdncta are found in CTADEMO, a library distributed with NaturalAccess containing examples of how to use the API. CTADEMO functions have names starting with Demo. One example is DemoOpenPort, which opens the NaturalAccess application queue, and then calls another demonstration function to create a context and open services on the new queue. Most CTADEMO functions are wrappers that enclose the corresponding NCC function and wait for an event to terminate the function, signaling whether the function was successful. In this way, they transform an asynchronous wait for an event into a synchronous function.

### main function

The main function of isdncta defines the list of NaturalAccess service managers that the application needs. It calls ParseArguments, which parses command line arguments, and assigns the corresponding values to variables. ParseArguments also checks that none of the user options are inconsistent with each other, and sends a warning if it finds a problem.

main registers an error handler with NaturalAccess, calls ctaInitialize to initialize NaturalAccess, and calls MyOpenPort, which uses the demonstration library function DemoOpenPort to open a context.

If the -s option was specified, main calls MyMakeConnection, which uses the NaturalAccess Switching API to make the connections necessary to support Natural Call Control. For more information, see Making switch connections for ISDN Software.

main calls IsdnStart to start the ISDN protocol stack. IsdnStart calls isdnStartProtocol on the open context with the operator and country variant specified on the command line. isdnStartProtocol is started with ISDN_PROTOCOL_CHANNELIZED specified, so it runs in Natural Call Control mode.

main calls WaitForKeyboardEvent. WaitForKeyboardEvent waits for the Q key to be pressed. When the key is pressed, main calls IsdnStop, which calls isdnStopProtocol to stop the ISDN protocol stack. Then the daemon program terminates.