About SMSLib


SMSLib is a Java library which allows you to send/receive SMS messages via a compatible GSM modem or GSM phone. SMSLib also supports some bulk sms operators (for outbound messaging only).

SMSLib has been converted to a .NET assembly using the IKVM Tools. Read more here.

SMSLib is distributed under the terms of the Apache v2 license.


SMSLib is currently on its 3rd version.

SMSLib v3 retains the old functionality:

Furthermore, SMSLib v3 offers the following new functionality:

Multiple Gateways

SMSLib v3 has introduced the concept of the Gateway, which is an interface to a device or service that can send and/or receive SMS messages. A gateway could be a GSM modem or a supported bulk sms provider. SMSLib can handle multiple gateways at the same time.

Sending Priorities

SMSLib offers unlimited per-message priorities which can be used for sending messages. When possible, SMSLib priorities are mapped directly to the gateway(s) functionality, otherwise they get simulated.

Synchronous / Asynchronous Receiving

SMSLib gives you two options for receiving messages:

Synchronous / Asynchronous Sending

SMSLib gives you two options for sending messages:


SMSLib gives you the option of defining callback methods which it will call when certain events occur:

See this page for more information.

Custom Sender ID

SMSLib supports custom Sender ID. This feature is not supported on GSM modems - you have to use one of the supported bulk sms operators.

Encrypted Messages

SMSLib can send/receive encrypted messages. The current encryption engine uses the JDK AES strong key (128bit) implementation. Encrypted messages are send as binary messages. SMSLib provides an automatic way of assigning encryption keys to specific numbers, so the whole send/receive procedure is more or less automatic.

See this page for more information.