Isode provides both Gateway APIs and a Client API for use with its server products.

When building a complex messaging system, there is often a requirement to integrate X.400 messaging services with other messaging or telematic services. For example integration of a military X.400 system with ACP127 Messaging, integration of an air traffic messaging system with AFTN Messaging or integration of a messaging system with facsimile or telex services.

M-Switch X.400 has a multi-protocol multi-channel architecture, and is an ideal basis for building gateways. Isode offers two approaches to building such gateways in conjunction with M-Switch X.400.

  1. Use the Isode X.400 Gateway API (described below) which is available for Java or as a simple 'C' programmatic interface to connect external messaging or telematic services to X.400. This API is suitable for aviation, military or EDI applications. In order to integrate applications with M-Switch using this API, Isode supplies an X.400 Gateway API Developer's kit. This product was originally developed for the aviation industry and has features specifically designed for AMHS. This product is also sold as the AMHS Gateway API for use by vendors building solutions for the aviation industry, in developing ground to ground applications that operate over AMHS, and for integrating AMHS applications with the AFTN network.
  2. Use the Open Group X.400 Gateway API, which is a 'C' programmatic interface allowing messages to pass between a mail-enabled application or a proprietary mail system and an X.400 message service. M-Switch supports the X.400 Gateway API, including X.400 (1984) and X.400 (1988) versions. Runtime licenses for this API are included with M-Switch X.400. In order to integrate Open Group X.400 Gateway API applications with M-Switch, Isode supplies an Open Group X.400 Gateway API Developer's kit. Example applications using this API (included in the Isode release) are described here.

Isode also provides a set of Isode specified extension to this API, to deal with two things:

  • STANAG 4406 Military Messaging extensions to X.400.
  • File Transfer Body Part (FTBP) support. This important X.400 feature is not covered in the standard API

These extensions are included as part of the Isode Open Group X.400 Gateway API product, and are specified in this document.

Isode's X.400 Gateway API is co-resident with M-Switch X.400, in order to make available functionality that is not available over X.400 P3 or P7. The library provides all of the X.400 side of an gateway, making complete gateway development very straightforward.

Key Benefits

The Isode X.400 Gateway Library offers the following benefits:

  • The API provides a simple and easy to use abstraction of X.400.
  • Although the X.400 complexity is abstracted, the API is designed so that all X.400 services can be selected and modified if required.
  • The API is cross platform - available on Windows, Linux, HP and Solaris
  • The API shares some common functionality with the Isode X.400 Client API product family.


The X.400 Gateway API is co-resident with M-Switch X.400. This is primarily intended for building gateways, which require access to X.400 (message transfer) service elements which are not available over P3 or P7. This architecture could be used for client X.400 applications, although Isode does not recommend this.

Gateway API Architecture

This API is a synchronous API, which is designed to be used with a multi-threaded process, and a process may have multiple associations. Each association should only be accessed by a single thread. Multiple processes may be run in parallel using this interface.

Feature Support

The X.400 Gateway API provides:

  • Comprehensive access to message transfer features (X.411), providing access to all of the capabilities provided by M-Switch X.400.
  • Selected X.420 (IPM) capabilities, in particular those needed for basic messaging and aviation applications.
  • P772 (STANAG 4406) for military applications.

API Definition

  • The Isode manual, describing all of the Isode messaging APIs is here.
  • The 'C' language Isode X.400 Gateway API definitions are available here and example programs are available here.
  • The Java language Isode X.400 Gateway API definitions are available here and example programs are available here.
  • Examples of the Tcl language Isode X.400 Gateway API are in the product release and are described here.