asterisk + goip + sms server


В данной статье рассмотрим установку и настройку SMS сервера для популярного VoIP шлюза GoIP. Наша задача — получить надежный инструмент для отправки, хранения и получения SMS сообщений с имеющихся SIM карт, а также автоматически проверять баланс денежных средств с уведомлением на e-mail.

Теоретически установка SMS сервера может быть осуществлена на любой дистрибутив Linux с предустановленными Apache и MySQL серверами, но логичнее будет выбрать сервер Asterisk, который мы используем в связке с GoIP шлюзом. Практически все необходимые компоненты там уже установлены, поэтому приступим.

Для начала скачаем сам дистрибутив, пошарив в просторах интернета или на сайте Hyberton. Там же можно скачать и обновление для VoIP шлюза. На момент написания статьи, последней доступной версией была v1.19.3. Копируем адрес ссылки с сайта и качаем его:

root @ localhost #cd tmp

Starting GoIP SMS System install

Configure httpd config:

Enter the httpd config file PATH: (default: /etc/httpd/conf.d)

Default press Enter

Import GoIP Databases

Enter the Mysql root password if the password exist:

********

Enter your Mysql PATH: (default: /usr/bin/mysql)

Default press Enter

Copying file to /usr/local/goip

goipcron start

Install finish

Please restart your httpd

GoIP manager URL: http://your_ip/goip

Как видим, в процессе установки нам необходимо указать пути к MySQL и httpd (для стандартных просто нажимаем Enter) и ввести root-пароль подключения к MySQL. В конце установки может возникнуть ошибка  «./goipcron: error while loading shared libraries: libz.so.1: cannot open shared object file or directory». В таком случае необходимо установить недостающие библиотеки:

После установки пакетов запускаем goipcron:

В результате выполнения команды мы должны увидеть надпись goipcron start (если нет, система напишет, какие еще пакеты требуют установки).

Перезапустим наш web сервер:

переходим по адресу http://your_ip/goip, где видим страницу авторизации (рис.1).

Asterisk SMS сервер

Рис.1

Стандартный логин: root,  пароль: root , прописываем и попадаем в настройки (рис.2).

Asterisk SMS server GoIP

Рис.2

Кликаем на вкладку Provider Manage и добавляем записи (рис.3).

Настройка Provide Manage SMS сервер

Рис.3

Для удобства идентификации оператора связи в дальнейшем, в строке Provider мы ввели номер телефона, но это может быть любой набор букв и цифр, например Oper1 или MTS. Если у вас на шлюзе три карточки одного оператора и пять другого, тогда достаточно создать 2 значения Provider. Это как дополнительный фильтр при отправке SMS, когда перейдем к отправке все станет понятно. В строке International Tel Code можно добавить префикс к набору номера, у нас это + , вы можете добавить +38 например, все зависит от того в каком формате вы будете хранить номера. Далее переходим на вкладку GoIP Manage и на верхней панели жмем Add GoIP (рис.4).

Настройка GoIP Manage

Рис.4

Создадим первый аккаунт для GoIP шлюза. Придумаем ID и пароль, выберем один из созданных ранее Provider (операторов), который будет соответствовать одной из SIM карт, установленных на шлюзе. Добавим необходимое количество аккаунтов. Каждый аккаунт будет соответствовать одной регистрации (одной линии). Как вы уже поняли, в разных аккаунтах значение Provider (оператор) может повторяться. Можно поставить галку и получать SMS сообщения на e-mail, но для этого нужно настроить smtp сервер, об этом чуть позже.

Перейдем к настройке GoIP шлюза, для начала проверим наличие настроек подключения к SMS серверу (рис.5).

GoIP настройка SMS

Рис.5

Если таких настроек у вас нет, необходимо обновить прошивку (рис.6)

Обновление прошивки GoIP

Рис.6

После обновления должен появиться раздел с настройками SMS, в котором необходимо прописать IP адрес сервера (в нашем случае Asterisk) и, созданные ранее, ID и пароль для каждой линии CH1,CH2,CH3 и т.д., порт можно оставить стандартный (рис.7)

Настройка SMS сервера GoIP

Рис.7

На этом настройка шлюза закончена, возвращаемся к серверу. На вкладке GoIP Manage мы должны увидеть надпись LOGIN в каждой созданной строке — это означает что шлюз зарегистрировался. Обновить информацию можно кнопкой Refresh (рис.8).

Регистрация GoIP на SMS сервере

Рис.8

Связь между сервером и шлюзом настроена, пробежимся по остальным настройкам. В разделе System Manage у нас имеется:

System Manage, общие настройки;

Mail Report, настройка отправки почты;

GoIP CDR,  статистика звонков;

Provider Manage, добавление идентификаторов линий;

GoIP Group, создание групп для аккаунтов;

GoIP Manage, добавление аккаунтов для связи с VoIP шлюзом.

Пришло время настроить Mail Report, чтобы сервер мог слать нам письма. (рис.9)

Отправка почты SMS сервер GoIP

Рис.9

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

В разделе Send Message первая вкладка Send Directly позволяет нам отправлять сообщения. (рис.10)

Отправка SMS GoIP сервер

Рис.10

Сообщение можно отправить мгновенно или в заданное время:

— определенному номеру;

— нескольким номерам;

— всем существующим контактам (раздел Receiver Manage);

— группам (настройка в разделе Crowd and Group Manage);

— загрузить файл со списком номеров, выгруженный из вашей CRM или составленный вручную (можно скачать шаблон для файла — Example, рис.11).

Загрузка номеров в SMS сервер

Рис.11

Запланированные задания по отправке можно редактировать или отменить на вкладке Examine Tasks. Вкладка Inbox хранит все входящие сообщения. Остальные вкладки интуитивно понятны, поэтому подробно мы их описывать не будем. Ну и напоследок, настроим автоматическую проверку баланса денежных средств на SIM картах с уведомлением на электронную почту. Переходим в раздел Auto balance and recharge и добавляем план проверки (рис.12)

Автоматическая проверка баланса SIM карт VoIP шлюза

Рис.12

Очень важно в настройках правильно указать системе, как вычленить сумму баланса из ответа USSD. Для начала просто проверьте какой ответ вам приходит от оператора на запрос о балансе. Допустим это фраза: «На вашем счету 100.00 usd , ваш тарифный план Максимальный». Ваша задача скопировать все, что находится перед суммой 100 (включая пробел) и вставить в поле Exact Ballance Prefix (USSD), остальную часть после 100 вставить в поле String for Owe (USSD). Таким образом сервер каждый раз при проверке будет извлекать сумму баланса, сравнивать её с полем Low Balance Trigger и при превышении порога отсылать уведомление на указанный e-mail. Историю отправки запросов можно посмотреть в разделе Send Message вкладка USSD Records.

— See more at: http://ctech.com.ua/asterisk-sms-server/#sthash.aLeFb4sn.dpuf