Kniga-Online.club
» » » » Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Читать бесплатно Джим Меггелен - Asterisk™: будущее телефонии Второе издание. Жанр: Программное обеспечение издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Раздел [general] файла dundi.conf содержит параметры, относящиеся к общим вопросам работы клиента и сервера DUNDi:

; конфигурационный файл DUNDi

[general]

department=IT

organization= toronto.example.com

locality=Toronto

stateprov=ON

country=CA

[email protected] phone=+19055551212

; Задаем адрес привязки и номер порта. ПО умолчанию - 4520

;bindaddr=0.0.0.0

port=4520

entityid=FF:FF:FF:FF:FF:FF ttl=32

autokill=yes ;secretpath=dundi

Идентификатор объекта, заданный entityid, вообще должен быть адресом управления доступом к устройству (Media Access Control, MAC) интерфейса компьютера. По умолчанию в качестве идентификатора объекта используется первый Ethernet-адрес сервера, но его можно переопределить с помощью entityid, если ему присвоен MAC-адрес какого- то принадлежащего вам устройства. Рекомендуется использовать MAC-адрес основного внешнего интерфейса. С помощью этого адреса другие равноправные участники будут идентифицировать вас.

Поле Time To Live (ttl) определяет длину цепочки равноправных участников, от которых мы желаем получать ответы, и используется для прерывания циклов опроса. При каждой передаче запроса вниз по цепочке участников до тех пор, пока запрашиваемый номер не будет найден, значение поля TTL увеличивается на единицу, точно так же как это происходит с полем TTL пакета ICMP (Internet Control Message Protocol - межсетевой протокол контрольных сообщений, используемый для отладки и мониторинга в IP-сетях). Поле TTL также определяет максимальную продолжительность (в секундах) ожидания ответа.

Если вам необходимо найти номер, вашим равноправным участникам сети рассылается исходный запрос (называемый DPDISCOVER) об этом номере. Если вы не получаете подтверждение приема (ACK) своего запроса (DPDISCOVER) в течение 2000 мс (время, достаточное только для передачи сигнала) и параметр autokill имеет значение yes, Asterisk разошлет равноправным участникам сообщение CANCEL (отменить). (Заметьте, что подтверждение приема необязательно является ответом на запрос; это лишь подтверждение того, что участник получил запрос.) Назначение autokill - предотвращение задержек поиска из-за хостов с большим временем ожидания. Кроме опций yes и no, можно также задавать время ожидания в миллисекундах.

Модуль pbx_dundi создает циклически сменяющийся ключ и сохраняет его в локальной базе данных Asterisk (AstDB). Имя ключа secret хранится в семействе dundi. Значение ключа можно увидеть с помощью команды database show в консоли Asterisk. Семейство базы данных может быть переопределено опцией secretpath (путь к базе ключей).

Создание отображающихся контекстов

Файл dundi.conf определяет контексты DUNDi, отображаемые в контексты диалплана в файле extensions.conf. Контексты DUNDi - это способ описания особых и отдельных групп служб каталогов. Контексты раздела отображения указывают на контексты файла extensions.conf, управляющего номерами, информацию о которых вы предоставляете. При создании равноправного участника вы должны определить, по каким отображающимся контекстам он может выполнять поиск. Делается это с помощью выражения permit (у каждого равноправного участника может быть несколько выражений permit). Отображающиеся контексты связаны с контекстами диалплана в том смысле, что они являются границей зоны безопасности для ваших равноправных участников. Информация о телефонных номерах должна предоставляться в следующем формате:

<код_страны><код_города><префикс><номер> Например, полный североамериканский номер был бы представлен так:14165551212.

Все отображающиеся контексты DUNDi принимают форму

dundi_контекст => локальный_контекст,вес,технология,местоназначения[,опции]] Приведенная ниже конфигурация создает отображающийся контекст DUNDi, который мы будем использовать для предоставления группе DUNDi-test информации о наших локальных телефонных номерах. Обратите внимание, что все это должно располагаться в одной строке: dundi-test => dundi-local,0,IAX2,dundi:${SECRET}@toronto.example.com/ ${NUMBER},nounsolicited,nocomunsolicit,nopartial

В этом примере отображающийся контекст - это dundi-test. Он указывает на контекст dundi-local в файле extensions.conf (предоставляющий список телефонных номеров, звонки с которых он обрабатывает). Для номеров офисной АТС вес равен нулю (соединение выполняется напрямую). Вес номера, отличный от 0, свидетельствует о наличии нескольких переходов или путей на маршруте достижения места назначения. Это значение может быть полезно при получении нескольких ответов на один поиск; предпочтительным будет путь с меньшим весом. Если мы можем ответить на запрос поиска, наш ответ будет содержать метод, с помощью которого другой конец линии сможет соединиться с системой. Сюда относится используемая технология (такая, как IAX2, SIP, H.323 и т. д.), имя пользователя и пароль, по которым выполняется аутентификация, хост, на который следует отправлять ау- тентификационную информацию, и наконец добавочный номер. Asterisk предоставляет несколько сокращенных записей, что позволяет создавать «шаблон», по которому можно построить наши ответы. В шаблоне могут использоваться следующие переменные канала: ${SECRET}

Замещается шаблоном, хранящимся в локальной AstDB.

${NUMBER}

Запрашиваемый номер.

Обычно безопаснее статически конфигурировать имя хоста, I а не использовать переменную $ 11PADDR j. Переменная $ 11PADDR j иногда предоставляет адрес в частном пространстве 1Р-адре- сов, недоступном из Интернета.

Описание равноправных участников DUNDi

Равноправные участники DUNDi описываются в файле dundi.conf и идентифицируются уникальным MAC-адресом второго уровня интерфейса удаленной системы. Файл dundi.conf - это то место, где мы определяем, в каком контексте выполнять поиск для равноправных участников, запрашивающих поиск, и каких равноправных участников мы хотим использовать при выполнении поиска для конкретной сети:

[00:00:00:00:00:00] ; Удаленный офис

model = symmetric

host = montreal.example.com

inkey = montreal

outkey = toronto

include = dundi-test

permit = dundi-test

qualify = yes

dynamic=yes

Идентификатор удаленного равноправного участника (MAC-адрес) заключается в квадратные скобки ([]). inkey и outkey - это пара ключей (открытый и закрытый), используемых для аутентификации. Пары ключей генерирует сценарий astgenkey, располагающийся в подпапке ./asterisk/contrib/scripts/ папки исходного кода. Не забывайте использовать флаг -n, чтобы не приходилось создавать пароли при каждом запуске Asterisk:

# cd /var/lib/asterisk/keys

# /usr/src/asterisk/contrib/scripts/astgenkey -n toronto Полученные в результате ключи, toronto.pub и toronto.key, будут помещены в папку /var/lib/asterisk/keys/. Файл toronto.pub - это открытый ключ, который должен быть отправлен веб-серверу, чтобы он был доступен всем участникам, с которым вы желаете установить одноранговую связь. При установлении одноранговой связи вы можете передать равноправным участникам открытый ключ, доступный по протоколу HTTP, который они могут поместить в свои папки /var/lib/ asterisk/keys/.

${IPADDR}

IP-адрес для соединения.

После загрузки ключей необходимо повторно загрузить модули res_ crypto.so и pbx_dundi.so в Asterisk:

*CLI> module reload res_crypto.so

-- Reloading module 'res_crypto.so' (Cryptographic Digital Signatures)

-- Loaded PRIVATE key 'toronto'

-- Loaded PUBLIC key 'toronto'

*CLI> module reload pbx_dundi.so

-- Reloading module 'pbx_dundi.so' (Distributed Universal Number Discovery (DUNDi))

== Parsing '/etc/asterisk/dundi.conf': Found Затем в файле iax.conf создаем пользователя dundi, чтобы обеспечить возможность соединения с вашей системой Asterisk. После аутентификации вызова запрашиваемый добавочный номер передается в контекст dundi-local файла extensions.conf, где выполняется его обработка.

Обеспечение возможности удаленных соединений

Вот описание канала типа user для пользователя dundi:

[dundi] type=user

dbsecret=dundi/secret

context=dundi-local

disallow=all

allow=ulaw

allow=g726

Вместо использования статического пароля Asterisk повторно создает пароль каждые 3600 с (1 ч). Это значение сохраняется в /dundi/secret базы данных Asterisk и предоставляется посредством переменной $ {SECRET}, описанной в отображающемся контексте в файле dundi.conf. Увидеть текущие ключи для всех равноправных участников, включая свои локальные открытый и закрытый ключи, можно, выполнив команду show keys в интерфейсе командной строки Asterisk.

Запись context=dundi-local определяет контекст в extensions.conf, в который направляются прошедшие авторизацию вызывающие абоненты. Оттуда мы можем обрабатывать звонок, точно так же как делали бы это в диалплане любого другого входящего соединений.

Конфигурация диалплана

Файл extensions.conf определяет, информацию о каких номерах вы предоставляете и что делаете с вызовами, адресованными им. Контекст dundi-local выполняет две задачи:

• Управляет номерами, информацию о которых мы предоставляем. Они указаны в отображающемся контексте dundi в файле dundi.conf.

• Определяет то, что должно быть сделано с вызовом, указанным в описании пользователя dundi в iax.conf.

Для предоставления информации о диапазонах номеров и управления входящими вызовами используется мощная возможность сопоставления с шаблонами, доступная в диалплане. В следующем диалплане предоставляется информация только о номере +1-416-555-1212, но так же просто можно применить сопоставление с шаблоном для предоставления информации о диапазоне номеров или добавочных номеров: [dundi-local]

Перейти на страницу:

Джим Меггелен читать все книги автора по порядку

Джим Меггелен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Asterisk™: будущее телефонии Второе издание отзывы

Отзывы читателей о книге Asterisk™: будущее телефонии Второе издание, автор: Джим Меггелен. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*