Intel Network Hardware 05 1662 005 User Manual

IP Gateway (Global Call)  
Demo Guide  
for Linux and Windows  
Copyright © 2002-2005 Intel Corporation  
05-1662-005  
 
Table of Contents  
1. About This Guide............................................................................................ 1  
1.1. Purpose........................................................................................................... 1  
1.2. Intended Audience ......................................................................................... 1  
1.3. Related Documents ........................................................................................ 1  
2. Demo Description............................................................................................ 3  
2.1. About the Demo............................................................................................. 3  
2.2. Choosing Channels ........................................................................................ 3  
3. System Requirements ..................................................................................... 5  
3.1. Hardware Requirements................................................................................. 5  
3.2. Software Requirements.................................................................................. 5  
4. Preparing to Run the Demo ........................................................................... 7  
4.1. Connecting to External Equipment ............................................................... 7  
4.2. Editing Configuration Files............................................................................ 9  
4.2.1. Configuration File Location .................................................................. 9  
4.2.2. Editing the gateway_r4.cfg File .......................................................... 10  
5. Running the Demo ........................................................................................ 17  
5.1. Starting the Demo ........................................................................................ 17  
5.2. Demo Options .............................................................................................. 17  
5.3. Using the Demo ........................................................................................... 20  
5.4. Stopping the Demo....................................................................................... 20  
6. Demo Details.................................................................................................. 21  
6.1. Files Used by the Demo............................................................................... 21  
6.1.1. Demo Source Files .............................................................................. 21  
6.1.2. Utility Files.......................................................................................... 23  
6.1.3. PDL Files............................................................................................. 24  
6.2. Handling an Incoming Call .......................................................................... 25  
6.2.1. Receiving a Call .................................................................................. 25  
6.2.2. Handling a PSTN Call......................................................................... 25  
6.2.3. Handling an IP Call............................................................................. 26  
6.3. Programming Model .................................................................................... 26  
6.4. Initializations................................................................................................ 27  
6.5. Event Mechanism ........................................................................................ 29  
iii  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
6.5.1. Handling Keyboard Input Events ........................................................ 29  
6.5.2. Handling SRL Events.......................................................................... 29  
6.5.3. Handling Application Exit Events....................................................... 30  
6.6. Demo State Machine.................................................................................... 30  
6.6.1. Call Establishment from IP ................................................................. 30  
6.6.2. Call Establishment from PSTN ........................................................... 32  
6.6.3. Call Teardown..................................................................................... 33  
6.6.4. Glare Conditions ................................................................................. 34  
Appendix A - Log File of IP Call Establishment............................................. 35  
Appendix B - Log File of PSTN Call Establishment ....................................... 39  
Index.................................................................................................................... 45  
iv  
 
List of Tables  
Table 2. Command Line Switches ...................................................................... 18  
Table 3. Runtime Keyboard Commands............................................................. 20  
Table 4. Source Files Used by the IP Gateway (Global Call) Demo .................. 21  
v
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
vi  
 
List of Figures  
Figure 1. Hardware Configuration with Onboard NIC and PSTN Front End....... 7  
Figure 2. Hardware Configuration with Onboard NIC and separate PSTN  
board.............................................................................................................. 8  
Figure 3. Typical Topology .................................................................................. 9  
Figure 4. Programming Model............................................................................ 26  
Figure 5. Call Establishment from IP.................................................................. 31  
Figure 6. Call Establishment from PSTN............................................................ 32  
vii  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
viii  
 
1. About This Guide  
This section describes the purpose of this guide, the intended audience, and  
references to other documents that may be useful to the user.  
1.1. Purpose  
This guide describes the operation of the IP Gateway (Global Call) demo.  
1.2. Intended Audience  
This guide is intended for application developers who will be developing a  
PSTN-IP gateway application using the Global Call API.  
Developers should be familiar with the C programming language and either the  
Windows or Linux programming environment.  
1.3. Related Documents  
See the following for more information:  
The Release Update for your system release for information on problems  
fixed, known problems, workarounds, compatibility issues, and last minute  
updates not documented in the published information.  
The appropriate Configuration Guide for your hardware (Intel NetStructure  
IPT Series or DM/IP Series board) and operating system  
Global Call API Software Reference Guide and the Global Call Application  
Developer’s Guide  
Global Call IP Technology User’s Guide  
information)  
1
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
2
 
2. Demo Description  
2.1. About the Demo  
The IP Gateway (Global Call) demo is a host-based application that demonstrates  
using the Global Call API to build a PSTNIP gateway. The demo source code  
can be used as sample code for those who want to begin developing an  
application from a working application. The demo is not designed to implement a  
complete gateway, lacking features such as least-cost routing, etc.  
The IP Gateway (Global Call) demo is a cross-OS demo, running under the  
Windows* or Linux* environments. Most of the differences in the environments  
are handled directly by the programming interface and are transparent to the user.  
Other differences, due to inherent differences in the operating systems, are  
handled by the Platform Dependency Library (PDL).  
For more information about the PDL refer to the source code in the pdl_win or  
pdl_linux directories.  
2.2. Choosing Channels  
When a call comes from the PSTN, the call is answered by a PSTN line device.  
During initialization, the PSTN channel was associated with a specific IP line  
device, so the call is connected to the IP line device that is associated with this  
PSTN line device.  
When a call arrives from the IP network, there is no direct association of a  
channel, since there are no individual physical connections for the IP channels.  
The call is answered by a line device. During initialization, the line device was  
associated with a specific PSTN line device. The Global Call API tells the IP  
Gateway (Global Call) demo which PSTN channel is associated with this IP  
channel. The application then connects the IP call to the appropriate PSTN  
channel.  
3
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
4
 
3. System Requirements  
This chapter discusses the system requirement for running the IP Gateway  
(Global Call) demo. It contains the following topics:  
Hardware Requirements  
Software Requirements  
3.1. Hardware Requirements  
To run the IP Gateway (Global Call) demo, you need:  
One of the following:  
Intel NetStructure® DM/IP Series board  
Intel NetStructure® IPT Series board  
an IPT Series board also requires an Intel NetStructure® DM/V-A  
series board for PSTN connection  
IP Network cable  
For other hardware requirements, such as memory requirements, see the Release  
Guide for your system release.  
3.2. Software Requirements  
To run the IP Gateway (Global Call) demo, you need the Intel® Dialogic®  
System Release 6.x for the Linux* or Windows* Operating Systems on Intel  
Architecture. For a list of operating system requirements and supported compilers  
see the Release Guide for your system release.  
5
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
6
 
4. Preparing to Run the Demo  
This chapter discusses how to prepare to run the IP Gateway (Global Call) demo.  
It provides information about the following topics:  
Connecting to External Equipment  
Editing Configuration Files  
4.1. Connecting to External Equipment  
There are two possible hardware configurations for the IP Gateway (Global Call)  
demo:  
Intel NetStructure® DM/IP series board(s) with on-board NIC and a PSTN  
connection on the front end  
Intel NetStructure® IPT series board(s) with on-board NIC connected to an  
Intel NetStructure® DM/V-A series board as the PSTN interface  
The following diagrams illustrate the possible hardware configurations.  
Ethernet  
Intel NetStructure® IP board  
PBX  
with on-board NIC and a  
PSTN connection on the front end  
Telephone  
Figure 1. Hardware Configuration with Onboard NIC and PSTN Front  
End  
7
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Intel NetStructure®  
DM/V-A series board  
CTbus  
cable  
Intel NetStructure®  
IPT board  
PSTN  
line  
Internet/  
Intranet line  
Figure 2. Hardware Configuration with Onboard NIC and separate  
PSTN board  
The IP Gateway (Global Call) demo allows you to connect to gateways on an IP  
network and establish voice calls via the IP network. It also allows you to  
connect to H.323 terminals on the IP network and connect a call from the  
terminal to a telephone via one of the gateways. Figure 3 shows a typical  
topology for demonstrating the capabilities of the IP Gateway (Global Call)  
demo. Note that the two PBXs that are shown can be a single PBX. Also note that  
more than one PSTN line can be connected to a single gateway.  
8
 
4. Preparing to Run the Demo  
Fax  
Fax  
IP Network  
IP Gateway  
IP Gateway  
PBX  
PBX  
Telephone  
Telephone  
H.323 Terminal  
Figure 3. Typical Topology  
4.2. Editing Configuration Files  
This section discusses how to configure the demo for your system. It contains the  
following topics:  
Configuration file location  
Editing the gateway_r4.cfg File  
4.2.1. Configuration File Location  
Before running the IP Gateway (Global Call) demo, modify the gateway_r4.cfg  
file to reflect your system environment. Use a text editor and open the file from:  
Windows:  
$(INTEL_DIALOGIC_DIR)\samples\ipt_demos\gateway_r4\Release  
Linux:  
$(INTEL_DIALOGIC_DIR)/ipt_demos/gateway_r4/Release  
where $(INTEL_DIALOGIC_DIR) identifies the base directory where the Intel  
Dialogic System Release was installed.  
9
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
4.2.2. Editing the gateway_r4.cfg File  
Below is an example of the gateway_r4.cfg file. Update the following  
information:  
ipProtocol  
The IP Protocol used for opening the IP Line devices, values: H323, SIP,  
both  
Channel  
Channels defined by this section of the file - may be individual channel or a  
range of channels  
Source  
Source address  
Destination  
Destination address  
RemotePhoneNumber  
Destination phone number to call. Transferred during call establishment to  
target gateway.  
LocalPhoneNumber  
The number used for PSTN calls  
pstnProtocol  
PSTN protocol to use  
DTMFmode  
One of the following: OutOfBand, inband, rfc2833  
AudioRxCodecs  
Capability for receive audio codecs. The following capabilities are defined:  
CoderType - preferred coder. Recognized coders are:  
g711Alaw  
g711Mulaw  
gsm  
gsmEFR  
g723_5_3k  
g723_6_3k  
g729a  
g729ab  
10  
 
4. Preparing to Run the Demo  
CoderFramesPerPkt - frames per packet for the selected coder  
CoderVAD - Voice Activity Detection on/off  
AudioTxCodecs  
Capability for transmit audio codecs. See AudioRxCodecs for a complete  
description.  
DataCodecs  
Capability for fax codecs. The demo currently support T38 only.  
MediaAlarmLostPackets  
Indicates that the percentage of packets lost during a call exceeded its  
threshold value  
Threshold - defines when a Quality of Service (QoS) parameter is in a  
fault condition. A fault occurs when the result of a measurement of a  
QoS parameter crossed the Threshold value. Default = 20.  
DebounceOn - the time during which faults are measured (in msec., must  
be a multiple of Interval). Default = 10000.  
DebounceOff - the dime during which successes are measured (in mesc.,  
must be a multiple of Interval). Default = 10000.  
Interval - the amount of time between two QoS parameter measurements  
(in multiples of 100 msec). Default = 1000.  
PercentSuccess - the threshold of successes during the DebounceOn time  
(expressed as a percentage of successes). Default = 60.  
PercentFail - the threshold of failures during the DebounceOn time  
(expressed as a percentage of failures). Default = 40.  
MediaAlarmJitter  
Indicates that the jitter (as defined in RFC 1889) exceeded its threshold value  
Threshold - Default = 60.  
DebounceOn - Default = 20000.  
DebounceOff - Default = 60000.  
Interval - Default = 5000.  
PercentSuccess - Default = 60.  
PercentFail - Default = 40.  
Display  
Display information passed to destination gateway during call establishment  
IPT_UUI  
User to User Information string. Information sent before Connected state.  
11  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
UII  
User Input Indication string to send  
NonStdParm  
Non-standard parameter data to send  
NonStdCmd  
Non-standard command string to send  
ObjId  
Object ID  
Q931Facility  
Facility data to send on the Q.931 channel  
DTMF  
DTMF mode. Possible options: OutOfBand, inband, rfc2833  
enableRegestration  
Register with gatekeeper  
TTL  
Time-to-live parameter (in seconds)  
Protocol  
Call control protocol. Possible values: h323, SIP, both  
max_hops  
Maximum number of router hops  
regServerAddress  
Gatekeeper IP address. Use 0.0.0.0 as the default address for discovering the  
GK  
NonStdRasCmd  
Non-standard RAS command string to send  
RasObjId  
RAS object ID  
Alias  
Possible alias types: 1 = string, 2 = IP address, 3 = H323 ID, 4 = phone, 5 =  
URL, 6 = EMail  
12  
 
4. Preparing to Run the Demo  
The following is an example of a configuration file.  
########################################################################################  
# Telephony Protocol :  
#
For ANAPI(Analog Front End) use the root file name of the analog protocol file for  
your country or telephone network)  
For ICAPI (Digital Front End) use the root file name of the country dependent  
#
parameter <.cdp> file  
# IP Protocol :  
#
#
The IP Protocol used for opening the IP Line devices, values: H323, SIP, both  
# DTMFmode  
#
#
#
#
possible options:  
OutOfBand, inband, rfc2833  
# Capability for audio codecs:  
#
#
#
#
#
#
#
#
#
g711Alaw  
g711Mulaw  
gsm  
gsmEFR  
g723_5_3k  
g723_6_3k  
g729a  
g729ab  
# Capability for data codecs:  
#
#
#
#
#
#
t38  
Note: if you want to run the demo with coder g729 use:  
g729a for running with VAD disable  
and 729ab for running with VAD enable  
# Caution:  
#
#
If capability is g711Alaw /Mulaw ==> FramesPerPkt = 10,20,30.  
G711 frame per packet defines the packet  
size in milliseconds  
#
#
#
#
#
#
#
#
#
#
#
#
#
If capability is g723_5_3k / 6_3k ==> FramesPerPkt = 1, 2, 3 .  
FrameSize isn't needed, default= 30ms.  
==> FramesPerPkt = 1, 2, 3 .  
FrameSize isn't needed, default= 20ms.  
==> FramesPerPkt = 1, 2, 3 .  
FrameSize isn't needed, default= 20ms.  
==> FramesPerPkt = 3, 4 .  
FrameSize isn't needed, default= 10ms.  
VAD disable, the VAD parameter is ignored  
==>FramesPerPkt = 3, 4 .  
If capability is gsm  
If capability is gsmEFR  
If capability is g729a  
If capability is g729ab  
FrameSize isn't needed, default= 10ms.  
VAD enable, the VAD parameter is ignored  
########################################################################################  
ipProtocol = H323  
Channel = 1-120  
{
Source = NAME:Intel Corp.  
Destination = 0.0.0.0  
RemotePhoneNumber = 23  
LocalPhoneNumber = 26  
pstnProtocol = isdn  
13  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
DTMFmode = OutOfBand  
AudioRxCodecs  
{
CoderType = g711Mulaw  
CoderFramesPerPkt = 30  
CoderVAD = 0  
}
AudioTxCodecs  
{
CoderType = g711Mulaw  
CoderFramesPerPkt = 30  
CoderVAD = 0  
}
DataCodecs  
{
CoderType = t38  
}
MediaAlarmLostPackets  
{
Threshold  
DebounceOn  
DebounceOff  
Interval  
= 20  
# Threshold value  
= 10000 # Threshold debounce ON  
= 10000 # Threshold debounce OFF  
= 1000 # Threshold Time Interval (ms)  
PercentSuccess = 60  
PercentFail = 40  
# Threshold Success Percent  
# Threshold Fail Percent  
}
MediaAlarmJitter  
{
Threshold  
DebounceOn  
DebounceOff  
Interval  
= 60  
# Threshold value  
= 20000 # Threshold debounce ON  
= 60000 # Threshold debounce OFF  
= 5000 # Threshold Time Interval (ms)  
PercentSuccess  
PercentFail  
}
= 60  
= 40  
# Threshold Success Percent  
# Threshold Fail Percent  
# MediaAlarmResetAlarmState  
= 0  
Display = GATEWAY_Chan1  
IPT_UUI = User_to_User_1  
UII = 12345  
NonStdParm = NSP_Chan1  
NonStdCmd = NSC_Chan1  
ObjId = 2 16 840 1 113741  
Q931Facility = facility 01  
DTMF = 1  
}
#values - 1 -to enable board regestration , 0 not enabling board regestration  
enableRegestration = 0  
board = 1-1  
{
# time to live in seconds  
TTL = 60  
# possible values: h323, SIP, both  
Protocol = h323  
max_hops = 20  
14  
 
4. Preparing to Run the Demo  
# use 0.0.0.0 as the default address for descovering the GK  
regServerAddress = 10.242.214.45  
NonStdRasCmd = NSC_Chan1  
RasObjId = Intel  
# possible alias types: 1 = string, 2 = IP address, 3 = H323 ID, 4 = phone, 5 =  
URL, 6 = EMail  
Alias = 1  
{
AliasType = 3  
AliasName = intel  
}
Alias = 2  
{
AliasType = 4  
AliasName = 1111  
}
Prefix = 1  
{
PrefixType = 3  
PrefixName = pmac  
}
Alias = 3  
{
AliasType = 4  
AliasName = 2222  
}
}
15  
 
 
5. Running the Demo  
This chapter discusses how to run the IP Gateway (Global Call) demo. It contains  
the following topics:  
Starting the Demo  
Demo Options  
Using the Demo  
Stopping the Demo  
5.1. Starting the Demo  
Windows  
From a command prompt, change directories to:  
$(INTEL_DIALOGIC_DIR)\samples\\ipt_demos\gateway_r4\Release  
Type gateway_r4at the command prompt to run the IP Gateway (Global Call)  
demo using the default settings.  
Linux  
Change directory to:  
$(INTEL_DIALOGIC_DIR)\ipt_demos\gateway_r4/Release  
Type gateway_r4to run the IP Gateway (Global Call) demo using the default  
settings.  
5.2. Demo Options  
To specify certain options at run-time, launch the demo from a command line,  
using any of the switches listed in Table 1. Command Line Switches.  
17  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Table 1. Command Line Switches  
Switch  
Action  
Default  
-c <filename>  
Configuration file name  
gateway_r4.cfg  
-d  
Sets Debug Level (0-4):  
0 - FATAL  
0-FATAL: used when one or more  
channels are deadlocked.  
1-ERROR: used when the application  
receives a failure which doesn’t cause the  
channel to be deadlocked.  
2-WARNING used when some problem  
or failure occurred without affecting the  
channel’s usual action.  
3-TRACE used at the start of the  
application entrance or the start of any  
function.  
4-INFO prints data related to a specific  
action.  
NOTE: Debug level is inclusive; higher  
levels include all lower levels.  
-f  
Identifies the front end:  
0
0 = analog  
1 = digital T-1  
2 = digital E-1  
-h or ?  
Prints the command syntax to the screen  
Off  
18  
 
5. Running the Demo  
Switch  
Action  
Default  
-l <n,…>  
Printouts will be printed into channel log  
files.  
Disabled  
If ‘all’ follows the –l, log files will be  
created for all available channels.  
If a list of channels in the following  
format: C1-C2, C3-C4, C5 (e.g., 1-  
10,112-150,314) follows the –l, log files  
are created for the channel ranges or  
specific channels specified in the list.  
If “–l” option is not used all prints go to  
the stdout, for the first 2 channels only (to  
keep from overloading the CPU, and  
more convenient for viewing printouts).  
-n  
-p  
Sets the number of channels  
The lesser of  
PSTN Devices  
and IP Devices  
0-Disable dialing  
1-Enable dialing  
-p1  
Used for testing purposes, or if running  
the demo on a machine that does not have  
all of the necessary external connections  
-q  
-r  
Enables the Quality of Service feature  
Disabled  
2
Sets the number of rings before  
answering the call on the PSTN  
-s  
0-Disable DNIS  
1-Enable DNIS  
0
Used for testing purposes, or if running  
the demo on a machine that does not have  
all of the necessary external connections  
19  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
5.3. Using the Demo  
The demo always waits for input from the keyboard. While the demo is running,  
you can enter any of the following commands:  
Table 2. Runtime Keyboard Commands  
Command  
Function  
c or C  
Print channel information  
d<n> or D<n>  
f or F  
Change debug level during runtime  
Send Q.931 facility information  
Send non-standard command  
Terminates the application  
Sends non-standard RAS  
n or N  
q or Q  
r or R  
s or S  
Unregister with a Gatekeeper  
Sends DTMF  
t or T  
u or U  
Sends UII (User Input Indication)  
5.4. Stopping the Demo  
The IP Gateway (Global Call) demo runs until it is terminated. Press “q” or “Q”  
to terminate the demo application.  
20  
 
6. Demo Details  
This chapter discusses the IP Gateway (Global Call) demo in more detail. It  
contains the following topics:  
Files Used by the Demo  
Handling an Incoming Call  
Programming Model  
Initializations  
Event Handling  
Demo State Machine  
6.1. Files Used by the Demo  
6.1.1. Demo Source Files  
In Windows the following files are located in  
$(INTEL_DIALOGIC_DIR)\samples\ipt_demos\gateway_r4.  
In Linux the following files are located in  
$(INTEL_DIALOGIC_DIR)/ipt_demos/gateway_r4.  
Table 3. Source Files Used by the IP Gateway (Global Call) Demo  
Filename  
Description  
OS  
gatedefs.h  
Gateway definitions  
Both  
gateip.c  
IP communication functions  
Function prototype for gateip.c  
Main file (including MAIN loop)  
Both  
Both  
Both  
gateip.h  
gatemain.c  
21  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Filename  
Description  
OS  
gatepars.c  
The demo configuration file  
parsing functions  
Both  
gatepars.h  
gatepstn.c  
gatepstn.h  
gatestate.c  
gatestate.h  
gatestrc.h  
Function prototype for gatepars.c  
PSTN-specific functions  
Both  
Both  
Both  
Both  
Both  
Both  
Function prototype for gatepstn.c  
State machine functions  
Function prototype for gatestat.c  
Demo structure (including Main  
Structure Session)  
gatevars.h  
Global variables  
Both  
gateway_r4  
Linux executable  
Linux  
gateway_r4.cfg  
gateway_r4.dsp  
gateway_r4.dsw  
Config file  
Linux  
Visual C++ project file  
Visual C++ project workspace  
Demo version information  
Windows  
Windows  
Both  
gateway_r4_  
version.c  
incfile.h  
Function prototype for Global Call Both  
and R4 functions.  
main.h  
Function prototype for gatemain.c  
Linux compilation file  
QoS functions  
Both  
Linux  
Both  
Both  
makefile  
mediaalarms.c  
mediaalarms.h  
Function prototype for  
mediaalarms.c  
register.c  
RAS functions  
Both  
22  
 
6. Demo Details  
Filename  
Description  
OS  
register.h  
Function prototype for register.c  
Both  
Release\  
gateway_r4.cfg  
Demo configuration file  
Demo configuration file  
Executable  
Windows  
Release/  
gateway_r4.cfg  
Linux  
Release\  
gateway_r4.exe  
Windows  
Linux  
Release/  
Executable  
gateway_r4.exe  
6.1.2. Utility Files  
In Windows the following files are located  
$(INTEL_DIALOGIC_DIR)\samples\ipt_demos\Shared  
In Linux the following files are located in  
$(INTEL_DIALOGIC_DIR)/ipt_demosShared.  
Filename  
Description  
OS  
libdbg.c  
Debugging functions  
Both  
libdbg.h  
Function prototype for libdbg.c  
#DEFINE inclusions  
Both  
libdefs.h  
Both  
Release/libutil.a  
Makefile  
Compiled Utility library  
Compilation file  
Linux  
Linux  
util.dsp  
Utility library Visual C project file Windows  
Utility library Visual C workspace Windows  
util.dsw  
util_version.c  
Utility library version information  
Both  
23  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Filename  
Description  
OS  
Release\util.lib  
Compiled Utility library  
Windows  
6.1.3. PDL Files  
In Windows the following files are located in  
$(INTEL_DIALOGIC_DIR)\samples\ipt_demosShared  
In Linux the following files are located in  
$(INTEL_DIALOGIC_DIR)/ipt_demos/Shared  
Filename  
Description  
OS  
pdl_win\iptransport.cpp PDL IP transport functions  
Windows  
pdl_win\iptransport.h  
Function prototype for  
iptransport.cpp  
Windows  
pdl_win\pdl.c  
Platform dependency functions  
Function prototype for pdl.c  
PDL version information  
PDL Visual C project file  
PDL Visual C workspace  
Compiled PDL library  
Windows  
Windows  
Windows  
Windows  
Windows  
Windows  
pdl_win\pdl.h  
pdl_win\pdl_version.c  
pdl_win\pdl_win.dsp  
pdl_win\pdl_win.dsw  
pdl_win\Release\  
pdl_win.lib  
/pdl_linux/  
iptransport.cpp  
PDL IP transport functions  
Linux  
Linux  
/pdl_linux/iptransport.h Function prototype for  
iptransport.cpp  
/pdl_linux/libpdl.a  
Compiled PDL library  
Linux  
Linux  
/pdl_linux/makefile.pdl Compilation file  
24  
 
6. Demo Details  
Filename  
Description  
OS  
/pdl_linux/pdl.c  
Platform dependency functions  
Linux  
Linux  
Linux  
/pdl_linux/pdl.h  
Function prototype for pdl.c  
PDL version information  
/pdl_linux/  
pdl_linux_version.c  
6.2. Handling an Incoming Call  
This section discusses how the demo application handles incoming calls. It  
contains the following topics:  
Receiving a Call  
Handling a PSTN Call  
Handling an IP Call  
6.2.1. Receiving a Call  
The demo can receive calls from either the PSTN or the IP network. The demo  
uses a configuration file (gateway_r4.cfg) to determine parameters that are  
associated with a particular call. The configuration file allows you to configure  
different channels with different properties. See Section 4.2. Editing  
Configuration File for a more detailed description of the gateway_r4.cfg file, as  
well as a description of the different configuration properties.  
6.2.2. Handling a PSTN Call  
A call that arrives from the PSTN needs to be routed to either a destination PSTN  
number (via another gateway) or to an H.323 terminal. The demo uses the  
gateway_r4.cfg file to determine the destination IP address as well as the  
(optional) destination PSTN number (remote phone number). The IP Gateway  
(Global Call) demo initiates an IP (H.323) call to the destination IP address. If the  
configuration file indicates a PSTN destination number then that number is  
passed to the destination gateway during the call establishment procedure.  
25  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Once the destination gateway has answered the H.323 call, the IP Gateway  
(Global Call) demo connects the PSTN call to the IP call. An audio path is now  
established between the PSTN call and the destination IP station. For more details  
see section 6.5. Event Mechanism .  
6.2.3. Handling an IP Call  
A call that arrives from the IP network needs to be routed to a PSTN number.  
That number may arrive as part of the call establishment procedure (if the call  
was originated by another IP Gateway for example). If the destination number  
arrived during call establishment, then the IP Gateway (Global Call) demo uses  
that number to call the PSTN. If no destination number was included in the call  
establishment procedure, then the IP Gateway (Global Call) demo uses the  
gateway_r4.cfg file to determine the destination number to call (local phone  
number). Once the IP Gateway (Global Call) demo answers and connects the call  
on the IP network, it initiates (dial out) a call on the PSTN line and connects the  
two calls. This allows the calling party to hear the call progress tones on the local  
PSTN. For more details see section 6.5. Event Mechanism .  
6.3. Programming Model  
The IP Gateway (Global Call) Object Oriented demo operates with two threads,  
as shown in Figure 4.  
IP  
R4/GC  
Keyboard  
SRL  
Main Thread  
Sub-Thread  
Figure 4. Programming Model  
26  
 
6. Demo Details  
The threads are created as follows:  
The first (main) thread is created by the demo application to get the keyboard  
input.  
The second thread is an SRL thread, created as a result of the demo  
application calling sr_enblhdlr( ) in Windows. In Linux, the thread must be  
explicitly created. All Global Call events are received through the SRL.  
6.4. Initializations  
The application main() function calls gateInitialize(), which does the following:  
1. Calls checkArg( ) to check for command line parameters and handle them  
accordingly.  
2. Calls IPTResetSession() to reset the demo data structures and initialize all  
channels’ states to INIT.  
3. Calls ClearAllBoards() to reset the board structures to default values.  
4. Calls gateConfiguration() to read information from the configuration file  
(gateway_R4.cfg or other CFG file determined by the user) and update the  
ConfigFileParm in the Session data structure.  
5. Calls gc_Start( ) to open all configured, call control libraries.  
6. Calls printAllLibs() to print library status (open or failed).  
7. Sets-up the call-back handler, PDLsr_enbhdlr( ). The callback handler  
handles events that it receives from the SRL library. For more details see  
Section 6.5.2. Handling SRL Events.  
8. Calls pstnGetVOXChannels( ) which checks how many available PSTN  
voice channels there are by doing the following:  
Gets number of PSTN boards, by calling PDLsr_getboardcnt( ).  
For each board that was found:  
Calls dx_Open( ) to open an analog board, or dt_Open( ) to open a  
digital board.  
Calls ATDV_SUBDEVS( ) to get the number of channels on the  
board.  
27  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
Calculates the logical board and channel and saves them into  
Session.pstnParams  
Closes the board, by calling dx_Close( ) or dt_Close( ).  
9. Call ipGetChannels( ) which checks how many available IP channels there  
are by doing the following:  
Gets number of IP boards from #define MAX_IP_BOARDS in  
gatedefs.h  
For each board that was found:  
Calls gc_OpenEx( ) to open the board  
Calls ATDV_SUBDEVS( ) to get the number of channels on the  
board  
Calculates the logical board and channel and save them in  
Session.ipParams  
Registers the board with the Gatekeeper by calling  
boardRegistration( )  
10. Calls getGateChannels( ) to find the demo MAX available channels (the  
smaller of available IP or Voice Devices and the number of channels  
specified with the –n command line option, if used).  
11. Calls pstnOpenFrontEnd( ) which opens the PSTN channels by doing the  
following. For each channel:  
Calls gc_OpenEx ( ), which returns the PSTN LineDevH, and saves it  
in Session.pstnParams  
If the PSTN board is an analog board:  
Calls gc_LoadDxParm( )  
Calls gc_GetVoiceH( ), which returns the PSTN VoiceH, and saves  
it in Session.pstnParams  
If the PSTN board is a digital board:  
Calls gc_OpenEx( ), which returns the PSTN LineDevH, and saves  
it in the Session.pstnParams structure  
Calls gc_GetNetworkH( ), which returns the PSTN NetwH, and  
saves it in Session.pstnParams  
12. Calls ipOpenDevices( ) which opens the IP channels by doing the following:  
28  
 
6. Demo Details  
Calls gc_OpenEx( ) which opens all IP devices, returns the IP  
LineDevH, and saves it in Session.ipParams  
Saves the channel number in the global array HandleToChannel[ ]  
according to the LineDevH handle  
13. The application main() function calls waitForKey( ), to receive keyboard  
input.  
6.5. Event Mechanism  
The IP Gateway (Global Call) demo uses the SRL mechanism to retrieve events.  
When an event occurs, SRL calls event handlers automatically. All events are  
received by the SRL and then passed to the callback_hdlr() function for  
handling.  
In the initialization phase of the demo the gateInitialize() function sets up the  
call-back handler, by calling PDLsr_enbhdlr().  
6.5.1. Handling Keyboard Input Events  
There is an endless loop {while(1)} in the main() function in the Gatemain.c file.  
In that loop, the application waits forever for a keyboard event by calling the  
waitForKey() function. The event must be handled immediately and event-  
specific information should be retrieved before the next call to waitForKey().  
When the next event occurs or when a time-out is reached, the waitForKey()  
returns and the call-back handler function is called automatically.  
6.5.2. Handling SRL Events  
When the R4/Global Call event is received, the callback_hdlr( ) function  
performs the following:  
1. Calls gc_GetMetaEvent( ) to get the event  
2. If the event is for a board, the application calls rasProcessEvent( ) to  
process it.  
29  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
3. Otherwise, the application calls gc_GetUsrAttr( ) and then calls either  
ipGetEvent( ) to process the IP event, or pstnGetEvent( ) to process the  
PSTN event.  
6.5.3. Handling Application Exit Events  
Normal application exit events don’t enter the SRL. The main() function calls  
PDLSetApplicationExitPath() before initialization. In Linux, this function sets  
the signals (SIGINT, SIGTERM, SIGABRT) for making the appropriate exit  
from the application. In Windows, this function enables the detection of  
CTRL_CLOSE_EVENT (closing the window).  
6.6. Demo State Machine  
The application waits for a GCEV_UNBLOCKED event in the GATE_INIT state.  
Upon receiving this event, the application calls ag_getxmitslot() for an analog  
PSTN board or dt_getxmitslot() for a digital PSTN board to get the transmit time  
slot (Xmitslot) for the PSTN device and saves it in the session.PSTNParams  
structure. The application then calls gc_GetXmitSlot(VoiceH) to get the transmit  
time slot (Xmitslot) for the IP device and saves it in the session.IPParams  
structure.  
The application then calls gc_WaitCall() to set the conditions for processing an  
inbound call.  
If the application receives GCEV_TASKFAIL, GCEV_BLOCKED, or  
GCEV_OPENEX_FAIL, it calls endApplication() to gracefully shut down the  
application.  
If the application receives GCEV_OPENEX, it does nothing to avoid causing an  
error.  
The state transitions to GATE_NULL.  
6.6.1. Call Establishment from IP  
This section describes what happens when a call is initiated from the IP network.  
30  
 
6. Demo Details  
GATE_NULL  
IP, PSTN: GCEV_RELEASECALL  
IP, PSTN: IPTResetSession( )  
IP: GCEV_OFFERED  
IP: gc_Extension( )  
GATE_RELEASE  
IP: GCEV_EXTENSIONCMPLT  
IP, PSTN: GCEV_DROPCALL  
IP: GCEV_EXTENSION  
IP, PSTN: gc_ReleaseCallEx( )  
IP: gc_Extension( )  
IP: gc_SetUserInfo( )  
IP: gc_AnswerCall( )  
GATE_DROP  
IP_OFFERED  
IP, PSTN: GCEV_DISCONNECTED  
pstnUnListen( )  
IP: GCEV_ANSWERED  
IP, PSTN: gc_DropCall( )  
IP: gc_Listen( )  
PSTN: gc_MakeCall( )  
GATE_CONNECTED  
PSTN: GCEV_CONNECTED  
IP_CONNECTED  
PSTN: ag_Listen( )  
or dt_Listen( )  
Figure 5. Call Establishment from IP  
1. In GATE_NULL, the application receives GCEV_OFFERED from the IP  
side.  
The application checks if there is a conflict with PSTN side. If there is no  
conflict, the application calls gc_Extension( ) to get coder and telephone  
number information from the IP side.  
The state transitions to IP_OFFERED.  
2. In IP_OFFERED, the application waits for GCEV_EXTENSION which  
contains the coder and telephone number information.  
The application then calls gc_SetUserInfo( ) and gc_AnswerCall( ).  
When the application receives GCEV_ANSWERED from the IP side, the  
application calls gc_Listen( ), to tell the IP line device to listen to the PSTN  
time slot. The application calls gc_MakeCall( ) for the PSTN side to set up  
the call on the PSTN side.  
The state transitions to IP_CONNECTED.  
31  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
3. In IP_CONNECTED, when the application receives GCEV_CONNECTED  
from the PSTN side, the application calls pstnListen( ), which in turn calls  
ag_Listen( ) or dt_Listen( ) (ag for analog; dt for digital) to tell the PSTN  
line device to listen to the IP time slot  
The state transitions to GATE_CONNECTED  
6.6.2. Call Establishment from PSTN  
This section describes what happens when a call is initiated from the PSTN  
network.  
GATE_NULL  
IP, PSTN: GCEV_RELEASECALL  
PSTN: GCEV_OFFERED  
IPTResetSession( )  
PSTN: gc_AcceptCall( )  
IP: gc_MakeCall( )  
GATE_RELEASE  
IP, PSTN: GCEV_DROPCALL  
IP: GCEV_EXTENSIONCMPLT  
IP: gc_Extension( )  
IP, PSTN: gc_ReleaseCallEx( )  
PSTN: GCEV_ACCEPT  
GATE_DROP  
PSTN_OFFERED  
IP, PSTN: GCEV_DISCONNECTED  
IP: GCEV_CONNECTED  
IP, PSTN: gc_unlisten( )  
IP, PSTN: gc_dropCall( )  
IP: gc_Extension( )  
PSTN: dt_Listen( ) or ag_Listen( )  
IP: gc_Listen( )  
GATE_CONNECTED  
PSTN: gc_AnswerCall(  
)
PSTN: GCEV_ANSWERED  
IP_CONNECTED  
PSTN: GCEV_ACCEPT  
PSTN: GCEV_EXTENSION  
Figure 6. Call Establishment from PSTN  
1. In GATE_NULL, when the application receives GCEV_OFFERED from the  
PSTN side, the application calls gc_AcceptCall( ) for the PSTN and  
gc_MakeCall( ) for the IP side.  
The state transitions to PSTN_OFFERED  
32  
 
6. Demo Details  
2. In PSTN_OFFERED the application waits for GCEV_CONNECTED from  
the IP side.  
When the application receives GCEV_CONNECTED it calls:  
gc_Extension( ) to get the call information from the IP side  
gc_Listen( ) to tell the IP line device to listen to the PSTN time slot  
pstnListen( ) which calls ag_Listen( ) or dt_Listen( ) (ag for analog; dt for  
digital) to tell the PSTN line device to listen to the IP time slot  
gc_AnswerCall( ) to answer the call on the PSTN  
The state transitions to IP_CONNECTED.  
3. In IP_CONNECTED, when the application receives GCEV_ANSWERED  
from the PSTN the state transitions to GATE_CONNECTED.  
6.6.3. Call Teardown  
1. When either side (PSTN or IP) sends a GCEV_DISCONNECTED event in  
any state except for IP_OFFERED, the application calls gc_Unlisten( ) for  
the IP side and ag_Unlisten( ) or dt_Unlisten( ) for the PSTN side. The  
application also calls gc_DropCall( ) for both sides of the call to disconnect  
the call.  
The state transitions to GATE_DROP.  
2. When the application receives GCEV_DROPCALL from both sides the  
application calls gc_Extension( ) to get RTCP information for the call.  
When the application receives GCEV_EXTENSION with the RTCP  
information it calls gc_ReleaseCall( ) to release the call.  
The state then transitions to GATE_RELEASE.  
3. When the application receives a GCEV_RELEASECALL event it sends  
IPTResetSession() and the call state transitions to GATE_NULL.  
If a GCEV_DISCONNECTED event is received from the IP side when the state is  
IP_OFFERED:  
1. The application calls gc_DropCall( ) for the IP side and the state transitions  
to IP_DROP.  
33  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
2. When the application receives GCEV_DROPCALL from the IP side, it calls  
gc_Extension( ) to get the RTCP information.  
When the application receives GCEV_EXTENSION the application calls  
gc_ReleaseCall( )and the state transitions to GATE_NULL.  
6.6.4. Glare Conditions  
Glare conditions occur when a call is being initiated from both sides at the same  
time. If such a condition is discovered, the state transitions directly to  
GATE_DROP and proceeds with call teardown.  
34  
 
Appendix A  
Log File of IP Call Establishment  
DATE: 08/16/01 TIME: 10:49:20  
TRACE: File: gatepstn.c Line: 189  
End of pstnOpenFrontEnd function on channel 14  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gateip.c Line: 99  
Start ipOpenDevices function on channel 14  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gateip.c Line: 116  
End of ipOpenDevices function on channel 14  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gatestate.c Line: 57  
In GATE_INIT State on channel 14  
got Event GCEV_UNBLOCKED (0x833) from PSTN  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gatestate.c Line: 57  
In GATE_INIT State on channel 14  
got Event GCEV_UNBLOCKED (0x833) from IP  
DATE: 08/16/01 TIME: 10:49:21  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gatestate.c Line: 129  
In GATE_NULL State on channel (0xe)  
got event GCEV_OFFERED (0x824) from IP  
DATE: 08/16/01 TIME: 10:53:00  
35  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gateip.c Line: 227  
Start OnExtension function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 250  
Got extension data display:  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 262  
Got extension data phone list:  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 336  
Got extension data H221NONSTANDARD: country_code 181,extension 11,  
manufacturer_code 11  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 342  
Got extension data IPPARM_VENDOR_PRODUCT_ID IPLink  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 348  
Got extension data IPPARM_VENDOR_VERSION_ID Dialogic Corp.  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 291  
Got extension data IPPARM_CONFERENCE_GOAL  
DATE: 08/16/01 TIME: 10:53:00  
INFO: File: gateip.c Line: 298  
Got extension data IP_CONFERENCEGOAL_ID ꢀꢁA&ö=V4444ï  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gateip.c Line: 362  
End of OnExtension function on channel 14  
DATE: 08/16/01 TIME: 10:53:00  
TRACE: File: gatestate.c Line: 357  
In IP_OFFERED State on channel (0xe)  
got event GCEV_EXTENSION (0x868) from IP  
DATE: 08/16/01 TIME: 10:53:00  
36  
 
Appendix A  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gatestate.c Line: 357  
In IP_OFFERED State on channel (0xe)  
got event GCEV_ANSWERED (0x802) from IP  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gatestate.c Line: 654  
In IP_CONNECTED State on channel 14  
got event GCEV_CONNECTED (0x822) from PSTN  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gatepstn.c Line: 232  
In pstnListen function on channel 14  
DATE: 08/16/01 TIME: 10:53:01  
TRACE: File: gatepstn.c Line: 275  
End of pstnListen function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 436  
Got GCEV_DISCONNECTED. Reason: Remote Termination  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatestate.c Line: 797  
In GATE_CONNECTED State on channel 14  
got event GCEV_DISCONNECTED (0x826) from IP  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatepstn.c Line: 296  
In pstnUnListen function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatepstn.c Line: 348  
End of pstnUnListen function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
37  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
TRACE: File: gatestate.c Line: 841  
Drop call on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 14  
got event GCEV_DROPCALL (0x805) from PSTN  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 14  
got event GCEV_DROPCALL (0x805) from IP  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 227  
Start OnExtension function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
INFO: File: gateip.c Line: 272  
Got extension data RTCP info:timestamp 644440,tx_packets 1948,tx_octets 490896  
send_indication 1  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gateip.c Line: 362  
End of OnExtension function on channel 14  
DATE: 08/16/01 TIME: 10:54:24  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 14  
got event GCEV_EXTENSION (0x868) from IP  
38  
 
Appendix B  
Log File of PSTN Call Establishment  
DATE: 08/16/01 TIME: 10:57:55  
TRACE: File: gatepstn.c Line: 189  
End of pstnOpenFrontEnd function on channel 10  
DATE: 08/16/01 TIME: 10:57:56  
TRACE: File: gateip.c Line: 99  
Start ipOpenDevices function on channel 10  
DATE: 08/16/01 TIME: 10:57:56  
TRACE: File: gateip.c Line: 116  
End of ipOpenDevices function on channel 10  
DATE: 08/16/01 TIME: 10:57:57  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:57:57  
TRACE: File: gatestate.c Line: 57  
In GATE_INIT State on channel 10  
got Event GCEV_UNBLOCKED (0x833) from PSTN  
DATE: 08/16/01 TIME: 10:57:57  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:57:57  
TRACE: File: gatestate.c Line: 57  
In GATE_INIT State on channel 10  
got Event GCEV_UNBLOCKED (0x833) from IP  
DATE: 08/16/01 TIME: 10:57:57  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:37  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:37  
TRACE: File: gatestate.c Line: 129  
In GATE_NULL State on channel (0xa)  
got event GCEV_OFFERED (0x824) from PSTN  
DATE: 08/16/01 TIME: 10:58:37  
39  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
TRACE: File: gateip.c Line: 140  
Start ipMakeCall function on channel 10  
DATE: 08/16/01 TIME: 10:58:37  
TRACE: File: gateip.c Line: 205  
End of ipMakeCall function on channel 10  
DATE: 08/16/01 TIME: 10:58:37  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:37  
TRACE: File: gatestate.c Line: 511  
In PSTN_OFFERED State on channel (0xa)  
got event GCEV_ACCEPT (0x804) from PSTN  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatestate.c Line: 511  
In PSTN_OFFERED State on channel (0xa)  
got event GCEV_PROCEEDING (0x827) from IP  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatestate.c Line: 511  
In PSTN_OFFERED State on channel (0xa)  
got event GCEV_CONNECTED (0x822) from IP  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatepstn.c Line: 232  
In pstnListen function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatepstn.c Line: 275  
End of pstnListen function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
40  
 
Appendix B  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 227  
Start OnExtension function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
INFO: File: gateip.c Line: 250  
Got extension data display: target  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 362  
End of OnExtension function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatestate.c Line: 654  
In IP_CONNECTED State on channel 10  
got event GCEV_EXTENSION (0x868) from IP  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 10:58:38  
TRACE: File: gatestate.c Line: 654  
In IP_CONNECTED State on channel 10  
got event GCEV_ANSWERED (0x802) from PSTN  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatepstn.c Line: 416  
Got GCEV_DISCONNECTED. Reason: Normal clearing  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatestate.c Line: 797  
In GATE_CONNECTED State on channel 10  
got event GCEV_DISCONNECTED (0x826) from PSTN  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatepstn.c Line: 296  
In pstnUnListen function on channel 10  
41  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatepstn.c Line: 348  
End of pstnUnListen function on channel 10  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatestate.c Line: 841  
Drop call on channel 10  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatepstn.c Line: 369  
In pstnGetEvent function on channel 10  
DATE: 08/16/01 TIME: 11:00:03  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 10  
got event GCEV_DROPCALL (0x805) from PSTN  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 10  
got event GCEV_DROPCALL (0x805) from IP  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 385  
In ipGetEvent function on channel 10  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 227  
Start OnExtension function on channel 10  
DATE: 08/16/01 TIME: 11:00:05  
INFO: File: gateip.c Line: 272  
Got extension data RTCP info:timestamp 649480,tx_packets 7971,tx_octets 733332  
send_indication 1  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 362  
End of OnExtension function on channel 10  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gatestate.c Line: 880  
In GATE_DROP State on channel 10  
got event GCEV_EXTENSION (0x868) from IP  
42  
 
Appendix B  
DATE: 08/16/01 TIME: 11:00:05  
TRACE: File: gateip.c Line: 466  
End of ipGetEvent function on channel 10  
43  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
44  
 
Index  
A
G
ag_Listen( ), 32, 33  
ag_Unlisten( ), 33  
APPMAIN.C, 29  
ATDV_SUBDEVS( ), 27  
GATE_CONNECTED, 32, 33  
GATE_DROP, 33  
GATE_NULL, 30  
gatedefs.h, 21  
gateip.c, 21  
C
gateip.h, 21  
Call connection, 3  
Call establishment, 25  
Call progress tones, 26  
gatemain.c, 21  
gatepars.c, 22  
gatepars.h, 22  
gatepstn.c, 22  
gatepstn.h, 22  
gatestate.c, 22  
gatestate.h, 22  
gatestrc.h, 22  
gatevars.h, 22  
Call state  
GATE_CONNECTED, 32, 33  
GATE_DROP, 33  
GATE_NULL, 30  
IP_CONNECTED, 31, 33  
IP_DROP, 33  
IP_OFFERED, 31, 33  
PSTN_OFFERED, 32  
Call Teardown, 33  
checkArg( ), 27  
gateway_r4  
executable, 22  
Command Line Switches, 18  
ConfigFileParm, 27  
Configuration file, 23, 25  
gateway_r4.cfg, 9, 22, 25  
gateway_r4.dsp, 22  
gateway_r4.dsw, 22  
gateway_r4.exe, 23  
gateway_r4.ver, 22  
gc_AcceptCall( ), 32  
gc_AnswerCall( ), 31, 33  
gc_Close( ), 27  
D
Debug Level, 18  
dt_Listen( ), 32, 33  
dt_Unlisten( ), 33  
45  
 
IP Gateway (Global Call) Demo Guide for Linux and Windows  
gc_DropCall( ), 33  
IP address, 25  
gc_Extension( ), 31, 33  
gc_GetNetworkH( ), 28  
gc_GetVoiceH( ), 28  
gc_GetXmitSlot(), 30  
gc_Listen( ), 31, 33  
IP, Log File, 35  
IP_CONNECTED, 31, 33  
IP_DROP, 33  
IP_OFFERED, 31, 33  
ipGetChannels( ), 27  
ipOpenDevices( ), 28  
IPTMail_R4.cfg, 27  
gc_MakeCall( ), 31, 32  
gc_Open( ), 27  
gc_OpenEx( ), 28  
K
gc_OpenEx( ) , 28  
Keyboard Commands, 20  
gc_ReleaseCall( ), 33  
gc_SetUserInfo( ), 31  
gc_Start( ), 27  
L
libdbg.c, 23  
libdbg.h, 23  
gc_Unlisten( ), 33  
libdefs.h, 23  
libpdl.a, 24  
GCEV_ANSWERED, 31, 33  
GCEV_CONNECTED, 32, 33  
GCEV_DISCONNECTED, 33  
GCEV_DROPCALL, 33  
GCEV_EXTENSION, 31, 33  
GCEV_OFFERED, 31, 32  
Glare Conditions, 34  
libutil.a, 23  
line device, 3  
LineDevH, 28  
local phone number, 26  
Log File, IP, 35  
Log File, PSTN, 39  
H
M
H.323 terminal, 25  
main(), 29  
main.h, 22  
makefile, 22  
makefile.util, 23  
HandleToChannel[ ], 28  
I
incfile.h, 22  
IP  
State Diagram, 31  
46  
 
Index  
N
T
NetwH, 28  
Teardown, 33  
P
U
PDL, 3  
util.dsp, 23  
util.dsw, 23  
util.lib, 23  
util.ver, 23  
pdl.c, 24  
PDLsr_enbhdlr( ), 27  
PDLsr_getboardcnt( ), 27  
Platform Dependency Library, 3  
V
PSTN  
VoiceH, 28  
State Diagram, 32  
PSTN channel, 3  
PSTN, Log File, 39  
PSTN_OFFERED, 32  
pstnGetVOXChannels( ), 27  
pstnOpenFrontEnd( ), 28  
R
remote phone number, 25  
Routing, 25  
S
Session.ipParams, 28  
Session.pstnParams, 27, 28  
sr_enbhdlr( ), 29  
SRL mechanism, 29  
State Diagram  
IP, 31  
PSTN, 32  
State machine, 22  
Switches  
Command Line, 18  
47  
 
48  
 

Ingersoll Rand Cordless Saw 429G User Manual
Jensen Car Satellite Radio System VR187 User Manual
JVC Camcorder GR AXM17 User Manual
JVC Flat Panel Television AV 29VT15 User Manual
JVC MP3 Player XA MP101B W User Manual
JVC Stereo System CA MXG50 User Manual
JVC Window HR DVS2EU User Manual
Kenmore Fish Finder 15331206 User Manual
Kenyon Electric Grill 143355D User Manual
KitchenAid Ice Maker W10206423A User Manual