Чтение онлайн

на главную - закладки

Жанры

Asterisk™: будущее телефонии Второе издание
Шрифт:

Обратите внимание, что извлекать из архива и компилировать исходный код Asterisk мы будем в папке /usr/src/, хотя некоторые системные администраторы, возможно, предпочитают использовать /usr/ local/src. Также помните, что для записи файлов в папку /usr/src/ и установки Asterisk и сопутствующих ей пакетов, необходимо иметь права администратора.

В главе 13 можно найти информацию о том, как запустить Asterisk, не будучи администратором. Все специалисты по безопасности рекомендуют запускать свои программы-демоны под учетной записью, не дающей права администратора, на случай возможного проникновения

в систему вредоносного кода. Это снизит (но, конечно же, не устранит) риск похищения пароля для пользователя с правами администратора.

Чтобы получить самую последнюю выпущенную версию исходного кода с помощью wget, в командной строке необходимо ввести следующие команды:

# cd /usr/src/

# wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz

# wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz

# wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz

Последние версии пакетов asterisk, libpri и zaptel вполне могут идти под разными номерами.

И наоборот, при разработке и тестировании, вероятно, вы захотите иметь код самой новой ветви. Чтобы извлечь этот код из SVN, выполните следующую команду:

# svn coasterisk-1.4 Если исходный код получен в виде файлов выпущенной версии, размещенных на FTP-сервере Digium, перед компиляцией эти файлы необходимо извлечь из архива, о чем рассказывается в следующем разделе.

Извлечение исходного кода из архива

Пакеты, загружаемые с FTP-сервера, являются архивами, в которых содержится исходный код; таким образом, перед компиляцией код требуется извлечь из архива. Если пакеты загружены в другую папку, не /usr/src/, их надо или перенести туда или указать полный путь к ним. Для извлечения исходного кода из архива мы будем использовать GNU-приложение tar. Это простой процесс, который выполняется с помощью следующих команд:

# cd /usr/src/

# tar zxvf zaptel-1.4-current.tar.gz

# tar zxvf libpri-1.4-current.tar.gz

# tar zxvf asterisk-1.4-current.tar.gz

В bash (и других командных оболочках, поддерживающих ее) можно использовать исключительно удобную функцию автозаполнения по нажатию клавиши Tab. Это позволяет вводить лишь часть имени файла, а все остальное система дополняет автоматически. Например, если введено tar zxvf zap<tab>, система дополнит имя файла zaptel сама. Если возможно несколько вариантов подстановки, надо нажать Tab дважды - и будет представлен список имен файлов, подходящих под введенную комбинацию символов.

Выполнение этих команд обеспечит извлечение пакетов и исходного кода из архивов в соответствующие папки. Например, файл 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

Рис. 3.1. Пример окна выбора компонентов сборки

тически таким же, но с меньшим количеством опций. Перемещение вверх и вниз по списку осуществляется с помощью клавиш со стрелками. Выбор опции меню выполняется по нажатию клавиши Enter или клавиши со стрелкой вправо. Для отмены выбора используется клавиша со стрелкой влево.

Рис. 3.2. Список модулей, подлежащих сборке

На рис. 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 и аппаратными средствами.

Поделиться:
Популярные книги

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Отмороженный 6.0

Гарцевич Евгений Александрович
6. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Отмороженный 6.0

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Царь Федор. Трилогия

Злотников Роман Валерьевич
Царь Федор
Фантастика:
альтернативная история
8.68
рейтинг книги
Царь Федор. Трилогия

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Темный Патриарх Светлого Рода 4

Лисицин Евгений
4. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 4

Инцел на службе демоницы 1 и 2: Секса будет много

Блум М.
Инцел на службе демоницы
Фантастика:
фэнтези
5.25
рейтинг книги
Инцел на службе демоницы 1 и 2: Секса будет много

Попала, или Кто кого

Юнина Наталья
Любовные романы:
современные любовные романы
5.88
рейтинг книги
Попала, или Кто кого

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Провинциал. Книга 7

Лопарев Игорь Викторович
7. Провинциал
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Провинциал. Книга 7