Asterisk

по сравнению с
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (83)

просмотр истории страницы
h3. Статья относится к версиям начиная с 397_378
{toc}

h2. Настройка биллинга

h2. Установка
Добавьте оборудование в биллинг и запустите Radius по инструкциям раздела [CarbonBilling:Настройка VoIP оборудования в биллинге]

h2. Описание

h3. {color:#333333}При установке использовались следующие реквизиты:{color}
При установке использовались следующие реквизиты

{color:#0000ff}IP Carbon Billing:10.1.1.1{color}
{color:#0000ff}IP Asterisk:10.1.1.2{color}
IP Asterisk:10.1.1.2
{color:#0000ff}Secret:servicem{color} Secret:servicem
{color:#0000ff}Порты Radius сервера:2812 и 2813{color}

{color:#ff0000}Внимание\! Серверы должны находиться в одной подсети и иметь статичные уникальные адреса{color}{color:#0000ff}.{color}
{warning}При тестировании по указанной инструкции, серверы должны находиться в одной подсети и иметь статичные уникальные адреса.
Тем не менее, в коммерческой эксплуатации это не обязательно. Важно только чтобы сервера имели связь протоколу IPv4{warning}

Предполагается что 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].
Предполагается что 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.6-x86_64-minimal.iso].

h3. Настройка CentOS 6.4
h2. Настройка CentOS

h3. Настройка сети

h5. {color:#333333}После установки CentOS 6.4 необходимо настроить сеть.{color}
Предположим что после установки CetOS, сетевой интерфейс получил имя _eth0_ (можно посмотреть в выводе команды *ip a*).

*Установка вручную, в CentOS 6.4 minimal версии*
# Отредактируйте настройки интерфейса
{code:title=/etc/sysconfig/network-scripts/ifcfg-eth0}
Для того чтобы настроить доступ к сети, необходимо поправить конфигурационный файл:
{code}/etc/sysconfig/network-scripts/ifcfg-eth0{code}

или другой, в зависимости от того, через какую сетевую карту вы планируете ходить в интернет.

Сделать это можно с помощью текстового редактора vi:
{code}vi /etc/sysconfig/network-scripts/ifcfg-eth0{code}

Для редактирования используем клавишу *i* \- после нажатия в открытом файле появится возможность редактирования.

В файле необходимо изменить и добавить следующие поля:
{code}
DEVICE=eth0
IPADDR=здесь.ваш.ip.адрес IPADDR=10.1.1.2
NETMASK=здесь.ваша.сетевая.маска NETMASK=255.255.0.0
GATEWAY=здесь.укажите.ip.шлюза GATEWAY=10.1.0.1
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
BOOTPROTO=static
{code}

После редактирования нажимаем последовательно: *Esc*, *символ двоеточия* (на английской раскладке. При этом символ ":" появится в левом нижнем углу.

*wq\! *\- команда сохраняет изменения и выходит.

После этого, выполните
# Примените их
{code}/etc/init.d/network restart{code}

и проверьте # Проверьте наличие доступа к сети:
{code}ping -c 4 8.8.8.8{code}

Если всё в порядке - значит теперь сеть настроена.

h6. Далее потребуется установка дополнительных компонентов:
h3. Установка необходимого ПО

*установка wget*
Далее потребуется установка дополнительных компонентов для сборки Астериска. Добавьте репозиторий [EPEL|https://fedoraproject.org/wiki/EPEL] и установите необходимые пакеты.
{code}
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -i epel-release-latest-6.noarch.rpm
yum install wget make gcc perl-ExtUtils-Embed perl-CPAN perl-Authen-Radius perl-Time-HiRes perl-YAML
{code}

*установка make*
{code}
yum install make
{code}
h2. Установка Asterisk

*установка gcc*
{code}
yum install gcc
{code}
h3. Установка Radius

*установка perl ExtUtils*
Для отправки CDR записей на биллиг используется Radius, установите его до сборки Asterisk чтобы он собрался с поддержкой нужного модуля:
{code}
yum install perl-ExtUtils-Embed
{code}

*установка perl CPAN*
{code}
yum install perl-CPAN
{code}

*установка Radius*
{code}
yum install perl-Authen-Radius
{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.gz http://docs.carbonsoft.ru/download/attachments/52428850/radiusclient-ng-0.5.6.tar.gz
tar zxvf radiusclient-ng-0.5.6.tar.gz
cd radiusclient-ng-0.5.6
{code}


h3. {color:#000000}Уст{color}ановка Установка Asterisk PBX
{code}
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.17.0.tar.gz
make
make install
make config
chkconfig asterisk on
{code}
Если Вы новичок установите сразу дефолтные стандартные конфигурационные файлы.
{code}make samples{code}
Установка Perl AGI интерфейса к AGI.
{code}wget http://asterisk.gnuinter.net/files/asterisk-perl-1.03.tar.gz http://search.cpan.org/CPAN/authors/id/J/JA/JAMESGOL/asterisk-perl-1.03.tar.gz
tar zxvf asterisk-perl-1.03.tar.gz
cd asterisk-perl-1.03
make test
make install{code}
Устанавливаем perl из пакетов и настраиваем. При устовке отдельного пакета он может попросить для тестирования ввести ip и порт Radius сервера биллинга 10.1.1.1:2812 и логин абонента в биллинге с паролем.
Установите Perl из пакетов и настройте. При установке отдельного пакета он может попросить для тестирования ввести IP и порт Radius сервера биллинга 10.1.1.1:2812 и логин абонента в биллинге с паролем.

*ВНИМАНИЕ\!* В {note}В зависимости от дистрибутива и окружения, некоторые пакеты могут не устанавливаться из-за зависимостей. Проверяйте вывод каждой команды на предмет ошибок.{note}


Запустите CPAN (при первом запуске отвечаем дефолтно на все вопросы) и настройте автоматическую установку зависимостей. Не выходя из шела установите необходимые пакеты. После выйдите командой "q".
{code}perl -MCPAN -e shell
(при первом запуске отвечаем дефолтно на все вопросы)
o conf build_requires_install_policy yes
o conf prerequisites_policy follow
o conf commit
cpan>install Config::IniFiles
cpan>install Crypt::CBC
cpan>install Crypt::DES
cpan>install Authen::Radius
cpan>install Asterisk::AGI
cpan>q q
{code}

По умолчанию Asterisk не поддерживает авторизацию через Radius, для этого необходимо использовать специальный AGI скрипт основанный на разработке PortaOne, который находится в биллинге
{code:title=На сервере биллинга}
ls -l /usr/local/ics/bin/agi-rad-auth.agi /app/asr_billing/usr/local/bin/agi-rad-auth.agi
scp /usr/local/ics/bin/agi-rad-auth.agi <адрес сервера астериск>:/var/lib/asterisk/agi-bin/
scp /app/asr_billing/usr/local/bin/agi-rad-auth.agi root@10.1.1.2:/var/lib/asterisk/agi-bin/
{code}
После этого надо дать права на запуск этого файла Asterisk
Это скрипт вызывается перед набором номера и если биллинг разрешает звонок то Asterisk двигается дальше по цепочке.

h2. *Настройка*
h2. Настройка Asterisk


h3.

В файл /etc/asterisk/modules.conf необходимо включить модуль поддержки AGI
{code}load => res_agi.so{code}


Настройте SIP-аккаунты
{code:title=/etc/asterisk/sip.conf}
[general]
pickupgroup=1
{code}
{color:#ff0000}Внимание\! Поле {warning}Поле callerid это тот логин который проверяет биллинг, и который надо указывать при подключении услуги.{color} услуги.{warning}

Настройте диалплан
{code:title=/etc/asterisk/extensions.conf}
[general]
exten => _X.,n,Hangup
exten => h,1,Hangup

{code}

Добавляем Добавьте Radius сервер в разрешенные и указываем укажите secret тот же что и указали в биллинге
{code:title=/usr/local/etc/radiusclient-ng/servers}
10.1.1.1 servicem
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