SCROLL
Среднее время на прочтение: 3 мин.

Базовая настройка SIP АТС — Asterisk для небольшого офиса.

Рассмотрим как выполнить базовую настройку SIP АТС — Asterisk. В примере будет использоваться Asterisk 13 (как установить его можно ознакомится тут). Так же в примере будут рассмотрены основные моменты в настройке, для понимания принципа как все устроено.

(Статья в процессе написания и будет дополнятся)

 

Техническое задание

  1. Настройка внутренних номеров, настройка sip-транков выданных провайдером.
  2. Настройка маршрутизации звонков, с возможностью совершать внутренние звонки и внешние звонки, а так же принимать входящие извне звонки.

 

Настройка внутренних номеров (sip.conf)

Прежде чем начать, выполним резервное копирование файла конфигурации /etc/asterisk/sip.conf:

cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.backup

Выполним настройку файла конфигурации /etc/asterisk/sip.conf. Укажем основные параметры для безопастности АТС, зададим шаблон для внутренних номеров и зададим необходимые внутренние номера:

[general]
externaddr=11.111.111.11:5060 ;Внешний IP-адрес
language=ru                   ;Локализация звуков
context=default
allowguest=no                 ;Разрешить/Запретить гостевые подключения
alwaysauthreject=yes          ;Разрешить/Запретить отвечать на INVITE и REGISTER
allowoverlap=no               ;Разрешить/Запретить набор по одной цифре
limitonpeers=yes              ;Разрешить/Запретить лимит на кол-во одновременных разговоров
srvlookup=yes                 ;Принимать SIP вызовы на основании доменных имен
useragent=Asterisk JAKONDA    ;Значение поля useragent в SIP заголовке

[authentication]

;Шаблон для ВНУТРЕННИХ НОМЕРОВ
[internal_numbers](!)
type=friend                   ;peer(Исходящие) и user(Входящие) в одном
context=int-call         ;Контекст обработки входящих вызовов
host=dynamic                  ;
nat=no                        ;Политики работы через nat
deny=0.0.0.0/0.0.0.0          ;Cети из которых запрещено подключение
permit=10.1.1.0/255.255.255.0 ;Cети из которых разрешено подключение
qualify=yes                   ;Переодическая проверка доступности клиента
canreinvite=no                ;Разрешить/Запретить потоки peer-to-peer в обход сервера
insecure=port,invite          ;port (не требовать совпадения порта), invite (не требовать аутентификации)
callgroup=1                   ;Группа вызова
pickupgroup=1                 ;Группа перехвата вызовов
call-limit=2                  ;Лимит входящих вызовов
dtmfmode=rfc2833              ;Какую спецификацию использовать при передачи DTMF сигналов
disallow=all                  ;Запретить использование всех кодеков, ниже разрешаем нужные
allow=alaw
allow=g729

[100](internal_numbers)
callerid="Number 100" <100>
secret=123
[101](internal_numbers)
callerid="Number 101" <101>
secret=123

После внесенных изменений в файле sip.conf, нужно в консоли Asterisk выполнить команду (sip reload), для того чтобы внесенные изменения приминились.

 

Список созданных номеров (sip show users):

SRV-ASTERISK-SP*CLI> sip show users
Username    Secret  Accountcode   Def.Context     ACL   Forcerport
100         123                   int-call        No    No 
101         123                   int-call        No    No

 

Настройка внешних линий для выхода на городские, междугородние номера и приема входящих извне звонков

Для того чтобы совершать звонки на внешние номера, а так же иметь возможность принимать и обрабатывать входящие звонки на внешний номер, необходимо в файл конфигурации /etc/asterisk/sip.conf добавить данные SIP-транков выданных провайдером.

 

На примере рассмотрим провайдеров МАНГО-ТЕЛЕКОМ и ZADARMA.COM.

[general]

;Блок регистраций транков в МАНГО-ТЕЛЕКОМ
register=000100:XXXXXXXX@domain.mangosip.ru:60000/000100
register=000101:XXXXXXXX@domain.mangosip.ru:60000/000101

[authentication]

;Шаблон для ВНЕШНИХ ТРАНКОВ (МАНГО-ТЕЛЕКОМ)
[external_trunks_mgo](!)
type=friend
context=ext-call-mgo
host=domain.mangosip.ru
port=60000
qualify=yes
accountcode=Mgo
fromdomain=domain.mangosip.ru
insecure=invite
dtmfmode=inband
disallow=all
allow=alaw
allow=g729

;Внутренние номера (МАНГО-ТЕЛЕКОМ)
[000100](external_trunks_mgo)
username=000100
secret=XXXXXXXX
fromuser=000100

[000101](external_trunks_mgo)
username=000101
secret=XXXXXXXX
fromuser=000101

;Шаблон для ВНЕШНИХ ТРАНКОВ (ZADARMA.COM)
[external_trunks_zadarma]
host=sip.zadarma.com
insecure=invite,port
type=friend
fromdomain=sip.zadarma.com
disallow=all
allow=alaw,ulaw
dtmfmode=auto
secret=Aa1234567
defaultuser=555666
trunkname=555666
fromuser=555666
callbackextension=555666
context=ext-call-zadarma
qualify=400
accountcode=Zdr
directmedia=no
nat=force_rport,comedia

После внесенных изменений в файле sip.conf, нужно в консоли Asterisk выполнить команду (sip reload), для того чтобы внесенные изменения приминились.

 

Список созданных номеров (sip show users):

SRV-ASTERISK-SP*CLI> sip show users
Username    Secret     Accountcode   Def.Context     ACL   Forcerport
000100      XXXXXXXX   Mgo           ext-call-mgo    No    No 
000101      XXXXXXXX   Mgo           ext-call-mgo    No    No 
555666      XXXXXXXX   Zdr           ext-call-zdr    No    Yes
100         123                      int-call        No    No 
101         123                      int-call        No    No

Список пиров (sip show peers):

SRV-ASTERISK-SP*CLI> sip show peers
Name/username   Host          Dyn  Forcerport Comedia ACL Port  Status   Description
100/100         (Unspecified) D    No         No          0     UNKNOWN 
101/101         (Unspecified) D    No         No          0     UNKNOWN 
000100/000100   88.88.88.88   Auto (No)       No          60000 OK (2 ms) 
000101/000101   88.88.88.88   Auto (No)       No          60000 OK (2 ms)  
555666/555666   88.88.88.88        Yes        Yes         5060  OK (3 ms) 
5 sip peers [Monitored: 3 online, 2 offline Unmonitored: 0 online, 0 offline]

 

Мы разобрали как создавать внутренние номера на основе шаблонов, добавлять SIP-транки от провайдеров. Теперь перейдем к настройки маршрутизации звонков.

 

Настройка маршрутизации звонков (extensions.conf)

Прежде чем начать, выполним резервное копирование файла конфигурации /etc/asterisk/extensions.conf:

cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.backup

Выполним настройку файла конфигурации /etc/asterisk/extensions.conf. Настроим правила маршрутизации внутренних звонков, звонков на внешние номера и прием и обработка входящих извне звонков:

[general]
;Возможность сохранять текущий dialplan в файл (dialplan save)
static=yes
writeprotect=no
[globals]

[default]

;Вешаем трубку
[handup-sip]
exten => _X!,1,HangUp()

;Исходящие звонки
[int-call]
;Звонки на внутренние номера
exten => _XXX,1,Dial(SIP/${EXTEN})
;Звонки на внешние номера через МАНГО-ТЕЛЕКОМ
exten => _XXX.,1,Dial(SIP/${EXTEN}@000${CALLERID(num)})
;Звонки на внешние номера через ZADARMA.COM
;exten => _XXX.,1,Dial(SIP/${EXTEN}@555666)

include => handup-sip

;Входящие звонки на номера МАНГО-ТЕЛЕКОМ
[ext-call-mgo]
exten => 000100,1,Dial(SIP/100)

;Входящие звонки на номер ZADARMA.COM
[ext-call-zdr]
exten => 555666,1,Dial(SIP/101)

После внесенных изменений в файле extensions.conf, нужно в консоли Asterisk выполнить команду (dialplan reload), для того чтобы внесенные изменения приминились.

 

Выполним тестовые звонки, сперва с номера 100 на 101, затем на внешний номер 99999 (тестовый номер МАНГО-ТЕЛЕКОМ). В файле /var/log/asterisk/cdr-csv/Master.csv можно посмотреть историю совершенных звонков:

"","100","101","int-call","""Number 100"" <100>","SIP/100-00000001","SIP/101-00000002","Dial","SIP/101","2017-10-23 13:30:32","2017-10-23 13:30:39","2017-10-23 13:31:22",50,42,"ANSWERED","DOCUMENTATION","1508765432.1",""

"","101","99999","ext-call-mgo","""Number 101"" <101>"" <101>","SIP/101-00000003","SIP/000101-00000004","Dial","SIP/99999@000101","2017-10-24 12:27:53","2017-10-24 12:27:55","2017-10-24 12:27:58",4,3,"ANSWERED","DOCUMENTATION","1508848073.106",""

 

Таким образом мы настроили простую маршрутизацию звонков, указав отдельными правилами, что 3-х значные номера расценивать как внутренние, а номера более 3-х знаков расценивать как внешние и использовать для звонка на такие номера нужно SIP-транк провайдера (прим. МАНГО-ТЕЛЕКОМ). Так же при входящем звонке на внешний номер 000100 (МАНГО-ТЕЛЕКОМ) переадресовывать звонок на внутренний номер 100, аналогично поступаем с внешним номером 555666 (ZADARMA.COM), только переводим звонок на номер 101.

 

Продолжение следует…

 

 

Обсуждение

1 комментариев
  • Hey there! I’m at work surfing around your blog from my new iphone 3gs!

    Just wanted to say I love reading through your
    blog and look forward to all your posts! Keep up
    the great work!