Asterisk настройка входящих звонков. Корпоративная телефония часть №4

Чаще всего основной целью поднятия сервера Asterisk является возможность принимать входящие звонки. Для того чтобы принимать вызовы со стационарных телефонов потребуется шлюз телефонии или — в простейшем случае — телефонный номер, предоставленный SIP провайдером.

Звонки могут приниматься по разным протоколам (SIP, Zip, IAX2), предположим, что это SIP.


Для примера возьмем номер телефона 343123100 — на практике это номер, арендованный у провайдера, но в тестовой среде это может быть номер, выбранный произвольно.

 

 

Данный материал является логическим продолжением цикла статей по настройке офисной телефонии:

Установка Asterisk из исходников. Настройка корпоративной телефонии — часть №1

Asterisk настройка сети. Корпоративная телефония часть №2
Asterisk добавление пользователей. Корпоративная телефония часть №3

 

 

 

Asterisk настройка входящих звонков, конфигурация для приема входящих

Прежде всего определим пользователя в файле sip.conf

 

mcedit sip.conf

 

[outside]
type=friend
context=incoming
allow=ulaw,alaw
secret=123456789
host=dynamic

 

Задаем пароль, тип, используемые кодеки и контекст.

 

Затем идем в extentions.conf и определяем необходимые правила для контекста. В соответствии с диалпланом будет проверяться соответствие текущего времени заданному в настройках, в случае ксли входящий звонок совершается в рабочее время он будет перенаправлен на телефон пользователя valdes.

Если время не рабочее — звонящий услышит соответствующее голосовое сообщение (заранее записанное), после этого звонок будет сброшен.

 

mcedit extentions.conf

 

[incoming]
exten => 343123100,1,GotoIfTime(8:00-17:00,mon-fri,*,*?phones,100,1)

exten => 343123100,1,Playback(tt-nonworking)
exten => 343123100,n,Hangup

[phones]
exten => 100,1,NoOp(call for valdes)
same => n,Playback(tt-allbusy.gsm)
same => n,Dial(Sip/valdes)
same => n,Hangup

exten => 200,1,NoOp(call for james)
same =>n,Playback(tt-monkeys)
same => n,Dial(Sip/james)
same = > n,Hangup

 

Контекст «Входящие» всегда стоит выделять — он должен быть одним из трех обязательных контекстов любого диалплана: «Локальные», «Входящие», «Исходящие». Подобное разделение вызвано соображениями безопасности.

В реальных системах звонки подобным образом не переадресуются одному из операторов, а попадают в общую очередь. Принципы построения очередей в Asterisk будут рассмотрены несколько позже.

Пользователь outside на практике — это провайдер услуг IP телефонии, в тестовой среде он заменяется абстракцией. Описанная конфигурация достаточна для того чтобы принимать звонки, совершаемые одним из зарегистрированных в системе операторов другому из зарегистрированных операторов.

 

Звонить можно с софтфонов, использующих один сервер или аппаратных телефонов, находящихся в одной сети, при использовании MacOS удобно использовать аппаратный телефон называемый Telephone — он позволяет запускать несколько экземпляров программы в одной системе.

В консоли выполнив asterisk -rvvv можно отслеживать статус происходящих звонков и анализировать возникающие ошибки.

 

 

Следующая статья цикла по настройке офисной телефонии:

Asterisk настройка исходящих звонков. Корпоративная телефония часть №5