В этой статье, я расскажу про уже готовый модуль SMS, для дистрибутива Asterisk. Модуль позволяет подключать 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}
Стандартный make rpm не собирает initrd автоматически и не добавляет ядро в grub.conf, поэтому надо наложить патчик. Редактируем файл
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):
Rонфигурация модуля и его настройки:
Пример скрипта для работы с 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
Документация к модулю, правда на испанском языке ...