Чаще всего основной целью поднятия сервера 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