Лабораторная работа № 4:
Видеоролик можно скачать по адресу:
http://salomatin.ru/asterisk-L4.ogvhttps://youtu.be/aIxuffY45l0Подключаем Asterisk к SIP - серверу (соединяем два Asterisk`а по SIP протоколу)У нас сейчас создан и работает SIP - сервер, который мы назавем Asterisk №1
Создадим Asterisk №2, который будет клиентом, в точности повторив лабораторку № 1. Но номерация там будет начинаться с цифры 4, вместо 3, т.е. 4001 4002 4003 4004 4005 4006 4098 4099
изменив
[root@host48 ~]# mcedit /etc/asterisk/sip.conf
использовав аналогичную конфигурацию
[general]
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=no
[LOCAL-USERS](!)
type=friend
host=dynamic
insecure=invite
context=mysip
disallow=all
allow=alaw,ulaw
nat=force_report,comedia
directmedia=nonat
[4001](LOCAL-USERS)
username = 4001
secret=333
[4002](LOCAL-USERS)
username = 4002
secret=333
[4003](LOCAL-USERS)
username = 4003
secret=333
[4004](LOCAL-USERS)
username = 4004
secret=333
[4005](LOCAL-USERS)
username = 4005
secret=333
[4006](LOCAL-USERS)
username = 4006
secret=333
[4098](LOCAL-USERS)
username = 4098
secret=333
[4099](LOCAL-USERS)
username = 4099
secret=333
Еще в моем примере использую host48 по IP адресу 172.16.5.48, пароли ставим те же 333, но это пока не важно, так как мы с него будем подключаться к серверу.
Раз так, то значит для подключения к этому SIP серверу можем использовать: Хост: 172.16.5.46 логин: 3098 пароль: 333
Добавляем в Asteriskе №2 в файле /etc/asterisk/sip.conf
одну строчку
register => 3098:333@172.16.5.46
получаем
[root@host48 ~]# mcedit /etc/asterisk/sip.conf
[general]
register => 3098:333@172.16.5.46
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=no
[LOCAL-USERS](!)
type=friend
host=dynamic
insecure=invite
context=mysip
disallow=all
allow=alaw,ulaw
nat=force_report,comedia
directmedia=nonat
[4001](LOCAL-USERS)
username = 4001
secret=333
[4002](LOCAL-USERS)
username = 4002
secret=333
[4003](LOCAL-USERS)
username = 4003
secret=333
[4004](LOCAL-USERS)
username = 4004
secret=333
[4005](LOCAL-USERS)
username = 4005
secret=333
[4006](LOCAL-USERS)
username = 4006
secret=333
[4098](LOCAL-USERS)
username = 4098
secret=333
[4099](LOCAL-USERS)
username = 4099
secret=333
Перезапускаем сервер
[root@host48 ~]#service asterisk restart
заходим в консоль Asteriskа №2
[root@host48 ~]#asterisk -r
и уже там
host48*CLI> sip show registry
видим, что мы удачно зарегистрировались
Host dnsmgr Username Refresh State Reg.Time
172.16.5.46:5060 N 3098 105 Registered Wed, 22 Apr 2015 09:52:40
1 SIP registrations.
На SIP сервере Asterisk №1 host46, при выполнении в консоли Asteriska
host46*CLI> sip show peers
увидим строчку
3098/3098 172.16.5.48 D No Yes 5060 OK (96 ms)
Значит на сервере мы зарегистрировали нового клиента и можем транслировать звонки.
Аналогично надо добавить в Asteriskе №1 в файле /etc/asterisk/sip.conf
register => 4098:333@172.16.5.48
получаем
[root@host46 ~]# mcedit /etc/asterisk/sip.conf
такое
[general]
register => 4098:333@172.16.5.48
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=no
[LOCAL-USERS](!)
type=friend
host=dynamic
insecure=invite
context=mysip
disallow=all
allow=alaw,ulaw
nat=force_report,comedia
directmedia=nonat
[3001](LOCAL-USERS)
username = 3001
secret=333
[3002](LOCAL-USERS)
username = 3002
secret=333
[3003](LOCAL-USERS)
username = 3003
secret=333
[3004](LOCAL-USERS)
username = 3004
secret=333
[3005](LOCAL-USERS)
username = 3005
secret=333
[3006](LOCAL-USERS)
username = 3006
secret=333
[3098](LOCAL-USERS)
username = 3098
secret=333
[3099](LOCAL-USERS)
username = 3099
secret=333
Карусель в голове получается, можно запутаться.
Но в жизни, когда уже стоят и работают два Asteriskа все сводится к получению регистрационных данных и дописанию одной строчки в sip.conf
Какой Диалплан у клиента на Asterisk №2, нам не важно. Это его проблемы как отправлять нам звонки. Придет звонок, примем согласно нашего контекста mysip
Рассмотрим вариант как нам отправить звонок клиенту.
А точно также как любому другому клиенту. Разница в том, что там нет телефонного аппарата,но может принимать любые номера, раздавая их по своему Диалплану.
Для примера мы будем считать что там номера с четверки, и все звонки на 4 будем отправлять на этот номер.
[root@host46 ~]# mcedit /etc/asterisk/extensions.conf
к такому виду
[mysip]
exten => _3XXX,1,Dial(SIP/${EXTEN},,m)
exten => _4XXX,1,Dial(SIP/3098/${EXTEN},,m)
Если мы не поленимся и выполним по порядку Лабораторную работу №3, в части загрузки тестовой музыки, то позвонив с номера 3005 на любой номер 4XXX, услышим воспроизведение test.mp3
Понятно, что проделав точно такое же со стороны Asterisk №2, мы будем успешно отправлять звонки на Asterisk №2.
Этот вариант тоже не самый правильный, точнее использовать SIP запись type=peer, но это для самостоятельного изучения. Дальше мы лишь рассмотрим еще некоторые варианты.