Our Free Software SMPP Router allows to route SMPP messages, such as DeliverSM and SubmitSM, between multiple MCs and ESMEs. The system is using our SMPP codec library and out of the box we provide two route engines and new ones can be easily created and integrated into the SMPP router.
The first route engine allows to match system_id of the connection the message arrived on, source_addr and dest_addr of the DeliverSM or SubmitSM message and then look-up the target system_id and find a connection that handles this using a regular expression.
The second route engine will look-up the target system_id using the source_addr or dest_addr in a database. New databases or look-up schemes can be easily added.
You might receive SMS through a central connection (or two for fail-over) but would like to split the traffic between a pre-deployment backend and the production backend or multiple backends. In this case you can either configure a static route if you have a clear separation between destination numbers or use the database based routing to allow to migrate certain numbers from production to testing.
While a message is traveling through the backend you might want to add or remove a prefix to the dest_addr or source_addr or change the number format before forwarding the message to the next hop. The built-in patchers will help you to do that.
Sourcecode and Documentation
You will find the sourcecode of our SMPP Router on github. The latest documentation as PDF can be found here or conveniently browsed here.