м (Защищена страница «Asterisk+FreePBX» ([edit=autoconfirmed] (бессрочно) [move=autoconfirmed] (бессрочно))) |
|||
Строка 113: | Строка 113: | ||
===Подготовка модема=== |
===Подготовка модема=== |
||
Перед началом использования модема, его необходимо подготовить. Отключить fakecd режим, разлочить иногда требуется перепрошивка и активация голоса. |
Перед началом использования модема, его необходимо подготовить. Отключить fakecd режим, разлочить иногда требуется перепрошивка и активация голоса. |
||
− | apt-get install libusb-dev minicom usb-modeswitch* |
+ | apt-get install libusb-dev minicom usb-modeswitch* autoconf |
Далее устройство необходимо перевести в режим - "только модем" для этого подключимся к модему через его com-порт. |
Далее устройство необходимо перевести в режим - "только модем" для этого подключимся к модему через его com-порт. |
||
minicom -D /dev/ttyUSB0 |
minicom -D /dev/ttyUSB0 |
Версия от 05:53, 5 декабря 2013
Для OS Ubuntu Server 12.04 LTS
Описание
Asterisk - это IP-PBX (IP-АТС) сокращение от PBX (УАТС) — учрежденческая телефонная станция на основе межсетевого протокола IP.
Как и обычная УАТС, IP-PBX призвана выполнять те же и другие функции. Так как почти все функции реализованы через программное обеспечение, то в IP PBX легко наращивать функционал, модернизировать их, исправлять ошибки.
Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP протоколов и предоставляет богатые функции управления звонками:
- голосовую почту,
- конференции,
- интерактивное голосовое меню (IVR),
- центр обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы),
- Подробная запись о вызове (CDR)
- Архив аудио записей разговоров
FreePBX это полнофункциональный веб-интерфейс для конфигурации Asterisk IP-PBX. В то время, когда настройка Asterisk осуществляется при помощи конфигурационных файлов, FreePBX предлагает для конфигурирования и управления, простой и интуитивно понятный интерфейс .
Установка LAMPA
LAMPA - (Linux,Apache,Mysql,Php,Asterisk)
apt-get update apt-get install lamp-server^ libmysqlclient18 asterisk-dev \ asterisk-mysql asterisk-moh-opsound-wav php-db selinux-utils audiofile-tools \ bison libset-intspan-perl curl openssl php5-gd lame sox libxml2 subversion \ dahdi-* linux-headers-`uname -r`
- В процессе установки мастер попросит задать пароль для mysql сервера. Задаем например PaSs и запоминаем. Пустым пароль оставлять не надо!
FreePBX
Указываем пароль, который поставили при установке mysql
passwd=PaSs
Указываем версию которую хотим установить
fpbxver=2.10
- посмотреть список доступных версий
wget -q -O- http://svn.freepbx.org/freepbx/branches/ | grep -Po "\d+.\d+(?=\/\")"
Загрузка и создание базы
svn co http://svn.freepbx.org/freepbx/branches/$fpbxver /usr/src/freepbx cd /usr/src/freepbx mysqladmin create asterisk -p${passwd} mysqladmin create asteriskcdrdb -p${passwd} mysql asterisk < SQL/newinstall.sql -p${passwd} mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -p${passwd} echo "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${passwd}';" > /tmp/tmpfbpx echo "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${passwd}';" >> /tmp/tmpfbpx echo "flush privileges;" >> /tmp/tmpfbpx echo "quit" >> /tmp/tmpfbpx mysql -p${passwd} < /tmp/tmpfbpx
Установка FREEPBX
Запускаем установку (заполняем параметры или оставляем по умолчанию):
rm /var/www/index.html ./install_amp --password=${passwd} --webroot=/var/www
Подтверждаем параметры
adduser www-data asterisk /etc/init.d/apache2 restart wget http://127.0.0.1/admin/config.php# -O /dev/null
Подготовка WEB сервера
Изменение конфигурации apache2, для корректной работы с русским языком, а так-же меняем пользователя www-data от имени которого стартует apache2 на пользователя asterisk
locale-gen ru_RU perl -pi -e 's/#AddDefaultCharset UTF-8/AddDefaultCharset UTF-8/g' /etc/apache2/conf.d/charset perl -pi -e 's/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=asterisk/g' /etc/apache2/envvars perl -pi -e 's/export APACHE_RUN_GROUP=www-data/export APACHE_RUN_GROUP=asterisk/g' /etc/apache2/envvars echo "ServerName localhost" >> /etc/apache2/conf.d/vhosts.conf rm /var/lock/apache2/ -r /etc/init.d/apache2 restart
Загрузка модулей и обновлений
Загружаем и устанавливаем свежие модули
./setup_svn.php ./install_amp cp amp_conf/moh/*.wav /var/lib/asterisk/moh cd /etc/asterisk rm ccss.conf extensions.conf logger.conf iax.conf sip.conf features.conf sip_notify.conf chan_dahdi.conf chown asterisk:asterisk /etc/amportal.conf
Твики и допиливания
Небольшой твик для стабильной работы FOP панели, перезапускает её раз в 10 минут
chmod 770 -R /var/www/admin/modules/fw_fop echo "*/10 * * * * root amportal restart_fop 2>/dev/null">>/etc/crontab
Исправляем косяки с путями хранения звуков
cp -r /var/lib/asterisk/sounds/ /usr/share/asterisk/ rm -r /var/lib/asterisk/sounds/ ln -s /usr/share/asterisk/sounds /var/lib/asterisk/ chown -R asterisk:asterisk /var/lib/asterisk/sounds/ chown -R asterisk:asterisk /var/lib/asterisk/sounds/custom/ echo "" >>/etc/modprobe.d/dahdi.conf chown asterisk:asterisk /etc/modprobe.d/dahdi.conf
Если планируется загружать на сервер файлы через WEB интерфейс (например мелодии в ожидании) большого размера, нужно увеличить параметры php отвечающие за предельные размеры таких файлов. Редактируем файл:
nano /etc/php5/apache2/php.ini
Ищем параметры и устанавливаем свои значения, например 32 мбайта
post_max_size = 32M upload_max_filesize = 32M
Перезагрузим WEB сервер.
/etc/init.d/apache2 restart
Дополнения
Русификация голоса
Загружаем и распаковываем файлы
paths=/usr/share/asterisk/sounds/ cd /tmp wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-wav-current.tar.gz mkdir $paths/ru cd $paths/ru tar zxvf /tmp/asterisk-core-sounds-ru-wav-current.tar.gz
В параметрах протоколов SIP и IAX устанавливаем language=ru
WEB интерфейс
По окончанию установки FreePBX можно подключиться к серверу через браузер для дальнейшей настройки телефонии.
- Узнать сетевой ip адрес сервера можно выполнив команду:
ip a|grep eth0|grep inet
Подключаемся с компьютера в локальной сети на адрес
http://ип_адрес_сервера/admin
- Логин: admin
- Пароль: admin
DONGLE
Модуль chan_dongle позволяет использовать 3G модемы производства Huaway в качестве канала связи для совершения через него голосовых звонков. Получается VoIP-GSM шлюз.
Подготовка модема
Перед началом использования модема, его необходимо подготовить. Отключить fakecd режим, разлочить иногда требуется перепрошивка и активация голоса.
apt-get install libusb-dev minicom usb-modeswitch* autoconf
Далее устройство необходимо перевести в режим - "только модем" для этого подключимся к модему через его com-порт.
minicom -D /dev/ttyUSB0
Подключаемся к модему ВАЖНО находясь в программе minicom вводимые и выполняемые команды не видны, выводится лишь от отчёт ok или error, но это не проблема копируем команды Ctrl+c вставляем Ctrl+v жмём Enter
- Включаем режим "только модем":
AT^U2DIAG=0
Для новых модемов E171 с прошивкой 21.156.00.00.143 и IMEI начинается с 8614 требуется другая команда для включения режима модема
AT^SETPORT="A1,A2;1,2,3"
- Проверить текущее состояние счетчика и блокировки можно командой, а то вдруг его уже разлочили или забыли заблокировать, бывает и такое...
AT^CARDLOCK?
в ответ модем выдаст
CARDLOCK: A,B,0
- где A -> 2- означает, что симлока нет, 1-если модем залочен
- B -> количество оставшихся попыток разблокировки.
У нового модема ==10
- Узнать IMEI, запоминаем, а лучше записываем
AT+CGSN
- Перезагрузить модем
AT+CFUN=1,1
Выйти из minicom - после выполнения перезагрузки модема программа порядка 5-10 секунд не реагирует, ждём, после чего для выхода выполняем [ctrl+a q] Enter Если не получается, перезапускаем консоль и переподключаем модем физически.
Загрузка и сборка модуля
cd /tmp wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r10.tgz cd /usr/src tar zxvf /tmp/chan_dongle-* cd chan_dongle-* ./configure make install cp etc/dongle.conf /etc/asterisk/
Настройка параметров модуля
Создадим свой файл конфигурации, сохранив копию оригинального
cp /etc/asterisk/dongle.conf /etc/asterisk/dongle.conf.orig echo "" >/etc/asterisk/dongle.conf nano /etc/asterisk/dongle.conf
Впишем свои значения. Внимание, указывайте свой IMEI.
[general] interval=15 ; Частота проверки подключеных устройств [defaults] context=from-gsm ; Контекст для входящих звонков usecallingpres=yes ; Определять номер звонящего callwaiting=no ; Принимать второй звонок при активном разговоре autodeletesms=yes ; Удаление смс с симкарты при перезапуске rxgain=0 ; Изменение громкости динамика txgain=0 ; Изменение громкости микрофона [GSM-001] imei=3529ххххххххххх ; Привязка имени модема к IMEI номеру
Создаем специальный контекст в диалплане:
nano /etc/asterisk/extensions_custom.conf
[from-gsm] # Заменяем 7 на 8 в определившихся номерах и делаем DID равный номеру # IMEI модема, для входящих разделения звонков с разных модемов. exten => s,1,Set(CALLERID(all)=${CALLERID(num)}) exten => s,n,Set(CALLERID(num)=8${CALLERID(num):2}) exten => s,n,goto(from-trunk,${DONGLEIMEI},1) # Сохраняем входящие SMS в файл /var/www/msg exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})}) exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%d.%m.%Y %H:%M:%S)} - SMS - ${DONGLENAME} - ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}' >> /var/www/msg) exten => sms,n,Hangup() # Сохраняем входящие сообщения USSD в файл /var/www/msg exten => ussd,1,Verbose(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})}) exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%d.%m.%Y %H:%M:%S)} - USSD - ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}' >> /var/www/msg) exten => ussd,n,Hangup()
Создаем файл для приема SMS и USSD
echo "" >/var/www/msg chown asterisk:asterisk /var/www/msg
Перезапускаем Asterisk
service asterisk restart
Проверяем
asterisk -rx "dongle show devices"
Настройки в Web интерфейсе
- Для исходящих звонков
- Для входящих, указываем в качестве DID - IMEI номер модема, и направление куда звонок с этого модема направить.
Дополнение - Статистика по балансу