I created an SMS portal. What you described was also described in version 1.0 of my application. The solution was to have my SMS gateway give me access to Bulk SMS via HTTP. I could host up to 1000 recipients in XML format (or comma-delimited) and send to Bulk SMS Gateway. Since I am running a shared host, I have limited this to 500 addresses.
I have a cache / temporary storage / table in which I heavily load a large destination (up to 1,000,000), and the scheduler (by timer) sends each batch of 500 pieces every few seconds (repeatedly calling the script) until while messages are being sent. It works like a charm!
For personalized messages, I recommend that the client use my personalization desktop application before sending them to my SMS portal. Good luck.
PROCESS:
You will need three elements
- script that receives a SendSMS request
- script that sends SMS
- Scheduler / Timer (Script / Host Service)
a. SMS sending request comes with
a. The Message and Sender ID/ Sender GSM Number. b. The Destinations (as a comma delimited list). We'll assume 10,000 destinations
B. Divide the destinations into 500 (any size you want) and register 500 destinations along with the message and SenderID in each line / INBOX record. Note: if you count 500 out of loops (10,000 loops), the script may shut down. The GSM numbers in my country are 13 digits. Therefore, I am doing a Sub String loop with a length of 500 (13 + 1) to get 500 destinations for each batch (20 loops). *
C. Call the script that sends the SMS. Sends the first 500 and marks the message as sent. You can add Time Sent. Launch Scheduler
D. The scheduler checks every 1.5 minutes if any unsent messages exist in INBOX and send it. If nothing, the scheduler stops. Thus, 10,000 messages are sent within 30 minutes
source share