Установка и настройка 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 php-mysqli

Посмотрим есть ли новые версии СМС сервера тут
http://www.hybertone.com/en/news_detail.asp?newsid=21
http://en.dbltek.com/Software-Download.html
http://dbltek.com/update/
Для вас я сохранил архив goip_install-v1.24.2.tar.gz с версией которую устанавливал:
https://files.ixnfo.com/Soft/goip_install-v1.24.2.tar.gz
А также:
https://files.ixnfo.com/Soft/goip_install-v1.28.tar.gz
https://files.ixnfo.com/Soft/goip_install-v1.30.2.tar.gz
Скачаем во временную директорию архив с goip смс-сервером и запустим скрипт установки:

cd /tmp
wget http://dbltek.com/update/goip_install-v1.30.2.tar.gz
tar xvfz goip_install-v1.30.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.

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

Приведу примеры 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 received=0 AND time >=CURDATE();
SELECT count(*) FROM sends WHERE provider != '3';

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

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

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

SELECT sends.received FROM sends
LEFT JOIN message ON (sends.messageid = message.id)
WHERE message.msg = "TEXT"
AND message.tel=380961112233;

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

DELETE FROM goip.sends WHERE time = '0000-00-00 00:00:00';
DELETE FROM goip.sends WHERE time < '2020-02-01 00:00:00';
DELETE FROM goip.message WHERE time < '2020-02-01 00:00:00';

Если на 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 c Asterisk
Скрипт отправки СМС через Goip4 шлюз
Скрипт отправки СМС через Goip4 шлюз для ABillS

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

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

Добавить комментарий для IvanОтменить ответ

  1. ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

  2. Подскажите, почему сервер может не видеть входящие СМС? На шлюз они приходят, но в базе, в таблице receive — пусто, на сервере в Inbox тоже. Спасибо.

  3. 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

    1. Для версии 1.28.4 До установил dnf install glibc.i686 audiofile.i686 bzip2-libs.i686 cyrus-sasl-lib.i686 dbus-libs.i686 esound-libs.i686 freeglut.i686 imlib.i686 lcms-libs.i686 libacl.i686 libao.i686 libattr.i686 libcap.i686 libdrm.i686 libexif.i686 libICE.i686 libieee1284.i686 libsigc++20.i686 libSM.i686 libtool-ltdl.i686 libusb.i686 libwmf.i686 libwmf-lite.i686 libX11.i686 libXau.i686 libXaw.i686 libXcomposite.i686 libXdamage.i686 libXdmcp.i686 libXext.i686 libXfixes.i686 libxkbfile.i686 libxml2.i686 libXmu.i686 libXp.i686 libXpm.i686 libXScrnSaver.i686 libxslt.i686 libXt.i686 libXtst.i686 libXv.i686 libXxf86vm.i686 lzo.i686 mesa-libGL.i686 mesa-libGLU.i686 nas-libs.i686 cdk.i686 openldap.i686 pam.i686 popt.i686 pulseaudio-libs.i686 SDL.i686 svgalib.i686 unixODBC.i686 zlib.i686 compat-expat1.i686 compat-libstdc++-33.i686 openal-soft.i686 alsa-plugins-pulseaudio.i686 alsa-plugins-oss.i686 alsa-lib.i686 libXv.i686 libXScrnSaver.i686 qt.i686 pulseaudio-libs.i686 pulseaudio-libs-glib2.i686 alsa-plugins-pulseaudio.i686

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

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

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

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

  6. 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

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

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

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

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

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading