On 18 Jan 2016, at 16:56, Holger Freyther holger@freyther.de wrote:
Good Morning,
If you are interested in specification, Smalltalk, testing, load testing, SS7 or such please join me in the development.
progress was a bit slower due having to handle administration topics at sysmocom but last weekend I completed most of the database interface. The biggest challenge was to enforce only one system will deliver to a specific destination at the same time, e.g. for multi-part SMS one should not send more than one fragment at a time.
I currently solve this by using Compare-And-Swap (CAS) to lock a single SMS and then try to insert a unique lock for this destination into another collection. If that worked I will try to lock other SMS that are to be delivered (or in a couple of seconds). This way the SMS will look lock and no other node will try to use it (otherwise nodes would busy loop trying to lock a SMS that can not be delivered). All database operations have system tests and are executed on travis-ci with a recent mongodb.
Right now I am completing the inserting of SubmitSM and DeliverSM into the database and the next stop is to work on delivery using SMPP and MAP. I will extract a lot of functionality from the HomeRouting SMS system, e.g. the SMPP<->MAP conversion, the dialogue handling for MAPv3/MAPv2.
As usual anyone interested in playing with the system, contributing to it, writing system tests or load tests is more than welcome to participate.
holger