SMS сервер GoIP

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

Перепробовав множество GSM шлюзов, могу с уверенностью ответить, что шлюзы GoIP являются самыми лучшими, особенно по соотношению цена/качество. Плюс ко всему, очень порадовала поддержка сервисных инженеров из Китая, очень оперативно. Немалым достоинством этого шлюза является свой SMS сервер, умеющий производить SMS рассылки, снимать баланс и многое другое. Можно скачать оригинальный сервер с сайта производителя или взять http://www.ansealk.ru/files/goip_install-v1.15.tar.gz|здесь. В качестве платформы 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

При установке указать пароль базы данных.

Переходим по http://192.168.1.35/goip

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

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

После того как транки подхватились можно начинать работу. SMS сервер позволяет как просто отправлять смс от определённого провайдера, так и делать рассылку смс из XML файла. XML файл можно сформировать в Microsoft Excel, пример есть в интерфейсе. Еще он позволяет принимать СМС и собирать баланс с сим карт.

Для интеграции с другим ПО в том числе Asterisk или CRM системами существует API:

http://192.168.1.35/goip/en/dosend.php?USERNAME=root&PASSWORD=root&smsprovider=1&smsnum=13800138000&method=2&Memo=hello

Установка модуля для elastix

Модуль позволяет подключать SMPP провайдеров, создавать группы из мобильных телефонов, отправлять SMS и осуществлять кампании по рассылке SMS. Также может работать с модема типа E1550, через внутренний скрипт.

Первое что необходимо сделать, это обновить ядро системы, так как на стандартном ядре модем E1550 не хочет работать. Ставим необходимые пакеты

yum install -y ncurses-devel gcc make rpm-build redhat-rpm-confi
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2
tar -xf linux-2.6.36.tar.bz2
ln -sf /usr/src/linux-2.6.36 /usr/src/linux
cd linux
cp /boot/config-`uname -r` .config
make menuconfig
mkdir -p /usr/src/redhat/SRPMS
mkdir -p /usr/src/redhat/RPMS/{i386,x86_64}
</bash>

Стандартный make rpm не собирает initrd автоматически и не добавляет ядро в grub.conf, поэтому надо наложить патчик. Редактируем файл
<code bash>
nano scripts/package/mkspec

добавляя в его конец следующее:

echo "%post"
echo "%post"
echo "/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install "$KERNELRELEASE" || exit \$?"
echo ""

echo "%preun"
echo "/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove "$KERNELRELEASE" || exit \$?"
echo ""

Собираем и ставим свежее ядро

time make rpm
rpm -ihv /usr/src/redhat/RPMS/i386/kernel-2.6.36-1.i386.rpm
reboot

После перезагрузки переставляем драйвер dahdi

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz
tar xvf dahdi-linux-complete-2.6.1+2.6.1.tar.gz
cd dahdi-linux-complete-2.6.1+2.6.1
make all && make install
reboot

Ставим модуль chan_dongle и прописываем модемы

wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
tar zxvf chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14
./configure
make install
cp etc/dongle.conf /etc/asterisk/

Как только закончили с настройкой модемов, переходим к установке модуля SMS:

yum install elastix-developer-2.2.0-3

Собствнно сам модуль берем тут

Появляется новая вкладка SMS:

Вкладка создания кампании:

В качестве провайдера СМС, может выступать SMPP сервер или скрипт (пример для E1550):

Конфигурация модуля и его настройки:

Пример скрипта для работы с chan_dongle приведен ниже:

#!/bin/bash

#Get script arguments
clid="$1"
destination="$2"
text="$3"
unicode="$4"

#Init return values
ret_code=1
ret_message="Message delivered for sending"
stop_trunk=1
stop_message=1

#Process message
#Errors must be processed, if an error occurs fill
# ret_code: a value different to 0
# ret_message: string error message
# stop_trunk: 1 if this error must stop all messages for this trunk, for example, if there's no credit
# stop_message: 1 if this error mist stop this message, for example, if number is invalid

#Begin
#Write process message code
asterisk -rx "dongle sms dongle01 $destination $text"
#End

#Return
echo "$ret_code;$ret_message;$stop_trunk;$stop_message"
exit $ret_code
sms_server_goip.txt · Последние изменения: 2013/11/19 14:44 — ansealk
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика