Данный материал описывает процесс подключения User Device к Asterisk.
Чаще всего это VoIP telephone, и подключение User Device включает в себя два основных шага:
Asterisk и VoIP telephone взаимодействуют с использованием протокола SIP.
Session Initiation Protocol (SIP) является протоколом peer-to-peer, который воспринимает и Asterisk и телефон как равнозначные участники сессии.
В принципе два телефона могут звонить и непосредственно друг другу, без участия Asterisk.
Но, поскольку диалплан "живет" на Asterisk, то он чаще используется in the middle и проксирует все запросы клиентов.
Большинство телефонов имеют Web-интерфейс через который можно выполнить все настройки, с другой стороны, при большом количестве телефонов рекомендуется настроить Server-based configuration process. Его настройка отличается в зависимости от производителя.
Вообще в Asterisk для всех систем значение имеет только channel name.
Строго говоря User или extension являются не более чем триггерами, которые запускают последовательность инструкций.
Например можно написать диалплан, при котором при наборе номера 100 происходит соединение с конкретным телефонным аппаратом; но совершенно аналогично можно настроить на соединение с voicemail box, play back a prompt, подключение к conference room и множество других действий.
Таким образом в Asterisk extension это есть лишь имя группы инструкций в диалплане.
Такая концепция безусловно максимально расширяет функционал, и важна для таких важных сервисов как например hot-desking.
Hot-desking - это feature, которая позволяет пользователя залогиниться на девайсе и принимать входящие вызовы с этого девайса. Для Asterisk понятия User и Extension совершенно независимы от физического телефона.
Несмотря на то, что технически физ телефон можно именовать как угодно, рекомендуется, чтобы его имя совпадало с его MAC-адресом (например 0000FFFF0001).
User Device бывает трёх типов.
Asterisk позволяет подключать между собой устройства, использующие различные протоколы, например SIP, IAX2, Skinny/SCCP, Unistim, H.323, MGCP.
Настройка означает настройку channel configuration files этих протоколов.
Мы рассмотрим настройку на примере наиболее популярных протоколов, а именно SIP и IAX2.
Сhannel configuration files: sip.conf и iax.conf.
Сhannel driver: chan_iax2.so, chan_sip.so.
В системе Asterisk параметры "одеваются" в следующей по иерархии:
1. The specific section for the relevant channel
2. The template for the section
3. The [general] section
4. The hardcoded defaults
Это означает, что если мы не выставили какой-то специфический параметр, он получит дефолтное значение, которое чаще всего будет оптимальным.
Channel Configuration File описывает устройство, тогда как Dialplan описывает взаимодействие между устройствами.
Входящий звонок в систему Asterisk идентифицируется через устройство, через которое звонок пришёл. В нашем случае это sip.conf.
Сhannel configuration file определяет в какое место диалплана прибегает звонок, т.е. определяет context.
В рамках этого context производится поиск набранного номера.
Extension в Dialplan также имеет связь с именем физического устройства.
Причём, как видно channel configuration file контролирует не только вход звонка, но и его выход, определяя конечное физическое устройство ассоциированное с этим именем.
Поскольку SIP наиболее популярный протокол, sip.conf изобилует различными функциями и примочками, в этом можно убедиться посмотрев файл ip.conf.sample
К счастью дефолтные опции подходят для большинства случаев и мы можем сделать очень простую рабочую конфигурацию.
[general] context=unauthenticated allowguest=no srvlookup=no udpbindaddr=0.0.0.0 tcpenable=no [office-phone](!) type=friend context=LocalSets host=dynamic nat=force_rport,comedia dtmfmode=auto disallow=all allow=g722 allow=ulaw allow=alaw [64A769FE76F8](office-phone) secret=123456 [6C626D04E1EB](office-phone) secret=123456
Мы создали 4 секции:
allowguest=no - также очень важная для безопасности опция, запрещающая все unauthenticated calls. Включать её рекомендуется только когда вы точно понимаете что делаете.
srvlookup - опция нужна при под