# tar zxvf asterisk-1.4-current.tar.gz
В bash (и других командных оболочках, поддерживающих ее) можно использовать исключительно удобную функцию автозаполнения по нажатию клавиши Tab. Это позволяет вводить лишь часть имени файла, а все остальное система дополняет автоматически. Например, если введено tar zxvf
Выполнение этих команд обеспечит извлечение пакетов и исходного кода из архивов в соответствующие папки. Например, файл asterisk- 1.4-current.tar.gz будет извлечен в папку текущей версии Asterisk, то есть asterisk-1.4.4.
Желательно всегда сохранять исходный код последней рабочей версии пакета на случай необходимости выполнить «откат» при обнаружении очередного дефекта или странностей в поведении, которые не получается сразу разрешить.
Окно выбора компонентов сборки
В Asterisk версии 1.4.0 и связанных с ней пакетах была реализована новая система сборки autoconf. Это немного изменило процесс сборки, но предоставило больше гибкости, позволив выбирать модули, подлежащие сборке. Преимущество состоит в том, что в сборке участвуют только необходимые модули, а не весь исходный код. Вместе с системой сборки была введена новая система выбора на основе меню. Спасибо Расселу Брайанту (Russell Bryant). Эта новая система обеспечивает возможность более детального отбора подлежащих сборке модулей перед компиляцией ПО и избавляет пользователя от необходимости редактировать файлы Makefiles. Поэтому, чтобы не рассказывать, как использовать окно выбора компонентов сборки в каждом разделе «Компиляция.», обсудим это здесь, чтобы, увидев опцию make menuselect, вы знали, что должны делать с окном выбора компонентов сборки.
На рис. 3.1 представлено окно выбора компонентов сборки для программного обеспечения Asterisk. Для других пакетов оно будет прак-
*************************************
Asterisk Module Selection *************************************
Press 'h' for help.
-> l. Applications
# Call Detail Recording
# Channel Drivers
# Codec Translators
# Format Interpreters
# Dlalplan Functions
# PBX Modules
# Resource Modules
# Voicemail Build Options 1Э. Compiler Flags
# Module Embedding
# Core Sound Packages
# Music On Hold File Packages
# Extras Sound Packages
тически таким же, но с меньшим количеством опций. Перемещение вверх и вниз по списку осуществляется с помощью клавиш со стрелками. Выбор опции меню выполняется по нажатию клавиши Enter или клавиши со стрелкой вправо. Для отмены выбора используется клавиша со стрелкой влево.
На рис. 3.2 показан список возможных приложений диалплана, сборка которых может быть выполнена для их использования в Asterisk. Модули, подлежащие сборке, отмечаются символами [*]. Модуль, сборка которого выполняться не будет, отмечается символами [ ]. Если перед модулем стоят символы XXX, значит, присутствуют не все зависимости пакета, которые являются обязательным условием для сборки данного модуля. На рис. 3.2 мы видим, что сборка модуля app_flash не может быть выполнена из-за отсутствия зависимости Zaptel (то есть модуль Zaptel не был собран и установлен в систему с момента последнего вы- полненения команды ./configure). Если требования по зависимости были удовлетворены в период после последнего выполнения команды . /configure, выполните ее снова и повторно откройте окно выбора компонентов сборки. Теперь модуль должен быть доступным для сборки. Завершив работу с окном выбора компонентов сборки, введите символ x, чтобы сохранить изменения и закрыть окно. Ввод символа q также обеспечит выход из окна выбора компонентов сборки, но при этом изменения не будут сохранены. Если вы внесли изменения и ввели q, ваши изменения будут потеряны!
Компиляция Zaptel
На рис. 3.3 показаны уровни взаимодействия между Asterisk и ядром Linux с точки зрения управления аппаратными средствами. Со стороны Asterisk имеется модуль канала Zapata, chan_zap. Asterisk использует этот интерфейс для обмена информацией с ядром Linux, где загружаются драйверы устройств.
Интерфейс Zaptel - это загружаемый модуль ядра, представляющий абстрактный уровень между аппаратными драйверами и модулем Zapata в Asterisk. Именно такая концепция позволяет изменять драйверы устройств без внесения изменения в исходный код Asterisk. Драйверы устройств используются для непосредственной связи с оборудованием и для передачи информации между Zaptel и аппаратными средствами.
Хотя Asterisk может компилироваться на разных платформах, драйверы Zaptel специализированы для конкретных дистрибутивов Linux, они создаются для взаимодействия непосредственно с ядром Linux. Существует проект
Начнем наше обсуждение с драйвера ztdummy, который используется в системах, нуждающихся в интерфейсе синхронизации, но не имеющих соответствующего оборудования. Затем перейдем к компиляции и установке драйверов. (Конфигурация драйверов Zaptel будет обсуждаться в следующей главе.)
Перед компиляцией драйверов 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/), потребуется использовать символическую ссылку.
Хотя Asterisk и сопутствующие пакеты выполняются на ядрах Linux 2.4.x,