The background on this sms sending and receiving namespace

I needed to make an SMTP to SMS spool ( or lets call it an SMTP to UCP spool ) for an Exchange 2003 installation. We need it for 2 reasons. first of all we need the forwarding emails to sms functionalety, but secondly and more importantly we need to support the "allways up to date notifications" functionalety in exchange. it works allmost the same way, just that the emails sendt from exchange for up to date notification is in a special format

After several weeks of searching on the net, i found a lot of things, mostly junk, but non that could do excatly what i needed. most of it was "shareware" that had restrictions and most of it was buggy and the once that where pure API's cost money. f.eks Devshock SmppClient. it looks cool, but I couldnt get it to work and who cares anyway. it cost money, and i needed to do this by my self.
( i later found out that the UCP protocol is extremly simple, heck its plaintext, so why do peoble even dare to take money for this ?? )

After reading Martins how to i desided to write my own. The problem was that i had an old 3.x document descipting the basics of UCP and how to send basic operation 30 messages.
With a little kick start help from EMI client i saw some new commmands, that was not in my document. the EMI led me to some interresing search patterens on google.

It took me a while, but i found out that SMSC's speek an extended version of UCP, called EMI UCP that implements more advanced ways og submitting messages, and some provitioning mechanism's ( and som more transaction based way of handling messages ) Read more on this in EMI UCP specefications pdf from EMG

i took parts of the document and copy'n'pasted it in to an VB console application and rewrote it to pure VB.. I then rewrote the packets part to an packet handler class. after a few hours of coding i was ready to compile for the first time. First go, had som errors but after 6 or 7 hours of work in total, I was able to send an SMS messages.

I then rewrote the whole code from scratch as an Class Library ( Namespace ) and started doing a more structed way of handling the work flow of the protocol, and esspecialy the construction of packets, and ended up with this.
take some time and look at this you will know what i mean.
bare in mind you do not have access to this, direcoty from the DLL but i give an insight on why this namespace is more complicated than it looks.
placeholder.vb and UCPPacket.vb

By the time of writing, this is an near finished version of the whoe EMI UCP protocol, holding all the UCP operations and 51, 52, 53, 59 and 60 operations ( all the 50 series, and session management in the 60 series ) this being just enough for doing what most peoble would need.
i presume it would be easy implementing binary messages and MMS messages too, but since i dont have the founds to maintain an account on an SMSC, this will not be implemented until someone sponsors such and account. *hint* *hint* ;)

This dll also implements and listner, that can receive SMS messages. typicaly used for sms services, but are also nice to pick up delivery reports. I used it for picking up delivery notifications, to make sure that customors where only billed for sms'es that they had originaly received, but could olso be used inside applications, f.eks and chat. ( yes i do that too )

I release this binary for Microsoft .NET framework 1.1 ( rotor ) for free, and a willing to give up the source on requests. I just ask you to drop me an email telling me what you are using thise namespace for ( yes, to send sms'es but more specefik ) and if you need the code, to expend the functionality i'll give that away too, depending on what your using it for.

i had a lot of trouble fining free code/applications to send sms'es and dont want others to have that problem, so i want this code to stay free, at least in the most bsaic form.

The code ( an NT services, and an eventsink on i IIS smtp service ) works excelent but that is developed in company time, so i belive my company owns that code. But i will gladly help others do the same, but i can not give the code i wrote. But seriusly. my service is 200 lines of code, and an VB script on 10 lines of code, and compared to the more that 6000 lines of code for this namespace, thats nothing.

.NET namespace to handle all communitaion with an SMSC ( Short Message Service Centre )
this component is both 4.2 and 4.3 compliant, and implements both Serie 50 and serie 60 Operations
Well, allmost, im still working on it.
The namespace is developed in VB.NET but can be used from any language in VS.NET.

Full dokumentation for DOTUCPEMI.dll
Download DOTUCPEMI as chm windows help file
Download DOTUCPEMI.dll Release version
Download DOTUCPEMI.dll debug version
Download EMI UCP specefication 4.3 as pdf

I would be glad if you would drop me an mail on SnigerOsten [at] chatportal.dk if you use this namespace.
come on, its free so make me happy ;)
also drop me an email if your interrested in the source code. its free off cource. but i wanner keep track on what the code is used for.

This software is provided by the me "as is" and any expressed or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the I or orther contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

10 jan 2004 - panic. no one new we needed to make an smpt to sms spool and I offer to make one. Can't take more than a week, eh'?
15 jan. 2004 - okey, now i'm panic'ing ... cant find anything on this. downloaded tons of junk but nothing that can help make this work. I found som excelent documentation on msdn about creating event sinks in IIS's SMTP service. I think Im going to make my own simple mail server later.
20 jan 2004 - I hate RFC's and heavy documentation, but im starting to understand the documentation i found on google. An pdf document descibing EMI UCP. I found it, while looking for more info on EMI client ( se history above )
25 jan 2004 - There ! .. its not perfect, has no exception handling, and are a little bug'y, but im able to send and receive SMS's with this namespace
5 feb 2004 - okey, im commenting my code more nicely, and are adding refences to the documentation about whats going on. I think it would be best to split up the packet class, but dont really have time to do that right now
7 feb 2004 - createde this page and added more operation commands
8 feb 2004 - add more exception handling, and more checks. dont wanner add to much thow, i need this to be flexible, and the smsc is gonna tell us anyway, if we send garbage. the Parsepacket needs more work thow
9 feb 2004 - Add ip and port, encoding and decoding, to beused agains smsc
10 feb 2004 - Add events on SMSClient for easy callback when we recieve an message or notification, I also added flashing sms support on SubmitSMS