{"id":165,"date":"2015-01-11T13:36:41","date_gmt":"2015-01-11T12:36:41","guid":{"rendered":"http:\/\/www.voldrich.net\/?page_id=165"},"modified":"2022-10-23T22:14:17","modified_gmt":"2022-10-23T20:14:17","slug":"smsc-smpp-simulator","status":"publish","type":"page","link":"https:\/\/www.voldrich.net\/index.php\/projects\/smsc-smpp-simulator\/","title":{"rendered":"SMSC SMPP simulator"},"content":{"rendered":"\n<p><strong>Simple SMSC SMPP simulator written in Java based on Spring and Cloudhopper library, basic features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Listens on specified ports for SMPP messages and sends back OK responses.<\/li><li>Supports listening on multiple ports.<\/li><li>Thanks to Cloudhopper SMPP library detailed realtime statistics of SMPP traffic is available through JMX.<\/li><\/ul>\n\n\n\n<p><strong>Delivery Receipt features<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For each submit (MT) request it receives, it sends a delivery receipt after fixed\/random delay (configurable).<\/li><li>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.<\/li><li>RoundRobin is used to rotate between available matching connections.<\/li><\/ul>\n\n\n\n<p><strong>Deliver features, segmented messages<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Supports sending of deliver (MO) messages to connected clients.<\/li><li>Deliver messages may be segmented SMPP messages, supports segmentation set via optional parameter or via UDH00 or UDH08.<\/li><li>MO messages sent by simulator to connected clients are controlled with JMX commands &#8211; start, stop, send message stream and so on.<\/li><\/ul>\n\n\n\n<p>Simulator was used as a testing tools to test proper handling of delivery receipts and segmented deliver messages.<\/p>\n\n\n\n<p><b>Download from<\/b>:<\/p>\n\n\n\n<p>A runnable distribution can be downloaded from here&nbsp;<a href=\"https:\/\/www.voldrich.net\/projects\/smsc-smpp-simulator\/smscsim-1-0-0-dist\/\" rel=\"attachment wp-att-168\">smscsim-1.0.0-dist<\/a>. It contains all needed libraries. Just unzip and run the run.bat file to start the simulator on predefined ports in bat.<\/p>\n\n\n\n<p><strong>How to run<\/strong>:<\/p>\n\n\n\n<p>Following command starts SMPP servers on ports 34567, 34568 and 34569 and sets log level to INFO:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java -Xms32m -Xmx1024m -jar smscsim.jar -ll INFO -p 34567 34568 34569\n<\/code><\/pre>\n\n\n\n<p>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 :-).<\/p>\n\n\n\n<p>Java (at least 1.7) is needed to run the simulator and it needs to be in the path.<\/p>\n\n\n\n<p><strong>How to use JMX features<\/strong>:<\/p>\n\n\n\n<p>Download monitoring tool <a href=\"http:\/\/visualvm.java.net\/download.html\">VisualVM<\/a> and install additional <a href=\"http:\/\/visualvm.java.net\/plugins.html\">MBeans browser plugin<\/a>.<\/p>\n\n\n\n<p><strong>Sources, compilation and license<\/strong><\/p>\n\n\n\n<p>For sources go to <a title=\"SMPP Smsc simulator\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/MavoCz\/smscsim\" target=\"_blank\">github project page<\/a>.<\/p>\n\n\n<div class=\"ebg-br-wrapper ebg-br-wrapper-dark-mode-off\">\n\t<div class=\"ebg-br-background-image\"><\/div>\n\t<div class=\"ebg-br-editmode egb-br-darkmode-status\">\n\t\t<span class=\"egb-br-darkmode-status-img\">Dark Mode<\/span>\n\t<\/div>\n\t<div class=\"ebg-br-avatar\">\n\t\t<img loading=\"lazy\" decoding=\"async\" class=\"ebg-br-header-avatar\" src=\"https:\/\/avatars.githubusercontent.com\/u\/3253638?v=4\" alt=\"\" width=\"150\" height=\"150\" \/>\n\t<\/div>\n\t<div class=\"ebg-br-main\">\n\t\t<p class=\"ebg-br-title\">\n\t\t\t<strong>\n\t\t\t\t<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/MavoCz\/smscsim\">\n\t\t\t\t\tsmscsim\n\t\t\t\t\t<span class=\"screen-reader-text\">(this link opens in a new window)<\/span>\n\t\t\t\t<\/a>\n\t\t\t<\/strong>\n\t\t\t<em>\n\t\t\t\tby<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/MavoCz\">\n\t\t\t\t\tMavoCz\n\t\t\t\t\t<span class=\"screen-reader-text\">(this link opens in a new window)<\/span>\n\t\t\t\t<\/a>\n\t\t\t<\/em>\n\t\t<\/p>\n\t\t<p class=\"ebg-br-description\">SMPP SMSC simulator which uses cloudhopper SMPP library.<\/p>\n\t\t<p class=\"ebg-br-footer\">\n\t\t\t<span class=\"ebg-br-subscribers\">\n\t\t\t\t<span class=\"ebg-br-background-image\"><\/span>\n\t\t\t\t8 Subscribers\t\t\t<\/span>\n\t\t\t<span class=\"ebg-br-watchers\">\n\t\t\t\t<span class=\"ebg-br-background-image\"><\/span>\n\t\t\t\t36 Watchers\t\t\t<\/span>\n\t\t\t<span class=\"ebg-br-forks\">\n\t\t\t\t<span class=\"ebg-br-background-image\"><\/span>\n\t\t\t\t25 Forks\t\t\t<\/span>\n\t\t\t<a target=\"_blank\" rel=\"noopener noreferrer\" class=\"ebg-br-link\" href=\"https:\/\/github.com\/MavoCz\/smscsim\">\n\t\t\t\tCheck out this repository on GitHub.com\t\t\t\t<span class=\"screen-reader-text\">(this link opens in a new window)<\/span>\n\t\t\t<\/a>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":156,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-full-width.php","meta":{"footnotes":""},"class_list":["post-165","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/pages\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":3,"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/pages\/165\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/pages\/165\/revisions\/775"}],"up":[{"embeddable":true,"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/pages\/156"}],"wp:attachment":[{"href":"https:\/\/www.voldrich.net\/index.php\/wp-json\/wp\/v2\/media?parent=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}