Topic Keywords: delivery receipts, SMPP
One of the standard capabilities of NowSMS is the automatic mapping of receipt message IDs when routing messages to an upstream SMSC connection.
The reasoning/logic is simple. When NowSMS accepts a message from a client, NowSMS needs to assign an ID to the message.
When the message gets routed to an upstream SMSC, that SMSC will assign a new message ID.
NowSMS saves the message ID assigned by the upstream SMSC, so that if a delivery receipt message is received, NowSMS can translate the upstream message ID back to the NowSMS assigned message ID before it is delivered back to the client that submitted the message to NowSMS.
Message IDs are not globally unique. NowSMS maintains a separate receipt message ID tracking database for each SMSC connection. For situations where there are multiple connections to the same SMSC (same host name or IP address and port number), NowSMS automatically shares the same message ID tracking database over all matching connections. This is because it is possible that the SMSC might return a delivery receipt over any of the connections to that SMSC.
A problem can occur if multliple connections to the same SMSC exist, but with a different host name, IP address or port number.
There is a way to configure NowSMS to use the same receipt message ID database for multiple connections. This should only be done when you are connecting to an SMSC via multiple IP addresses where you are certain that the SMSC shares a message ID space across the IP addresses.
To enable this, it is necessary to edit the SMSGW.INI file.
Under the [SMPP - server:port] section header for each connection that shares the same receipt message ID namespace, add TrackSMPPReceipts=somename
“somename” can be any text that makes sense to you. NowSMS will group together receipt message ID tracking for all connections that share the same TrackSMPPReceipts value.