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

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

sudo -i

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

apt-get update
apt-get upgrade
apt-get install apache2 php5 mysql-server

Посмотрим есть ли новые версии СМС сервера тут
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
Скачаем во временную директорию архив с goip смс-сервером и запустим скрипт установки:

cd /tmp
wget http://118.142.51.162/update/goip_install-v1.24.2.tar.gz
tar xvfz goip_install-v1.24.2.tar.gz
cd goip_install
./goip_install.sh

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

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

service apache2 restart

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

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

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

#    Order allow,deny
#    Allow from all
Require all granted

После этого все открылось, стандартный логин и пароль 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»

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

cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
ln -s /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock

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

cd /usr/local/goip
./run_goipcron

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

sudo nano /etc/init.d/goipcron

Добавим в файл:

#! /bin/sh
cd /usr/local/goip
./run_goipcron

Сделаем файл выполняемым:

sudo chmod +x /etc/init.d/goipcron

И добавим в автозагрузку:

sudo update-rc.d goipcron defaults 80

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

tcpdump -i any -vnn -s0 port 44444

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

http://192.168.1.21/goip/en/dosend.php?USERNAME=text&PASSWORD=text&smsprovider=1&goipname=ks1&smsnum=text&method=2&Memo=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.

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

SELECT * FROM `sends` WHERE received=1;
SELECT * FROM `sends` WHERE received=0;
SELECT * FROM `sends` WHERE received=0 AND time LIKE '2017-02-05%';

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

SELECT count(*) FROM sends WHERE time >= cast((now()) as date) AND time < cast((now() + interval 1 day) as date);

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

iptables -A INPUT -s 192.168.2.2/32 -p udp -m udp --dport 44444 -j ACCEPT

Смотрите также мои статьи:
Скрипт отправки СМС через Goip4 шлюз
Скрипт отправки СМС через Goip4 шлюз для ABillS

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Вливайтесь в общение

10 комментариев

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

  1. Fedora 24 x86_x64 Автозапуск — создать фаил goipcron , содержимое =

    #!/bin/sh
    # chkconfig: — 80 20
    cd /usr/local/goip;
    ./run_goipcron;

    Затем chmod +x goipcron — разрешаем автозапуск , помещаем в init.d
    Даём команду — chkconfig —add goipcron
    До установленные пакеты — yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 glibc.i686 krb5-libs.i686
    Версия — goip_install-v1.24.4.tar.gz

  2. Не работает у меня на php 7. Ошибка 500 Internal Error

    1. Тут либо спросить у разработчиков когда появится поддержка php7, либо допилить самому, либо запускать на php5.

      1. Я скачивал версию goip_install-v1.24.4, тоже не работает.
        Пусть обновляют, не спешат, допиливать их сервер желания нет, там целая куча файлов, не просто скриптик какой-то, если уж они не спешат, я и подавно не буду, с разными PHP тоже связываться не буду, конечно все потому, что я сделал отправку и чтение смс по http запросу на свой ip адрес.
        P.S. Какая то странная тема с приходящими смс от сбербанка, когда подключен полный пакет мобильный банк смски приходят обрезанными, не видно комментария или прочие глюки, как подключен экономный пакет смски приходят правильно.

  3. Автору огромное спасибо, это мой первый опыт с линуксом, все поставил.
    Подключилось не сразу, при установке библиотек выдало «невозможно создать ссылку, файл существует».
    А вот правило добавляющее шлюз сработало и все завелось! :)

  4. Ubuntu 17.04 (GNU/Linux 4.10.0-33-generic x86_64)

    Проблема запуска
    root@Asterisk:/usr/local/goip# ./run_goipcron
    ./goipcron: error while loading shared libraries: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory
    goipcron start
    root@Asterisk:/usr/local/goip#

    Решилась так apt-get install libgssapi-krb5-2:i386

  5. Добрый день. Делаю рассылку СМС только через HTTP API, например как я описывал в этом скрипте https://ixnfo.com/skript-otpravki-sms-cherez-goip4-shlyuz.html, скрипты запускаются в запланированное время через cron, из веб-интерфейс пару раз отправлял, через xml-файл не пробовал так как не нашел примера структуры файла.

  6. День добрый, подскажите без ошибок ли у вас работает отложенная отправка смс по времени, через родной смс-сервер?
    У меня отправка смс сразу через http запрос или веб-интерфейс работает нормально, но отложенная отправка по времени через веб-интерфейс или xml-файл не работает, вызывая ошибку смс сервера.

  7. У меня установлено по инструкции и работает на PHP 5.5.9
    Посмотрите есть ли на официальном сайте новые версии СМС сервера.

  8. на последних версиях PHP нет функции mysql_connect()
    Вот что пишет Fatal error: Uncaught Error: Call to undefined function mysql_connect() in
    Сейчас используют mysqli_connect()
    Нужно весь код переписывать :)))