Asterisk

Материал из ciberhelp
Перейти к: навигация, поиск

Подготовка

  1. Сервер для Asterisk
  2. IP-телефоны либо какой-либо софтфон
  3. Арендуем у провайдера телефонный номер
  4. Готови дистрибутив(бывают сборки, можно с нуля настроить)

Настройка

1 Отключаем Selinux

/etc/selinux/config
selinux=DISABLED
Либо apt-get remove selinux*

2 yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++

sqlite-devel

3 cd /usr/src/

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz

4 Распаковываем

tar zxvf dahdi-linux-complete*
tar zxvf libpri*
tar zxvf asterisk*

5 Устанавливаем. Заходим в папки dahdi* и libpri. Астериск отдельно настроим
make && make install
6 Установка Asterisk

uname -a узнаем разрядность
./configure && make menuselect && make && make install - для 32 битной
./configure --libdir=/usr/lib64 && make menuselect && make && make install - для 64 битной
Известные ошибки при установке Asterisk
yum install uuid uuid-devel libuuid libuuid-devel uuid-c++
./configure
make menuselect
make
make install
make samples
make config
Перезагружовываемся)

Настройка конфигурации (sip.conf) и подключение телефонов

Пока отключаем firewall
systemctl disable firewalld
[1001]
type=friend
regexten=1001
secret=1234
context=outcoling
host=dynamic
callerid="1001"<1001>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickugropup=1
qualify=yes
careinvite=yes
call-limit=4
nat=no

[1002]
type=friend
host=dynamic
insecure=invite
username=1002
secret=45678
context=outcoling
disallow=all Запретить все кодеки
allow=alaw Разрешить кодек alaw

extensions.con

[outcoling]
Это контекст. Указывается в sip.conf в каждом номере диалплана
exten=>_XXXX,1,Dial(SIP/${EXTEN},,m)
Пояснения:
_XXXX если набрано 4 цифры
1 - приоритет
Dial - совершить звонок
SIP - по протоколу SIP
${EXTEN} - звонить на номер. Глобальная переменная

Объяснение работы Dial-Plan

Звоним наружу

Редактируем sip.conf Эти данные вбиваем перед нашими номерами
[general]
register => 00000:password@sip.zadarma.com/00000
[zadarma]
type=friend
username=00000
secret=password
fromuser=00000
fromdomain=sip.zadarma.com
host=sip.zadarma.com
;nat=yes
nat=force_rport,comedia
insecure=invite
context=incoming


Начиная с версии Asterisk 11: 'nat=yes' устарело, используйте 'nat=force_rport,comedia' nat=force_rport,comedia

Добавляем в extensions.conf строчки
[outcoling]
exten => _XXXX,1,Dial(SIP/${EXTEN},,m)
exten => _XXXXXXXXXXX,1,Dial(SIP/zadarma/${EXTEN})

[incoming]
exten => _X.,1,Dial(SIP/1001&SIP/1002&SIP/1003,60,m,tT)
Еще раз алгоритм. Проверяем sip.conf смотрим на контекст. Звонок на любой номер.Попадаем на 1001 1002 одновременно

Звоним снаружи вовнутрь

Музыка вместо звонка