У цій статті розглянемо встановлення і налаштування SMS сервера для популярного VoIP шлюзу GoIP. Наше завдання - отримати надійний інструмент для відправки, зберігання і отримання SMS повідомлень з наявних SIM карт, а також автоматично перевіряти баланс грошових коштів з повідомленням на e-mail.
Теоретично встановлення SMS сервера може бути здійснено на будь-який дистрибутив Linux з попередньо встановленими Apache і MySQL серверами, але логічніше буде вибрати сервер Asterisk, який ми використовуємо в зв'язці з GoIP шлюзом. Практично всі необхідні компоненти там вже встановлені, тому приступимо.
Для початку скачайте сам дистрибутив, пошарив в просторах інтернету або на сайті Hyberton. Там же можна скачати і оновлення для VoIP шлюзу. На момент написання статті, останньої доступною версією була v1.19.3. Копіюємо адресу посилання з сайту і качаємо його:
[root@localhost]#cd /tmp
[root@localhost tmp]#wget http://www.hybervoice.com/update/goip_install-v1.19.tar.gz
[root@localhost tmp]#tar xvfz goip_install-v1.19.tar.gz
[root@localhost tmp]#cd goip_install
[root@localhost goip_install]#./goip_install.sh
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». В такому випадку необхідно встановити відсутні бібліотеки:
[root@localhost]#yum install glibc.i686
[root@localhost]#yum install zlib-devel
[root@localhost]#yum install zlib.i686
[root@localhost]#yum install libgssapi_krb5.so.2
Після встановлення пакетів запускаємо goipcron:
[root@localhost]#cd /usr/local/goip
[root@localhost goip]#./run_goipcron
В результаті виконання команди ми повинні побачити напис goipcron start (Якщо ні, система напише, які ще пакети вимагають встановлення).
Перезапустим наш web сервер:
[root@localhost goip_install]#/etc/init.d/httpd restart
переходимо за адресою http: // your_ip / goip, де бачимо сторінку авторизації (мал.1).
Стандартний логін: root, пароль: root, прописуємо і потрапляємо в налаштування (мал.2).
Клікаємо на вкладку Provider Manage і додаємо записи (мал.3)
Для зручності ідентифікації оператора зв'язку в подальшому, в рядку Provider ми ввели номер телефону, але це може бути будь-який набір букв і цифр, наприклад Oper1 або MTS. Якщо у вас на шлюзі три картки одного оператора і п'ять іншого, тоді досить створити 2 значення Provider. Це як додатковий фільтр при відправці SMS, коли перейдемо до відправки все стане зрозуміло. В рядку International Tel Code можна додати префікс до набору номера, у нас це +, ви можете додати +38 наприклад, все залежить від того в якому форматі ви будете зберігати номери. Далі переходимо на вкладку GoIP Manage і на верхній панелі тиснемо Add GoIP (мал.4)
Створимо перший аккаунт для GoIP шлюзу. Придумаємо ID і пароль, виберемо один зі створених раніше Provider (операторів), який буде відповідати одній з SIM карт, встановлених на шлюзі. Додамо необхідну кількість акаунтів. Кожен аккаунт буде відповідати одній реєстрації (однієї лінії). Як ви вже зрозуміли, в різних акаунтах значення Provider (оператор) може повторюватися. Можна поставити галку і отримувати SMS повідомлення на e-mail, але для цього потрібно налаштувати smtp сервер, про це трохи пізніше.
Перейдемо до налаштування GoIP шлюзу, для початку перевіримо наявність налаштувань підключення до SMS сервера (мал.5).
Якщо таких налаштувань у вас немає, необхідно оновити прошивку (мал.6)
Після поновлення має з'явитися розділ з настройками SMS, в якому необхідно прописати IP адресу сервера (в нашому випадку Asterisk) і, створені раніше, ID і пароль для кожної лінії CH1, CH2, CH3 і т.д., порт можна залишити стандартний (мал .7)
На цьому налаштування шлюзу закінчено, повертаємося до сервера. на вкладці GoIP Manage ми повинні побачити напис LOGIN в кожному створеному рядку - це означає, що шлюз зареєструвався. Оновити інформацію можна кнопкою Refresh (мал.8).
Зв'язок між сервером і шлюзом налаштован, пробіжися по іншим налаштуванням. В розділі System Manage у нас є:
— System Manage, загальні налаштування
— Mail Report, налаштування відправки пошти;
— GoIP CDR, статистика дзвінків;
— Provider Manage, додавання ідентифікаторів ліній;
— GoIP Group, створення груп для акаунтів;
— GoIP Manage, додавання акаунтів для зв'язку з VoIP шлюзом.
Прийшов час налаштувати Mail Report, щоб сервер міг слати нам листи. (мал.9)
Як бачимо, для відправки необхідно використовувати SMTP сервер, можете налаштувати свій або вказати існуючий акаунт на одному з поштових серверів, наприклад yandex. Також є можливість моніторити реєстрацію шлюзу. Якщо протягом заданого проміжку часу система знаходиться в стану LOGOUT, приходить повідомлення на пошту.
В розділі Send Message перша вкладка Send Directly дозволяє нам відправляти повідомлення. (мал.10)
Повідомлення можна відправити миттєво або в заданий час:
- певному номеру;
- декількам номерів
- всім існуючим контактам (розділ Receiver Manage);
- групам (налаштування в розділі Crowd and Group Manage);
- завантажити файл зі списком номерів, вивантажений з вашої CRM або складений вручну (можна завантажити Example, мал.11)
Заплановані завдання по відправці можна редагувати або скасувати на вкладці Examine Tasks. Вкладка Inbox зберігає всі вхідні повідомлення. Решта вкладки інтуїтивно зрозумілі, тому детально ми їх описувати не будемо. Ну і наостанок, налаштуємо автоматичну перевірку балансу грошових коштів на SIM картах з повідомленням на електронну пошту. Переходимо в розділ Auto balance and recharge і додаємо план перевірки (мал.12)
Дуже важливо в налаштуваннях правильно вказати системі, як видокремити суму балансу з відповіді USSD. Для початку просто перевірте яка відповідь вам приходить від оператора на запит про баланс. Припустимо це фраза: «На вашому рахунку 100.00 usd, ваш тарифний план Максимальний». Ваше завдання скопіювати все, що знаходиться перед сумою 100 (включаючи пробіл) і вставити в поле Exact Ballance Prefix (USSD), іншу частину після 100 вставити в поле String for Owe (USSD). Таким чином сервер кожен раз при перевірці буде витягувати суму балансу, порівнювати її з полем Low Balance Trigger і при перевищенні порога відсилати повідомлення на вказаний e-mail. Історію відправки запитів можна подивитися в розділі Send Message вкладка USSD Records.
На цьому все, питання залишайте в коментарях.
52 думки про “Asterisk SMS server”
Спасибо, все заработало. Вот только у вас опечатка небольшая:
[root@localhost]#yum install libgssapi_krb5.s0.2
——
а должно быть
—————
[root@localhost]#yum install libgssapi_krb5.so.2
Виталий, спасибо! Исправили.
Подскажите пожалуйста, у меня не работает отправка уведомлений на почту. Так как сервер использует SMTP 25 порт (без шифрования), а сейчас похоже не один сервер не поддерживает отправку писем без шифрования. Подскажите пожалуйста может есть какие то бесплатные почтовые сервера, которые еще используют 25 порт (без шифрования) или как Вы вышли из ситуации?
Здравствуйте, Юрий! Уточните, какой сервер работает на 25 порту без шифрования, ваш собственный? Если так то пишите в конфиге те порты, на которые отвечает ваш сервер. А пример бесплатного как раз описан у нас, это ukr.net. SMS сервер перед отправкой авторизуется на указанном mail сервере, после чего отправляет уведомление от имени пользователя, которым вы авторизовались.
Наконец то разобрался.
У меня почта не отправлялась с разных бесплатных почтовых серверов, я их перепробовал очень много.
Я указывал smtp.mailserver, а нужно было ssl://smtp.mailserver.
В связи с тем что почтовые сервера не отправляют письма без шифрования, а СМС серверу нужно явно указывать что необходимо для отправки письма использовать шифрование SSL, а я сразу на это не обратил внимание, а когда решил повнимательней разобраться увидел. Спасибо за статью!
Здравствуйте.
вопрос по отправке Auto balance and recharge:
что нужно писать в полях Exact Balance Prefix (USSD) и String for Owe (USSD) если ответ типа :
29/11/2016, 11:20:51 Vash schet 40 som. Proverte mestopolojenie blizkih *089*055Xxxxxxx# vyzov. 5s/zapros. Usluga Gde deti? *89
т.е. в начале стоит дата и постоянное здесь только фраза «Vash schet 40 som. » остальные данные постоянно меняются
Здравствуйте!
Exact Balance Prefix (USSD): указываете Vash schet (с пробелом в конце)
Exact Balance Suffix (USSD): указываете «пробел40 som»
Prefix — это значение до суммы, включая пробелы (дата не в счет)
Suffix — это значение после суммы, включая пробелы
спасибо большое
Здравствуйте!
А как можно ответить отправителю на входящие СМС. Например отправить ему его задолженность?
т.е. существует файл *.xls с телефонами для обзвонки должников и его бы еще использовать для ответов на входящие СМС.
Ответить отправителю на входящие СМС можно в Inbox, нажав ссылку Reply. Чтобы отправить массово необходимо загрузить xml файл со списком номеров. Для автоматизации данного действия нужно написать скрипт.
Шлюз не логинится на СМС сервере (СМС сервер работает, порти слушаются). Куда искать?
Ярослав, если ./run_goipcron запускается без ошибок, проверяйте правильность логинов и паролей.
Спасибо. Проблема била в фаерволе. Как долго хранятса смс в таблице inbox?
По умолчанию сообщения хранятся вечно.
День добрый, подскажите без ошибок ли у вас работает отложенная отправка смс по времени, через родной смс-сервер?
У меня отправка смс сразу через http запрос или веб-интерфейс работает нормально, но отложенная отправка по времени через веб-интерфейс или xml-файл не работает, вызывая ошибку смс сервера.
Здравствуйте! Отложенную отправку использовали не раз, все работает корректно. Отложенную с xml файлом не было необходимости использовать. Какую ошибку выдает сервер, что-то «падает» в логи ?
Добрый день
Сделал по вашей статье все работает, кроме отправки смс на e-mail. не получается настроить mail report всегда выдает ошибку permission denied(13). не важно пробую я напрямую сделать на почтовые сервера яндекс через ssl:// либо делаю через внутренние smtp relay по порту 25. КТо нибудь сталкивался?
Евгений, что-то не так с вашими данными для подключения к почтовому серверу. Проверьте яндекс аккаунт, разрешен ли там smtp relay, а также все параметры, которые вы вводите (порт, адрес smtp сервера и т.д.)
Добрый день, не могу настроить автопополнение счета. Команду завожу, ничего. Есть может какие хитрости?
Сергей, в данной статье не рассматривается настройка автопополнения счета. Только уведомление по превышению порога.
Подскажите товарищи, какие обязательные требования к ОС на которую устанавливается goip sms server?
Дистрибутив — Актуальные CentOS или Ubuntu (На 16.04 или 17.10)?
Разрядность — Заведется ли на x64?
Здравствуйте Николай! Обязательные требования это наличие необходимых библиотек, о них написано в статье. Заведется на обоих указанных Вами ОС, но по опыту, на CentOS заводится проще.
Здравствуйте. Подскажите пожалуйста, можно ли как-то настроить при использовании многопортового шлюза GoIP — если SMS не отправилась через один канал, попытаться отправить его через другой? Спасибо.
Здравствуйте! Выполнение условий в отправке недоступно. Это нужно писать какой-то скрипт и отправлять через API с условиями. Как костыль, можно создать provider и добавить его в несколько учетных записей GoIP, возможно таким образов можно отправить SMS с трех разных карт. Но минусы данного костыля очевидны.
Добрый день ! Подскажите пожалуйста, в программе есть возможность экспорта СМС-сообщений, которые пришли за определенный период, в *.xls или *.txt файл ?
Добрый! Такого функционала в программе нет!
Доброго времени суток! Подскажите пожалуйста, а каким образом поправить сброс счетчика отправленых смс, который производит сброс в 2-а часа ночи а не в 00 как необходимо. Установили, настроили и все работает ок кроме одного….. сброс счетчика использованных смс за день «SMS Remain Count This Day». Просто головой об стену… третий день теста и не могу найти опции связанные с данной проблемой.
Доброго! Проверьте время на сервере, скорей всего у вас в php.ini не выставлен нужный часовой пояс.
Здравствуйте, есть ли возможность склеивать длинное входящее смс в одно? Сейчас приходят по частям, причем части сообщения могут следовать не по порядку, а когда таких сообщений приходит одновременно несколько — очень неудобно
Здравствуйте! К сожалению разработчик не предусматривает такую функцию.
Привет! помогите настроить autobalance. что нужно писать в полях Exact Balance Prefix (USSD) и String for Owe (USSD) если приходит вот такой ответ:
Your current balance as of today 20:45 is £15.00. You have 100 minutes, 250 texts and 300MB remaining until….
много перепробовал вариантов, не получается никак.
Подскажите пожалуйста по теме автопроверки балланса: сегодня все операторы по-разному формируют ответы на запрос остатка, и даже у одних и тех же операторов может различаться ответ день ото дня — там всякая реклама добавляется, итд.
Есть возможность просто раз в день отправлять балланс на почту?
Готового решения нет. Но, теоретически, можно написать скрипт и подключить его к API GoIP.
Hi I need help to determine what exactly I should put in Exact Balance Prefix (USSD): and String for Owe (USSD):.
The USSD reply to me goes this way, «The balance as of XXXX/XX/XX XX:XX:XX is PXX.X valid till XXXX-XX-XX XX:XX:XX with X.X Free texts. Please note that system time may vary from the time on your phone.»
Where the X represents wildcard numbers.
Hello,
We wrote above answer to the same question. You need to divide your message to Prefix and Suffix.
Exact Balance Prefix (USSD): write everything before the amount (the last character must be space)
Exact Balance Suffix (USSD): write something like this «space50.00 cent … etc»
Prefix — this is value before the amount, include spaces
Suffix — this is value after the amount, include spaces
From you message we can’t understand where the amount of your bill.
thanks for the prompt response, i get that now. my question now would be, will it matter of some of the characters changes? on my example the X represents changing characters for the date and time, but the number of characters does not change. Will it still work regardless?
Usually it works for me (99% case). But sometimes needs to change. Will be better that prefix won’t change. For suffix doesn’t matter.
Hi! Thanks for confirming that. I’ll try and see if it works for me. Appreciate it.
все доброго времени суток я поставил смс сервер но не проходит регистрация в login пишет logout при за ходе в статус пишет timeout! и выводит форму где сь sim num
SIM Card Expiry(minutes):
IMEI:
пдскожите что я делаю не правельно.
спасибо!!
Здравствуйте! Для начала проверьте запустился ли goipcron, есть ли он в процессах. Если да, проверяйте настройку между сервером и шлюзом.
подскажите в чем может быть дело белый экран в браузере при переходе http://192.168.1.24/goip/
делаю все по инструкции , любые другие файлы открываются по на пример http://192.168.1.24/index.html http://192.168.1.24/html/i.html
CentOS 7
Смотрите логи web сервера.
С этим разобрался, дело было в версии php.
Возникла другая сложность Cannot get response from process named «goipcron» что бы не делал на web морде sms goip servera отдает Cannot get response from process named «goipcron»
Процесс goipcron запущен, куда копать?
Огромное спасибо за ваш труд!
Подскажите, пожалуйста как в данном сервере выставить часовой пояс? На сервере время норм, а здесь со сдвигом в 3 часа, пролистал все настройки, не смог найти.
Вам необходимо найти файл php.ini (в centos это /etc/php.ini) и указать необходимую зону, например так date.timezone = «UTC»
Спасибо, все получилось
приветствую не стартует гоипкрон, точнее стартует но не поднимает настройки, соответственно порт не слушает в БД не подключается, установил все либы по списку, ось CentOS 7.7
После запуска получаете сообщение «goipcron start»?
Ссылка на Hyberton не работает… Открывается пустая страница…
Поправили, спасибо.
Здравствуйте. ссылка не работает чтобы скачать архив. подскажите где найти архив?
Добрый день! Только что проверил, ссылка работает. Скачивается версия 1.16 примерно 2.6 Mb в архиве.