Features
- Full support for SMPP 3.4 and SMPP 5.0.
- Namespace separation between the two protocol versions.
- Exceptions for data range errors, size issues and mis-use.
- Fast and efficient ByteBuffer support classes for reading and writing of raw PDU octet information.
- No dependencies on any non-standard libraries.
- Similar design in C++ and Java.
SMPP Compliance
| PDU | 3.4 | 5.0 |
|---|---|---|
| BindTransmitter | yes | yes |
| BindTransmitterResp | yes | yes |
| BindReceiver | yes | yes |
| BindReceiverResp | yes | yes |
| BindTransceiver | yes | yes |
| BindTransceiverResp | yes | yes |
| Outbind | yes | yes |
| Unbind | yes | yes |
| UnbindResp | yes | yes |
| EnquireLink | yes | yes |
| EnquireLinkResp | yes | yes |
| AlertNotification | yes | yes |
| GenericNack | yes | yes |
| SubmitSm | yes | yes |
| SubmitSmResp | yes | yes |
| DataSm | yes | yes |
| DataSmResp | yes | yes |
| SubmitMultiSm | yes | yes |
| SubmitMultiSmResp | yes | yes |
| DeliverSm | yes | yes |
| DeliverSmResp | yes | yes |
| CancelSm | yes | yes |
| CancelSmResp | yes | yes |
| QuerySm | yes | yes |
| QuerySmResp | yes | yes |
| ReplaceSm | yes | yes |
| ReplaceSmResp | yes | yes |
| BroadcastSm | yes | |
| BroadcastSmResp | yes | |
| QueryBroadcastSm | yes | |
| QueryBroadcastSmResp | yes | |
| CancelBroadcastSm | yes | |
| CancelBroadcastSmResp | yes |
Support
| Support Feature | Free Version | Commercial |
|---|---|---|
| Full SMPP 3.4 implementation | Yes | Yes |
| Full SMPP 5.0 implementation | Yes | Yes |
| Bug reporting and fixes | Yes | Yes |
| Submission of patches | Yes | Yes |
| Email support for installation | Yes | |
| Email support for integration | Yes | |
| Email support for development | Yes | |
| Commercially licensed package (not GPLv3) | Yes |
Code Examples
C++
#include <stdlib.h>
#include <iostream>
#include <suitesmpp/smpp34/support.hpp>
using namespace suitesmpp::smpp34;
int main()
{
pdu::BindTransceiver* bindreq = new pdu::BindTransceiver;
bindreq->setCommandStatus( constants::PduCommandStatus::ROK );
bindreq->setSequenceNumber( 1 );
bindreq->setSystemId( "SYSTEMID" );
bindreq->setPassword( "password" );
bindreq->setSystemType( "VMS" );
bindreq->setInterfaceVersion( 0x34 );
bindreq->setAddrTon( 0 );
bindreq->setAddrNpi( 0 );
bindreq->setAddressRange("");
bindreq->setCommandLength( bindreq->size() );
suitesmpp::ByteBuffer buffer( bindreq->size() );
bindreq->generate( buffer );
suitesmpp::PDU* pdu = support::parse( buffer );
pdu->generatehr( std::cout );
return EXIT_SUCCESS;
}
Java
import com.smksoftware.suitesmpp.common.*;
import com.smksoftware.suitesmpp.exceptions.*;
import com.smksoftware.suitesmpp.smpp50.constants.*;
import com.smksoftware.suitesmpp.smpp50.pdu.*;
import java.io.*;
public class Main
{
public static void main( String[] args )
throws
RangeException, BufferInsufficientException,
UnknownValueException, IOException
{
BindTransceiver bindreq = new BindTransceiver();
bindreq.setCommandStatus( PduCommandStatus.ROK.getValue() );
bindreq.setSequenceNumber( 1 );
bindreq.setSystemId( "SYSTEMID" );
bindreq.setPassword( "password" );
bindreq.setSystemType( "VMS" );
bindreq.setInterfaceVersion( 0x34 );
bindreq.setAddrTon( 0 );
bindreq.setAddrNpi( 0 );
bindreq.setCommandLength( bindreq.size() );
ByteBuffer buffer = new ByteBuffer( (int)bindreq.size() );
bindreq.generate( buffer );
PDU pdu = Parser.parse( buffer );
PrintWriter myOut = new PrintWriter( System.out, true );
pdu.generatehr( myOut );
}
}
Download GPLv3 Releases
Documentation
| Document | Date | Version | File |
|---|---|---|---|
| Development Guide | |||
| 15 Mar 2011 | 1.0.2 | suitesmpp-devguide-1.0.2.pdf | |
| 18 Jan 2011 | 1.0.1 | suitesmpp-devguide-1.0.1.pdf | |
| Release Notes | |||
| 15 Mar 2011 | 1.0.2 | suitesmpp-releasenotes-1.0.2.pdf | |
| 18 Jan 2011 | 1.0.1 | suitesmpp-releasenotes-1.0.1.pdf | |
| 10 Jan 2011 | 1.0.0 | suitesmpp-releasenotes-1.0.0.pdf |
Source Code and Binaries
| Language | Date | Version | File |
|---|---|---|---|
| C++ | |||
| 15 Mar 2011 | 1.0.2 | suitesmpp-1.0.2-gplv3.tar.gz | |
| 18 Jan 2011 | 1.0.1 | suitesmpp-1.0.1-gplv3.tar.gz | |
| 10 Jan 2011 | 1.0.0 | suitesmpp-1.0.0-gplv3.tar.gz | |
| Java | |||
| 15 Mar 2011 | 1.0.2 | suitesmpp-1.0.2-gplv3.jar | |
| 18 Jan 2011 | 1.0.1 | suitesmpp-1.0.1-gplv3.jar | |
| 10 Jan 2011 | 1.0.0 | suitesmpp-1.0.0-gplv3.jar |
