Asterisk™: будущее телефонии Второе издание
Шрифт:
Хотя Asterisk может компилироваться на разных платформах, драйверы Zaptel специализированы для конкретных дистрибутивов Linux, они создаются для взаимодействия непосредственно с ядром Linux. Существует проект (http:// www.solarisvoip.com), обеспечивающий поддержку Zaptel для Solaris. Также есть проект разработки драйверов Zapata для BSD. Его можно найти по адресуhttp://www.voip-info. org/tiki-index.php?page=FreeBSD+zaptel.
Рис. 3.3. Уровни взаимодействия устройств с Asterisk
Начнем наше
Перед компиляцией драйверов Zaptel в системе, выполняющей ядро Linux 2.4, необходимо убедиться в наличии в папке /usr/src/ символической ссылки linux-2.4, указывающей на исходный код используемого ядра. Если символической ссылки нет, ее можно создать с помощью следующей команды (предполагая, что исходный код размещен в папке /usr/src/): # ln -s /usr/src/'uname -r' /usr/src/linux-2.4 Обычно, если на компьютере выполняется один из дистрибутивов на базе ядра Linux 2.6, символическая ссылка не требуется, поскольку эти дистрибутивы осуществляют поиск папки сборки ядра автоматически. Однако, если папка сборки помещена в нестандартное место (то есть не в папку /lib/modules/ <версия ядра>/build/), потребуется использовать символическую ссылку.
Драйвер ztdummy
Определенные приложения и функции Asterisk для работы требуют наличия устройства синхронизации (Asterisk даже не скомпилирует их, если не найдет такое устройство). Все PCI-устройства производства Digium обеспечивают интерфейс синхронизации с частотой 1 кГц, что соответствует этому требованию. Если необходимых для обеспечения синхронизации PCI-устройств нет, в качестве устройства синхронизации может использоваться драйвер ztdummy. В дистрибутивах на базе ядра Linux 2.4 ztdummy должен использовать синхронизирующие сигналы, обеспечиваемые контроллером UHCI USB.
Многие более старые (и некоторые новые) системы используют чип контроллера OHCI USB, несовместимый с ztdummy. Однако, если используется ядро 2.6, неважно, какой чип контроллера USB применяется в системе.
Драйвер проверяет, загружен ли модуль usb-uhci и не является ли версия ядра ниже 2.4.5. Более старые версии ядра несовместимы с ztdummy. В дистрибутиве на базе ядра 2.6 ztdummy не требует применения USB- контроллера. (Теперь ядро версии 2.6.0 генерирует синхронизирующие сигналы частотой 1 кГц [48] , которые драйвер может использовать для согласования; таким образом, аппаратный USB-контроллер больше не нужен.)
48
Обратите внимание, что эта характеристика ядра является настраиваемой, поэтому возможно, что некоторые дистрибутивы будут обеспечивать другую частоту, не 1000 Гц; однако в CentOS установлена именно эта частота.
Драйверы телефонии Zapata
Компиляция драйверов телефонии Zapata для использования с оборудованием Digium проста; однако из-за различия сред сборки в версиях 1.2 и 1.4 для этого применяются немного разные методы. Сначала необходимо выполнить команду . /configu re, чтобы определить, какие приложения и библиотеки установлены в системе. Это позволит гарантировать наличие всего необходимого для сборки Zaptel. Выполнение следующих команд обеспечит сборку Zaptel и его модулей:
# cd /usr/src/zaptel-version
# make clean
# ./configure
# make menuselect
# make
# make install
Команда make clean
Кроме исполняемых файлов, make clean удаляет также промежуточные файлы (то есть объектные файлы) после компиляции. Они не нужны и только занимают место на жестком дис-В системе, в которой используются папки /etc/rc.d/init.d/ или /etc/ init.d/ (это такие системы, как CentOS и другие дистрибутивы на базе Red Hat), можно выполнить также команду make config. Это обеспечит установку сценариев запуска и конфигурирование системы. С помощью команды chkconfig задается автоматическая загрузка модуля zaptel при запуске:
# make config
Эквивалент команды chkconfig в Debian - update-rc.d. Хотя Digium официально поддерживает только Zaptel для Linux, следует упомянуть несколько проектов по переносу Zaptel на другие платформы:
Solaris .BSD .
Использование ztcfg и zttool
Вместе с Zaptel устанавливаются еще две программы, ztcfg и zttool. Программа ztcfg считывает данные из папки /etc/zaptel.conf для конфигурации аппаратных средств. Программа zttool поможет проверить статус установленного оборудования. Например, если используется плата T1 и между конечными точками не установлена связь, пользователь увидит красный предупреждающий сигнал. Если все конфигурировано правильно и связь возможна, будет выведено сообщение «ОК». Приложение zttool также полезно для аналоговых плат, потому что сообщает об их текущем состоянии ^конфигурирована, с подключенной линией и т. д.). Использование этих программ будет подробно рассмотрено в следующей главе.
Компиляция zttool невозможна, если не установлены библиотеки libnewt и их пакеты для разработки (newt-devel в дистрибутивах на базе Red Hat).
Приложения ztcfg и zttool и другие полезные утилиты располагаются в разделе Utilities (Утилиты) окна выбора компонентов сборки Zaptel.
Компиляция libpri
Для библиотек libpri не используется программа autoconf для настройки среды сборки или окно выбора компонентов сборки, поскольку они не нужны; таким образом, установка упрощается. libpri применяется различными производителями аппаратных средств мультиплексирования с разделением по времени (Time Division Multiplexing, TDM), но даже если такое оборудование не установлено, эту библиотеку можно компилировать и устанавливать. libpri должна быть скомпилирована и установлена перед установкой Asterisk, поскольку она используется при его компиляции. Вот необходимые команды (вместо версия необходимо указать используемую версию libpri):
# cd /usr/src/libpri-версия
# make clean
# make
# make install
Компиляция Asterisk
После компиляции и установки пакетов zaptel и libpri (если они нужны), можно переходить к установке Asterisk. В этом разделе рассматривается стандартная установка и представлены некоторые альтернативные аргументы make, которые могут пригодиться.