Version


Usage
|
Board Type
|
Default Protocol
|
|---|---|
|
T1
|
AT&T 5ESS10
|
|
E1
|
EuroISDN
|
isdndemo -b 0 -n -p 20
isdndemo -b 1 -p 20 -o 10
Each instance displays actions and events as it runs. In the display, commands from isdndemo to the protocol stack are preceded by:CALL CONTROL <= APPLICATION
Events from the protocol stack are preceded by:
CALL CONTROL => APPLICATION
The arrow indicates the direction of information flow.
Following is the text of a log trace of isdndemo receiving an inbound call:
Wed Nov 13 16:45:30 CALL CONTROL => APPLICATION
Following is the log trace of isdndemo placing an outbound call:
Wed Nov 13 16:40:44 CALL CONTROL <= APPLICATION
Note: You may receive the error ctaCreateQueue failure 2a while running isdndemo on a Unix system. This is due to a default limitation on the number of file descriptors that one user process can open. If you receive this error, enter ulimit -n 120 and launch isdndemo again.
|
Under this OS...
|
Go to this directory...
|
Enter...
|
|---|---|---|
|
Windows NT
|
c:\nms\ctaccess\demos\isdndemo\
|
nmake
|
|
UNIX
|
/opt/nms/ctaccess/demos/isdndemo/
|
make
|

isdndemo -N 1 -n -p 20
isdndemo -N 2 -p 20 -o 10
struct NFAS_trunk NFAS_1[] = /* Option NFAS = 1 */
{
{ 0, 0, 0, 4, 1}, /* group, board, trunk, nai, D-Ch flag, etc. */
{ 0, 0, 1, 5, 0}
};
struct NFAS_trunk NFAS_2[] = /* Option NFAS = 2 */
{
{ 1, 0, 2, 4, 1},
{ 1, 0, 3, 5, 0}
};
Each structure specifies the NFAS group to be controlled by one instance of isdndemo. Each line in the structure specifies the configuration of a trunk in the group. Each line is formatted as follows:nfasgroup, board, trunk, nai, dchannel
... where:

Figure 36. Single-Threaded Demonstration Program Structure

isdndemo -o 10


A debugging routine called LogReceivedMessage is called in process_isdn_message. This function shows how to decode numerous ISDN message buffers in a single routine.
The connection ID assigned to an incoming call by the protocol stack is the highest available unused value. For example, if 60 connection IDs are available for a group, and connection IDs 59 and 58 are already allocated to calls, the protocol stack assigns ID 57 to the next call.
To avoid any chance of collision, when placing outgoing calls, the demonstration program assigns connection IDs beginning with 0. It keeps track of which connection IDs are in use and which are available.




Figure 37. Multi-Threaded Demonstration Program Structure



Figure 38. isdndemo State Machine






Usage
... where options is one or more of the command line options described in the Usage section.
lapddemo sends a SABME message on the trunk to establish the data link.
Called number: 12345
Calling number: 678
B channel: 12
Encoding: A law
If the data link is established, the program exchanges Q.931 messages with the remote party, as described in the configuration file. By default, the following exchanges are made:
|
Under this OS...
|
Go to this directory...
|
Enter...
|
|---|---|---|
|
Windows NT
|
c:\nms\ctaccess\demos\lapddemo\
|
nmake
|
|
UNIX
|
/opt/nms/ctaccess/demos/lapddemo/
|
make
|

...where:
|
Code
|
Message/Event
|
|---|---|
|
S
|
SETUP
|
|
A
|
ALERTING
|
|
K
|
CALL PROCEEDING
|
|
P
|
PROGRESS
|
|
C
|
CONNECT
|
|
c
|
CONNECT ACK
|
|
D
|
DISCONNECT
|
|
R
|
RELEASE
|
|
r
|
RELEASE COMP
|
|
T
|
TIMER T (2 s)
|
|
t
|
TIMER T (1 s)
|
# File: lapddemo.cfg
# configuration file for lapddemo
##################################################################
# parameters
#
# !D = called number (applies to the SETUP msg)
# !A = calling number (applies to the SETUP msg)
# !B = B channel (decimal value) (applies to the SETUP msg)
# !E = encoding ( 2 = mu Law, 3 = A Law) (applies to the SETUP msg)
# !C = cause (decimal value) (applies to the DISCONNECT msg)
#
##################################################################
# parameter value
!D 12345
!A 678
!B 12
!C 16
!E 3
##################################################################
# command list
#
# S = SETUP
# A = ALERTING
# K = CALL PROCEEDING
# P = PROGRESS
# C = CONNECT
# c = CONNECT ACK
# D = DISCONNECT
# R = RELEASE
# r = RELEASE COMP
# T = TIMER T (2 s)
# t = TIMER T (1 s)
#
##################################################################
# cause dir command
S i K # send CALL PROCEEDING after receiving a SETUP
K o C # send CONNECT after sending CALL PROCEEDING
C o T # start timer T after receiving a CONNECT
T i D # send a DISCONNECT when timer T expires
D i R # send a RELEASE after receiving DISCONNECT
R i r # send a RELEASE COMP after receiving RELEASE


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

agtrace 801000 0 itrace off 0 1 * itrace on 0 1 !Dd
agtrace 801000 0 itrace off 0 1* itrace on 0 1 AC




43.61
protocol discriminator = Q.931 Call Control
call reference = 01 00 flag = 0
00000101 message type = SETUP board 00 nai 00 group 00 -->
00000100 IE bearer capability
00000011 length = 0x03
octet 3
1------- extension bit
-00----- coding standard = CCITT
---00000 information transfer capability = speech
octet 4
1------- extension bit
-00----- transfer mode = circuit mode
---10000 information transfer rate = 64 Kbit/s
octet 5
1------- extension bit
-01----- layer 1 id = layer 1 id
---00010 user info layer 1 = mu law
00011000 IE channel identification
00000011 length = 0x03
octet 3
1------- extension bit
-0------ interface identifier = implicitly identified
--1----- interface type = PRI
---0---- spare bits = spare bits
----1--- pref/excl = exclusive
-----0-- D-channel ind = not
------01 info channel selection = B1 channel
octet 3.2
1------- extension bit
-00----- coding standard = CCITT
---0---- number/map = number
----0011 channel type = B channel
octet 3.3
1------- extension bit
-0000001 channel number = 0x01
01110000 IE called party number
00000100 length = 0x04
octet 3
1------- extension bit
-000---- type of number = unknown
----0000 numbering plan = unknown
octet 4 etc
number = 12.
channel number = 0x01
43.67
protocol discriminator = Q.931 Call Control
call reference = 01 00 flag = 1
00000010 message type = CALL_PROCEEDING board 00 nai 00 group 00 <--
00011000 IE channel identification
00000011 length = 0x03
octet 3
1------- extension bit
-0------ interface identifier = implicitly identified
--1----- interface type = PRI
---0---- spare bits = spare bits
----1--- pref/excl = exclusive
-----0-- D-channel ind = not
------01 info channel selection = B1 channel
octet 3.2
1------- extension bit
-00----- coding standard = CCITT
---0---- number/map = number
----0011 channel type = B channel
octet 3.3
1------- extension bit
-0000001 channel number = 0x01
45.84
protocol discriminator = Q.931 Call Control
call reference = 01 00 flag = 1
00000001 message type = ALERTING board 00 nai 00 group 00 <--

agtrace 801000 0 Start tracing itrace off 0 1 * Disable all ISDN stack traffic on board0, nai 1. itrace on 0 1 AC Enable logging messages between `A' and `C'
entities on board 0, nai 1 (`A' = ENT_APPLI = application entity and
`C' = ENT_CC = Call Control Entity.)
agtrace 801000 0 Start tracing itrace off 0 1 * 0 Disable all ISDN stack truffic on board0,
nai 1, NFAS group 0. itrace on 0 1 !Dd 0 Enable logging messages between `D' and `d'
entities on board 0, nai 1, NFAS group 0
VersionWant to send us feedback on our documentation? Email: Tech_Pubs@nmss.com Copyright © 2000, Natural MicroSystems, Inc. All rights reserved.