Конфигурация драйвера ядра Zaptel (zaptel.conf)
В файле zaptel.conf Вы настраиваете параметры интерфейса TDM, которые необходимы для Ваших карт от фирмы Digium или Sangoma. Этот файл используется программой /sbin/ztcfg. Оба файла "/etc/zaptel.conf" и "/sbin/ztcfg" будут установлены при инсталляции драйвера zaptel. смотри раздел: Инсталляция драйвера Zaptel.
![exclaim](img/smiles/icon_exclaim.gif)
- /etc/zaptel.conf: Описывает конфигурацию вашего аппаратного обеспечения, которая необходима для работы драйверов ядра операционной системы.
- /etc/asterisk/zapata.conf: Это файл конфигурации сервера Asterisk, необходимый для работы драйвера Zap канала.
Конфигурационные параметры, описываемые в файле zaptel.conf, следующие:
- Идентификационный номер для TDM карты, который используется в плане набора, для определения каждой из интерфейсной карты. Для каждой из них должен быть назначен уникальный номер.
- Какой тип интерфейса и сигнализации используется для каждой интерфейсной TDM карты.
- Тональные сигналы, специфичные для каждой страны, должны использоваться в TDM картах (например, English, French, German). Устанавливая этот параметр, Вы, например, определяете, что для каналов используемых Английскими пользователями должны использоваться знакомые им тональные сигналы, принятые в Великобритании, в то же время Французские пользователи должны использовать другой интерфейс с сконфигурированными тональными сигналами типичными для Франции. Стоит отметить: что на данный момент, поддерживается только небольшой набор тональных сигналов; смотрите содержимое файла: zonedata.c, в директории с исходными кодами драйвера Zaptel. Если в Вашей стране или у Вашей телефонной компании используется другой набор тональных сигналов, Вы можете помочь в расширении этого списка предоставив информацию об используемых в Вашем регионе тональных сигналов.
![exclaim](img/smiles/icon_exclaim.gif)
Редактируем Ваш файл zaptel.conf
Предполагается, что Вы имеете файл /etc/zaptel.conf, установленный "по умолчанию", после выполнения команды 'make install', который содержит только две не закомментированные строчки:
- loadzone=us: это означает, что для Вашей интерфейсной карты (или карт) будут использоваться тональные сигналы, описанные для зоны US. Вы можете определить несколько наборов тонов для интерфейса, что позволит Вам использовать различные тональные сигналы для разных зон, указав список двухбуквенных идентификаторов нужных стран через запятую. Доступные значения следующие:
- at
- au
- cl
- es
- fi
- fr
- gr
- it
- jp
- nl
- no
- nz
- pl
- tw
- uk
- us
- us-old
Зоны для тональных сигналов, определены в файле исходных кодов драйвера Zaptel: zonedata.c.
- defaultzone=us: эта установка подразумевает, что тональные сигналы этой зоны будут использоваться по умолчанию (когда не заданы другие зоны).
Остальные настройки в файле zaptel.conf зависят от того, какого типа интерфейсные карты от Digium или Sangoma у Вас установлены.
Интерфейсные карты FXO и FXS
- Wildcard X100P - FXO устройство, которое будет использовать fxs сигнализацию в Asterisk.
- Wildcard S100U - FXS устройство, которое будет использовать fxo сигнализацию в Asterisk.
- Wildcard TDM400P - может иметь любую из комбинаций FXO и FXS модулей, установленных в ее четырех портах. Note that the Wildcard TDM400P may be referred to by different names according to how many modules and what kind of modules are installed on it. If it has one FXS module on it then it is called TDM10B. If it has two FXS modules then it is TDM20B and so on. TDM400P is sometimes used to refer to just the board with no modules on it.
Конфигурация для карт Wildcard X100P:
- fxsks=1: Если у вас установлена одна карта Wildcard X100P
- fxsks=1-2: Если у вас установлены две карты Wildcard X100P
- fxsks=1-3: Если у вас установлены три карты Wildcard X100P, и т.д.
- fxoks=1: для одной карты
- fxoks=1-2: для двух карт
- fxoks=1-3: для трех карт, и т.д.
- Если у Вас карта TDM10B (один FXS модуль), используйте: fxoks=1
- Если у Вас карта TDM20B (два FXS модуля), используйте: fxoks=1-2
- Если у Вас карта TDM30B (три FXS модуля), используйте: fxoks=1-3
- Если у Вас карта TDM04B (четыре FXO модуля), используйте: fxsks=1-4
- Если в Вашей карте установлены модули: FXO, FXO, FXS, FXS (именно в таком порядке), используйте:
- fxsks=1-2
- fxoks=3-4
- Если в Вашей карте установлены модули: FXS, FXO, FXO, FXS (именно в этом порядке), используйте:
- fxoks=1,4
- fxsks=2-3
- Если в Вашей карте установлены модули: FXS, (пустой слот), FXO, FXS (именно в этом порядке), используйте:
- fxoks=1,4
- fxsks=3
- Если у Вас установлена одна карта Wildcard TDM40B и одна - Wildcard TDM22B, используйте:
- fxoks=1-4 (для TDM40B)
- fxsks=5,8 (для двух FXO модулей на Вашей карте TDM22B)
- fxoks=6,7 (для двух FXS модулей на Вашей карте TDM22B)
Конфигурация ISDN BRI карт на основе чипсета HFC
- span=1,1,3,ccs,ami: это фиктивный параметр, который реально ни на что не влияет
- bchan=1-2: каждая ISDN BRI карта имеет два B канала (данные).
- dchan=3: и каждая ISDN BRI карта имеет один D канал (управления и контроля).
Следующий шаг: Запуск утилиты ztcfg
Запустите:
/sbin/ztcfg -vvvv
Если она выполниться без всяких сообщений, это значит, что Вы сконфигурировали все правильно. Если она выдаст примерно такие сообщения:
ZT_CHANCONFIG failed on channel 1: Invalid argument (22)
Did you forget that FXS interfaces are configured with FXO signalling
and that FXO interfaces use FXS signalling?
значит, что-то у Вас сконфигурировано неправильно. Для того чтобы узнать подробности, просмотрите содержимое файла /var/log/messages, на предмет сообщений, которые генерирует драйвер zaptel, при загрузке модулей ядра wcfxs и/или wcfxo.
Интерфейсные карты T1/E1
Обратите внимание: Карты Sangoma конфигурируются в файле /etc/zaptel.conf точно таким же образом, как и платы от компании Digium.
Теперь рассмотрим как конфигурацию плат T1/E1. Когда Вы поймете, как настраивать одну карту, то Вы легко сможете настроить и все остальные. Начнем с карты Wildcard T100P.
Конфигурация для карты T100P при использовании интерфейса PRI
В файле /etc/zaptel.conf:
span=1,1,0,esf,b8zs
bchan=1-23
dchan=24
В файле /etc/asterisk/zapata.conf:
switchtype=national
context=blah
signalling=pri_cpe
group=1
channel => 1-23
Как видите, мы используем esf framing и кодирование b8zs. Измените эти параметры, согласно тому, что используется в Вашем PRI канале. Также Вам возможно понадобиться изменить параметр "switchtype". Тип сигнализации должен быть для slave устройства установлен в pri_cpe. В конфигурационном файле /etc/asterisk/zapata.conf, вы определяете только B каналы.
Когда используется банк каналов (channel bank), Вы определяете fxo/fxs каналы, вместо определения каналов типа B и D. Далее, настройка сходна с настройками fxo/fxs карт. Это применимо к банку fxs каналов. Если же у Вас используются fxo каналы, измените тип сигнализации. Если же у Вас есть банк каналов fxs и fxo типа, тогда Вам надо разбить каналы, согласно тому, для какого типа интерфейсов они используются.
Конфигурация карты T100P с использованием банка каналов (channel bank).
В файле /etc/zaptel.conf:
span=1,0,0,esf,b8zs
fxoks=1-24
В файле /etc/asterisk/zapata.conf:
signalling=fxo_ks
context=blah
group=1
channel => 1-24
Если у Вас имеется карта E100P/E400P, тогда Вам возможно понадобиться изменить параметры framing, coding и switchtype. Конечно, число Ваших каналов будет другим, т.к. интерфейс E1 имеет 31 канал. Карта TE410P позволяет Вам выбрать, какой интерфейс использовать, T1 или E1.
Пример настройки карт TE405P/TE410P для использования в Германии:
Это пример файла zaptel.conf с системой Quad E1, запущенной в Munich, которая напрямую подключена к публичной телефонной сети:
span=1,1,0,ccs,hdb3,crc4
bchan=1-15
dchan=16
bchan=17-31
span=2,1,0,ccs,hdb3,crc4
bchan=32-46
dchan=47
bchan=48-62
span=3,1,0,ccs,hdb3,crc4
bchan=63-77
dchan=78
bchan=79-93
span=4,1,0,ccs,hdb3,crc4
bchan=94-108
dchan=109
bchan=110-124
loadzone=nl
defaultzone=nl
Как указано выше, эта система напрямую подключена в публичную телефонную сеть (как CPE), следовательно, в зависимости от типа PRI подключения, Вам может понадобиться изменить некоторые параметры линии в вышеприведенном файле(span=1,0,0,ccs,hdb3,crc4 и т.д.).
Это файл zapata.conf с той же системы:
[channels]
language=de
context=default
switchtype=euroisdn
;Если Вы подключены к АТС hicom, установите "ISDN Numbering Plan Identifier" в значение unknown.
pridialplan=unknown
prilocaldialplan=unknown
signalling=pri_cpe
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no
group = 1
channel => 1-15
channel => 17-31
group = 2
channel => 32-46
channel => 48-62
group = 3
channel => 63-77
channel => 79-93
group = 4
channel => 94-108
channel => 110-124
Пример настройки файла zaptel.conf
Предположим, что у Вас имеется две карты, которые установлены в компьютере:
- Wildcard X100P (один FXO интерфейс)
- Wildcard TDM400P с четырьмя модулями:
- модуль 0: FXO модуль
- модуль 1: FXO модуль
- модуль 2: FXS модуль
- модуль 3: FXS модуль
Тогда Ваш файл zaptel.conf, может выглядеть примерно так:
loadzone=us
defaultzone=us
; для Wildcard X100P используется тип интерфейса Kewlstart FXS
fxsks=1
; для Wildcard TDM400P, модули 0 и 1 - используется тип интерфейса Kewlstart FXS
fxsks=2-3
; для Wildcard TDM400P, модули 0 и 1 - используется тип интерфейса Kewlstart FXO
fxoks=4-5
Что означают все эти параметры?
- fxsks=1: На самом деле, этой одной строчкой мы указываем сразу три параметра. Рассмотрим ее для начала подробнее, чтобы было легче понять, что они значат. Первая часть этой строки - это "fxs", она означает, что для этой интерфейсной карты используется интерфейс FXS, следовательно, ее можно подключать к публичной телефонной сети. Следующая часть - это "ks", она означает, что используется сигнализация "kewlstart", с помощью которой можно определить свободность или занятость канала (по аналогии с телефонной трубкой, которая может находиться или в положенном или в поднятом состоянии). Следующая часть - это "=1", она означает, что эта интерфейсная карта будет идентифицироваться как канал 1, в других файлах конфигурации; особенно в плане набора. Например, в файле extensions.conf его можно использовать, как канал с именем Zap/1.
- fxsks=2-3: указывает, что для модуля 0 и 1 карты "Wildcard TDM400P" также используется сигнализация FXS Kewlstart. Этот канал идентифицируется в сервере Asterisk, как Zap/2 и Zap/3.
- fxoks=4-5: указывает, что для модуля 2 и 3 карты "Wildcard TDM400P" будет использоваться сигнализация FXO, и через нее к серверу будут подключаться аналоговые телефонные аппараты, использование сигнализации Kewlstart FXO позволяет определить свободность или занятость канала связи. Интерфейсы идентифицируются как каналы с номерами 4 и 5 (Asterisk сможет использовать их, как каналы с именем Zap/4 и Zap/5).
Используйте правильные определения для типов интерфейсов и сигнализации!
Один аспект, где может появиться некоторая неразбериха - это установка типов интерфейсов для портов FXO и FXS. Запомните, что при использовании этих портов, сервер Asterisk соединяется с противоположным типом устройства (порт FXO соединяется с устройством, оснащенным портом FXS, а FXS порты соединяются с устройствами, оснащенными портом FXO). Тот тип порта, который Вы указываете в файле zaptel.conf - это тип соединения, который сервер Asterisk должен использовать для подсоединенного устройства. К счастью, утилита ztcfg может помочь Вам в настройке, выдав подсказку, если Вы настроите что-то неправильно:
ZT_CHANCONFIG failed on channel 1: Invalid argument (22)
Did you forget that FXS interfaces are configured with FXO signalling
and that FXO interfaces use FXS signalling?
Loopstart, Groundstart, Kewlstart
По поводу различий в интерфейсах between loopstart, groundstart и kewlstart, смотри FAQ от компании Digium. Резюмируя: вероятнее всего вам нужно использовать тип "kewlstart", как для ваших телефонных линий типа FXO (для связи с Вашей АТС), так и для линий FXS, через которые подключаются Ваши абоненты (стандартные телефонные аппараты), вне зависимости от Вашего региона.
Выдержка из Digium FAQ:
В чем различие сигнализаций loopstart, groundstart, и kewlstart?
Сигнализация Loopstart фактически используется во всех линиях, через которые подключаются аналоговые телефоны. Она позволяет телефону сообщать состояния снятой/положенной трубки, а телефонному коммутатору - сигнализировать наличие/отсутствие сигнала вызова (звонка).
Сигнализация Kewlstart базируется на loopstart, но расширяет этот протокол, позволяя телефонному коммутатору сигнализировать состояние отсоединения удаленного абонента, путем понижения питающего напряжения (или смены его полярности) на абонентской линии, идущей к нашему телефону. Эту функцию поддерживают многие телефонные коммутаторы, но она почти не поддерживается в мини АТС (конечно, за исключением Asterisk). В основном это расширение требуется для индикации того, что удаленный абонент повесил трубку.
Сигнализация Groundstart иногда используется некоторыми типами АТС. Если Вы не знаете что это такое, то не волнуйтесь - этот тип сигнализации Вам не нужен.
В чем различие сигнализаций loopstart, groundstart, и kewlstart?
Сигнализация Loopstart фактически используется во всех линиях, через которые подключаются аналоговые телефоны. Она позволяет телефону сообщать состояния снятой/положенной трубки, а телефонному коммутатору - сигнализировать наличие/отсутствие сигнала вызова (звонка).
Сигнализация Kewlstart базируется на loopstart, но расширяет этот протокол, позволяя телефонному коммутатору сигнализировать состояние отсоединения удаленного абонента, путем понижения питающего напряжения (или смены его полярности) на абонентской линии, идущей к нашему телефону. Эту функцию поддерживают многие телефонные коммутаторы, но она почти не поддерживается в мини АТС (конечно, за исключением Asterisk). В основном это расширение требуется для индикации того, что удаленный абонент повесил трубку.
Сигнализация Groundstart иногда используется некоторыми типами АТС. Если Вы не знаете что это такое, то не волнуйтесь - этот тип сигнализации Вам не нужен.
Идентификация Zaptel каналов
Почему же, в вышеприведенном примере, карта "Wildcard X100P" идентифицируется как интерфейс с номером 1 (Zap/1) и карта "WildCard TDM400P" - как интерфейсы с номерами от 2 до 5 (Zap/2 до Zap/5)? Ответ заключается в порядке, в котором загружались модули ядра Zaptel.
Карте "Wildcard X100P" нужен модуль драйвера ядра wcfxo. Карте "Wildcard TDM400P" нужен модуль драйвера ядра wcfxs. Обоим картам нужен модуль драйвера ядра - zaptel.
Если на Вашем компьютере установлена карта "Wildcard X100P", тогда Вам сначала нужно загрузить модуль ядра zaptel, а потом модуль wcfxo (и после этого запустить утилиту ztcfg). Ваша карта "Wildcard X100P" будет видна как Zap/1. Если Вы купили и установили карту "Wildcard TDM400P" с установленными модулями: FXO,FXO,FXS,FXS, то Вам также нужно загрузить модуль драйвера ядра wcfxs для этой карты (название несколько вводит в заблуждение, т.к. этот драйвер обрабатывает как модули FXO, так и FXS типа, которые установлены на плате "Wildcard TDM400P"). Если Вы загружаете модули в таком порядке: zaptel, wcfxo, wcfxs, тогда Ваш интерфейс "Wiildcard X100P" будет иметь идентификатор "Zap/1", а интерфейсы на плате "Wildcard TDM400P" - от "Zap/2" до "Zap/5". Однако, с другой стороны, Вы можете загрузить модули в таком порядке: zaptel, wcfxs, wcfxo, тогда каналы для карты "Wildcard TDM400P" будут именоваться от "Zap/1" до "Zap/4", а Ваш интерфейс "Wildcard X100P" будет иметь имя - "Zap/5", и в этом случае Вам придется соответственно подправить Ваш план набора.
Ссылки по теме:
- Переход с Zaptel на DAHDI
- Инсталляция драйвера Zaptel
- Импульсный набор для каналов Zap
- Проект: Zaptel драйвер для FreeBSD
- indications.conf: Конфигурация индикации и стран для звуковых сообщений.
- Zaptel.conf span definition format
- Конфигурация сервера Asterisk
- Asterisk
Источники: