- База знаний
- Пример файла конфигурации XML для Cisco 8851 phone
- Пример файла конфигурации XML для Cisco 7970 phone
- Пример файла конфигурации XML для Cisco 9971
- Отладка VoIP звонка с Wireshark
- Книги
- Использование поля Diversion в SIP пакете
- Астериск и Н.323
- ISDN release cause codes
- Пример файла конфигурации голосового шлюза Cisco
- Пример конфигурации интерфейса E1 PRI в голосовом шлюзе Cisco
- Аналоговое зло
- Интернациональные телефонные коды стран
- Практикум по интеграции Астериск в комплексе с OpenBSC/Osmocom
- Факс по IP
Инсталляция драйвера ядра Zaptel
Обратите внимание, что релизы Asterisk ветки 1.4 с версией выше 1.4.21, и все релизы ветки 1.6, автоматически будут использовать DAHDI вместо Zaptel, даже если Zaptel все еще установлен и присутствует в системе.
О том, как перейти с Zaptel на DAHDI можно почитать тут.
Представим, что Вы приобрели себе совершенно новые интерфейсные карты, для подсоединения телефонных линий или телефонных аппаратов с Вашим компьютером. Это могут быть, например, интерфейсные карты от компании Digium. Вы установили их в свой компьютер. Что дальше?
Перед тем, как Вы сможете их использовать, Вам нужно установить драйвер устройства, который обеспечит их работу. В ОС Linux, драйве устройств можно установить, как модуль ядра. Вам будет необходимо скачать исходные коды этих модулей ядра, скомпилировать и установить их. Именно этому процессу и посвящена эта страница.
Для работы драйвера Zaptel требуется ядро Linux 2.4.x или 2.6.x. Поддержка для более старых версий ядра не осуществляется.
Замечания по работе в различных операционных системах
Для различных операционных систем могут возникнуть нюансы при компиляции драйверов zaptel. Обратите внимание на страницу:- Операционные системы для сервера Asterisk
Поддержка для ядра Linux версии 2.6.*
- Март 2004: Используйте "make linux26", вместо "make" для компиляции драйвера zaptel в директории с его исходными кодами.
- Январь 2004: драйверы ztdummy и zaprtc не могут быть одновременно загружены для ядра Linux (версии 2.6?)
- Январь 2004: Mark сделал исправления в драйвере zaptel и сделал его совместимым с ядром Linux 2.6 .
- Сентябрь 2004: Если вы компилируете драйвер zaptel для использования ztdummy, убедитесь, что линк /usr/src/linux-2.6 указывает на: /lib/modules/2.6.x.x.etc/build, для правильной работы modprobe.
- Декабрь 2004: Замечено, что проблема с прерываниями чаще возникает при использовании версии ядра 2.6, чем 2.4, так как там более полно используется интерфейс ACPI. Попробуйте загружаться с параметром: acpi=off
- Март 2006: Замечено, что для многих серверов Dell, механизм RTC не может получить нужное прерывание, что приводит к тому, что драйвер ztdummy не получает отметок времени. Если Вы используете драйвер ztdummy и имеете проблемы с командой Playback(), при использовании которой сервер зависает, то попробуйте использовать метод с отключением acpi, описанный ниже. В дополнение, перекомпиляция ядра, с включенной опцией HPET_EMULATE_RTC , может помочь решить эту проблему.
- Апрель 2006: Вы должны выполнить команду "make prepare" в директории с исходными кодами ядра, перед тем, как приступить к компиляции модуля драйвера ядра zaptel.
Исходники ядра linux
Когда вы собираетесь установить модуль ядра. Для того, чтобы правильно скомпилировать драйвер zaptel, Вам необходимо иметь у себя исходные коды ядра той же версии, что используется на Вашей машине, и Вы должны обязательно убедиться что, версия компилятора gcc, которая использовалась для создания ядра, таже самая, что установлена на данный момент в Вашей системе. Если Вы самостоятельно не компилировали ядро для своей системы, следуйте нижеприведенной пошаговой инструкции.Проверьте версию ядра, которая у Вас установлена. Это можно сделать следующей командой:
cat /proc/version
В качестве результата, Вы получите что-то вроде этого:
Linux version 2.4.28 (root@localhost) (gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)) #1 Tue Jan 28 11:01:02 CST 2003
Это указывает на то, что Вам нужны исходники ядра версии of 2.4.28 в директории /usr/src, и для компиляции ядра использовался компилятор gcc версии 3.2.
После того как вы скачали и установили пакет с исходными кодами нужного ядра, результат выполнения команды:
ls -ld /usr/src/linux*
должен дать примерно такой результат:
lrwxrwxrwx 1 root root 12 Feb 10 2003 /usr/src/linux -> linux-2.4.28 drwxr-xr-x 17 root root 4096 Jan 27 2003 /usr/src/linux-2.4.18
Убедитесь, что у вас есть файл конфигурации для используемого в системе ядра. Он обычно находиться в директории the /boot directory и его имя содержит номер версии ядра:
ls /boot/config* /boot/config-2.4.28
Скопируйте этот файл в: /usr/src/.config, примерно так:
cp /boot/config-2.4.28 /usr/src/linux/.config
Теперь убедитесь, что Ваш файл конфигурации полностью совместим с Вашими исходными кодами ядра. Проделайте следующее:
cd /usr/src/linux make menuconfig
Когда стартует программа menuconfig, она автоматически читает файл .config. Просто выйдете из программы menuconfig и согласитесь на предложение сохранить файл .config .
Теперь, для Linux ядра версии 2.4, Вам надо выполнить следующую команду:
make dep
Ее выполнение может потребовать некоторого времени.
В результате выполнения будет создан файл modversions.h, который будет необходим Вам для компиляции драйверов zaptel.
Для Linux ядра версии 2.6 Вам может понадобиться проделать следующие действия:
исправьте параметр EXTRAVERSION в файле Makefile так, чтобы он подходил под то, что вы увидели в результате выполнения команды: cat /proc/version (см. разъяснение в комментариях ниже)
make modules_prepare
и
ln -s /usr/src/linux-2.6.9-5.0.3.EL /lib/modules/`uname -r`/build
(замените "linux-2.6.9-5.0.3.EL" на нужное значение для Вашей системы)
Также, если вы используете cross compiling (например, компиляцию драйвера для версии 2.6 на машине с ядром 2.4), отредактируйте файл Makefile и для параметра KERNEL_SOURCE измените его значение на "/usr/src/linux", при условии, что директория "/usr/src/linux" слинкована с исходными кодами ядра нужной Вам версии.
Где скачать
Вы можете скачать последние версии драйвера zaptel c ftp сервера компании Digium.Или можете воспользоваться svn репрозиторием для получения исходных кодов драйвера zaptel. При помощи следующих команд (предполагается, что у вас установлен svn клиент и используется оболочка bash:
cd /usr/src svn checkout http://svn.digium.com/svn/zaptel/trunk zaptel
Компиляция
Если у Вас в системе нет интерфейсных карт от Digium, прочитайте про : Asterisk таймер и сделайте необходимые изменения в файле Makefile, например, разрешите компиляцию драйвера ztdummy, удалив соответствующий символ #.Проверьте содержимое файла "/usr/src/zaptel/zconfig.h", на предмет любых специфических настроек, которые должны соответствовать Вашей конфигурации.
Потом выполняем:
make clean make - или 'make linux26' для Linux ядра версии 2.6 make install
Также выполните 'make zttool' перед 'make install', если Вы хотите установить дополнительные утилиты (для этого потребуются исходные коды пакета libnewt, например, libnewt-dev для Debian).
Если у вас возникают проблемы при выполнении команды 'depmod -a', которая выводит сообщения о не найденных зависимостях - "unresolved symbols", тогда:
- попробуйте выполнить команду 'depmod -ae', чтобы узнать имена зависимостей, которые не найдены. Возможно, эти имена укажут Вам, где нужно искать ошибку.
- Убедитесь, что Вы используете последние версии всех утилит, используемых для компиляции (компилятор gcc и т.д.).
- Убедитесь, что у Вас исходные коды ядра, его заголовочные .h файлы и само ядро одной и той же версии.
Если Вы используете ядро Linux версии 2.6, прочтите содержимое файла README.udev, и действуйте согласно полученным инструкциям.
ПЕРЕГРУЗИТЕСЬ, после того, как вы сделаете изменения, описанные в файле README.udev .
Установка
Когда модули ядра скомпилированы, выполните команду:modprobe ztdummy (только, если используется драйвер ((Asterisk timer ztdummy|ztdummy))) modprobe zaptel
при этом должны загрузиться модуля драйвера zaptel без всяких сообщений об ошибках.
Теперь определите, какие дополнительные модули необходимо загрузить для той интерфейсной карты, которая у Вас имеется:
- tor2: Wildcard T400P, Wildcard E400P: - Предоставляет четыре T1/PRI интерфейса (до 96 каналов). PCI карта половинной длины.
- wct4xxp: Wildcard TE405P, Wildcard TE410P, Wildcard TE411P, Wildcard TE210P, Wildcard TE205P - Четырехканальные E1/T1 карты, с возможностью выбирать тип интерфейса для всей карты или для каждого порта по отдельности, между стандартами T1 или E1 (только для 5.0'вольтовой PCI шины).
- wct1xxp: Wildcard T100P, Wildcard E100P - карта с одним каналом T1 (24-канальная), которая поддерживает всю функциональность счетверенной карты T1.
- wcte11xp: Wildcard TE110P - PCI карта с одним каналом T1/E1 (выбирается), половинной высоты (влезает в корпус высотой 2U), в которой поддерживаются все возможности карты TE410P.
- wcfxo: Wildcard X100P, Wildcard X101P - PCI карта с одним FXO интерфейсом, позволяющая подключить одну аналоговую телефонную линию.
- wctdm (Ранее: wcfxs): Wildcard TDM400P - Новая, PCI карта половинного размера, предоставляющая четыре порта, поддерживающая стандартные аналоговые или ADSI телефоны и обычные телефонные линии.
- wcusb или wcfxsusb: Wildcard S100U - Интерфейс FXS для шины USB.
- torisa: Старая ISA карточка Tormenta1.
- ztdummy: UHCI USB Zaptel интерфейс для предоставления сигналов таймера, а также, базирующийся не на USB интерфейсе, источник сигналов таймера для ядер Linux версии 2.6+ .
Загрузите модуль ядра, которые требуется для работы вашей карточки. Например, если у Вас имеется карта Wildcard TDM400P, тогда Вам нужно загрузить модуль wcfxs, выполнив следующую команду:
modprobe wcfxs
Так же как и для модуля zaptel, если все в порядке, то modprobe просто загрузит модуль ядра без всяких сообщений.
Просмотрев содержимое файла /var/log/messages, Вы должны найти сообщения, где подгружаемый модуль сообщает, какие интерфейсные карты он нашел. Например:
May 26 21:54:29 hubris kernel: Zapata Telephony Interface Registered on major 196 May 26 21:54:32 hubris kernel: Freshmaker version: 63 May 26 21:54:32 hubris kernel: Freshmaker passed register test May 26 21:54:32 hubris kernel: Module 0: Installed -- AUTO FXO May 26 21:54:32 hubris kernel: Module 1: Installed -- AUTO FXO May 26 21:54:32 hubris kernel: Module 2: Installed -- AUTO FXS May 26 21:54:32 hubris kernel: Module 3: Installed -- AUTO FXS May 26 21:54:32 hubris kernel: Found a Wildcard TDM: Wildcard TDM400P REV E/F (4 modules)
Теперь Вам надо сделать так, чтобы эти модули ядра загружались при загрузке компьютера с сервером Asterisk. Вы можете использовать следующие команды:
cd /usr/src/zaptel make config
При этом будут установлены файлы "/etc/rc.d/init.d/zaptel" и "/etc/sysconfig/zaptel". Однако, в различных дистрибутивах используется разные методы загрузки дополнительных модулей. Посмотрите на содержимое и отредактируйте файлы (оригиналы находятся в /usr/src/zaptel/zatptel.init и /usr/src/zaptel/zaptel.sysconfig) согласно требованиям для вашей системы.
В частности, если Вы используете ztdummy, Вас понадобиться изменить файлы загрузки драйверов zaptel, так, как описано тут. Вероятно, Вам захочется изменить эти файлы, чтобы загружались только те модули, которые Вам необходимы.
Когда Вы выполните команду 'make install', у Вас появиться файл конфигурации: /etc/zaptel.conf. Итак, теперь стоит прочитать о том, какие настройки в нем надо сделать:
Если Вы уже до этого скомпилировали и установили сервер Asterisk, у вас, возможно, может отсутствовать модуль "chan_zap.so".
Если Вы не видите его в директории "/usr/lib/asterisk/modules", то теперь Вам надо его скомпилировать и установить.
Ступайте в директорию с исходными кодами Asterisk - "/usr/src/asterisk" и выполните "make && make install" еще раз.
При этом будет создан и установлен модуль "chan_zap.so".
Если Вы забыли это сделать, то вы получите сообщение об ошибке:
"Unable to create channel of type 'Zap'"
При попытке совершить вызов через Zap канал.
Установка драйверов адаптеров Кроникс для Asterisk
Данная инструкция взята из файла zaptel-r.txt, идущего вместе с поставкой драйверов для адаптеров КрониксДанная инструкция описывает процедуру сборки пакета драйверов для адаптеров КБ Кроникс с поддержкой интерфейса Zaptel для применения адаптеров Кроникс Tau-PCI/2E1, Tau-PCI/4E1 и Tau32-PCI с пакетом Asterisk в операционной
системе Linux.
ПРИМЕЧАНИЕ: адаптеры модификаций Tau-PCI/E1, Tau-PCI/G.703, Tau-ISA/E1 и Tau-ISA/G.703 не поддерживаются.
Необходимые условия
Для сборки пакета драйверов необходимо наличие следующих пакетов:- Тексты ядра, подготовленные для сборки внешних (поставляемых отдельно от ядра) модулей. (см. выше)
- Тексты пакета драйверов Zaptel. Предполагается что они уже собраны и установлены в систему, иначе при установке драйверов Кроникс будет выдано сообщение о неизвестных символах в модуле czaptel.ko. Здесь и далее в именах модулей используется расширение '.ko' характерное для модулей ядер Linux версии 2.6.х (для ядер 2.4.х - сширение '.o').
- Распакованный пакет драйверов для адаптеров Кроникс. Если вы уже производили сборку драйверов в этой папке без поддержки интерфейса Zaptel, то необходимо выполнить команду:
make distclean
для приведения текстов в исходное состояние.
ВНИМАНИЕ: для адаптера Tau32-PCI больше не требуется специальной процедуры сборки драйвера для работы с модулем czaptel.ko.
Сборка и установка драйверов
Для сборки и установки выполните команду:
make WITH_ZAPTEL=some_path && make install
где some_path путь до текстов драйверов Zaptel. Если пакет Zaptel не установлен, то при инсталяции драйверов система выдаст сообщение о неразрешенных символах.
Запуск драйверов
Драйвера адаптеров Кроникс должны запускаться до запуска пакета Asterisk и команд инициализации интерфейса Zaptel.Если инсталляция драйверов прошла правильно и были правильно построены зависимости драйверов, то при старте пакета драйверов Кроникс будет загружен протокольный модуль czaptel.ko из пакета драйверов Кроникс и модуль zaptel.ko (по зависимости) из пакета Zaptel. Убедиться в том, что это так, можно выполнив команду "lsmod" для проверки списка загруженных модулей.
Для того, чтобы при старте системы на каналах адаптеров автоматически включался протокол "zaptel" необходимо отредактировать соответствующие строки соответствующие каналам в /etc/cronyx.conf:
channel_X="zaptel phony=on use16=on mtu=1024 ts=1-32"
где X - номер канала. use16=on выключает аппаратную выдачу CAS. Если вы оставите ее включенной, то модуль протокола Zaptel будет работать некорректно. Кроме того, для корректной работы модуля необходимо включить все канальные интервалы (ts=1-32, 32-й канальный интервал необходимо указывать для обеспечения совместимости телефонного режима Tau32-PCI с телефонным режимом Tau-PCI, для Tau-PCI достаточно указать ts=1-31). mtu=1024 устанавливает размер принимаемого блока данных (необходим для Tau32-PCI)
После запуска пакета драйверов вы получите интерфейсы Zaptel, дальнейшая настройка которых происходит через /etc/zaptel.conf (путь может отличаться в зависимости от параметров заданных при установке пакета). Обновление
параметров, указанных в /etc/zaptel.conf производится командой ztcfg.
Описание дальнейшей настройки каналов выходит за рамки данного документа. За
дополнительной информацией обращайтесь к разделу "Программное обеспечение"
на сайт КБ Кроникс и документации по пакету Asterisk на сайте проекта.
ВНИМАНИЕ: Приведенная в данном файле инструкция может значительно поменяться в последующих версиях драйверов. По этой причине при обновлении внимательно изучите обновленную инструкцию и проверьте, не изменились ли параметры конфигурационного файла.
Все вопросы и замечания по данному пакету просьба направлять в службу технической поддержки КБ Кроникс
Copyright (C) 2004-2005 КБ Кроникс
Установка драйвера Zaptel на RedHat 3.0
Если Вы устанавливаете модуль zaptel на RedHat AS/ES 3.0 или на его клоны, то Вы можете получить сообщения об ошибках при выполнении команды make.
Тогда Вы должны сделать следующее:
- Установить пакет с исходными кодами ядра.
- Сделать линк с директории, где производиться сборка ядра на: /usr/src/linux-2.4 .
- И попытаться скомпилировать модуля ядра zaptel.
Если сделать следующее:
ln -s /lib/modules/2.4.21-15.TL2/build /usr/src/linux-2.4
Тогда исходные коды redhat enterprise обычно уже подготовлены для компиляции новых модулей ядра.
Добавлено: HRORG (www.hrorg.com, )
Установка драйвера Zaptel на Gentoo
Скрипты инициализации и конфигурация в Gentoo отличается от применяемых в RedHat.
Выполните следующие действия:
cd /usr/src/zaptel make config vi /etc/init.d/zaptel
И сделайте следующие изменения:
Source function library. if [ $system = redhat ]; then . $initdir/functions || exit 0 fi . $initdir/functions.sh || exit 0
Новое местоположение файлов конфигурации теперь будет таким:
/etc/default/zaptel
/etc/zaptel.conf
/etc/asterisk/zapata.conf
Тестирование драйвера и получение информации о нем
- Используйте утилиту zttool
- Посмотрите информация с помощью 'cat /proc/zaptel/*'
- Вы можете посмотреть настройки каналов, с помощью "zap show channels" в CLI консоли сервера Asterisk (консольном интерфейсе командной строки)
- Выполните "pri show span " или "bri debug span " в консоли CLI сервера Asterisk.
- Если Вы получаете сообщение: "rtc: lost some interrupts at 1024Hz." при выполнении команды dmesg, то читайте секцию выше, посвященную ядру Linux версии 2.6, об использовании ztdummy, rtc и acpi.
Ссылки по теме
- Переход с Zaptel на DAHDI
- Zaptel файл конфигурации zaptel.conf
- Asterisk канал ZAP
- Проект: Zaptel драйвер для FreeBSD
- проблемы с загрузкой модуля для карты TE110P (с ее решением)
- Asterisk timer ztdummy
- Asterisk Timer
- Инсталляция сервера Asterisk
- Asterisk
Источники: