Isode's approach to operational management is client/server, in M-Switch products this is implemented using the Switch Operational Management (SOM) architecture. Isode management tools are built over the SOM Client API, which is also available as a development kit.


The SOM Client API provides the ability to write SOM clients which can monitor and control one or more M-Switch servers. SOM is an Isode proprietary protocol and is only able to manage Isode M-Switch components. The Isode SOM API uses an object-oriented style, relying on arguments which are

  • integers (either explicitly or as manifest constants)
  • strings (whose length is passed as an integer)
  • opaque objects (on which the API functions perform operations)

This approach facilitates support in multiple languages.

Core Functionality

The SOM Client API provides the following core functionality:

  • Authenticated client access, using SASL, including X.509 based strong authentication using SASL EXTERNAL.
  • Optional anonymous access.
  • Optional data confidentiality using TLS.
  • Authorization, with per user controls on services available (e.g., access to message content and envelope information).
  • Log access, monitoring and searching.
  • Queue status information and control at various levels:
    • Overall queue
    • Channel (inbound and outbound)
    • Peer MTA and Peer MTA Group
    • Recipient
    • Association (inbound and outbound)
    • Partially received message object
  • Access to messages in the M-Switch queue.
  • Deletion, redirection and other control operations on messages in the M-Switch queue.
  • Access to messages in the message archive.
  • Access to messages in the quarantine store, and ability to release messages

Programming Language Support

SOM API language bindings are available in C, Java and Tcl.

API Documentation