SMK Software

By: Smk Software  11-11-2011

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
  Yes
  Yes
  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

Source Code and Binaries


Contact Smk Software

Email - none provided

Print this page

Share