Coder Social home page Coder Social logo

smscsim's Introduction

SMSC SMPP simulator

Simple SMSC SMPP simulator written in Java, basic features:

  • Listens on specified ports for SMPP messages and sends back OK responses.
  • Supports listening on multiple ports.
  • Thanks to Cloudhopper SMPP library detailed realtime statistics of SMPP traffic is available through JMX.

Delivery Receipt features:

  • For each submit (MT) request it receives, it sends a delivery receipt after fixed/random delay (configurable).
  • Outgoing delivery receipt messages are sent to connected set of RX and TRX connections with the same application/system ID as had the submit message that triggered the delivery receipt.
  • RoundRobin is used to rotate between available matching connections.

Deliver features, segmented messages:

  • Supports sending of deliver (MO) messages to connected clients.
  • Deliver messages may be segmented SMPP messages, supports segmentation set via optional parameter or via UDH00 or UDH08.
  • MO messages sent by simulator to connected clients are controlled with JMX commands - start, stop, send message stream and so on.

Simulator was used as a testing tools to test proper handling of delivery receipts and segmented deliver messages.

How to run:

Following command starts SMPP servers on ports 34567, 34568 and 34569 and sets log level to INFO:

java -Xms32m -Xmx1024m -jar smscsim.jar -ll INFO -p 34567 34568 34569

Only server ports and logging level can be defined when starting the server. Other parameters can be changed by changing Spring xml context. See src\main\resources\context.xml. Project needs to be recompiled after such config change (room for improvement :-).

Obviously Java (at least 1.7) is needed to run the simulator and it needs to be in the path.

How to use JMX features:

Download monitoring tool VisualVM and install additional MBeans browser plugin.

How to compile:

Maven 3.x is needed to build the project and create distribution package.

mvn clean install assembly:assembly

Unit test is provided to test basic delivery receipt functionality. See class

net.voldrich.smscsim.ServerMainTest

Uses following fantastic libraries:

License

Copyright (C) 2014 Matous Voldrich.

This work is licensed under the Apache License, Version 2.0. See LICENSE for details.

smscsim's People

Contributors

krasa avatar mavocz avatar

Forkers

kong8g

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.