SMS Routing
The SMS Routing feature allows outbound SMS messages to be routed to different SMPP Servers based on the destination phone number.
Requirements
Two or more SMPP Servers
SMS Routing Table
Each element of the SMS routing table consists of the following data:
Order - the elements of the routing table are ordered
Number prefix - to match, the destination must match the number prefix
SMPP Server - the SMPP server that should deliver the message if the number prefix matches
SMPP Sender - the SMPP Sender identity that should be used if the number prefix matches
SMS Routing
In the CM module, the campaign executor will match the target SMS number to the appropriate SMPP Server and SMPP Sender (which is defined for that server).
The routing algorithm will operate like this:
Get the SMS routing table entries in order
Loop over routing table entries in order
If the target number matches the number prefix, use this SMPP Server an SMPP Sender
If no match found, use the default server.
SMS Fallback
A SMS Fallback server may be designated. If SMS cannot be delivered to the SMPP Server in the routing rule, then the fallback server should be used instead.
Q: Do we need a fallback server for each SMS routing rule, or just one global fallback server.
Assumptions / Discussion
SMS Routing could be performed in the CM node or in the SMPP Sender nodes.
If SMS Routing is performed in the CM:
Then the Smpp Work Object will need to contains the target SMPP Sender and SMPP Server. It currently contains this info.
If we implement SMS Fallback, the Fallback SMPP Server and SMPP Sender will also need to included in the Smpp Work object.
In the SMPP Sender node, the sender code can attempt deliver to the target SMPP Server and optionally the fallback SMPP Server if the original SMPP Server fails to accept it.
If SMS Routing is performed in the SMPP Sender(s):
The SMS Routing table will need to be propagated to the Sender Nodes
All SMPP Servers will need to be accessible from all SMPP Sender nodes.