Меню

настройка sms сервер gsm

Установка и настройка SMS-сервера для GSM-шлюза GOIP

В данной статье рассмотрим установку и конфигурирование SMS сервера для GSM шлюза Goip8.

Для установки SMS сервера необходимо выполнить ряд команд в терминале, вида:

Перейти на сайт Hybervoice и скопировать ссылку на последнюю версию sms сервера.

# wget http://www.hybervoice.com/update/goip_install-v1.22.tar.gz
# tar xf goip_install-v1.22.tar.gz

Скачивание дистрибутива SMS сервера.

Установка необходимых зависимостей.

# cd /usr/src/
# wget /files/smslib/lib.zip
# unzip lib.zip
# cp -vr /usr/src/lib/* /usr/lib/

Скачивание, распаковка и копирование библиотек.

# cd /usr/src/goip_install
# ./goip_install.sh

В ходе установке необходимо будет указать:
1. Директорию расположения конфигурационного файла Apache(если не отличается от дефолтного, то просто нажимаем «Enter»)
2. root пароль доступа к MySQL
3. Директорию расположения исполнительного файла MySQL(если не отличается от дефолтного, то просто нажимаем «Enter»)

Если в процессе установки не возникло никаких ошибок, то можно переходить к следующему шагу, а именно конфигурирование SMS сервера и настройка GSM шлюза. Вначале выполним настройку GSM шлюза, для этого не обходимо перейти в web интерфейс управления. В адресной строке браузера ввести:
http://
Ввести логи и пароль(если не изменялись, то admin:admin)
Авторизация в WEB интерфейсе.

После успешного прохождения авторизации, необходимо перейти в меню: «Configurations → SMS → CH1». И заполнить поля:
1. SMS Server IP — указать IP адрес SMS сервера
2. SMS Server Port — 44444 (оставить без изменения)
3. SMS Client ID — логин, который в дальнейшем будем вводить при настройки SMS сервера
4. Password — пароль, который в дальнейшем будем вводить при настройки SMS сервера
5. Нажать кнопку «Save Changes»
6. В зависимости сколько в данный момент у вас активно сим карт, по аналогии с CH1 выполнить настройку оставшихся каналов.
Настройка GSM шлюза.

Завершив настройку GSM шлюза перейдем к настройке SMS сервера, для этого в адресной строке браузера необходимо ввести:
http:// /goip/
Ввести логи и пароль(root:root)
Авторизация в WEB интерфейсе.

После успешного прохождения авторизации, необходимо перейти в меню: «System Manage → Provider Manage» . И в зависимости от используемого оператора связи и используемого формата номеров, выполнить настройки провайдеров. В примере используется оператор связи МТС и формат номера 79XXXXXXXXX.
Goip_SMS_8. Настройка провайдера.

Выполнив настройку в меню «Provider Manage» перейдем в «Goip Manage → Add Goip»

Заполним поля:
1. ID — вводим значение, которое ранее указывали в поле SMS Client ID при настройке GSM шлюза
2. Provider — указываем раннее созданного провайдера
3. Password — вводим значение, которое ранее указывали в поле Password при настройке GSM шлюза
4. Confim Password — подтверждение прошлого значения
5. Нажимаем кнопку «Add»

Заполнение настроек канала.

При правильной настройке и верно введенных данных в течении некоторого времени отобразится успешно пройденная авторизация и данных базовых настроек достачно чтобы перейти к отправке смс, нажав «Send SMS»:


Заполнение формы для отправки СМС.

источник

SMS сервер GoIP для Asterisk (часть 1)

В этой статье я расскажу, об одной из реализации, использования сервера SMS рассылки – GoIP, с телефонной платформой Asterisk.

Перепробовав множество GSM шлюзов, могу с уверенностью ответить, что шлюзы GoIP являются самыми лучшими, особенно по соотношению цена/качество. Как пример, они отлично, работают на одном из колл-центров Беларуси, отрабатывая порядка 100 каналов GSM, и принимая в сутки около 3000 вызовов. Плюс ко всему, очень порадовала поддержка сервисных инженеров из Китая, очень оперативно.
Немалым достоинством этого шлюза является свой SMS сервер, умеющий производить SMS рассылки, снимать баланс и многое другое. Локализованную версию сервера и более подробную версию статьи, можно найти на моем сайте.
Локализованная версия GoIP SMS сервера расположена на этой странице, либо можно скачать оригинальный сервер, с сайта производителя. В качестве платформы Asterisk я использовал дистрибутив Elastix. Установка модуля выполняется в несколько шагов:
cd /usr/src
tar xvfz goip_install-ru-v1.15.1.tar.gz
cd goip_install
./goip_install.sh
/etc/init.d/httpd restart
При установке указать пароль базы данных.
Переходим по 192.168.1.35/goip

Пароль логин администратора: root root. Попадаем в панель администрирования SMS сервера.
Первое что необходимо сделать это создать транки на SMS сервере и шлюзе GoIP.
Переходим во вкладку добавления провайдера:

Прописать SMS Sender на GoIP и SMS cервере.

Для каждой сим карты свой.

После того как транки залогинились на шлюзы можно осуществлять cvc рассылку используя API или XML файл.
В следующей части я расскажу, про модуль рассылки на модемах Huawei E1550.

источник

Установка и настройка GoIP СМС-сервера

На примере настрою GoIP СМС-сервер в Ubuntu Server 14.04 LTS x64.
Переключимся сразу на root пользователя:

Обновим систему, установим веб-сервер и mysql сервер:

Посмотрим есть ли новые версии СМС сервера тут
http://www.hybertone.com/en/news_detail.asp?newsid=21
Для вас я сохранил на Google диске архив goip_install-v1.24.2.tar.gz с версией которую устанавливал:
https://drive.google.com/open?id=0B6jR5-c775m9bEtTZUNQankzcWc
А также версию 1.28:
https://drive.google.com/open?id=1nGxioLEvQf8HzU6dzRkurtoYfO1SqU-7
Скачаем во временную директорию архив с goip смс-сервером и запустим скрипт установки:

Во время установки ответим на несколько вопросов:
1) Расположение директории с конфигурацией веб-серера (создастся файл с веб настройками), в моем случае это /etc/apache2/conf-enabled
2) Пароль root пользователя к Mysql серверу (создастся база goip)
3) Расположение Mysql, стандартно оно так и есть /usr/bin/mysql, просто жмем Enter

Перезапустим веб-сервер чтоб загрузился файл с настройками из /etc/apache2/conf-enabled:

Читайте также:  cisco bgp 4 справочник по командам и настройке

В браузере уже можно открыть панель управления смс-сервером http://HOSTNAME/goip
У меня отобразилась ошибка:

Forbidden
You don’t have permission to access /goip on this server.

Причиной этому устаревшие параметры в /etc/apache2/conf-enabled/goip.conf, я закомментировал две строки символом # и добавил строку после них:

После этого все открылось, стандартный логин и пароль root.

Приступим к настройке.
В «System Manage» — «Provider Manage» добавим провайдера, для этого укажем в Provider(1) его имя или просто номер самими цифрами.

Теперь перейдем в «System Manage» — «GoIP Manage«, вверху нажмем «Add GoIP» и добавим аккаунт для первого канала GoIP шлюза (первой сим).
ID:ks1
Batch Lines:1
Provider:созданный провайдер
Password:пароль
Confirm Password:пароль

Откроем веб-интерфейс GoIP шлюза и перейдем в «Configurations» — «SMS» где укажем параметры этого аккаунта.
SMS Server:Enable
SMS Server IP: адрес СМС-сервера
SMS Server Port:44444
SMS Client ID: ks1
Password: пароль
Send SMSC Number: Enable

После этого в СМС-сервере «System Manage» — «GoIP Manage» должен отобразится статус «Login«.

Если статус Login не появляется, у меня так было на Ubuntu Server 14.04 LTS x64 и замечал сообщение:

but cannot get response from process named «goipcron»

Для решения этой проблемы пришлось доставить библиотеки:

И наново запустить goipcron:

Для автозапуска run_goipcron создадим файл например используя редактор nano:

На сервере в случае проблем с соединением можно ловить пакеты через tcpdump например так:

Сервер может принимать POST и GET запросы, приведу пример отправки СМС (номеров получателей в «smsnum=» можно указать несколько через запятую без пробелов, вместо «text» укажем свои значения):

Входящие СМС можно увидеть в Send Message — Inbox, исходящие в Send Message — Examine Sendings.
Чтобы не писалась статистика звонков (у меня ее пишет Asterisk), в System ManageSystem Manage поставим Disable напротив GoIP Report Record, а также поставим Disable на Save message before sending(browser should support javascript) чтобы не использовать java со стороны клиента при отправке СМС через API.

Отправить СМС можно в меню Send Directly, можно указать сразу несколько номеров получателей через запятую.

Приведу примеры SQL запросов которыми можно посмотреть/посчитать количество СМС отправленных/доставленных, отправленных/не доставленных за все время и в конкретную дату:

Количество отправленных СМС за сегодня:

Приведу пример поиска статуса сообщения по тексту и номеру телефона:

Пример очистки старых отправленных сообщений sql запросом:

Если на Linux используется iptables, то добавим правило разрешающее подключение Goip4 шлюза (где 192.168.2.2 — адрес Goip4 шлюза):

источник

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

Так как мы занимаемся продажами VoIP оборудования, к нам часто обращаются с различными техническими вопросами. Иногда доходит до того, что клиенты просят примеры кода на конкретных языках программирования. Работа с SMS и интеграция их в бизнес процессы — как раз один из таких регулярных вопросов, поэтому и хочется остановится на нём и рассмотреть более подробно.

Почему GoIP и Yeastar

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

GSM шлюзы GoIP производятся в Китае под брендами нескольких компаний и относятся к низшей ценовой категории, отчасти поэтому они самые популярные. Всё нижеописанное мною применительно к GoIP 4 фирмы DBL, в теории оно же должно работать и на шлюзах Hybertone, но ручаться за это не буду, так как возможны отличия в прошивках.

▪ Web интерфейс

Самый простой способ отправить SMS — это зайти на страничку шлюза, выбрать раздел Send SMS, указать линию, с которой необходимо отправить сообщение, номер получателя и непосредственно текст сообщения. Вариант простой, но годится разве что для теста, не более того. Однако есть возможность отправлять смски с помощью GET и POST запросов.

Для типа GET используем запрос вида:
http://192.168.1.190/default/en_US/send.html?u=admin&p=admin&l=1&n=89991234567&m=test

Если что то пошло не так, то в ответ мы получим сообщение вида: «ERROR, описание проблемы» , в противном случае: «Sending, L1 Send SMS to 89991234567; ID:55c489da» . Думаю, тут все и так ясно: статус, номер линии, номер получателя, и присвоенный индификатор, чтобы впоследствии можно было отследить статус отправления.

Отправка с помощью POST запроса — это тоже самое, что отправка через форму в web интерфейсе, отличается тем, что мы сами должны указывать индификатор SMS, в определенных случаях это может быть удобнее. Так же через POST мы можем отправить USSD запрос, что тоже может быть полезно.

Простой пример на perl с использованием фреймворка Mojolicious:

Для отправки USSD придется немного изменить запрос:

Для получения результата придется делать отдельный GET запрос статуса сообщений.

→ Статус сообщений

Отслеживать статусы необходимо хотя бы потому, что мы можем попытаться отправить сообщение в момент, когда линия занята отправкой другого сообщения и, как результат, ничего не выйдет. Плюс к этому, разработчики GoIP не стали заморачиваться с созданием отдельного средства получения результатов USSD запросов, а просто пишут их в виде расшифровок ошибок.

Читайте также:  e trac настройки видео

Статусы отправлений можно отслеживать по адресу:
http://192.168.1.190/default/en_US/send_status.xml?u=admin&p=admin

В ответ мы получим XML, в которой отображается статус одного последнего отправления на канал, у меня под рукой был GoIP 4, а у него единая прошивка с восьмым, поэтому в статусах 8 каналов, хотя физически их было 4:

▪ Протокол SMPP

SMPP (Short message peer-to-peer protocol) – специальный протокол, используемый для передачи SMS и USSD сообщений между клиентом и сервером. Это, наверное, единственный «нормальный» способ получать сообщения. Да, в web интерфейсе отображаются последние пять сообщений для каждого канала, но вариант периодически лезть на него и проверять, не появилось ли что то новое, я не могу отнести к адекватным.

Хотя и с SMPP все не так гладко. Во первых, сообщения приходят в кодировке UTF-16BE . Сначала мне об этом информация нигде не попадалась и пришлось изрядно попрыгать с бубном, чтобы понять, в какой же кодировке принимаются смски. Правда после этого нашёлся параметр ( data_coding ), который как раз и указывает на то, как закодировано сообщение.

Во вторых, в качестве destination_addr всегда будет system_id , с которым мы подключаемся к GoIP-у, т. е. нет возможности понять, на какую именно симку пришло сообщение. Это можно обойти – необходимо подключаться с system_id + 0 + номер канала , тогда мы будем получать сообщения только для заданного канала, естественно минус такого решения в том, что необходимо держать несколько коннектов.

Простейший пример получения сообщений с использованием библиотеки Net::SMPP :

С отправкой такая же история, если необходимо отправить SMS с конкретной SIM карты, то подключаемся с id нужного канала:

Параметр Описание Значения
Тип номера отправителя 0x00 — Неизвестный (Unknown)
0x01 — Международный (International)
0x02 — Государственный (National)
0x03 — Сетевой Специальный (Network Specific)
0x04 — Номер Абонента (Subscriber Number)
0x05 — Алфавитно-цифровой (Alphanumeric)
0x06 — Сокращенный (Abbreviated)
source_addr_npi Идентификатор плана нумерации отправителя 0x00 — Unknown 0x01 — ISDN (E163/E164)
0x02 — Data (X.121)
0x03 — Telex (F.69)
0x04 — Land Mobile (E.212)
0x05 — National
0x06 — Private
0x07 — ERMES
0x08 — Internet (IP)
0x09 — WAP Client Id (его должен определять WAP Forum)
dest_addr_ton Тип номера получателя 0x01 — Международный (International)
dest_addr_npi Идентификатор плана нумерации получателя 0x01 — ISDN (E163/E164) (для номеров)
0x02 — National (для остального)
data_coding Определяет схему кодировки пользовательских данных короткого сообщения 0x01 — IA5(CCITT T.50)/ASCII (ANSI X3.4) латинский алфавит 7 бит на 1 символ максимальная длина одного сообщения 160 символов
0x07 — Latin/Hebrew(ISO-8859-8) латинский алфавит 8 бит на 1 символ максимальная длина сообщения 140 символов
0x08 — UCS2(ISO/IEC-10646) для национальных алфавитов (например, русского) максимальная длина сообщения 70 символов

Yeastar

Родина Yeastar, так же как и у GoIP – Китай, хотя, как мне кажется, в Yeastar стараются делать устройства с большей претензией на качество и удобство использования, чем их конкуренты. Это касается как физического, так и программного исполнения. Но и у них бывают огрехи. Так, например, документация не всегда поспевает за изменениями в новых прошивках, а в отдельных случаях в ней могут отсутствовать важные моменты.

▪ Web интерфейс

Отправлять и принимать сообщения можно через web интерфейс, в общем то, это стандартный способ для подобных железок. В шлюзах Yeastar этот интерфейс чем то отдаленно напоминает простенькие почтовые web морды — «папочки» Inbox и Outbox с незатейливыми фильтрами и поиском. В любом случае, это на голову выше чем то, что есть в GoIP, а главное хранятся не последние пять входящих сообщений для каждого канала, а значительно больше. Только, к сожалению, не понятно сколько, опять же в datasheet про это нет ни слова.

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

Для начала надо включить возможность отправлять SMS сообщения и USSD запросы. Для этого необходимо активировать «API Settings», если вы предпочитаете интерфейс на русском языке, то данный раздел будет называться «Настройки AMI» (правда очень логично?). Во вторых, необходимо поменять пароль по умолчанию, пока этого не сделаешь, авторизация не проходит, об этом опять же ни слова в документации.

После этих манипуляций мы можем использовать запросы для SMS и USSD соответственно:

Главное отличие от GoIP: при отправке SMS с Yeastar нет необходимости контролировать занят канал или нет, наше сообщение ставится в очередь и как только канал освобождается оно будет отправлено. А с USSD запросами работа происходит синхронно, т. е. ответ мы получаем сразу и нет необходимости его где то потом искать. Минус только в том, что ответы нам приходят в виде plain text, а хотелось бы что то более подходящее: JSON или XML.

▪ Asterisk Managment Interface

Вся линейка шлюзов Yeastar построена вокруг Asterisk (программный сервер IP-телефонии от компании Digium), поэтому поддержка такого специфического протокола как SMPP отсутствует. Зато есть родной для Asterisk’a протокол AMI, работать с которым достаточно просто.

Для начала посмотрим как принимать сообщения:

Пример достаточно прост и мне кажется, что всё должно быть понятно. Единственное, на что хочу обратить внимание это «GsmSpan» . Мы все привыкли, что индексация массивов начинается с 0, здесь же не 0 и не 1, а 2, последовательный номер канала отображается как номер + 1 , поэтому минимальное значение GsmSpan это 2.

Так же через AMI мы может отправлять SMS и USSD запросы:

По USSD думаю всё понятно, только не забываем, что каналы нумеруются с двойки. А по SMS есть небольшое уточнение: если нам судьба сообщения безразлична и статус отслеживать не надо, то после текста сообщения можно ничего не указывать. В противном случае, необходимо указать уникальный индификатор. Тогда, когда судьба смски станет известна, система отправит нам сообщение о её состоянии. Что-то такого вида:

Status = 1 говорит нам о том, что сообщение успешно доставлено, а в случае ошибки статус будет равен 0. Получать подобные сообщения можно, подписавшись на события UpdateSMSSend , делается это точно так же, как и при приеме SMS.

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

Лично мне было бы удобнее работать со шлюзом Yeastar TG400 через AMI. С другой стороны, я не вижу каких-то больших проблем и в случае использования GoIP. О чем я сознательно умолчал: у каждого из производителя есть бесплатный программный SMS сервер, в случае GoIP чтобы его использовать потребуется PHP, Apache и MySQL, а в случае Yeastar – Windows. Подобные продукты больше подходят для рассылки одинаковых сообщений по заранее подготовленным базам номеров, а не интеграции с какими-то приложениями. Это и есть причина, по которой я их пропустил. Если кому-то интересно, на сайтах производителей должны быть соответствующие описания.

Похожие публикации

Что такое SIM-банк и как он работает

Прокачиваем VoIP GSM шлюз Yeastar TG100 до мини-АТС

Обзор новой IP-АТС Yeastar S20

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 8

«Статья 44.1. Рассылка по сети подвижной радиотелефонной связи
2. Рассылка по сети подвижной радиотелефонной связи по инициативе заказчика рассылки осуществляется на основании договора, заключенного с оператором подвижной радиотелефонной связи, абоненту которого предназначена рассылка. Предметом указанного договора являются услуги по осуществлению рассылки оператором связи.

4) пункт 1 статьи 46 дополнить абзацем следующего содержания:

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

Собственно, по неопытности этот метод и выбрал для написания небольшой программы смс-рассылки для нужд фирмы. После прочтения вашей статьи понял, что можно переделать по человечески. Спасибо.

Это и есть AMI, только они подают его в документации каким-то извращенным способом. Вместо того чтобы написать «Мы поддерживаем AMI и дополнили его такими-то командами для работы с SMS и USSD» они зачем-то предлагают нам подключаться простым сокетом и изобретать велосипед, хотя для AMI уже под все популярные языки есть нормальные библиотеки. Рад что кому-то мой креатив помог.

2 месяца назад (когда общался с их поддержкой).
Сейчас, возможно, что-то поменялось.
Кстати, поддержка на удивление оперативная и адекватная, за это огромный плюс разработчикам.

При массовой отправке обнаружились проблемы:
Отправка по HTTP:
— отправка склеенных SMS не поддерживается
— проблематично узнать в какой момент закончилась отправка сообщения. если сообщение ушло, то можно получить его messageID, если возникла проблема отправки (к примеру, недостаточно денег на счету), то видна ошибка модема. отличить временную ошибку от постоянной (к примеру, пропало подключение к сети GSM, выдернули SIM’ку) можно только сделав ещё одну попытку отправки. Если попытка успешна, то проблема была временной
— отчёты о доставке не поддерживаются

Отправка по SMPP:
— SUBMIT_SM_RESP приходит сразу после приёма на отправку, DELIVER_SM со статусом «доставлено» — после того,
как модем отправил данный пакет. Отправка следующего SUBMIT_SM не дожидаясь подтверждения отправки (DELIVER_SM) приводит к ошибке, т.е. буфера на отправку нет.
— отчёты о доставке не поддерживаются, вместо «доставки» мы получаем информацию об успешной отправке
— если нужно управлять распределением трафика на модемы, то для каждого модема нужно держать свою SMPP сессию под каждый модем, в случае временного падения линка — теряем данные о полученных в это время SMS

В качестве альтернативы для проекта, которому требуется 1-2 SIM карты (и не нужна смена IMEI . ) собрали связку Raspberry + USB GSM модем + Kannel. Работает отлично. Единственная проблема — адекватной документации по Kannel’у найти так и не удалось, пришлось долго шаманить с настройками и собирать конкретную нужную версию из исходников (версия из репозитория raspbian не работает с нашими huawei модемами).

Сейчас всё тоже самое, в GoIP надо самому за всем следить иначе ничего не получится, что естественно не удобно.

А не проще было вообще отказаться от использования железок и попробовать какой-нибудь сервис sms gate, благо их сейчас в сети предостаточно?

источник

Добавить комментарий

Adblock
detector