Как стать автором
Поиск
Написать публикацию
Обновить

Отправка смс через шлюз Openvox VoxStack

Время на прочтение2 мин
Количество просмотров18K
Статья, вероятно, будет интересна только обладателям GSM шлюзов OpenVox линейки VoxStack, настоящим и потенциальным. Известно, что внутри этих шлюзов находится полноценный Asterisk. Который имеет дополнительные команды в AMI и CLI для отправки смсок.



[Фото из топика с хорошим описанием функционала этих GSM шлюзов]

Далее хочу представить вам две небольшие наработки на node.js, которые позволили мне сделать отправку смс через VoxStack более удобной.



Openvox-sms

npm openvox-sms — это небольшая обертка для AMI команд по отправке смс из приложения на node.js. В ней добавлена функция разбиения длинных текстов на более мелкие, чтобы отправить составное смс.

В CLI asterisk'а шлюза есть две команды для отправки СМС:

> gsm send sync sms span number text timeout

> gsm send sync csms span number text flag smscount smssequence timeout

Первая команда для отправки простой смс (указываем модуль span, номер назначения number, собственно text, и по желанию timeout).

Вторая для отправки части (concatenated sms) из длинной (дополнительно необходимо для каждой части указывать количество всего частей smscount, и текущий номер части smssequence). Необходимо отправить столько команд, сколько у вас частей смс. Если отправить команды с правильными параметрами, то на мобильном телефоне эти части будут собраны в одну смс.

Openvox-sms аккуратно оборачивает взаимодействие с астериском, и тогда смс можно отправить так, не заморачиваясь более длинное или короткое у вас смс.

var osms = require('openvox-sms');
var sms = new osms({host: '192.168.1.5'});
sms.on('connect', function () {
    sms.sendSMS({
        span: 1, 
        number: '8913ХХХХХХХ', 
        text: 'My long-long-long text about London'
        }, function (err, response) {            
            sms.close(function () {
        });
    });
});


Немного больше о командах есть в документации на шлюз.

Подробнее об использованиии npm openvox-sms: github.com/antirek/openvox-sms.

Openvox-sms-worker

Конечно, использование обертки openvox-sms удобно, но не будешь же во все приложения, которые должны отправлять смс, добавлять настройки подключения и проверять как они отправляют смс. (Более того не исключен вариант, что придет время и, вероятно, придется заменить gsm шлюз на какой-нибудь онлайн сервис отправки смс).

В таком случае удобнее использовать очередь RabbitMQ для отправки смс, которую будет обслуживать worker, непосредственно работающий с gsm шлюзом OpenVox VoxStack.

Этот worker настроил один раз, а все приложения будут слать сообщения в общую очередь. Теперь можно в одном месте смотреть логи работы с gsm шлюзом, проверять отправку смс.

Подробнее о настройках openvox-sms-worker: github.com/antirek/openvox-sms-worker.

Предложения, конструктивные идеи?
Теги:
Хабы:
Всего голосов 10: ↑9 и ↓1+8
Комментарии11

Публикации

Ближайшие события