Wednesday, December 03, 2008

Looking for a .NET SMPP implementation - Part 2

seems my previous post was somewhat more popular than usual, judging from the two comments i got on it. so, i'm writing this more or less in response to those comments.

my answer is: it depends on a number of factors. what do you want to do? create a client or server? is working with unmanaged code a requirement? what kind of timeline do you have? is reading through code and class diagrams your way of learning, or is it one step above swallowing broken glass? must you absolutely have commercial support? what about licensing? when you look at all these, your mileage will definitely vary. at any rate, below i give some of the things i've picked up about these components. hope it helps!

IP*Works

  • You have to pay for it beyond the trial period.
  • You get commercial support.
  • Since it's a sold product in it's 8th major version, it should have been well-tested in production environments and suited for handling large volumes of SMPP traffic (note the emphasis. it may not have).
  • You get other components (well, check out the website yourself).
  • You probably don't get licensing issues (note the emphasis again).
  • There's an SSL version if you need it.
  • They have more than .NET if you need it (but those - except for Java - seem to have stopped in version 6).
  • i haven't used it, so i can't tell that you can use the component to develop a server.
  • website

RoaminSMPP

  • it's licensed under the GNU Library General Public License. as far as i know, that allows you use it in commercial, closed-source applications, but i may be wrong. also, you may not want to use LGPL components. then again, using opensource software may make you feel warm and fuzzy inside.
  • the developer says he's stopped development. any bug fixes may have to come from you.
  • documentation is in the source code. literally. there's no other source of documentation short of looking up the binary in a tool such as Red Gate .NET Reflector.
  • it's free.
  • having access to the source may just be the thing for you to tweak it.
  • SourceForge project page

Devshock

  • it's free.
  • it comes with example code. in VB.NET, no less :(
  • one of the sample projects seems to be an SMPP server.
  • the site was supposed to come up two months ago (in other words, unless someone mirrors the component, you're out of luck! as it stands, i've uploaded a copy here. someone please tell me if it's illegal with proof, and i'll remove the files).
  • since the site is down, i cannot state the license (it's not in the downloaded file). you may have licensing issues here too.
  • the assembly is not obfuscated in any way, so you can look it up in Reflector and figure out how it was built.
  • website (under construction)

ALT.SMS.SmppClient

  • it's free. you can purchase the source code, and get commercial support, free updates, and whatnot.
  • quite a bit of the assembly is obfuscated (i guess they should really add something in it like, "buy the source, you cheapskate!"). good luck poking around with Reflector.
  • there's a forum, so you and everyone else who uses it can decide to discuss it. don't compare that to paid support, though.
  • no visible license. that may be a problem.
  • website

SMPPLIB

  • written in unmanaged code. has a COM library too, so it can easily be used from .NET.
  • another item with no explicit license. sigh.
  • it's written in C++ and is MFC dependent.
  • you only get the source.
  • frozen since 2003.
  • website

EasySMPP

  • no explict license.
  • frozen since 2006.
  • looks simple enough to use, but i couldn't get it to work :(
  • example program included. there's a gateway using it (and as far as i know, it's the only gateway/simulator that seems to work with it).
  • free. opensource.
  • in case you missed it, it can be used for servers
  • SourceForge project page

BasheerG asked if i tested for performance & high load. no i didn't - i didn't have the space to, since i was (mostly) moved from the SMS arm of my employer's concerns. to answer your other question, if i could afford it, i'd go for the IP*Works first, then RoaminSMPP, then Devshock. i've no idea where i'd place the ALT.SMS.SmppClient. maybe lurking around the forum might help me decide. i'd hate to use the SMPPLIB component because of COM issues. and since EasySmpp didn't work effectively for me, i'd not use it. i hope this helps you and Sandip.

4 comments:

Royce Fullerton said...

Thanks for the info on Devshark...it seems like all information on it got sucked up by a black hole. I was looking for those example files you posted everywhere(site is still down).

Thanks!

Alibek Junisbayev said...

Thanks for such a helpful post.

Dazzle said...

Hi, were u able to successfully connect to the SMPP server to retrieve SMS's (as a tranceiver or receiver). Having some challenges using RoamindSMPP and Devshock to achieve that, any assistance will be appreciated.

Regards

ipoD said...

@Dazzle i only implemented a transmitter. i'll see if i can work on testing a receiver sometime soon and create a blog post on how it went.