Simple SMSC SMPP simulator written in Java based on Spring and Cloudhopper library, 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.
A runnable distribution can be downloaded from here smscsim-1.0.0-dist. It contains all needed libraries. Just unzip and run the run.bat file to start the simulator on predefined ports in bat.
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 :-).
Java (at least 1.7) is needed to run the simulator and it needs to be in the path.
How to use JMX features:
Sources, compilation and license
For sources go to github project page.