**UBUNTU Server + Asterisk 1.8 + FreePBX +GSM HUAWAY E1550**
===== 1. Установка операционной системы =====
Выполняется типовая установка ОС Ubuntu 10.04 LTS Server со следующими предустановленными компонентами:
Linux+Apache+MySql+PHP
OpenSSH Server
Локализация: русская
Везде пароли: YourPass
После установки необходимо активировать учетку root, так-как вся настройка выполянется с полными правами.
sudo passwd root
===== 2. Загрузка компонентов из сети =====
Качаем и ставим компоненты из репозитория ~44,4 Мб +~12 Мб апдейтов
apt-get update
apt-get install php5-mysql libapache2-mod-php5 mysql-server libmysqlclient15-dev php-db php5-gd php-pear sox curl g++ libncurses-dev libxml2-dev subversion libspandsp-dev
Установка драйверов DAHDI (можно не выполнять, если не нужны конференции и нет соответствующего оборудования).
apt-get install dahdi
/etc/init.d/dahdi start
cd /tmp
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.5.x+2.5.x.tar.gz
cd /usr/src
tar -zxvf /tmp/dahdi-linux-complete-2.5.x+2.5.x.tar.gz
cd dahdi-linux-complete-2.5.x+2.5.x/
make
make install
make config
Качаем исходники Asterisk и FreePBX от производителей. Ориентировочный объём: 24Мб+0.9Мб+6.2Мб
cd /tmp
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.x.xx.tar.gz
wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
Распаковываем запакованные исходнички:
cd /usr/src
tar xvfz /tmp/asterisk-1.8.x.xx.tar.gz
tar xvfz /tmp/freepbx-2.9.0.tar.gz
===== 3. Устанавливаем Астериск =====
cd /usr/src/asterisk-1.8.x.xx
Download mp3 support files
contrib/scripts/get_mp3_source.sh
./configure
make menuconfig
select app_mysql, app_saycountpl, cdr_mysql, format_mp3, res_config_mysql
make
make install
make config
make samples
amportal stop
amportal start
===== 4. Конфигурируем Апач =====
Добавляем юзера и даем ему права
adduser asterisk —disabled-password —gecos «Asterisk PBX»
adduser www-data asterisk
Заставляем апач стартовать от имени юзера астериск
nano /etc/apache2/envvars
закомментируем следующие строки
#export APACHE_RUN_USER=www-data
#export APACHE_RUN_GROUP=www-data
и добавляем данные строки
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Применяем параметры апачу
apache2ctl graceful
===== 6. Ставим FREEPBX =====
==== Подготовка баз MYSQL для FREEPBX ====
cd /usr/src/freepbx-2.9.0
mysqladmin create asterisk -pYourPass
mysqladmin create asteriskcdrdb -pYourPass
mysql asterisk < SQL/newinstall.sql -pYourPass
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -pYourPass
mysql -pYourPass
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘YourPass’;
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY ‘YourPass’;
flush privileges;
quit;
==== Установка FREEPBX ====
Запускаем Астериск перед установкой Freepbx
/etc/init.d/asterisk start
Запускаем установку:
./install_amp
ВАЖНО остальные параметры __кроме указанных__, менять НЕЛЬЗЯ!!! Параметры которые надо поменять в мастере установки:
Enter your PASSWORD to connect to the ‘asterisk’ database:
[amp109] YourPass
Enter a PASSWORD to connect to the Asterisk Manager interface:
[amp111] YourPass
Enter the path to use for your AMP web root:
[/var/www/html]
/var/www/freepbx
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
[passw0rd] YourPass
==== Корректировка параметров FreePBX после установки для его правильной работы ====
nano /etc/amportal.conf
Коментируем параметр, для работы FOP (флеш панель):
#AMPWEBADDRESS=xx.xx.xx.xx
Исправляем параметр для включения авторизации доступа к web-админке и хранения учеток в базе данных (по умолчанию adminadmin):
AUTHTYPE=database
Исправляем пароль авторизации доступа к web-админке по управлению записями разговоров.
ARI_ADMIN_PASSWORD=YourPass
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Исправление, для включения русского языка в web-интерфейсе FreePBX
nano /usr/share/locale/locale.alias
Удаляем строку с кодировкой для russian и добавляем 3 строки вместо нее:
russian ru
ru ru_RU
ru_RU ru_RU.UTF-8
Затем:
#locale-gen ru_RU
#/etc/init.d/apache2 restart
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Делаем автостарт
nano /etc/rc.local
дописываем перед строчкой exit 0 следующую строчку
/usr/local/sbin/amportal start
Перезагружаем сервер для проверки успешного автозапуска.
reboot
==== Обновление и получение модулей FreePBX с сервера разработчка ====
Заходим в web-админку
http://192.168.0.xxx/freepbx/admin (admin/admin)
Первым делом применяем параметры конфигурации
«Управление модулями» -> «Проверить обновление on-line» -> «Скачать все» -> «Обновить все» -> «Запустить процесс»
Прокручиваем список обновляемых модулей вниз жмем «Подтвердить»
в процессе выполнения в случае остановки процесса, его необходимо повторить пока все не обновится!
===== 7. Подключение модема HUAWEI e1550 к Asterisk =====
==== Некоторые приготовления перед подключением модема ====
Обновление прошивок: http://www.dc-files.com/files/huawei/modems/E1550/
Обязательное условие — отключение встроенных в модем устройств — (кард-ридер и вируальный CD-ROM с ПО для Windows). Для этого необходимо через терминал подключиться к консоли модема и выполнить AT комманду AT^U2DIAG=0. Если этого не сделать, то появится проблема с переподключениями модема по причине некорректного отмонтирования портов устройств.
==== Установка модуля DATACARD ====
Получение текущих исходников из SVN и сборка модуля:
svn co http://www.makhutov.org/svn/chan_datacard/trunk/ /usr/src/chan_datacard
cd /usr/src/chan_datacard
./configure
make install
cp etc/datacard.conf /etc/asterisk
==== Настройка параметров модуля ====
nano /etc/asterisk/datacard.conf
в самом низу конфигурационного файла удаляем все данные (Ctrl+k) после последней черты и вставляем данный конфиг
nomer unknown
datacard cmd datacard4 AT+CPBS=\»ON\»
datacard cmd datacard4 AT+CPBW=1,\»+380937301623\»,145
[datacard1]
context=from-gsm ; context для входящих звонков
audio=/dev/ttyUSB1 ; tty порт для аудио подключения
data=/dev/ttyUSB2 ; tty порт для управляющих AT комманд модема
group=1 ; Группа вызова
rxgain=10 ; Изменение громкости динамика
txgain=-5 ; Изменение громкости микрофона
resetdatacard=yes ; Перезагрузка модема при перезапуске модуля
autodeletesms=yes ; Удаление смс с симкарты при перезапуске
usecallingpres=yes ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Создаем специальный контекст в диалплане:
nano /etc/asterisk/extensions_custom.conf
[from-gsm]
exten => s,1,Set(CALLERID(all)=${CALLERID(num)})
exten => s,n,Set(CALLERID(num)=${CALLERID(num):3})
exten => s,n,Set(CDR(accountcode)=${CALLERID(num)})
exten => s,n,goto(from-trunk,${IMEI},1)
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DATACARD} — ${CALLERID(num)}: ${SMS}’ >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${IMSI} — ${IMEI} — ${DATACARD}: ${USSD}’ >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
exten => cusd,1,Verbose(Incoming CUSD: ${CUSDTXT})
exten => cusd,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${CHANNEL}: ${CUSDTXT}’ >> /var/log/asterisk/cusd.txt)
exten => cusd,n,Hangup()
Перезапускаем Asterisk
service asterisk restart
==== Методы контроля и управления модемом ====
Проверка состояния модема
asterisk -r
datacard show devices
Отключаем и включаем питание конкретному модему:
Определяем порт:
dmesg usb | grep ttyUSB
смотрим последнюю строку:
[ 5191.602917] usb 1-3.5: GSM modem (1-port) converter now attached to ttyUSB3
Отключаем и включаем питание устройсту usb 1-3.5
echo suspend > /sys/bus/usb/devices/1-3.5/power/level
echo on > /sys/bus/usb/devices/1-3.5/power/level
Послылаем модему команду перезагрузки
datacard cmd 000101 AT+CFUN=1,1
==== Настройка FreePBX для работы с модемами ====
* Создаем специальный транк
Конфигурация => Транки => Добавить специальный транк => Исходящие настройки Специальный набор => datacard/i:123456789012345/$OUTNUM$
где 123456789012345 (IMEI модема)
* Создаем исходящий маршрут
Конфигурация => Исходящая маршрутизация => math patern => . (ставим точку в это поле), а в Trunk Sequence for Matched Routes выбираем наш транк.
{{:match_pattern.png?500|}}
* Делаем входящий маршрут
Конфигурация => Входящая маршрутизация => Добавить входящий маршрут => Номер DID => 123456789012345 (IMEI модема), а в «Установить направление» выбрать получателя звонков, поступающих на модем.
===== 9. Руссификация озвучки =====
Скачиваем файлы в формате wav ~20 Mb
cd /tmp
wget http://195.242.215.60/ivr/asterisk-sounds-ru-wav.tar.gz
cd /var/lib/asterisk/sounds
tar xvfz /tmp/asterisk-sounds-ru-wav.tar.gz
Включаем русскоязычную озвучку для протоколов, например для SIP, через WEB-интерфейс
Инструменты => Asterisk SIP Settings => language => ru
Поставить галочки:
NAT => no
IP Configuration => Public IP
===== 10. Взаимодействие со сторонним внешним ПО =====
==== Доступ к mysql ====
nano /etc/mysql/my.cnf
Комментируем строку:
# bind-address = 127.0.0.1
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Для предоставления удаленного доступа к MySQL, в командной строке копируем и выполняем следующие команды:
mysql —user=root mysql —pass=YourPass
GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@»%»
IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
quit;
Перезапускаем MYSQL
/etc/init.d/mysql restart
==== Доступ к AMI ====
Редактируем файл:
nano /etc/asterisk/manager.conf
Дописываем в секцию
[general]
webenabled = yes
[admin]
enabled = yes
secret = YourPass
permit=0.0.0.0/0.0.0.0
read = all,system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan,originate
write = all,system,call,log,verbose,command,agent,user,config,dtmf,reporting,cdr,dialplan,originate
соответственно удаляем строки
deny=0.0.0.0/0.0.0.0
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
Делаем подключение к AMI через HTTP
Редактируем файл
nano /etc/asterisk/http.conf
Раскоменчиваем:
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0/0
bindport=8088
prefix=asterisk
записываем изменения Ctrl+O и выходим из редактора nano Ctrl+X
перезапускаем Asterisk
service asterisk restart
Логинимся:
http://192.168.0.218:8088/asterisk/manager?action=login&username=admin&secret=YourPass
Получаем информацию о текущих звонках (нужно производить запросы постоянно, при простое происходит отлогивание)
http://192.168.0.218:8088/asterisk/manager?action=Status
==== Прямой доступ к файлам через Апач ====
Добавляем симлинк
ln -s /var/spool/asterisk/monitor/ /var/www
Доступ через http://192.168.0.218/monitor/
===== 11. Основные настройки FreePBX =====
заходим во FreePBX
http://ip_adress_servera/freepbx
выбираем пункт
FreePBX Administration
при первом входе следует применить настройки
выбираем русский язык
применяем настройки
слева в панели «ОСНОВНОЙ» выбираем пункт «Внутренние номера»
выбираем «Какое-то SIP устройство» жмем «Сохранить»
Далее выбираем и заполняем следующие поля:
«Внутренний номер пользователя» указываем номер телефона
«Отображаемое имя» указываем отображаемое имя абонента
«Secret» указываем пароль
«Запись входящих» выбираем всегда
«Запись исходящих» выбираем всегда
*.sh
#!/bin/bash
/usr/sbin/asterisk -rx «datacard sms datacard4 0978442044 Server Asterisk is already to SMS111111»
/usr/sbin/asterisk -rx «datacard sms datacard1 0978442044 Server Asterisk is already to SMS222222»
/usr/sbin/asterisk -rx «datacard sms datacard3 0978442044 Server Asterisk is already to SMS333333»
запускать только с терминала или консоли астериска !!!
datacard sms(команда для отправки смс) datacard4(устройство гсм) 0978442044(номер куда) Server Asterisk is already to SMS111111(текст)
АВТО ДОЗВОН И ОПОВЕШЕНИЕ
1 подкидывать в /var/spool/asterisk/outgoing/
*.call
Channel: Local/0504632748@from-internal (кому звоним «050 4632748» и через что «внутрений канал» )
Callerid: 5555 (кто звонит)
MaxRetries: 2 (сколько раз звонить)
RetryTime: 20
WaitTime: 60
Context: from-internal (может быть avtocall)
Extension: 22 (куда направить)
Priority: 1
2 /etc/asterisk/extension.conf
[autocall]
exten => 5555,1,Answer
exten => 5555,n,Wait(1)
exten => 5555,n,Background(/var/lib/asterisk/sounds/ua/1009_ua)
;exten => 5555,n,Background(/var/lib/asterisk/sounds/monitoring/Down)
;exten => s,n,Background(/var/lib/asterisk/sounds/monitoring/provider-a)
;exten => s,n,Background(/var/lib/asterisk/sounds/monitoring/bye)
exten => 5555,n,hangup