Установка Asterisk 11 + FreePBX + dongle
Published on 08.10.2015
Поставили задачу запилить Астериск на тонкий клиент, где всего 2гб памяти. Потому FreePBX Distro не захотел ставится (1400 по систему, 500 под бут, 500 под свап). Пришлось ставить все поштучно и по порядку.
UPD в экстеншене донгла смотрим кол-во запятых
CentOS
Пришлось поизвращаться. Тонкие клиенты от HP старые, потому CentOS на них ставится только 6 (я выбрал конкретно 6.7). Причем архитектура i386. Вы же берите, что подходит под вашу систему.
Памяти мало, потому режем все. Создаем раздел 100мб с точкой монитрования /boot. затем делаем volume group и добавляем разделы — 192 мб под своп, остальное под /.
Делаем минимальную установку.
Затем обновляем пакеты и ставим пакеты для продолжения установки
yum -y update
yum groupinstall core
yum groupinstall base
yum install gcc gcc-c++ lynx bison mysql-devel mysql-server doxygen
php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron sqlite-devel
Отключим SELinux, он мешает запуску консоли:
nano /etc/selinux/config set SELINUX=disabled
Временно отключим iptables
chkconfig Iptables --list chkconfig --level 0123456 iptables off service iptables stop
Автозапуск MySQL
chkconfig --level 345 mysqld on service mysqld start
Автозапуск Apache
chkconfig --level 345 httpd on service httpd start
Установка PearDB (warning игнорим)
pear install db-1.7.14
С этим разобрались. Перезагружаемся.
Asterisk
В середине этого этапа начало кончатся место, потому лучше сделать все в начале.
Монтируем флешку и все работы производим уже на ней. Для начала узнаем, как зовется наша флешка
fdisk -l
Ищем нашу флешку (я ориентировался по размеру)
mkdir /mnt/flash mount -t vfat -o rw /dev/sdb1 /mnt/flash
Первая строчка — создаем папку под монитрование, вторая — монтируем файловую систему FAT (-t vfat), доступную для чтения и записи (-o rw), устройство (/dev/sbd1) в точку монтирования (/mnt/flash).
После этого я добавил монтирование в cron.
crontab -e
и добавляем туда строчку.
@reboot mount -t vfat -o rw /dev/sdb1 /mnt/flash
А теперь приступим к астериску. Качаем на флешку исходники
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
И устанавливаем
UPD На пером тонком клиенте у меня ./configure прошел отлично, второй раз начал ругаться на asteriskssl.so. Я SSL все равно не использую, потом добавил --disable-asteriskssl
tar xvfz asterisk-11-current.tar.gz
cd asterisk-*
make clean && make distclean
./configure --disable-asteriskssl
make menuselect
В окне выбираем «Save & Exit». Продолжаем установку
make make install make config make progdocs
Последний пункт формирует доки по программе, у меня он этого сделать не смог, т.к. я предварительно снес папку docs (экономил место). Без выполнения этой команды тоже прекрасно работает.
FreePBX
Работаем все с той же флешки
export VER_FREEPBX=2.11 git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx cd freepbx git checkout release/${VER_FREEPBX}
Создаем пользователя и даем права
adduser asterisk -M -c "Asterisk User" chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib/asterisk mkdir /var/www/html chown -R asterisk. /var/www/
Редактируем Apache
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf service httpd restart
Создаем базу
export ASTERISK_DB_PW=amp109 mysqladmin -u root create asterisk mysqladmin -u root create asteriskcdrdb mysql -u root asterisk < SQL/newinstall.sql mysql -u root asteriskcdrdb < SQL/cdr_mysql_table.sql
Даем права пользователю в MySQL
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';" mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';" mysql -u root -e "flush privileges;"
И, собственно, ставим сам FreePBX
./start_asterisk start ./install_amp amportal a ma installall amportal a reload ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3 amportal start
Теперь заходим на сервер через браузер и можно работать.
chan_dongle
А теперь пора прикрутить модем. Мне достался E1550 с разлоченым голосом, так что настроек осталось минимум. Продолжаю работать на флешке, т.к. места все меньше. Качаем исходники модуля:
yum install asterisk-devel wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip
Разархивируем и подготавливаем:
unzip asterisk11.zip cd asterisk-chan-dongle-asterisk11 aclocal autoconf automake -a
Тут может возникнуть много проблем. Мне помогло
autoremake -a -i
Как вариант
ln -s /usr/share/automake-*/config.sub config.sub ln -s /usr/share/automake-*/config.guess config.guess
Но это нельзя делать на FAT32 флешке.
И пошли дальше.
# ./configure && make # cp chan_dongle.so /usr/lib64/asterisk/modules/ # cp etc/dongle.conf /etc/asterisk
Сразу добавим правило для доступа астериска к модему
nano /etc/udev/rules.d/10-modem.rules KERNEL=="ttyUSB*", OWNER="asterisk", GROUP="dialout"
Рестартим Астериск и в консоли пишем
dongle show devices
Тут мы должны увидеть наш модем. IMEI и ISEI переносим в конфиг в /etc/asterisk/dongle.conf.z
Для вхоядщих звонков в файле /etc/asterisk/extension_custom.conf доавляем
[default] exten => phonenumber,1,Set(CALLERID(all)=${CALLERID(num):3}) exten => phonenumber,n,Dial(SIP/Phone,,KTt)
Где phonenumber это номер телефона, определившийся ранее и Phone это внутренний номер телефона.
Для исходящих создаем кастомный сип транк, в качестве номера указываем IMEI и поле Custom Dial String заполняем так
dongle/i:imeinumber/$OUTNUM$
Где imeinumber собственно imei/
Posted in: