Джим Меггелен - Asterisk™: будущее телефонии Второе издание Страница 24
- Категория: Компьютеры и Интернет / Программное обеспечение
- Автор: Джим Меггелен
- Год выпуска: неизвестен
- ISBN: нет данных
- Издательство: неизвестно
- Страниц: 136
- Добавлено: 2019-06-19 14:52:37
Джим Меггелен - Asterisk™: будущее телефонии Второе издание краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Джим Меггелен - Asterisk™: будущее телефонии Второе издание» бесплатно полную версию:Джим Меггелен - Asterisk™: будущее телефонии Второе издание читать онлайн бесплатно
После конфигурации zaptel.conf можно загрузить драйверы для платы. Команда modprobe применяется для загрузки модулей, используемых ядром Linux. Например, чтобы загрузить драйвер wctdm, нужно выполнить команду
# modprobe wctdm
Если при загрузке драйверов не выводится никаких сообщений, значит, драйверы загружены успешно[58]. Убедиться в том, что оборудование и порты были загружены и сконфигурированы правильно, можно с помощью программы ztcfg:
# /sbin/ztcfg -vv
На экран будут выведены сконфигурированные каналы и используемый метод обмена сигналами. Например, для TDM400P с одним модулем FXO будет получен такой вывод:
Zaptel Configuration Channel map:
Channel 02: FXS Kewlstart (Default) (Slaves: 02) 1 channels configured.
Если получено сообщение о следующей ошибке, для канала неправильно сконфигурирован используемый метод обмена сигналами (или отсутствует оборудование по этому адресу):
ZT_CHANCONFIG failed on channel 2: Invalid argument (22)
Did you forget that FXS interfaces are configured with FXO signaling and that FXO interfaces use FXS signaling?
(ZT CHANCONFIG дала сбой для канала 2: Недействительный аргумент (22).
Вы забыли, что FXS-интерфейсы конфигурируются на использование протокола обмена сигналами FXO и FXO-интерфейсы используют протокол FXS?) Чтобы выгрузить драйверы из памяти, используйте команду удаления модуля rmmod: # rmmod wctdm
Программа zttool является инструментом диагностики, используемым для определения статуса оборудования. Выполнив ее, мы получаем список всех установленных аппаратных средств. В этом списке можно выбирать то или иное устройство и просматривать информацию о его текущем статусе. Статус OK означает, что устройство загружено успешно:
Alarms Span
OK Wildcard TDM400P REV E/F Board 1
Конфигурация оборудования Zapata
Asterisk использует файл zapata.conf для определения настроек и конфигурации оборудования для телефонии, установленного в системе. Файл zapata.conf также управляет различными возможностями и функциями аппаратных каналов, такими как Caller ID, отложенный вызов, эхоподавление и многие другие.
Во время конфигурации zaptel.conf и загрузки модулей Asterisk не имеет ни малейшего представления о том, что будет конфигурироваться. Необязательно, чтобы оборудование использовалось Asterisk; его с таким же успехом могло бы применять другое ПО, взаимодействующее с модулями Zaptel. С помощью zapata.conf мы сообщаем Asterisk об аппаратных средствах и управляем соответствующими функциями:
[trunkgroups]
; описание всех магистральных групп
[channels]
; аппаратные каналы
; значения по умолчанию
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
; описание каналов
context=incoming ; Используется контекст [incoming], описанный в extensions.conf
signaling=fxs_ks ; Для канала FXO используется протокол обмена сигналами
FXS channel => 2 ; PSTN подключается к порту 2
Раздел [trunkgroups] описывает соединения, в которых множество физических линий используются как одно логическое соединение с телефонной сетью (они не обсуждаются в данной книге). Если вам необходим этот тип функциональности, в вашем распоряжении есть файл zapata.conf.sample и любимый поисковик для получения дополнительной информации.
Раздел [channels] определяет метод обмена сигналами для аппаратных каналов и их параметры. Если параметр задан, он наследуется далее по всему файлу. Для определения канала используется синтаксис channel =>. Каждое описание канала наследует все параметры, определенные в файле выше. Если для разных каналов требуется задать различные параметры, они должны задаваться перед описанием channel =>. Строка usecallerid=yes служит для активации возможности Caller ID, а строка hidecallerid=no определяет, что идентификатор вызывающего абонента не будет скрыт для исходящих вызовов. Отложенный вызов де- активирован для FXO-линии посредством строки callwaiting=no. Активация вызова с подключением третьего абонента (строка threewaycalling=yes) позволяет переводить активный вызов в состояние ожидания путем быстрого нажатия рычажного переключателя (обсуждается в главе 7). При этом текущий вызов будет отложен. После этого можно позвонить третьей стороне и подключить ее к разговору, еще раз нажав переключатель. По умолчанию возможность вызова с подключением третьего абонента деактивирована.
Разрешение переадресации вызова с помощью рычажного переключателя настраивается строкой transfer=yes; для этого требуется, чтобы была активирована возможность вызова с подключением третьего абонента. Для устранения эха, которое может возникнуть в аналоговых линиях, используется эхокомпенсатор Asterisk, он активируется строкой echocancel=yes. Эхокомпенсатору в Asterisk требуется некоторое время на изучение эха, но этот процесс можно ускорить, включив обучение эхоподавления (echotraining=yes). В этом режиме Asterisk посылает тональный сигнал в линию в начале вызова, чтобы измерить эхо, и таким образом, на его изучение уходит меньше времени. При поступлении вызова на интерфейс FXO вы захотите выполнять некоторые действия. Действия, которые будут осуществляться, задаются в блоке инструкций под названием context. Входящие вызовы FXO- интерфейса направляются в контекст incoming (входящие) посредством строки context=incoming. Команды, выполняемые в этом контексте, определены в файле extensions.conf.
Наконец, поскольку канал FXO использует протокол обмена сигналами FXS, это определено в строке signaling=fxs_ks.
Конфигурация диалплана
Приведенный ниже простейший диалплан использует приложение Echo() для проверки работы двунаправленной связи в канале:
[incoming]
; входящие вызовы, поступающие через порт FXO,
;направляются в этот контекст из zapata.conf
exten => s,1,Answer()
exten => s,n,Echo()
Приложение Echo() будет возвращать все, что вы скажете.
Звонок
Теперь, когда канал FXO сконфигурирован, протестируем его. Запустите приложение zttool и подключите линию PSTN к FXO-порту на плате TDM400P. Как только телефонная линия будет подключена к FXO-порту, красный световой индикатор погаснет. Теперь наберите номер PSTN с другого внешнего телефона (например, мобильного). Asterisk ответит на вызов и выполнит приложение Echo(). Если вы услышали в трубке свой голос, значит, FXO-канал установлен и сконфигурирован успешно.
Конфигурация канала FXS для аналогового телефона
Конфигурация канала FXS аналогична настройке канала FXO. Рассмотрим ее подробнее.
Конфигурация оборудования Zaptel
Ниже представлена минимальная конфигурация для канала FXS платы TDM400P. Эта конфигурация аналогична приведенной выше конфигурации канала FXO, добавлена только строка fxoks=1. Из наших предыдущих обсуждений вы должны помнить, что для каналов FXO и FXS используются противоположные типы протоколов обмена сигналами, поэтому для канала FXS мы зададим протокол FXO. В приведенном ниже примере канал 1 конфигурируется на использование протокола FXO с протоколом обмена сигналами kewlstart:
fxoks=1
fxsks=2
loadzone=us
defaultzone=us
После загрузки драйверов для своего оборудования можно проверить статус оборудования с помощью команды /sbin/ztcfg -vv:
Zaptel Configuration Channel map:
Channel 01: FXO Kewlstart (Default) (Slaves: 01)
Channel 02: FXS Kewlstart (Default) (Slaves: 02)
Конфигурация оборудования Zapata
Следующая конфигурация аналогична настройке канала FXO, добавлен только раздел для FXS-порта и строка immediate=no. Контекстом FXS-порта является phones, протокол обмена сигналами - fxoks (kewlstart), номер канала - 1.
Каналы FXS можно сконфигурировать на выполнение одного из двух различных действий при снятии трубки телефона. Наиболее часто используемым (и обычно предпочтительным) вариантом для Asterisk является воспроизведение тонального сигнала готовности линии и ожидание ввода пользователя. Это действие конфигурируется строкой immediate=no. Альтернатива для Asterisk - вместо воспроизведения тонового сигнала автоматическое выполнение набора инструкций, заданных в диалплане. Такое поведение определяется строкой immediate=yes[59]. Инструкции, которые должны выполняться для канала, находятся в заданном для него контексте и будут соответствовать добавочному номеру s (обе эти темы будут обсуждаться подробнее в следующей главе).
Вот наш новый файл zapata.conf:
[trunkgroups]
; описание всех магистральных групп
[channels]
; аппаратные каналы
; значения по умолчанию
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
immediate=no
; описание каналов
context=phones ; Используется контекст [internal], описанный в ex.tensions.conf signalling=fxo_ks ; Для канала FXS используется протокол обмена сигналами FXO
channel => 1 ; Телефон подключается к порту 1
context=incoming ; Входящие вызовы направляются в контекст [incoming],
; описанный в extensions.conf signalling=fxs_ks ; Для канала FXO используется протокол обмена сигналами FXS channel => 2 ; PSTN подключается к порту 2
Конфигурация диалплана
Мы воспользуемся простейшим диалпланом, сконфигурированным ранее в данной главе для тестирования FXS-порта с помощью приложения Echo(). Соответствующий раздел, который уже должен присутствовать в диалплане, выглядит следующим образом:
Жалоба
Напишите нам, и мы в срочном порядке примем меры.