Open SMPP Erlang Library
Updated July 10th, 2004 11 de marzo


OSERL (Open SMPP Erlang Library) is an erlang implementation of the Short Message Peer to Peer protocol.

Short Message Peer to Peer (SMPP) protocol is an open, industry standard designed to provide a flexible data communications interface for the transfer of short message data between External Short Message Entities (ESME), Routing Entities (RE) and Message Centers (MC). OSERL is an open source library that comprises the entire specification of the recently released SMPP version 5.0 (February 20th, 2003). Moreover, thanks to an appropriated design, any future and previous version of the protocol are also directly supported by OSERL.

Currently OSERL is being updated to support other SM transfer protocols such us EMI UCP and CIMD.

OSERL is an open project, any comment, suggestion or collaboration will be welcome.


OSERL 1.1Available

I wasn't completely satisfied with version 1.0, so I decided no to release it and move straight to version 1.1.

This new release has many new features:

In addition, resulting implementation 50% more compact, and also more efficient and elegant.



Links below lead to the API documentation of this library. Every library module and their exported functions were documented. Some design decisions and examples are also explained, thus those interested in how things were done will found the details on these documents.

OSERL uses the common_lib library. This library groups together some general purpose modules.

The API documentation has been generated using eDoc, a great tool for the erlang world much like the JavadocTM.

The PICS proforma is the Protocol Implementation Conformance Statement (PICS) proforma for the SMPP v3.4 protocol. The information supplied after completing this questionnaire gives a concise and standard description of which sections of the SMPP v3.4 protocol an implementation will support.

I only had access to PICS for version 3.4 of the SMPP protocol (provided by the SMS Forum in MS word format :-(

With respect to version 5.0, I shall say that OSERL supports every field and every operation of this last version. Moreover, every encoding/decoding error on the specification, even those related to individual parameters, are detected and reported using the appropriate error code. Timers, congestion control and other dynamic aspects of the protocol are also implemented.

PICS proforma for The Open SMPP Erlang Library


Applications using OSERL

AMUSE is a Multi-Service ESME implemented over OSERL.


Work supported by Xunta de Galicia, Spain.

Project PGIDT02TIC10501PR.