Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A robust SMPP library for .NET [closed]

Tags:

c#

.net

smpp

I'm developing an online SMS messenger and looking for a scalable and robust SMPP library for .NET. I saw EasySMPP (but have some doubts with it) and RoamingSMPP. There are also one but I can't recall it's name. For me the most important is it's scalability, stability and fault tolerance. I may have 500k+ users and several hundreds SMS per second. The communication will be 2 way, receive should be able to reply to SMS msg received from my messenger. So I'm interested if anyone can recommend the library which suits my needs? It doesn't matter for me if it's free or commercial.

Thanks

like image 946
Davita Avatar asked Jan 27 '11 18:01

Davita


3 Answers

Davita, I've been using the Jamaa SMPP Client for 3 months with success. Its relative easy to implement, and its free.

like image 150
tcbrazil Avatar answered Oct 30 '22 21:10

tcbrazil


Inetlab.SMPP

http://www.inetlab.com/Products/Inetlab.SMPP.aspx

Very good library

like image 5
Imran Qureshi Avatar answered Oct 30 '22 19:10

Imran Qureshi


Scalability in SMPP protocol is complicated matter. You can scale horizontally by firing multiple connections but this creates issues like Status Reports coming back on other connection than the message has been submitted, if one account is used. Vertical scaling is not only on the component (but of course badly created component can limit the throughput) but quite often is limited by the SMSC itself - it is hard to find an SMSC that would not saturate over 100-150 messages per second returning throttling error (0x00000058 - ESME has exceeded allowed message limits). Concluding - achieving high performance may require cooperation with operator. Component/library may come handy if it has e.g. throttling or submit to multiple destinations support built in.

Robustness is another rather subjective thing but in my opinion good & preemptive support are a part of it.

Fault tolerance can rather be only achieved in cooperation between component/library and the application that is using it. Library cannot do all the things like retrying submits, dealing entirely with throttling, responding to errors in submit_multi operation etc. This would call for a queuing/buffering mechanism and would certainly interfere with high throughput for basic operations. It would rather be an SMPP gateway if you would like it to deal with all errors that may appear. But with good library all this can be done easily for starters and the fine tuned with growing performance demands.

This commercial .NET library may be worth considering:

http://www.tops.com.pl/en/products/smscc/

Has quite large number of installations, quite few by large telecoms. Can be used in scalable manner both horizontal & vertical and can implement fault tolerance scenarios. In real life tests achieving over 500 messages per second on single TCP/IP link, limited by the SMSC's capabilities.

like image 3
user745632 Avatar answered Oct 30 '22 19:10

user745632