jSMS is a Java API for sending and receiving Short Messages (SMS) and Multimedia Messages (MMS). The API supports a wide range of communication protocols.

Short Message Formats

  • plain-text messages (7-bit alphabet)
  • UCS2 (unicode) messages
  • binary messages
  • EMS (enhanced messaging service) messages
  • Nokia’s Smart Messages as Business Cards, Calendar Entries, Ringtones and Picture messages
  • WAP Push: sending browser settings, service indications (SI) and bookmarks Over-The-Air (OTA)

Multimedia Message (MMS)

  • Send MMS over GPRS (MM1)
  • Receive MMS notifications via SMS (WAP-PUSH), fetch MMS via GPRS (MM1)
  • Multimedia Messaging for Value Added Service Providers (MM7)

Supported protocols

Messages may be sent and received by using any GSM Device capable of sending SMS messages and also by using the most common SMSC communication protocols:

  • GSM (GSM devices)
  • UCP (Universal Computing Protocol)
  • CIMD2 (Computer Interface to Message Distribution)
  • SMPP (Short Message Peer-to-Peer)
  • TAP/IXO (Telocator Alphanumeric Protocol)
  • MM1 (MMS over GPRS)
  • MM7 (MMS exchange using SOAP messages over http(s))

The jSMS API has been designed with a modular architecture in focus. This allows an easy integration of other SMS transport facilities.

Besides sending and receiving Short Messages, the API also contains a small footprint SMTP (Simple Mail Transfer Protocol) Client which enables your applications to send internet emails according to RFC822.


Windowing for applications enables jSMS to initiate more than one operation before receiving responses from the SMSC (it must be enabled by the SMCS). This increases the message throughput. SmsService implementations for UCP, CIMD2 and SMPP support Windowing.


A free, 30-day trial version of the JSMS API is available for download:

Example Code

The following example demonstrates how to send a Short Message with the jSMS API:

import com.objectxp.msg.*;

public class SendSMS 
  public static void main(String args[]) {
    try {
      // Create and initialize a SMS service
      SmsService service = new GsmSmsService();
      // Create a new SMS Message
      SmsMessage msg = new SmsMessage(service);
      // Set recipient and message
      msg.setMessage("SYS1: Power loss. Shutdown in 5 minutes.");

      // Send the SMS
      System.out.println("Message sent successfuly, ID is "+msg.getMessageId());
    } catch( MessageException me ) {
      System.err.println("Message could not be sent: "+me.getMessage());
    } finally {
      if( service != null ) {
        service.destroy(); // Destroy the service


Possible Applications

  • Alarming
  • Remote Control
  • Monitoring
  • Notification
  • Marketing
  • News services


jSMS Fact Sheet
Filename : jsms-factsheet.pdf (96 kB)
Caption :
Users Guide
Filename : users_guide.pdf (368 kB)
Caption : Users Guide