

The COMMON ISDN API 2.0 Application Development Kit  V1.9
---------------------------------------------------------

This COMMON ISDN API Application Development Kit is designed for programmers
and other people who are interested in the operation of the COMMON ISDN API.

The COMMON ISDN API 2.0 Application Development Kit supports you in
developing ISDN-based applications. It offers a good introduction into
programming for COMMON ISDN API 2.0 and demonstrates how applications and
devices communicate through a uniform, standardized software interface. The
sample code is largely operating system independent, and should be easy to
port to other platforms. This time the SDK includes complete code for the
usage of the libraries for the operation systems Dos, Windows 16 bit,
Windows 32 bit and the Windows VxD interface.


The COMMON ISDN API (CAPI) enables applications to operate ISDN controller
boards in a simple, consistent manner. It is designed as a standard interface
allowing unrestricted use of all functions of ISDN boards.

Applications using CAPI will not be affected by details specific to hardware
environments or network operators, such as different manufacturers' adapters
or national D-channel protocols. Furthermore, future technical developments
in ISDN hardware will be transparent to applications using the
COMMON ISDN API. The interface therefore provides a solid basis for all
ISDN-related techniques.

Thus, ISDN-specific applications can be built or other protocols linked to
ISDN over a defined, structured interface, which has been supported in Europe
as an ETSI standard since 1994.

The initial intention behind COMMON ISDN API was to create a uniform, open
software interface for using ISDN with the PC. This open interface is the
hardware-independent platform for ISDN applications. A second objective
was to design the interface at a high level of abstraction in order to allow
its unrestricted use at any BRI or PRI.


Functional Characteristics

The COMMON ISDN API connects any number of applications to any number of
controllers. It supports layer 1 to 3 of the OSI protocol stack. The API
rests above layer 3 as the point of access for applications and higher-layer
protocols.

Applications and COMMON ISDN API communicate with each other by exchanging
command and data messages in message queues. When an application issues a
command to an ISDN device (driver and/or controller), for example, the
command is posted to the COMMON ISDN API's corresponding message queue. In
the opposite direction, events from an ISDN device (driver and/or controller)
are posted to the message queue of the appropriate application.

The COMMON ISDN API Application Developing Kit gives you support in
developing ISDN based applications. When you access CAPI direct from the
application, you have to assemble correct CAPI 2.0 messages yourself and
make your own trace functions. Or you can use the Development Kit Library,
which contains functions that build the CAPI 2.0 messages for you
(CAPI20_CMSG_2_MESSAGE) out of a C-structure (_cmsg) and protocol functions
with detailed output.


    +----------------------------------------+
    |		  application		     |
    +----------------------------------------+
	   |			|
	   |			V
	   |	     +-----------------------+
	   |	     | CAPI 2.0 Development  |--------> Protocol function
	   |	     |	   Kit library	     |		easier handling
	   |	     +-----------------------+		...
	   |			|
	   V			V
    +--------------------------------------+
    |              CAPI 2.0                |
    | operation system specific functions  |
    +--------------------------------------+



Contents

The COMMON ISDN API 2.0 Application Development Kit provides all CAPI 2.0
functions for MS-DOS as defined in the CAPI 2.0 specification of February,
1994. Access to all parameters in CAPI messages is facilitated through
C source, library and header files.


The COMMON ISDN API 2.0 Application Development Kit consists of the
following components:

1. This description.
2. A complete development environment, including the required libraries and
   header files to support all COMMON ISDN API functions.
3. Sample source codes (C and header files) including explanations of the
   COMMON ISDN API functions and their use, as well as a complete sample
   application.
4. The compiled sample application.

The kit includes the following files:

<Basedirectory> \

   README.TXT   This text.

   WHATS.NEW    New features of the CAPI 2.0 Development Kit V1.6


\SOURCE\

   CAPI.C	CAPI 2.0 state machine, which handles all incoming messages.
   CAPI.H	Header file.

   MAIN.C	The sample program (DEMO.EXE) built using the development
		kit. Allows you to connect and send data packets and
		complete files to another B-channel: writes a log file to
		disk. See the source file for further information on how to
		use the sample program.
   FAXMAIN.C	The sample program for sending and receiving FAX.

   MAIN.H	The callback-functions that are used by CAPI.C are defined
		here. This file is used by both MAIN.C and FAXMAIN.C.

   C20MSG.C     CAPI 2.0 error messages and message names
   C20MSG.H	Header file.

   CONNECT.C	Functions to connect and disconnect.
   CONNECT.H	Header file.

   CONTR.C	Functions concerning information about controllers.
   CONTR.H	Header file.

   DATA.C	Functions to transfer data over B-channels.
   DATA.H	Header file.

   FAX.C	Functions and constants used for sending and receiving FAX
   FAX.H	Header file.

   ID.C 	Functions handling connections.
   ID.H 	Header file.

   INIT.C	Functions to initialize CAPI.
   INIT.H	Header file.

   OS.H         Header file for operating system dependent files.

   TESTFAX.SFF	Sample FAX.

   LINUTI.C     Funktions that are not available with Linux.
   LINUTI.H     Header file.

   LINUX.MAK    Make routine for the sample Linux program.

   MAKEDEMO.BAT Make routine for the sample DOS program.
   MAKEDEMO.LNK Linker input file for sample DOS program

   MAKEFAX.BAT  Make routine for the sample DOS program.
   MAKEFAX.LNK  Linker input file for sample DOS program

   MKDEM32.BAT  Make routine for the sample Win32 program.
   MKDEM32.LNK  Linker input file for sample Win32 program

   MKDEMO2.BAT  Make routine for the sample DOS program.
   MKFAX2.BAT   Make routine for the sample DOS program.

   NW_MKDMO.BAT Make routine for the sample NetWare program.
   NW_DMO.RSP   Response file for sample NetWare program.
   NW_MKFAX.BAT Make routine for the sample NetWare program.
   NW_FAX.RSP   Response file for sample NetWare program.


\SOURCE\DOS

   DEMO.EXE     DOS executable of the demo program
   FAX.EXE      DOS executable of the Fax-demo program

\SOURCE\LINUX

   DEMO         Linux executable of the demo program
   FAXMAIN      Linux executable of the Fax-demo program

\SOURCE\OS2

   DEMO2.EXE    OS/2 executable of the demo program
   FAX2.EXE     OS/2 executable of the Fax-demo program

\SOURCE\WIN32

   DEMO32.EXE   Windows 32 bit executable of the demo program

\SOURCE\NETWARE

   DEMO.NLM     NetWare NLM executable of the demo program
   FAXDEMO.NLM  NetWare NLM executable of the demo fax program


\C20LIB

   MKDOS.BAT    Make routine for DOS libraries (see description in the file).
   MKWIN16.BAT  Make routine for Windows 16 bit libraries (see description in
                the file).
   MKWIN32.BAT  Make routine for Windows 32 bit libraries (see description in
                the file).
   MKVXD.BAT    Make routine for Windows 32 bit VxD libraries (see description
                in the file).
   MKOS2.CMD    Make routine for OS/2 libraries
   LINUX.MAK    Make routine for Linux libraries

   MKNW.BAT     Make routine for NetWare libraries


\C20LIB\SOURCE

   CAPI20.H     Header file for all CAPI20xx librarys.

   ---DOS CAPI access
   CDOS.C	C file for building the CAPI20xx libraries for DOS.
   CDOS.H	Header file for the DOS-specific CAPI 2.0 functions.

   ---Win16 CAPI access
   CWIN16.C     C-file for building the CAPI20xx libraries for Windows 16 bit.
   CWIN16.H     Header file for the Windows(16)-specific CAPI 2.0 functions.

   -- Win32 CAPI DLL access -- the CAPI interface of choice for Win32 Apps
   CWIN32.C     C-file for building the CAPI20xx libraries for Windows 32 bit.
   CWIN32.H     Header file for the Windows(32)-specific CAPI 2.0 functions.

   -- VxD level CAPI access sample
   CVXD.C       C-file for building the CAPI20xx libraries for Windows VxDs.
   CVXD.H       Header file for the VXD-specific CAPI 2.0 functions.

   -- OS/2 CAPI access
   COS2.C       C file for building the CAPI20xx libraries for OS/2.
   COS2.H       Header file for the OS/2-specific CAPI 2.0 functions.

   -- Linux CAPI access
   CLINUX.C     C file for building the CAPI20xx libraries for Linux.
   CLINUX.H     Header file for the Linux-specific CAPI 2.0 functions.

   -- NetWare CAPI access
   C_NW.C       C file for building the CAPI20xx libraries for NetWare.
   C_NW.H       Header files for the NetWare-specific CAPI 2.0 functions
   C2IMP_NW.H
   C2MGR_NW.H

   -- NT/WDM kernel-mode (IRP) CAPI access samples
   CKMDEV.C     NT/WDM kernel-mode access function for the CAPI20 device
   CWINKMDL.C   NT/WDM kernel-mode CAPI functions
   CERR2STR.C   debug strings for CAPI errors
   CERRFKT.C    mapping CAPI errors to NT/WDM status error values
   KASSERT.C    assert for kernel-mode drivers

   FUNC.C	CAPI 2.0 functions.
   GCMSGDOS.C	Functions specific to DOS.
   GCMSGWIN.C   Functions specific to Windows 16 and 32 bit.
   GCMSGVXD.C   Functions specific to Windows VxDs.
   GCMSGOS2.C   Functions specific to OS/2.
   GCMSGLIN.C   Functions specific to Linux.
   GCMSG_NW.C   Functions specific to NetWare
   MSG.C        Internal CAPI 2.0 Application Development Kit functions.

\C20LIB\DOS
   This directory contains the DOS-specific builds.

   CAPI20S.LIB	CAPI 2.0 development kit library for the small memory model.
   CAPI20L.LIB	CAPI 2.0 development kit library for the large memory model.
   CAPI20SD.LIB CAPI 2.0 development kit library for the small memory model,
		including protocol functions.
   CAPI20LD.LIB CAPI 2.0 development kit library for the large memory model,
		including protocol functions.

\C20LIB\WIN16
   This directory contains the Windows 16 bit-specific builds.

   CAPI20S.LIB	CAPI 2.0 development kit library for the small memory model.
   CAPI20L.LIB	CAPI 2.0 development kit library for the large memory model.
   CAPI20SD.LIB CAPI 2.0 development kit library for the small memory model,
		including protocol functions.
   CAPI20LD.LIB CAPI 2.0 development kit library for the large memory model,
		including protocol functions.
   CAPI20W.LIB	Windows link library for dynamically linking a manufacturer-
		specific CAPI20.DLL.

\C20LIB\WIN32
   This directory contains the Windows 32 bit-specific builds.

   CAP2032.LIB  CAPI 2.0 development kit library.
   CAP2032D.LIB CAPI 2.0 development kit library including protocol functions.
   CAPI2032.LIB Windows link library for dynamically linking a manufacturer-
                specific CAPI2032.DLL.

\C20LIB\VXD
   This directory contains the Windows 32 bit VxD-specific builds.

   CAPI20.CLB   CAPI 2.0 development kit library.
   CAPI20D.CLB  CAPI 2.0 development kit library including protocol functions.

\C20LIB\OS2
   This directory contains the OS/2-specific builds.

   CAPI20.LIB   CAPI 2.0 development kit library.
   CAPI20D.LIB  CAPI 2.0 development kit library including protocol functions.
   CAPI20I.LIB  OS/2 link library for dynamically linking a manufacturer-
                specific CAPI2032.DLL.

\C20LIB\LINUX
   This directory contains the Linux-specific builds.

   LIBC20.a     CAPI 2.0 development kit library.


\C20LIB\NETWARE
   This directory contains the NetWare-specific builds.

   CAP2032.LIB   CAPI 2.0 development kit library.
   CAP2032D.LIB  CAPI 2.0 development kit library including protocol functions.
