IP-телефонія на базі Asterisk. Частина 2: Налаштування SIP
Цикл статей по розгортанню IP-телефонії на базі Asterisk. Фактично це моя проектна робота на отримання відповідного сертифікату одного з навчальних центрів. Робота була захищена, сертифікат отриманий, все написане тестувалось і є повтінстю робочою реалізацією. Інформація в статті і версії програмного забезбечення актуальні на 2017 рік.
- частина 1 - Встановлення сервера Asterisk
2. Налаштування SIP
2.1 Схема нумерації
За проектним завданням, наша умовна компанія складається з 5-ти підрозділів: управлінський персонал, відділ продажів, відділ закупівель, склад, відділ техпідтримки. Номер 601 закріплений за секретарем. Нумерація телефонів буде тризначною, в якості першої цифри будуть використані номери структурних підрозділів:
- 1ХХ - управлінський персонал
- 2ХХ - відділ продажів
- 3ХХ - відділ закупівель
- 4ХХ - склад
- 5ХХ - технічний відділ
- 601 - секретар
Для виходу на зовнішні лінії використовується підключення до SIP провайдера
2.2 Налаштування внутрішніх номерів
Створюємо новий файл users.conf для налаштування внутрішніх номерів:
mkdir /etc/asterisk/sip
touch /etc/asterisk/sip/users.conf
Створюємо шаблон і вносимо користувачів:
[users](!)
type=friend
nat=no
dtmfmode=rfc2833
qualify=yes
canreinvite=no
disallow=all
allow=alaw
allow=ulaw
call-limit=2
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/24
[101](users)
defaultuser=101
secret=101
context=manager
host=dynamic
[102](users)
defaultuser=102
secret=102
context=manager
host=dynamic
[201](users)
defaultuser=201
secret=201
context=sales
host=dynamic
[202](users)
defaultuser=202
secret=202
context=sales
host=dynamic
[203](users)
defaultuser=203
secret=203
context=sales
host=dynamic
[204](users)
defaultuser=204
secret=204
context=sales
host=dynamic
[301](users)
defaultuser=301
secret=301
context=buyings
host=dynamic
[302](users)
defaultuser=302
secret=302
context=buyings
host=dynamic
[401](users)
defaultuser=401
secret=401
context=warehouse
host=dynamic
[402](users)
defaultuser=402
secret=402
context=warehouse
host=dynamic
[501](users)
defaultuser=501
secret=501
context=it
host=dynamic
[601](users)
defaultuser=601
secret=601
context=reception
host=dynamic
Підключаємо файл з налаштуваннями користувачів в sip.conf:
#include sip/users.conf
Перечитуємо налаштування
asterisk-centos*CLI> sip reload
Reloading SIP
== Parsing '/etc/asterisk/sip.conf': Found
== Parsing '/etc/asterisk/sip/users.conf': Found
== Parsing '/etc/asterisk/users.conf': Found
== Using SIP CoS mark 4
== Parsing '/etc/asterisk/sip_notify.conf': Found
і перевіряємо список користувачів
asterisk-centos*CLI> sip show users
Username Secret Accountcode Def.Context ACL Forcerport
101 101 manager Yes No
102 102 manager Yes No
204 204 sales Yes No
203 203 sales Yes No
202 202 sales Yes No
201 201 sales Yes No
501 501 it Yes No
401 401 warehouse Yes No
402 402 warehouse Yes No
302 302 buyings Yes No
301 301 buyings Yes No
2.3 Підключення провайдера телефонії
В якості провайдера телефонії обрано zadarma.com.
Створюємо новий файл trunk.conf для налаштування sip trunk:
mkdir /etc/asterisk/trunk
touch /etc/asterisk/trunk/trunk.conf
Вносимо налаштування для підключення згідно з інструкцією на сайті https://zadarma.com/ua/support/instructions/asterisk/:
[zadarma]
host=sip.zadarma.com
insecure=invite,port
type=friend
fromdomain=sip.zadarma.com
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=PASSWORD
defaultuser=74XXXX
trunkname=zadarma
fromuser=74XXXX
callbackextension=74XXXX
context=zadarma-in
qualify=400
directmedia=no
nat=force_rport,comedia
Підключаємо файл з налаштуваннями sip trunk в sip.conf:
#include trunk/trunk.conf
Перечитуємо налаштування
asterisk-centos*CLI> sip reload
Reloading SIP
[2017-04-24 22:03:06] NOTICE[3129]: chan_sip.c:24558 handle_response_peerpoke: Peer 'zadarma' is now Reachable. (51ms / 400ms)
і перевіряємо список пірів
asterisk-centos*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
101/101 (Unspecified) D No No A 0 UNKNOWN
102/102 (Unspecified) D No No A 0 UNKNOWN
201/201 (Unspecified) D No No A 0 UNKNOWN
202/202 (Unspecified) D No No A 0 UNKNOWN
203/203 (Unspecified) D No No A 0 UNKNOWN
204/204 (Unspecified) D No No A 0 UNKNOWN
301/301 (Unspecified) D No No A 0 UNKNOWN
302/302 (Unspecified) D No No A 0 UNKNOWN
401/401 (Unspecified) D No No A 0 UNKNOWN
402/402 (Unspecified) D No No A 0 UNKNOWN
501/501 192.168.1.101 D No No A 5060 OK (2 ms)
zadarma/74XXXX 185.45.152.161 Yes Yes 5060 OK (52 ms)
12 sip peers [Monitored: 2 online, 10 offline Unmonitored: 0 online, 0 offline]
Оскільки дзвінки всередині оператора Zadarma не тарифікуються, то для емуляції дзвінків на “зовнішні” лінії реєструємо ще один акаунт. У нашому випадку дзвінки на/з номер 74YYYY будуть вважатися “зовнішніми”.
В наступній статті будемо налаштовувати Dialplan.
- частина 1 - Встановлення сервера Asterisk