Sending SMS messages through multiple providers

Hyper allows to send SMS messages via different providers. All of the pending requests are saved in the SYE_SMS_Out table. For every sending attempt, the system receives an answer from the server about the status of the message: Waiting on queue / Error (Rejected) / Sent OK.

By allowing to use a multiple providers, Hyper can use a different provider if the sending via the default provider fails. This ability of the system was designed in order to reduce the amount of messages that can not be sent due to any reject or an error that have been received from the SMS provider. The system uses an algorithm of profitability and optimization considerations, in order to choose the SMS supllier according to the following Criteria:

  1. Area Code - The system checks the ability of the provider to send the message to the required area code, as will be described below. When few providers allow to send the message to the requires area code, the system will use the providers according to hierarchy in Hyper (if the first supplier in the list fails, Hyper will use the second etc.). A failure can occur due to the provider's inability to send the messages to the required area code / an attempt to send a message to a phone number from the provider's black list etc.
  2. Costs - The cost of sending the message via the selected supplier.

In order to define the SMS providers, open the "Automation Log & Web Services" tab of the System Fundamentals. In the "Web Services Configuration" table, define the SMS providers as follows:

  1. Press the Create New button to add a new provider. Fill in the supplier name in the "Hyper Service ID" field.
  2. Fill in the Identification fields of the supplier (Username, Password).
  3. Press the Save button.

The messages can be limited by using the country code, so that the selected provider will be local and therefore will be cheaper than the foreign SMS services providers. In order to define it, fill in the required country code in the "Terminal / ID" field and use ";" or "," to seperate several codes.
For example: to define providers from the USA fill in 1. To define suppliers from New York and Washington, fill in 201;202.
The system uses this definition as a filter (but can not identify an area code filter that starts with 0).

SMS Service Providers

The name of the provider should be filled in the "Hyper Service ID" field and its relevat area code should be filled in the "Terminal / ID" field.

For example:
For the Philippine SMS provider IOT, fill in the definition fields as follows:
Hyper Service ID = iot.com.ph.
Username = IOT_Host_SN
Password = IOT_Mask
Terminal / ID = 63 (the Philippine country code).

System Admin

If a message record is already related to a Client / Supplier card, Then the system will make no attempt to attach this message again. If all of the three relating fields are empty, the system will attempt to attach the message to Clients / Suppliers / Contacts / Projects.

Everytime that the automation restarts, it checks whether the SMS supplier has no more credits (NO_Credits_Flag). Therefore, when a user purchases additional credits and the system does not send messages, the system admin should run a system command by sending the command "self restart".

In order to avoid transactions load when sending a great amount of messages, the system executes a query to receive the remaining credit after sending the first message. Then, for each group of messages, the system executes another query after every minimum time of one minute. Therefore, the credit is checked on the first message sending and then it is checked every 40-80 messages, according to the supplier's system.