Отправка и приём SMS сообщений с помощью VoIP шлюзов OpenVox +7


Без преувеличения можно сказать, что наиболее популярный вопрос о GSM VoIP шлюзах касается отправки и приема SMS сообщений. Ранее мы уже поднимали эту тему и рассматривали шлюзы таких производителей, как GoIP и Yeastar. А вот GSM шлюзы OpenVox тогда не попали в наш обзор и сейчас самое время исправить это упущение.



Как правило, все производители стараются предусмотреть несколько различных способов работы с SMS и OpenVox тут не исключение. Рассмотрим каждый из них:


WEB


Наиболее стандартный, логичный и самый неудобный из вариантов. Больше подходит для проверки работоспособности или какой-то разовой акции, чем для постоянного использования.




Пользоваться просто, указываем через какие порты совершать отправку, список получателей и текст сообщения.


В WEB интерфейсе также предусмотрена возможность просматривать входящие и исходящие сообщения, необходимо лишь предварительно включить возможность приема и локального хранения сообщений.


Email


SMS to Email так же можно отнести к стандартной возможности подобных устройств.




GSM шлюзы OpenVox серии VS не исключение. Указываем необходимые данные для подключения к SMTP, email адреса, на которые пересылать входящие SMS, и настраиваем шаблон отправляемых писем. При этом в шаблоне у нас доступно 4-е переменные: номер отправителя, номер порта SIM карты, время приема и непосредственно сам текст входящего сообщения.


Чаще всего производители предусматривают и обратную возможность – Email to SMS: мы отправляем email на какой-то адрес, который периодически проверяет шлюз и из входящих писем формирует SMS-ки, но в OpenVox решили подобную возможность не реализовывать.


HTTP


Отправки и прием SMS сообщений посредством HTTP запросов, наверное, один из самых простых способов интегрировать эти действия в работу сторонних приложений.




Для отправки СМС нам необходимо выполнить запрос вида:


http://172.16.99.1/sendsms?username=smsuser&password=password&phonenumber=89996135801&message=Hello


    {
        "message":"Hello",
        "report":[{
            "1":[{
                "port":"umts-1.1",
                "phonenumber":"89996135801",
                "time":"1970-01-01 09:49:03",
                "result":"success"
            }]
        }]
    }

Удобно, что в результате выполнения запроса мы можем получить отчет об отправке. Такая реализация может быть удобнее, чем отдельная проверка на выполнение, как это сделано в шлюзах Yeastar.


Коротко о параметрах:


username – имя пользователя, которое мы указали в настройках
password – пароль из настроек
phonenumber – номер получателя, можно указывать сразу несколько через «,»   
message – текст отправляемого сообщения
port – через какой порт осуществлять отправку, так же как и с номерами получателей можно указывать несколько    
report – отчет можно получить в виде JSON или String
timeout – время ожидания отчета о доставке SMS

Помимо отправки, шлюзы OpenVox позволяют реализовать прием SMS сообщений поверх HTTP.




Все очень просто: указываем адрес нашего обработчика, путь и названия параметров. При поступлении входящих сообщений шлюз будет выполнять настроенный нами запрос.


AMI


Так как GSM и UMTS шлюзы OpenVox, как и GSM шлюзы Yeastar, построены с использованием сервера IP-телефонии Asterisk, то само собой в них реализован Asterisk Managment Interface, который так же можно использовать для отправки SMS сообщений. Специально для этого предусмотрена команда:


GSM send sms <span> <destination> <message> <timeout>


Коротко о параметрах:


span – номер канала для отправки сообщения
destination – номер получателя
message – текст сообщения
timeout – сколько времени пытаться отправить сообщение
/* для отправки USSD запросов соответственно меняем sms на ussd */

Работа через AMI с примерами описывалась в прошлый раз, поэтому подробнее останавливаться на ней нет смысла. Отмечу лишь, что реализация OpenVox не генерирует специального отдельного события при приеме SMS, как в Yeastar — нам потребуется отслеживать события типа VarSet, такого вида:


Event: VarSet
Privilege: dialplan,all
Channel: EXTRA-SMS/1-1
Variable: SMSPDU
Value: “pdu data”
Uniqueid: 625.1

И еще одна ложка дёгтя: если мы хотим принимать сообщения через AMI, то придется отказаться от использования HTTP to SMS, т.к. если эта опция включена, то событий по приходу SMS мы не увидим.


В качестве заключения


Работать можно с любым устройством, представленным на рынке, но если бы передо мной стояла задача отправлять и принимать SMS-ки, то я бы предпочел шлюзы OpenVox, как наиболее удобные для выполнения подобных задач.

-->


К сожалению, не доступен сервер mySQL