Asterisk - the Open Source PBX!
Связь с биллингом осуществляется при помощи AGI интерфейса (/usr/abills/Abills/modules/Voip/agi_rad.pl).
Установка Asterisk PBX
# ./configure # make # make install
Если Вы новичок установите сразу дефалтные конфиг файлы.
# make samples
Установка Perl AGI интерфейса к AGI.
# wget http://asterisk.gnuinter.net/files/asterisk-perl-1.01.tar.gz # tar zxvf asterisk-perl-1.01.tar.gz # cd asterisk-perl-1.01 # perl Makefile.PL # make # make test # make install
asterisk/extensions.conf
[general] static=yes writeprotect=no ; outgoing calls [default] exten => 600,1,Playback(demo-echotest) ; Let them know what's going on exten => 600,2,Echo ; Do the echo test exten => 600,3,Playback(demo-echodone) ; Let them know it's over exten => _X.,1,AGI(/usr/abills/Abills/modules/Voip/agi_rad.pl) exten => _X.,3,Wait,2 exten => _X.,4,Hangup() ; Add other extensions here ; incoming calls [answer] exten => s,1,Set(answer=1) exten => _X.,1,AGI(/usr/abills/Abills/modules/Voip/agi_rad.pl) exten => _X.,2,Hangup() ; Add other extensions here
asterisk/sip.conf
[general] context=default port=5060 bindaddr=0.0.0.0 srvlookup=yes disallow=all allow=ulaw allow=alaw allow=g729 [sip_proxy] ; For incoming calls only. type=peer host=10.10.10.1 ; Your SIP proxy IP address canreinvite=no # файл с аккаунтами #include "abills_sip.conf";
abills/libexec/config.pl
| $AUTH{asterisk} = 'Voip_aaa'; | Для сервера с типом asterisk применять правила авторизации VOIP |
|---|---|
| $ACCT{asterisk} = 'Voip_aaa'; | Для сервера с типом asterisk применять правила аккаунтинга VOIP |
| $conf{VOIP_RADIUS_SERVER_HOST}='radius.server'; | IP RADIUS сервера |
|---|---|
| $conf{VOIP_RADIUS_SERVER_SECRET}='radius.secret'; | пароль для радиус сервера |
| $conf{VOIP_NAS_IP_ADDRESS}='192.168.101.11'; | IP Asterisk сервера. Может быть любой. Этот параметр отсылается RADIUS как Nas-IP-Address. |
| $conf{VOIP_NAS_ID}=''; | Индентификатор Asterisk сервера для радиуса. Отсылается в параметре NAS-Identifier. Если не знаете для чего онЭ не заполняйте. |
| $conf{VOIP_NAS_PORT}='0'; | Порт клиента отсылается RADIUS в параметре NAS-Port |
| $conf{VOIP_AGI_PROTOCOL}='SIP'; | Протокол соединения SIP или H323 |
| $conf{VOIP_DEFAULTDIALTIMEOUT}=20; | Таймаут при авторизации |
| $conf{VOIP_MAX_SESSION_TIME}=10800; | Максимальная длина активной сессии |
| $conf{VOIP_ASTERISK_USERS}='/usr/abills/Abills/templates/users.conf'; | Файл регистрации пользователей. обязательно сделайте линк в астериске на него ln -s /usr/abills/Abills/templates/users.conf /usr/local/etc/asterisk/users.conf |
| $conf{VOIP_ASTERISK_RESTART}='/usr/bin/sudo /usr/sbin/asterisk -rx «sip reload»'; | Команда перезапуска asterisk |
| $conf{VOIP_ONEMONTH_INCOMMING_ALLOW}=1; | Предоставление бесплатного месяца работы |
для выполнения команд с правами супер пользователя (root) sudoers
www ALL = NOPASSWD: /usr/sbin/asterisk
Режиме отладки лучше запускать астериск со следующими параметрами
# asterisk -gvvv
команды на удалённом сервере
# adduser abills_admin # touch /etc/asterisk/abills_sip.conf # chown abills_admin /etc/asterisk/abills_sip.conf
/etc/sudoers
abills_admin ALL = NOPASSWD: /usr/sbin/asterisk
/etc/groups
asterisk:x:1008:abills_admin
команды на сервере билинга
# cd /usr/abills/misc/ # ./certs_create.sh ssh abills_admin -UPLOAD nas_host
config.pl
$conf{VOIP_ASTERISK_RESTART}='HOST=nas_host; USER=abills_admin; /usr/bin/scp -i /usr/abills/Certs/id_dsa.${USER} -o StrictHostKeyChecking=no -q /usr/abills/Abills/templates/users.conf ${USER}@${HOST}:/etc/asterisk/abills_sip.conf; /usr/bin/ssh -i /usr/abills/Certs/id_dsa.${USER} -o StrictHostKeyChecking=no ${USER}@${HOST} "/usr/bin/sudo /usr/sbin/asterisk -rx \"sip reload\""';