Man вики
Нет описания правки
Нет описания правки
 
(не показана 31 промежуточная версия 5 участников)
Строка 20: Строка 20:
 
apt-get install lamp-server^ libmysqlclient18 asterisk-dev \
 
apt-get install lamp-server^ libmysqlclient18 asterisk-dev \
 
asterisk-mysql asterisk-moh-opsound-wav php-db selinux-utils audiofile-tools \
 
asterisk-mysql asterisk-moh-opsound-wav php-db selinux-utils audiofile-tools \
bison libset-intspan-perl curl openssl php5-gd lame sox libxml2 subversion
+
bison libset-intspan-perl curl openssl php5-gd lame sox libxml2 subversion \
  +
dahdi-* linux-headers-`uname -r`
 
* В процессе установки мастер попросит задать пароль для mysql сервера. Задаем например '''PaSs''' и запоминаем. Пустым пароль оставлять не надо!
 
* В процессе установки мастер попросит задать пароль для mysql сервера. Задаем например '''PaSs''' и запоминаем. Пустым пароль оставлять не надо!
 
=FreePBX=
 
=FreePBX=
Строка 56: Строка 57:
 
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_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
 
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
 
/etc/init.d/apache2 restart
  +
 
==Загрузка модулей и обновлений==
 
==Загрузка модулей и обновлений==
 
Загружаем и устанавливаем свежие модули
 
Загружаем и устанавливаем свежие модули
Строка 65: Строка 69:
 
rm ccss.conf extensions.conf logger.conf iax.conf sip.conf features.conf sip_notify.conf chan_dahdi.conf
 
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
 
chown asterisk:asterisk /etc/amportal.conf
  +
==Твики и допиливания==
 
Небольшой твик для стабильной работы FOP панели, перезапускает её раз в 10 минут
 
Небольшой твик для стабильной работы FOP панели, перезапускает её раз в 10 минут
 
chmod 770 -R /var/www/admin/modules/fw_fop
 
chmod 770 -R /var/www/admin/modules/fw_fop
echo "*/10 * * * * root amportal restart_fop>/dev/null">>/etc/crontab
+
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
  +
 
= Дополнения =
 
= Дополнения =
 
==Русификация голоса==
 
==Русификация голоса==
Строка 87: Строка 108:
 
*Логин: admin
 
*Логин: admin
 
*Пароль: admin
 
*Пароль: admin
 
=DONGLE=
=Драйвера и утилиты=
 
==DAHDI==
 
[[Файл:Catalog-cards-analog.png|thumb|100px|Аналоговая телефонная PCI-плата]]
 
DAHDI Linux - это драйвера с открытым исходным кодом для устройств некоторых производителей аппаратных интерфейсов (в том числе телефонного оборудования для Asterisk). DAHDI Tools представляет собой пакет утилит для управления и мониторинга устройств DAHDI (ранее назывался Zaptel).
 
* Кроме того, пакет содержит эмулятор высокоточного таймера, при отсутствии телефонного оборудования в сервере. '''Этот таймер необходим для работы одного из вариатов конференций.'''
 
* Если не используется телефонное оборудование устанавливаемое в системный блок сервера и не планируется использовать конференции, то данный пункт можно не выполнять.
 
===Загрузка===
 
Загружаем исходники ядра
 
apt-get install dahdi-*
 
После установки нужно перезагрузить систему
 
reboot
 
 
==DONGLE==
 
 
[[Файл:mts.jpg|thumb|100px|Модем E1550 в салонах МТС]]
 
[[Файл:mts.jpg|thumb|100px|Модем E1550 в салонах МТС]]
 
Модуль chan_dongle позволяет использовать 3G модемы производства Huaway в качестве канала связи для совершения через него голосовых звонков. Получается VoIP-GSM шлюз.
 
Модуль chan_dongle позволяет использовать 3G модемы производства Huaway в качестве канала связи для совершения через него голосовых звонков. Получается VoIP-GSM шлюз.
 
===Подготовка модема===
 
===Подготовка модема===
 
Перед началом использования модема, его необходимо подготовить. Отключить fakecd режим, разлочить иногда требуется перепрошивка и активация голоса.
 
Перед началом использования модема, его необходимо подготовить. Отключить fakecd режим, разлочить иногда требуется перепрошивка и активация голоса.
apt-get install libusb-dev minicom
+
apt-get install libusb-dev minicom usb-modeswitch* autoconf
Загружаем и собираем свежую версию usb-modeswitch для поддержки новых модемов
 
cd /tmp
 
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.2.3.tar.bz2
 
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20120120.tar.bz2
 
cd /usr/src
 
tar -jxvf /tmp/usb-modeswitch-1.2.3.tar.bz2
 
tar -jxvf /tmp/usb-modeswitch-data-20120120.tar.bz2
 
cd /usr/src/usb-modeswitch-1.2.3/
 
make install
 
cd /usr/src/usb-modeswitch-data-20120120/
 
make install
 
 
Далее устройство необходимо перевести в режим - "только модем" для этого подключимся к модему через его com-порт.
 
Далее устройство необходимо перевести в режим - "только модем" для этого подключимся к модему через его com-порт.
 
minicom -D /dev/ttyUSB0
 
minicom -D /dev/ttyUSB0
Строка 137: Строка 135:
   
 
===Загрузка и сборка модуля===
 
===Загрузка и сборка модуля===
 
svn checkout http://asterisk-chan-dongle.googlecode.com/svn/trunk/ /usr/src/chan-dongle
cd /tmp
 
 
cd /usr/src/chan-dongle
wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r10.tgz
 
  +
aclocal
cd /usr/src
 
  +
autoconf
tar zxvf /tmp/chan_dongle-*
 
  +
automake -a
cd chan_dongle-*
 
 
./configure
 
./configure
 
make
 
make install
 
make install
 
cp etc/dongle.conf /etc/asterisk/
 
cp etc/dongle.conf /etc/asterisk/
  +
 
=== Настройка параметров модуля ===
 
=== Настройка параметров модуля ===
 
Создадим свой файл конфигурации, сохранив копию оригинального
 
Создадим свой файл конфигурации, сохранив копию оригинального
Строка 169: Строка 169:
   
 
[from-gsm]
 
[from-gsm]
  +
# Заменяем 7 на 8 в определившихся номерах и делаем DID равный номеру
  +
# IMEI модема, для входящих разделения звонков с разных модемов.
 
exten => s,1,Set(CALLERID(all)=${CALLERID(num)})
 
exten => s,1,Set(CALLERID(all)=${CALLERID(num)})
 
exten => s,n,Set(CALLERID(num)=8${CALLERID(num):2})
 
exten => s,n,Set(CALLERID(num)=8${CALLERID(num):2})
exten => s,n,goto(from-trunk,${IMEI},1)
+
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
 
Перезапускаем Asterisk
 
service asterisk restart
 
service asterisk restart
Строка 191: Строка 205:
 
* Для входящих, указываем в качестве DID - IMEI номер модема, и направление куда звонок с этого модема направить.
 
* Для входящих, указываем в качестве DID - IMEI номер модема, и направление куда звонок с этого модема направить.
 
Дополнение - [[Статистика по балансу]]
 
Дополнение - [[Статистика по балансу]]
  +
=Дополнительные работы=
  +
==Смена пароля доступа к базе==
  +
Смена пароля пользователя базы
  +
mysql -p
  +
SET PASSWORD FOR asteriskuser@localhost=PASSWORD('НОВЫЙ_ПАРОЛЬ');
  +
Смена пароля доступа FreePBX к базе
  +
nano /etc/freepbx.conf
  +
Правим строку
  +
$amp_conf['AMPDBPASS'] = 'НОВЫЙ_ПАРОЛЬ';
  +
Правим пароль доступа Asterisk к базе CDR
  +
nano /etc/asterisk/cdr_mysql.conf
  +
Меняем строку
  +
password = НОВЫЙ_ПАРОЛЬ

Текущая версия от 00:31, 21 августа 2014

Для 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

Mts

Модем E1550 в салонах МТС

Модуль 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 Если не получается, перезапускаем консоль и переподключаем модем физически.

Загрузка и сборка модуля

svn checkout http://asterisk-chan-dongle.googlecode.com/svn/trunk/ /usr/src/chan-dongle
cd /usr/src/chan-dongle
aclocal
autoconf
automake -a
./configure
make 
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 интерфейсе

  • Для исходящих звонков

Gsm1

Gsm2

Gsm3

Gsm4

  • Для входящих, указываем в качестве DID - IMEI номер модема, и направление куда звонок с этого модема направить.

Дополнение - Статистика по балансу

Дополнительные работы

Смена пароля доступа к базе

Смена пароля пользователя базы

mysql -p
SET PASSWORD FOR asteriskuser@localhost=PASSWORD('НОВЫЙ_ПАРОЛЬ');

Смена пароля доступа FreePBX к базе

nano /etc/freepbx.conf

Правим строку

$amp_conf['AMPDBPASS']  = 'НОВЫЙ_ПАРОЛЬ';

Правим пароль доступа Asterisk к базе CDR

nano /etc/asterisk/cdr_mysql.conf

Меняем строку

password = НОВЫЙ_ПАРОЛЬ