Для компиляции Asterisk в системе должен иметься компилятор GCC (версия 3.x или более поздняя) и все необходимые зависимости. Также для Asterisk требуется bison, программный генератор грамматического разбора, который заменяет yacc, и ncurses для обеспечения функциональности командной строки. Криптографическая библиотека в Asterisk требует наличия OpenSSL и его пакетов для разработки.
Для Zaptel необходима библиотека libnewt и ее пакеты для разработки, чтобы обеспечить компиляцию программы zttool (см. в данной главе раздел «Использование ztcfg и zttool»). Если используются PRI-интер- фейсы, Zaptel также требует установки пакета libpri (опять же, даже если линии PRI не используются, мы рекомендуем установить libpri вместе с zaptel).
Если пакеты Software Development устанавливаются на CentOS, все эти инструменты будут в наличии. Если вы стремитесь к порядку и желаете установить набор программ, только минимально необходимый для компиляции Asterisk и связанных с ней пакетов, обратитесь к табл. 3.1.
В следующей таблице использование ключа -у для приложения yum означает ответ «да» на все вопросы и обеспечит установку приложения и всех зависимостей без вывода этих вопросов на экран. Если это нежелательно, ключ -у должен быть опущен.
Если требуется установить сразу все вышеупомянутые пакеты, в командной строке можно указать несколько пакетов, например:
# yum install -у gcc ncurses-devel libtermcap-devel [...]
Таблица 3.1. Список пакетов, необходимых для компиляции libpri, zaptel и asterisk
Имя пакета |
Команда установки |
Примечание |
Используется программами |
GCC 3.x |
yum install -y gcc |
Необходим для компиляции zaptel, libpri и asterisk |
libpri, zaptel, asterisk |
ncurses-devel |
yum install -y ncurses-devel |
Необходим для menuselect |
menuselect |
libtermcap-devel |
yum install -y libtermcap-devel |
Необходим для asterisk |
asterisk |
Kernel |
yum install -y kernel-devel |
Необходим для компиляции zaptel |
zaptel |
Development |
|
|
|
Headers |
|
|
|
Kernel Development Headers (SMP) |
yum install -y kernel-smp-devel |
Необходим для компиляции zaptel |
zaptel |
GCC C++ 3.x |
yum install -y gcc-c++ |
Необходим для asterisk |
asterisk |
OpenSSL (необязательный) |
yum install -y openssl-devel |
Зависимость OSP, шифрование IAX2, res_crypto (поддержка RSA- ключа) |
asterisk |
Имя пакета |
Команда установки |
Примечание |
Используется программами |
newt-devel |
yum install -y |
Зависимость zttool |
zaptel |
(необязательный) |
newt-devel |
|
|
zlib-devel |
yum install -y |
Зависимость |
asterisk |
(необязательный) |
zlib-devel |
DUNDi |
|
unixODBC; |
yum install -y |
Зависимость func_ |
asterisk |
unixODBC-devel |
unixODBC-devel |
odbc, cdr_odbc, |
|
(необязательный) |
|
res_config_odbc, |
|
|
|
res odbc, |
|
|
|
ODBC_STORAGE |
|
libtool |
yum install -y |
Зависимость |
asterisk |
(необязательный; |
libtool |
связанных с ODBC модулей |
|
рекомендуемый) |
|
|
|
GNU make |
yum install -y |
Необходим для компиляции |
asterisk |
(версия 3.80 или более поздняя)* |
make |
zaptel и asterisk |
|
Обычной ошибкой тех, кто впервые устанавливает какой-либо дистрибутив Linux, является использование программы GNU make версии 3.79 или еще более ранней. Следует учесть, что правильно сборка Asterisk может быть выполнена только при наличии версии GNU make не ниже 3.80.
Лучше всего взять исходный код для Asterisk и его пакетов прямо на веб-сайте http://www.asterisk.org или FTP-сервере.
*
Получение исходного кода Asterisk
Проще всего получить самую последнюю выпущенную версию с помощью программы wget.
Чем отличается код стабильной версии от кода, находящегося в процессе тестирования
Кодовая база Asterisk находится в процессе постоянного изменения. Для управления ею разработчики используют инструмент контроля версий Subversion (SVN) [47]. Subversion обеспечивает сообществу разработчиков возможность совместной работы над сложными проектами программного обеспечения. Существует две основных области разработки Asterisk: ветвь (Branch) и ствол (Trunk). В ствол добавляются новые функции, вносятся изменения в архитектуру и всевозможные нововведения. Это та часть кодовой базы, где содержатся все новые элементы, но которая может в любой момент оказаться в нерабочем состоянии. Ее категорически нельзя использовать для производственной эксплуатации (см. рисунок).
Читать дальше