Вы здесь

Asterisk 04 User Device Configuration

Данный материал описывает процесс подключения User Device к Asterisk.
Чаще всего это VoIP telephone, и подключение User Device включает в себя два основных шага:

  • Настройка Asterisk на работу с User Device.
  • Настройка самого User Device на работу с Asterisk.

SIP и телефоны

Asterisk и VoIP telephone взаимодействуют с использованием протокола SIP.
Session Initiation Protocol (SIP) является протоколом peer-to-peer, который воспринимает и Asterisk и телефон как равнозначные участники сессии.
В принципе два телефона могут звонить и непосредственно друг другу, без участия Asterisk.
Но, поскольку диалплан "живет" на Asterisk, то он чаще используется in the middle и проксирует все запросы клиентов.

Большинство телефонов имеют Web-интерфейс через который можно выполнить все настройки, с другой стороны, при большом количестве телефонов рекомендуется настроить Server-based configuration process. Его настройка отличается в зависимости от производителя.

Telephone Naming Concepts

Вообще в 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).

Hardphones, Softphones, and ATAs

User Device бывает трёх типов.

  • hardphone - физическое устройсто, внешне похожее на традиционный телефон. Подключает непосредственно к сети. Hardphone 0 это то что также называют VoIP telephone или SIP telephone.
  • softphone - это программа, запущенная на компьютере или смартфоне.
  • Analog Terminal Adapters (ATAs) - это утсройство, спроектированное для того, чтобы к телефонной сети SIP можно было подключить традиционные телефонные аппараты или факсы.

Configuring Asterisk

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 Files и Dialplan

Channel Configuration File описывает устройство, тогда как Dialplan описывает взаимодействие между устройствами.
asterisk_04_user_device_configuration_01_ciscomaster.ru.jpg
Входящий звонок в систему Asterisk идентифицируется через устройство, через которое звонок пришёл. В нашем случае это sip.conf.
Сhannel configuration file определяет в какое место диалплана прибегает звонок, т.е. определяет context.
В рамках этого context производится поиск набранного номера.
Extension в Dialplan также имеет связь с именем физического устройства.
Причём, как видно channel configuration file контролирует не только вход звонка, но и его выход, определяя конечное физическое устройство ассоциированное с этим именем.

sip.conf

Поскольку 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 секции:

  1. general section Это стандартная секция, которая задаёт общие настройки SIP
    context=unauthenticated здесь мы задали дефолтный контекст , тем самым явно определив, куда направлять unauthenticated guest calls, что очень важно для безопасности и не дать подобным звонка выходить наружу.

    allowguest=no - также очень важная для безопасности опция, запрещающая все unauthenticated calls. Включать её рекомендуется только когда вы точно понимаете что делаете.

    srvlookup - опция нужна при подключении к ITSP для outbound connections, использовать ли DNS при подключении.
    udpbindaddr=0.0.0.0 - слушаем запросы UDP/TCP на всех интерфейсах
    tcpenable - SIP в качестве транспорта может использовать TCP и UDP, UDP наиболее распространён.

  2. template section, здесь (!) как раз и говорит Asterisk что это раздел шаблона. Использование шаблона избавляет нас указывать одни и те же настройки на нескольких однотипных телефонах.

    type=friend - type определяет как Asterisk будет воспринимать incoming SIP requests. При настройке friend channel driver will match on username first, IP second.

    context=LocalSets - определяет context, т.е. раздел диалплана, в который будут прибегать все звонки инициированные данным channel.

    host=dynamic - host определяет IP адрес для данного channel. dynamic означает что принадлежность девайса данному channel будет определяться на основе регистрации. Мы также можем поставить static и указать IP.

    nat=force_rport,comedia - SIP и NAT уживаются не так просто, поскольку SIP включает IP адреса в его внутренних сообщениях. Это тема отдельного материала.

    dtmfmode - DTMF это тоны которыми можно управлять голосовым меню. Чаще всего используют тип DTMF rfc2833. Здесь мы поставили автоматику.

  3. channel section - Последние две секции есть настройки девайсов или channel section. Здесь имя девайса указано в квадратных скобках, а принадлежность к шаблону - в круглых.

Modifying Channel Configuration Files

После модификации файла sip.conf, для apply нам нужно выполнить команды:

sudo asterisk -r
*CLI> module reload chan_sip.so

Для проверки, что новые channels были загружены:

*CLI> sip show peers *CLI> sip show users

Создание диалплана

Для тестирования мы создадим файл диалплана:
/etc/asterisk/extensions.conf

[LocalSets] exten => 101,1,Dial(SIP/64A769FE76F8) ; Replace 0000FFFF0001 with your device name exten => 102,1,Dial(SIP/6C626D04E1EB) ; Replace 0000FFFF0002 with your device name ; exten => 200,1,Answer() same => n,Playback(hello-world) same => n,Hangup()

Мы пока не будем комментировать это содержимое, поскольку этому посвящён отдельный материал.

Настройка нашего телефона на CSipSimple

CSipSimple мы настроим на работу с channel 64A769FE76F8

  1. Для начала нужно слегка настроить WiFi, нам нужно отключить автоотключение Wifi в режиме ожидания.
    menu > Настройки > Беспроводные сети > Настройки WiFi
    На этой странице выираем menu > Дополнительно
    В разделе Автовыключение WiFi выбираем "Никогда".
  2. В этом же разделе посмотрим MAC данного телефона (предположим это 64A769FE76F8 и вводим его в sip.conf свойствах channel:
    [64A769FE76F8](office-phone) secret=12345 ; a unique password for this device -- ; DON'T USE THE PASSWORD WE'VE USED IN THIS EXAMPLE!

    Также правим в файле /etc/asterisk/extensions.conf строку:

    exten => 101,1,Dial(SIP/64A769FE76F8) ; Replace 0000FFFF0001 with your device name

    Применяем и проверяем изменения:

    sudo asterisk -r *CLI> module reload chan_sip.so *CLI> dialplan reload *CLI> sip show users *CLI> dialplan show
  3. В CSipSimple после установки идем:
    menu > Easy Configuration
    На это странице отмечаем опции:
    - Integrate with Android
    - Always Available
  4. В CSipSimple добавляем Account:
    Add Account > Advanced
    - Account name - Любое имя, поставим AsteriskPBX
    - Server - IP Asterisk, ставим 192.168.10.114
    - Username - нужно ввести имя телефона: 64A769FE76F8

Настройка нашего телефона на X-lite

X-Lite мы настроим на работу с channel 6C626D04E1EB
Его настройки будут следующими:
asterisk_04_user_device_configuration_02_ciscomaster.ru.jpg

Теперь наши телефоны должны успешно зарегистрироваться и звонить друг другу.
А при наборе 200 мы услышим "Hello, World".

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image