- PVSM.RU - https://www.pvsm.ru -

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

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

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

[Фото из топика [1] с хорошим описанием функционала этих 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 () {
        });
    });
});

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

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

Openvox-sms-worker

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

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

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

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

Предложения, конструктивные идеи?

Автор: antirek

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/node-js/87391

Ссылки в тексте:

[1] топика: http://habrahabr.ru/post/205122/

[2] документации на шлюз: http://openvox.qiniudn.com/pub/misc/GSM%20Gateway/OpenVox%20%20GSM%20Gateway%20HTTP%20Interface_en.pdf

[3] github.com/antirek/openvox-sms: http://github.com/antirek/openvox-sms

[4] github.com/antirek/openvox-sms-worker: http://github.com/antirek/openvox-sms-worker

[5] Источник: http://habrahabr.ru/post/254383/