... h3. Установка Установка Asterisk PBX {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 # contrib/scripts/install_prereq install # ./configure # make # make install {code} Если Вы новичок установите сразу дефалтные конфиг файлы. {code}# make samples{code} Установка Perl AGI интерфейса к AGI. {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 из пакетов и настраиваем. {code}# perl -MCPAN -e shell (при первом запуске отвечаем дефолтно на все вопросы) cpan>install Config::IniFiles install Crypt::CBC install Crypt::DES install Authen::Radius install Asterisk::AGI cpan>q {code} Для отправки CDR записей на биллиг используется Radius {code} # wget http://prdownload.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz # tar zxvf radiusclient-ng-0.5.6.tar.gz # cd radiusclient-ng-0.5.6 # ./configure # ./make # ./make install {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 двигается дальше по цепочке. h3. *Настройка* В файл /etc/asterisk/modules.conf необходимо включить модуль {code}load => res_agi.so{code} Примеры настройки: {color:#0000ff}IP Carbon Billing:10.1.1.1{color} {color:#0000ff}IP Asterisk:10.1.1.2{color} {color:#0000ff}Secret:servicem{color}
|
... 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} {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=yes ; Время по 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}
|