This open source software project connects the world of java with the Common-ISDN-API (CAPI). CAPI is an application programming interface standard used to access ISDN equipment.
The jcapi-project consists of the following components :
- An operating-system dependend c++ library (jcapi.cpp), that simply converts java function calls into c++ function calls. [2],[3]
 - A java class that can access this above mentioned library (jcapi.java). [3]
 - A set of classes that simplify the task to handle capi messages (StructIn.java, MsgIn.java, StructOut.java, MsgOut.java, ...). [1]
 - Predefined message classes : controller messages (uk.co.mmscomputing.device.capi.ctrl.*), physical link messages (uk.co.mmscomputing.device.capi.plc.*), network control messages (uk.co.mmscomputing.device.capi.ncc.*). [1]
 - A few example programs (uk.co.mmscomputing.device.capi.samples.*)
 - A bare bone class frame work for capi applications (CapiApplication.java, CapiEnumerator.java, CapiController.java, ...). CapiApplication uses the usual Listener paradigm to communicate with the rest of the application (Metadata.java, CapiMetadata.java).
 - CapiSystem sets up a CapiServerApplication that is used i.e. by the mmsc-answerphone application.
 
The loop for receiving capi messages is in CapiApplication. CapiCallApplication deals with outgoing calls and CapiServerApplication with incoming calls.
[1] Common-ISDN-API Part I :www.capi.org/download/capi20-1.pdf CAPI Association e.V. [last accessed : 2003-06-24]
[2] Common-ISDN-API Part II :www.capi.org/download/capi20-2.pdf CAPI Association e.V. [last accessed : 2003-06-24]
[3] Sheng Liang (1999), The Java Native Interface, SUN, Palo Alto
Package : uk.co.mmscomputing.device.capi
- CapiApplication.java
 - CapiCallApplication.java
 - CapiChannel.java
 - CapiConfMsg.java
 - CapiConstants.java
 - CapiController.java
 - CapiEnumerator.java
 - CapiFaxDetector.java
 - CapiFaxSender.java
 - CapiFaxSender.java
 - CapiIndMsg.java
 - CapiInfoPlugin.java
 - CapiInputStream.java
 - CapiMetadata.java
 - CapiNCC.java
 - CapiOutputStream.java
 - CapiPLC.java
 - CapiPanel.java
 - CapiPhoneCaller.java
 - CapiPlugin.java
 - CapiProfile.java
 - CapiSMSPlugin.java
 - CapiServerApplication.java
 - CapiSystem.java
 - CapiVoicePlugin.java
 - MsgIn.java
 - MsgOut.java
 - Rider.java
 - StructOut.java
 - jcapi.java
 - uk_co_mmscomputing_device_capi_jcapi.h
 
sub-directories:
- uk.co.mmscomputing.device.capi.ctrl:
capi messages that do not need a plci yet. - uk.co.mmscomputing.device.capi.exception:
exceptions thrown by capi system. - uk.co.mmscomputing.device.capi.facility:
Classes that handle capi facility messages. - uk.co.mmscomputing.device.capi.lin32:
libjcapi.so : The jcapi c++ library for linux (32-bit version). - uk.co.mmscomputing.device.capi.man:
Capi Manufacturer Messages - uk.co.mmscomputing.device.capi.ncc:
capi messages that need a valid ncci. - uk.co.mmscomputing.device.capi.parameter:
some capi parameter. - uk.co.mmscomputing.device.capi.plc:
capi messages that need a valid plci. - uk.co.mmscomputing.device.capi.protocol:
A few simple predefined capi protocol structs. - uk.co.mmscomputing.device.capi.q931:
A Few Q.931 Information Elements CAPI uses. - uk.co.mmscomputing.device.capi.samples:
A few simple capi test programs. - uk.co.mmscomputing.device.capi.sound:
Classes that turn the CAPI device audio streams into an A-Law, u-Law or PCM stream. - uk.co.mmscomputing.device.capi.win32:
jcapi.dll : The jcapi c++ library for windows (32-bit version). - uk.co.mmscomputing.device.capi.win64:
jcapi.dll : The jcapi c++ library for windows (amd64-bit version). 
Projects :
- uk.co.mmscomputing.concurrent:
Helper classes for concurrent programming. - uk.co.mmscomputing.io:
A few io-stream classes. Modified Huffman (MH), Modified READ (MR), Modified Modified READ (MMR), Base-64, PackBits, Little Endian - uk.co.mmscomputing.util:
A few useful utility classes