SMSTools 3 - шлюз для відправки SMS
Ні, ми, як раз, немобільними не залишимося, саме тому, що у нас є «старий сіменс»!Постановка завдання: є база партнерів по бізнесу, яких потрібно повідомляти про стан їх рахунки незалежно від менеджерів, які з ними працюють. Переговори з стільниковими операторами з приводу SMS-гейтов зайшли в глухий кут на увазі неадекватного цінника, неповороткість (термін виконання адже зазвичай - «вже вчора повинно працювати») або складності реалізації, тому
маємо:
ТРЕБА: створити автоматизовану систему розсилки SMS
Деталі повної реалізації я викладати не буду, тому що задача досить специфічна, але розгляну всі основні моменти відправки SMS.
У портах знайшов ось що:
якщо не бачимо чогось подібного:
> Tail -f /var/log/smsd.log
Oct 28 16:39:40 smsgate smsd: Smsd v3.1.3 started.
Oct 28 16:39:40 smsgate smsd: Running as smsd: dialer.
Oct 28 16:39:40 smsgate smsd: File mode creation mask: 022 (0644, rw-r - r--).
Oct 28 16:39:40 smsgate smsd: Outgoing file checker has started. PID: 16711.
Oct 28 16:39:40 smsgate GSM0: GSM0: Modem handler 0 has started. PID: 16712.
Oct 28 16:39:40 smsgate GSM0: GSM0: Checking device for incoming SMS
Oct 28 16:39:40 smsgate GSM0: GSM0: Checking if modem is ready
Oct 28 16:39:40 smsgate GSM0: GSM0: -> AT ^ M
Oct 28 16:39:40 smsgate GSM0: GSM0: Command is sent, waiting for the answer
Oct 28 16:39:40 smsgate GSM0: GSM0: <- OK
Oct 28 16:39:40 smsgate GSM0: GSM0: Pre-initializing modem
(Якщо треба, після GSM0 через кому перераховуємо всі назви модемів з smsd.conf)
в /etc/newsyslog.conf додаємо:
Тепер найсмачніше - відправляти есемески.
Нічого складного, процес відправки схожий на процес друку, в / var / spool / sms / є три каталогу:
checked. incoming, outgoing. В каталог outgoing кидаються файли для відправки, за форматом дуже схожі на MIME: спочатку заголовки, потім, через порожній рядок, тіло повідомлення. Детальніше формат опишу нижче. У пакет входить утиліта sendsms. треба додати користувача, від якого будуть відправлятися sms в групу smsd. Потім пробуємо:
(Зверніть увагу, номера вводяться в міжнародному форматі але без знака «+»)
І, про Чудо. через кілька секунд прийде бажана SMS. Але ми рано радіємо. Вавилон нас чекає! А точніше - відправка SMS кирилицею. Звично беремо бубон, напилок, і допілівать "до надання потрібної форми". SMSTools вміє обробляти події за допомогою зовнішніх програм, використовуємо цю можливість і намалюємо скрипт перевірки повідомлення перед відправкою (за прототип був узятий unicode2sms. Всі скрипти пакета можна знайти в / usr / local / share / smstools):
додаємо в smsd.conf. до основної частини (до опису модемів):