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 :

  1. An operating-system dependend c++ library (jcapi.cpp), that simply converts java function calls into c++ function calls. [2],[3]
  2. A java class that can access this above mentioned library (jcapi.java). [3]
  3. A set of classes that simplify the task to handle capi messages (StructIn.java, MsgIn.java, StructOut.java, MsgOut.java, ...). [1]
  4. 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]
  5. A few example programs (uk.co.mmscomputing.device.capi.samples.*)
  6. 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).
  7. 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

sub-directories:
  1. uk.co.mmscomputing.device.capi.ctrl:
    capi messages that do not need a plci yet.
  2. uk.co.mmscomputing.device.capi.exception:
    exceptions thrown by capi system.
  3. uk.co.mmscomputing.device.capi.facility:
    Classes that handle capi facility messages.
  4. uk.co.mmscomputing.device.capi.lin32:
    libjcapi.so : The jcapi c++ library for linux (32-bit version).
  5. uk.co.mmscomputing.device.capi.man:
    Capi Manufacturer Messages
  6. uk.co.mmscomputing.device.capi.ncc:
    capi messages that need a valid ncci.
  7. uk.co.mmscomputing.device.capi.parameter:
    some capi parameter.
  8. uk.co.mmscomputing.device.capi.plc:
    capi messages that need a valid plci.
  9. uk.co.mmscomputing.device.capi.protocol:
    A few simple predefined capi protocol structs.
  10. uk.co.mmscomputing.device.capi.q931:
    A Few Q.931 Information Elements CAPI uses.
  11. uk.co.mmscomputing.device.capi.samples:
    A few simple capi test programs.
  12. uk.co.mmscomputing.device.capi.sound:
    Classes that turn the CAPI device audio streams into an A-Law, u-Law or PCM stream.
  13. uk.co.mmscomputing.device.capi.win32:
    jcapi.dll : The jcapi c++ library for windows (32-bit version).
  14. uk.co.mmscomputing.device.capi.win64:
    jcapi.dll : The jcapi c++ library for windows (amd64-bit version).
Projects :
  1. uk.co.mmscomputing.concurrent:
    Helper classes for concurrent programming.
  2. uk.co.mmscomputing.io:
    A few io-stream classes. Modified Huffman (MH), Modified READ (MR), Modified Modified READ (MMR), Base-64, PackBits, Little Endian
  3. uk.co.mmscomputing.util:
    A few useful utility classes