... h3. Статья относится к версиям начиная с 397_378 h2. Установка
|
|
h3.
|
h3. {color:#333333}При установке использовались следующие реквизиты:{color}
|
|
При установке использовались следующие реквизиты:
|
{color:#0000ff}IP Carbon Billing:10.1.1.1{color} {color:#0000ff}IP Asterisk:10.1.1.2{color}
|
... {color:#0000ff}Secret:servicem{color} {color:#0000ff}Порты Radius сервера:2812 и 2813{color} {color:#ff0000}Внимание\! Серверы должны находиться в одной подсети и иметь статичные уникальные адреса{color}{color:#0000ff}.{color} Предполагается что Asterisk установлен на CentOS 6.4. Скачать дистрибутив CentOS 6.4 вы всегда можете с [одного из зеркал на официальном сайте|http://www.centos.org/modules/tinycontent/index.php?id=30] или [с нашего зеркала|http://download5.carbonsoft.ru/carbon_reductor/centos/CentOS-6.4-x86_64-minimal.iso]. h3. Настройка CentOS 6.4
|
|
h5.
|
h5. {color:#333333}После установки CentOS 6.4 необходимо настроить сеть.{color}
|
|
После установки CentOS 6.4 необходимо настроить сеть.
|
*Установка вручную, в CentOS 6.4 minimal версии*
|
... Для того чтобы настроить доступ к сети, необходимо поправить конфигурационный файл: {code}/etc/sysconfig/network-scripts/ifcfg-eth0{code} или другой, в зависимости от того, через какую сетевую карту вы планируете ходить в интернет. Сделать это можно с помощью текстового редактора vi: {code}vi /etc/sysconfig/network-scripts/ifcfg-eth0{code} Для редактирования используем клавишу *i* \- после нажатия в открытом файле появится возможность редактирования. В файле необходимо изменить и добавить следующие поля: {code} DEVICE=eth0 IPADDR=здесь.ваш.ip.адрес NETMASK=здесь.ваша.сетевая.маска GATEWAY=здесь.укажите.ip.шлюза DEFROUTE=yes DNS1=здесь.укажите.ip.dns-сервера DNS2=здесь.укажите.ip.dns-сервера2 ONBOOT=yes TYPE=Ethernet NM_CONTROLLED=no BOOTPROTO=static {code} Например: {code} DEVICE=eth0 IPADDR=192.168.0.105 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DEFROUTE=yes DNS1=8.8.8.8 DNS2=8.8.4.4 ONBOOT=yes TYPE=Ethernet NM_CONTROLLED=no BOOTPROTO=static {code} После редактирования нажимаем последовательно: *Esc*, *символ двоеточия* (на английской раскладке. При этом символ ":" появится в левом нижнем углу. *wq\! *\- команда сохраняет изменения и выходит. После этого, выполните {code}/etc/init.d/network restart{code}
|
и проверьте наличие доступа к сети:
|
{code}ping \-c 4 8.8.8.8{code}
|
|
Если всё в порядке - значит теперь вы можете подключаться к серверу по SSH со своего компьютера. сеть настроена.
|
|
Примеры настройки:
|
h6. Далее потребуется установка дополнительных компонентов:
|
|
{color:#0000ff}IP Carbon Billing:10.1.1.1{color} {color:#0000ff}IP Asterisk:10.1.1.2{color}
|
{color:#0000ff}Secret:servicem{color} *установка wget*
|
{color:#0000ff}Порты Radius сервера:2812 и 2813{color}
|
{code} yum install wget {code}
|
|
{color:#ff0000}Внимание\! Серверы должны находиться в одной подсети и иметь статичные уникальные адреса{color}{color:#0000ff}.{color}
|
*установка make* {code} yum install make {code}
|
|
Для отправки CDR записей на биллиг используется Radius. Устанавливаем до сборки Asterisk чтобы он собрался с поддержкой этого модуля. Скачать дистрибутив можно тут [http://prdownload.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz]
|
*установка gcc*
|
{code}
|
# tar zxvf radiusclient-ng-0.5.6.tar.gz # cd radiusclient-ng-0.5.6 # ./configure # ./make # ./make install
|
yum install gcc
|
{code}
|
*установка perl ExtUtils* {code} yum install perl-ExtUtils-Embed {code}
|
|
Установка Asterisk PBX
|
*установка perl CPAN*
|
{code}
|
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.17.0.tar.gz # tar xzf asterisk-1.8.17.0.tar.gz # cd asterisk-1.8.17.0 # cp contrib/dictionary.digium /usr/local/etc/radiusclient-ng/ # contrib/scripts/install_prereq install # ./configure # make # make install
|
yum install perl-CPAN
|
{code}
|
h3. Установка Radius Для отправки CDR записей на биллиг используется Radius. Устанавливаем до сборки Asterisk чтобы он собрался с поддержкой этого модуля. Скачать дистрибутив можно тут [http://prdownload.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz] или командами ниже. {code} wget http://optimate.dl.sourceforge.net/project/radiusclient-ng.berlios/radiusclient-ng-0.5.6.tar.gztar zxvf radiusclient-ng-0.5.6.tar.gz tar zxvf radiusclient-ng-0.5.6.tar.gzcd radiusclient-ng-0.5.6 ./configure make make install {code} h3. {color:#000000}Уст{color}ановка Asterisk PBX {code} wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.17.0.tar.gz tar xzvf asterisk-1.8.17.0.tar.gz cd asterisk-1.8.17.0 cp contrib/dictionary.digium /usr/local/etc/radiusclient-ng/ contrib/scripts/install_prereq install ./configure make make install {code}
|
Если Вы новичок установите сразу дефалтные конфиг дефолтные конфигурационные файлы.
|
{code}# make samples{code}
|
{code}make samples{code}
|
Установка Perl AGI интерфейса к AGI.
|
{code}# wget http://asterisk.gnuinter.net/files/asterisk-perl-1.03.tar.gz
|
{code}wget http://asterisk.gnuinter.net/files/asterisk-perl-1.03.tar.gz
|
# tar zxvf asterisk-perl-1.03.tar.gz
|
# cd asterisk-perl-1.03
|
# perl Makefile.PL
|
# make
|
# make test
|
# make install{code}
|
Устанавливаем perl из пакетов и настраиваем. При устовке отдельного пакета он может попросить для тестирования ввести ip и порт Radius сервера биллинга 10.1.1.1:2812 и логин абонента в биллинге с паролем.
|
... {code}# perl -MCPAN -e shell
|
(при первом запуске отвечаем дефолтно на все вопросы) cpan>install Config::IniFiles
|
cpan>install Crypt::CBC
|
cpan>install Crypt::DES
|
cpan>install Authen::Radius
|
cpan>install Asterisk::AGI
|
cpan>q {code}
|
... По умолчанию Asterisk не поддерживает авторизацию через Radius, для этого необходимо использовать специальный AGI скрипт основанный на разработке PortaOne, который находится в биллинге {code:title=На сервере биллинга} # ls -l /usr/local/ics/bin/agi-rad-auth.agi # scp /usr/local/ics/bin/agi-rad-auth.agi <адрес сервера астериск>:/var/lib/asterisk/agi-bin/ {code} После этого надо дать права на запуск этого файла Asterisk {code:title=На сервере Asterisk} # chown asterisk:asterisk /var/lib/asterisk/agi-bin/agi-rad-auth.agi # chmod o+x /var/lib/asterisk/agi-bin/agi-rad-auth.agi {code}
|
Это скрипт вызывается перед набором номера и если биллинг разрешает звонок то Asterisk двигается дальше по цепочке.
|
h32. *Настройка*
|
|
h3.
|
В файл /etc/asterisk/modules.conf необходимо включить модуль {code}load => res_agi.so{code}
|
... {code:title=/etc/asterisk/sip.conf} [general] context=office ; Default context for incoming calls allowguest=no ; Allow or reject guest calls (default is yes) allowoverlap=no ; Disable overlap dialing support. (Default is yes) udpbindport=5060 udpbindaddr=0.0.0.0 srvlookup=yes disallow=all allow=alaw,ulaw,gsm canreinvite=no dtmfmode=rfc2833 [200] type=friend host=dynamic username=200 secret=123 nat=no canreinvite=no context=sip_auth externalauth=yes callerid=920620 disallow=all allow=ulaw subscribemwi = no mailbox=200@office callgroup=1 pickupgroup=1 [201] type=friend host=dynamic username=201 secret=123 nat=no canreinvite=no context=sip_auth externalauth=yes callerid=920621 disallow=all allow=ulaw subscribemwi = no mailbox=100@office callgroup=1 pickupgroup=1 {code} {color:#ff0000}Внимание\! Поле callerid это тот логин который проверяет биллинг, и который надо указывать при подключении услуги.{color} {code:title=/etc/asterisk/extensions.conf} [general] static=yes writeprotect=no ;clearglobalvars=no [globals] RADIUS_Server=10.1.1.1 RADIUS_Secret=servicem RADIUS_Auth_Port=2812 RAIUS_Acct_Port=2813 Acct_Update_Timeout=60 NAS_IP_Address=10.1.1.2 ;Маршруты для входящих звонков [office] exten => _X.,1,AGI(agi-rad-auth.agi,Routing=EXT) exten => _X.,n,Dial(SIP/${EXTEN},60,tT) exten => _X.,n,Hangup exten => h,1,Hangup ;Маршруты для исходящих звонков [sip_auth] exten => _X.,1,Set(SIP_Authorization=${SIP_HEADER(Authorization)}) exten => _X.,n,AGI(agi-rad-auth.agi,Routing=SIP&AuthorizeBy=SIP) exten => _X.,n,Dial(SIP/VOIP/${EXTEN},60,tT) exten => _X.,n,Hangup exten => h,1,Hangup {code} Добавляем Radius сервер в разрешенные и указываем secret тот же что и указали в биллинге {code:title=/usr/local/etc/radiusclient-ng/servers} 10.1.1.1 servicem {code} Меняем адреса Radius сервера {code:title=/usr/local/etc/radiusclient-ng/radiusclient.conf} authserver 10.1.1.1:2812 acctserver 10.1.1.1:2813 {code} Добавляем {code:title=/etc/asterisk/cdr.conf} [radius] usegmtime=no ; Время по GMT loguniqueid=yes loguserfield=yes radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf {code} Добавляем загрузку специального словаря который можно взять из asterisk-1.8.17.0/contrib/ {code:title=/usr/local/etc/radiusclient-ng/dictionary} $INCLUDE /usr/local/etc/radiusclient-ng/dictionary.digium {code}
|