Smstools 3 - шлюз для відправки sms

SMSTools 3 - шлюз для відправки SMS

Ні, ми, як раз, немобільними не залишимося, саме тому, що у нас є «старий сіменс»!
Постановка завдання: є база партнерів по бізнесу, яких потрібно повідомляти про стан їх рахунки незалежно від менеджерів, які з ними працюють. Переговори з стільниковими операторами з приводу SMS-гейтов зайшли в глухий кут на увазі неадекватного цінника, неповороткість (термін виконання адже зазвичай - «вже вчора повинно працювати») або складності реалізації, тому
маємо:
  • старий Siemens M75;
  • рідний (Семенівський) дата-кабель DCA-510 до нього;
  • машинку з правильною віссю (FreeBSD 7.0)

    ТРЕБА: створити автоматизовану систему розсилки 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. до основної частини (до опису модемів):