Страница 28 из 157
Если на плате TDM400P есть модули FXS, убедитесь, что вы не забыли подключить питание к разъему Molex, который используется для обеспечения напряжения, необходимого для возбуждения генератора звонка в FXS-портах. Разъем Molex не нужен, если имеются только FXO-модули.
Конфигурация оборудования Zaptel
Для конфигурации оборудования используется файл zaptel.conf, который находится в папке /etc/. Приведенная минимальная конфигурация определяет FXO-порт, использующий протокол обмена сигналами FXS:
fxsks=2
loadzone=us
defaultzone=us
В первой строке, кроме указания используемого протокола обмена сигналами (FXO или FXS), для канала 2 задается один из следующих протоколов:
• Loop start (ls)
• Ground start (gs)
• Kewlstart (ks)
Разница между loop start (кольцевая сигнализация) и ground start (сигнализация с заземлением) в том, как оборудование запрашивает тональный сигнал: линия, использующая сигнализацию с заземлением, подает сигнал дальнему концу о том, что хочет получить тональный сигнал, путем мгновенного заземления одного из проводов; линия с сигнализацией по шлейфу для запроса тонального сигнала использует замыкание. Хотя в новых системах их уже практически нет, аналоговые линии с сигнализацией с заземлением по-прежнему применяются во многих областях[56]. Сигнализация с заземлением на самом деле довольно странная штука, потому что в Asterisk нет ее аналоговой формы. Фактически передается не напряжение заземления, а сигнальный бит, предусмотренный для аналоговых сетей, присутствующих на стороне T1. Если вы чего-то здесь не понимаете, не отчаивайтесь; скорее всего, вам никогда не придется использовать сигнализацию с заземлением. Сейчас почти все линии связи (и аналоговые телефоны/модемы/ факсы) используют сигнализацию по шлейфу. Kewlstart, в сущности, - это то же самое, что и кольцевая сигнализация, за исключением того что он обладает более развернутой логикой и, таким образом, может определять отсоединение удаленного конца[57]. Kewlstart является предпочтительным протоколом обмена сигналами для аналоговых линий в Asterisk.
Чтобы определить другой метод обмена сигналами, не kewlstart, замените ks в выражении для fxsks на ls или gs (для кольцевой сигнализации или сигнализации с заземлением соответственно).
Параметр загрузки зоны loadzone задает набор сигналов (которые указаны в файле zonedata.c), используемых для канала. Файл zonedata.c содержит информацию о всевозможных звуках, воспроизводимых телефонной системой в определенной стране: тональный сигнал, сигналы дозвона, сигнал «занято» и т. д. Если применить загруженную тоновую зону к Zap-каналу, этот канал будет воспроизводить сигналы заданной страны. Для разных каналов можно задать различные наборы сигналов. Если для канала зона не задана, используется параметр зоны по умолчанию defaultzone.
После конфигурации zaptel.conf можно загрузить драйверы для платы. Команда modprobe применяется для загрузки модулей, используемых ядром Linux. Например, чтобы загрузить драйвер wctdm, нужно выполнить команду
# modprobe wctdm
Если при загрузке драйверов не выводится никаких сообщений, значит, драйверы загружены успешно[58]. Убедиться в том, что оборудование и порты были загружены и сконфигурированы правильно, можно с помощью программы ztcfg:
# /sbin/ztcfg -vv
На экран будут выведены сконфигурированные каналы и используемый метод обмена сигналами. Например, для TDM400P с одним модулем FXO будет получен такой вывод:
Zaptel Configuration Cha
Cha
Если получено сообщение о следующей ошибке, для канала неправильно сконфигурирован используемый метод обмена сигналами (или отсутствует оборудование по этому адресу):
ZT_CHANCONFIG failed on cha
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]
; описание всех магистральных групп
[cha
; аппаратные каналы
; значения по умолчанию
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
; описание каналов
context=incoming ; Используется контекст [incoming], описанный в extensions.conf
signaling=fxs_ks ; Для канала FXO используется протокол обмена сигналами
FXS cha
Раздел [trunkgroups] описывает соединения, в которых множество физических линий используются как одно логическое соединение с телефонной сетью (они не обсуждаются в данной книге). Если вам необходим этот тип функциональности, в вашем распоряжении есть файл zapata.conf.sample и любимый поисковик для получения дополнительной информации.
Раздел [cha
Разрешение переадресации вызова с помощью рычажного переключателя настраивается строкой transfer=yes; для этого требуется, чтобы была активирована возможность вызова с подключением третьего абонента. Для устранения эха, которое может возникнуть в аналоговых линиях, используется эхокомпенсатор Asterisk, он активируется строкой echocancel=yes. Эхокомпенсатору в Asterisk требуется некоторое время на изучение эха, но этот процесс можно ускорить, включив обучение эхоподавления (echotraining=yes). В этом режиме Asterisk посылает тональный сигнал в линию в начале вызова, чтобы измерить эхо, и таким образом, на его изучение уходит меньше времени. При поступлении вызова на интерфейс FXO вы захотите выполнять некоторые действия. Действия, которые будут осуществляться, задаются в блоке инструкций под названием context. Входящие вызовы FXO- интерфейса направляются в контекст incoming (входящие) посредством строки context=incoming. Команды, выполняемые в этом контексте, определены в файле extensions.conf.
56
Да, в многоканальных линиях T1 существует такая вещь, как сигнализация с заземлением, но она не имеет ничего общего с фактическим заземлением линии (полностью цифровой).
57
Отсоединение удаленного конца имеет место, когда на дальнем конце линии кладут трубку. В неконтролируемой сети нет средства оповещения ближнего конца о том, что вызов завершен. Если используется телефон, это не представляет проблемы, поскольку абонент поймет, что звонок завершен, и сам повесит трубку. Однако система голосовой почты, записывающая сообщение, не имеет никакой возможности определить, что дальний конец прервал соединение, и, таким образом, будет продолжать записывать тишину, или даже тональный сигнал, или сигнал занятости линии. Kewlstart может определять такие условия и отсоединять линию.
58
Обычно в случае успешной загрузки модулей можно не просматривать отладочную информацию, но если вы хотите увидеть ее, проверьте вывод консоли (по умолчанию он находится на TTY-терминале номер 9, но это можно изменить в сценарии safe_asterisk - подробнее см. в предыдущей главе).