Overview
You may notice that SMS-GW rejects a bind with the message "Bind failed".
When that happens, SMS-GW rejects the binds and never sends to SMSC requesting the connection. Analyzing the SMS-GW logs, they show that the IP has been blacklisted. As a result, customers cannot send any request to MTY sms-gw. Although the destination IP is correct, the binding may have been rejected several times.
Solution
SMSC may have sent an error in one of the login attempts, causing SMS-GW to consider this as a permanent error type and therefore blacklist that destination.
The solution is to remove the destination IP from the black list. That can be done by either restarting the application or the termination points (termination points are the IP:port towards which the bind from SMS-GW is sent). Restarting the application is more complicated because you need to disable all other configuration dependencies before disabling it (like routing rules, groups, etc.). Restarting the termination point, on the other hand, is more straightforward because you can disable it without any other dependency.
Both application and termination points can be deactivated and activated in the GUI, but using the command line is the quickest way to do it and causes less impact (GUI affects all nodes, while by command line it is run node by node, so you can only act on the needed nodes).
The steps to restart the termination points are:
- Access one of the SMS-GW nodes via SSH as textpass user.
- Run the following command to check if any application or termination point is found in the black list:
$ tp_walk -h bindBlackListTable
- If there is no output, there is no application or termination point in the black list table for that node.
- If there is an answer, it will be like the example below:
bindBlackListIndex.1 = INTEGER: 1 bindBlackListIndex.2 = INTEGER: 2 bindBlackListApplicationIndex.1 = INTEGER: 30 bindBlackListApplicationIndex.2 = INTEGER: 30 bindBlackListApplicationName.1 = STRING: SynA2P to XYZ bindBlackListApplicationName.2 = STRING: SynA2P to XYZ bindBlackListScTpIndex.1 = INTEGER: 52
bindBlackListScTpIndex.2 = INTEGER: 53 bindBlackListScTpName.1 = STRING: TP-SMSC-xyz for SynA2P bindBlackListScTpName.2 = STRING: TP-SMSC-mty for SynA2P
- The affected application can be found on the bindBlackListApplicationName lines. Take note of the termination point indexes described in the bindBlackListScTpIndex lines (in the example above, the indexes are 52 and 53).
- Disable and enable the termination points by running these two commands (replace 52 with the index you got in step 2):
-
$ tp_set -h scTerminationPointAdminState.52 = 0
The answer should be:
TEXTPASS-APC-MIB::scTerminationPointAdminState.52 = INTEGER: inactive(0)
-
$ tp_set -h scTerminationPointAdminState.52 = 1
The answer should be:
TEXTPASS-APC-MIB::scTerminationPointAdminState.52 = INTEGER: active(1)
-
- Check for black list entries on the other SMS-GW nodes by repeating steps 1 to 4.
Testing
Restart the process to confirm the binding now works.