[Twisted-Python] Advice seeked on SMPP implementation
Hello, I'm currently busy with implementing SMPP in Twisted, and there is something I would like to have a piece of advice with. If I'm going to make it internal to my needs, there's only issue of making it work and be done with it. But that's not quite a way I would like to do it; I would like to end up with an implementation which would be reusable and beneficial for the community as well, so that anyone would be then able to take this implementation and get his or her service an almost instant ability to talk SMPP (news via SMS? microblogging via SMS? ...) Thus keeping in mind that SMPP by its nature is not entirely unlike your old instant messaging and mailing protocols, albeit geared towards mobile content, there might be some interfaces already in Twisted which I would need to implement before it becomes interesting to anyone else. Can anyone give me some useful pointers on that? P. S. I have seen some SMPP-related discussions popping up on this list, but it seems that to date, nothing open source and under active development and maintenance has been produced so far. -- Engineer : How do I do it? Economist : How much will it cost? Twisted Developer: Will it block?
On Jul 3, 2010, at 7:23 AM, Yaroslav Fedevych wrote:
If I'm going to make it internal to my needs, there's only issue of making it work and be done with it. But that's not quite a way I would like to do it; I would like to end up with an implementation which would be reusable and beneficial for the community as well, so that anyone would be then able to take this implementation and get his or her service an almost instant ability to talk SMPP (news via SMS? microblogging via SMS? ...)
That would indeed be cool :).
Thus keeping in mind that SMPP by its nature is not entirely unlike your old instant messaging and mailing protocols, albeit geared towards mobile content, there might be some interfaces already in Twisted which I would need to implement before it becomes interesting to anyone else.
Can anyone give me some useful pointers on that?
There are some existing interfaces in twisted.words.im, which you can see here: <http://twistedmatrix.com/trac/browser/trunk/twisted/words/im/interfaces.py> but they have not seen a lot of maintenance, and they date back to a much less awesome time in Twisted's history. Still, there may be some small utility in implementing them, if for no other reason than to encourage them to become better documented and supported! I don't have much advice as to *what* to implement, how to structure your code and such, but I do have some advice as to *how* you should go about it: 1. put it up on Launchpad. don't wait until your design is done; develop it in the open to solicit feedback. 2. choose a nice, obvious name (might I suggest 'txsmpp'?) 3. use test-driven development, so that your code is maintainable! 4. join the 'tx' meta-project <https://launchpad.net/tx> 5. when you are, of course, totally successful, write a success story and send it to <mailto:success@twistedmatrix.com>. Hope that helps, -glyph
Thanks a lot for reply, however turns out that most SMPP appliances behave in a way rather different than your average mailbox/IM sessions. So I will in fact need to reinvent a wheel... This, however, has little to do with actual SMPProtocol class. Bridging it with t.words or even t.mail would cover only a tiny fraction of use cases (most of which are in fact routing, throttling and charging for the messages sent in bulk, and sending messages in bulk). -- Engineer : How do I do it? Economist : How much will it cost? Twisted Developer: But does it block?
participants (2)
-
Glyph Lefkowitz -
Yaroslav Fedevych