Без преувеличения можно сказать, что наиболее популярный вопрос о GSM VoIP шлюзах касается отправки и приема SMS сообщений. Ранее мы уже поднимали эту тему и рассматривали шлюзы таких производителей, как GoIP и Yeastar. А вот GSM шлюзы OpenVox тогда не попали в наш обзор и сейчас самое время исправить это упущение.
Как правило, все производители стараются предусмотреть несколько различных способов работы с SMS и OpenVox тут не исключение. Рассмотрим каждый из них:
WEB
Наиболее стандартный, логичный и самый неудобный из вариантов. Больше подходит для проверки работоспособности или какой-то разовой акции, чем для постоянного использования.
Пользоваться просто, указываем через какие порты совершать отправку, список получателей и текст сообщения.
В WEB интерфейсе также предусмотрена возможность просматривать входящие и исходящие сообщения, необходимо лишь предварительно включить возможность приема и локального хранения сообщений.
SMS to Email так же можно отнести к стандартной возможности подобных устройств.
Чаще всего производители предусматривают и обратную возможность – 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 – сколько времени пытаться отправить сообщение /* для отправки 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, как наиболее удобные для выполнения подобных задач.
Источник