Рассмотрим как в Asterisk выполняется настройка входящих звонков. Чаще всего их обработка является основной целью поднятия Asterisk. Для того чтобы принимать вызовы со стационарных телефонов потребуется шлюз телефонии или — в простейшем случае — телефонный номер, предоставленный SIP провайдером.
Звонки могут приниматься по разным протоколам (SIP, Zip, IAX2), предположим, что это SIP.
Для примера возьмем номер телефона 343123100
— на практике это номер, арендованный у провайдера, но в тестовой среде это может быть номер, выбранный произвольно.
Данный материал является логическим продолжением цикла статей по настройке офисной телефонии:
Установка Asterisk из исходников. Настройка корпоративной телефонии — часть №1
Asterisk настройка сети. Корпоративная телефония часть №2
Asterisk добавление пользователей. Корпоративная телефония часть №3
Настройки в sip.conf и extentions.conf
Прежде всего определим пользователя в файле 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 выполнена.
Следующая статья цикла по настройке офисной телефонии:
Asterisk настройка исходящих звонков. Корпоративная телефония часть №5