This chapter describes the APIs used by Instant Messaging in the following sections:
Instant Messaging provides Java APIs which can be used to develop extension or integration modules. Detailed documentation of these APIs are provided with the installed Instant Messenger component, in the form of HTML files generated by Javadocs. The Javadoc files are installed in the im-svr-base/html/apidocs/ directory. To view the API documentation, point your browser to codebase/apidocs where codebase is the Instant Messenger resources codebase.
The following are the Instant Messaging APIs:
The Instant Messaging API is used by the applications located on the same host or in the remote host to access Instant Messaging services, such as Presence, Conference, Notification, Polls and News channels.
The Instant Messaging Service API can be used for:
A Java-based or web-based client, such as a portal channel.
A Bridge or a Gateway to enable another class of clients.
Integration of Instant Messenger and Presence into existing applications.
Displaying news feeds as Instant Messenger news.
A Messenger bean is a dynamically loaded module used to extend Instant Messenger functionality. Messenger beans can add action listeners, such as buttons and menu items, and item listeners, such as check boxes and toggle buttons in the existing Instant Messenger window. The item listeners are invoked when an end-user input is received and bean-specific actions are based on the end-user input. Beans have the ability to add their own settings panel and save bean-specific properties on the server. Beans can be notified of any event received by Instant Messenger, for example, a new alert message.
The applications that use Messenger Beans include the following:
Ability for end users to share application and conference along with voice or video.
Ability to retrieve and process the transcript of a conference. For example, the contents of a received or sent alert, for archiving purposes.
The Service Provider Interface APIs provide the ability to extend the Instant Messaging server functionality. The Service Provider Interface is composed of the following independent APIs:
An Archive Provider is a software module usually providing integration with the archive or auditing system. Each configured Archive Provider is invoked for each server process.
The Archive Provider is invoked for the following server processes:
When an instant message is sent, such as alert, poll, chat, news or conference messages.
During an authentication event, such as login or logout.
When there is a change in the presence status.
During a subscription event. For example, when someone joins or leaves a conference, or subscribes or unsubscribes to a news channel.
The application that uses the Archive Provider API are as follows:
Instant Messaging Archive
The default Instant Messaging archive in Instant Messaging is based on the Archive Provider API. For more information on Instant Messaging Archive, see Chapter 18, Managing Archiving for Instant Messaging.
The application that records the usage statistics for sizing purposes.
A Message Converter is invoked for every message or each message part going through the server. The Message Converter may leave the message part intact or modify or remove the message part. The text parts are processed as Java String Objects. The Message Converter processes other attachment as a stream of bytes and returns a potentially different stream of bytes, or nothing at all if the attachment is to be removed.
The applications that uses Message Conversion API include the following:
Virus checking and removal
Translation engine integration
Message content filtering
The Authentication Provider API provides the ability to deploy Instant Messaging in environments that are not using Access Manager password-based or token-based authentication service. This API is invoked whenever an end user requests authentication, and it can be used in conjunction with the LDAP authentication.
Single Sign-on (SSO) with Access Manager is performed using the Authentication Provider API. This API can also be used to integrate with other authentication systems.