Джим Меггелен - Asterisk™: будущее телефонии Второе издание
Кроме исполняемых файлов, 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 (http://www.solarisvoip.com).BSD (http://lists.digium.com/mailman/listinfo/asterisk-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, которые могут пригодиться.
Стандартная установка
Компиляция Asterisk выполняется с помощью компилятора gcc посредством использования GNU-программы make. Чтобы начать компиляцию Asterisk, просто выполните следующие команды (вместо версия необходимо указать используемую версию Asterisk).
# cd /usr/src/asterisk-версия
# make clean
# ./configure
# make menuselect
# make install
# make samples
Помните, что время компиляции в разных системах может быть различным. На процессорах современного поколения это не должно занять более пяти минут. На сайте AstriCon (http://www.astricon.net) есть сообщение об успешной компиляции Asterisk на процессоре Pentium с частотой 133 МГц, но это заняло около пяти часов. Считайте сами. Выполнение команды make samples обеспечивает установку стандартных конфигурационных файлов. Ее использование (вместо конфигурации каждого файла вручную) позволит намного быстрее установить и подготовить систему Asterisk к работе. Многие значения по умолчанию нет необходимости изменять, они обеспечивают нормальную работу Asterisk. Файлы, требующие редактирования, будут рассмотрены в следующих главах.
Если в папке /etc/asterisk/ уже есть конфигурационные файлы, при выполнении команды make samples к имени каждого из них будет добавлено в конце расширение .old, например, файл extensions.conf будет переименован в extensions.conf.old. Однако будьте осторожны, потому что повторное выполнение команды make samples приведет к перезаписи исходных конфигурационных файлов!
Образцы конфигурационных файлов также можно найти в под- папке configs/ папки Asterisk sources.
Для систем, которые используют папки /etc/rc.d/init.d/ или /etc/init.d/, также желательно выполнить команду make config. Это обеспечит установку сценариев запуска и конфигурацию системы (с помощью команды chkconfig) для автоматического выполнения Asterisk при запуске: # make config
Альтернативные аргументы make
Существует еще несколько дополнительных аргументов make, которые могут передаваться во время компиляции. Некоторые из них обсуждаются здесь, но остальные используются внутри файла и на самом деле не имеют никакого значения или практической пользы для конечного пользователя. (Конечно, могут быть введены новые функции, поэтому не забывайте просматривать Makefile.) Давайте рассмотрим некоторые полезные аргументы make.
make clean
Команда make clean используется для удаления скомпилированных двоичных файлов из папки исходного кода. Эта команда должна выполняться перед повторной компиляцией или если требуется удалить некоторые файлы в случае недостатка места на жестком диске.
make distclean
Команда make distclean используется для удаления скомпилированных двоичных файлов и для приведения папки исходного кода в начальное состояние, в каком она была после извлечения из архива.
make update
Команда make update используется для замены существующего кода на обновленный код с SVN-сервера Digium. Если исходный код был загружен с FTP-сервера, будет получено уведомление об этом.
make webvmail
Сценарий Asterisk Web Voicemail используется для предоставления графического интерфейса, предназначенного для управления учетной записью голосовой почты, что позволяет взаимодействовать с голосовой почтой удаленно с веб-броузера.
При выполнении команды make webvmail в папку cgi-bin/ вашего HTTP- сервера будет помещен сценарий Asterisk Web Voicemail. Если имеются специальные политики безопасности, необходимо учитывать, что эта программа использует сценарий на Perl setuid root. Установка будет выполнена только в CentOS или Fedora, поскольку в других дистрибутивах путь к папкам cgi-bin/ может быть иным. (Конечно, это можно изменить. На момент написания данной книги для этого необходимо было отредактировать переменную HTTP CFGDIR в строке 133
Makefile.)
make progdocs
По команде make progdocs с помощью программы doxygen из комментариев, внесенных в исходный код разработчиком, будет создана документация. Чтобы это было возможным, в системе должна быть установлена соответствующая программа doxygen. Заметьте, doxygen предполагает, что исходный код хорошо документирован, а это, к сожалению, не всегда так, хотя за последнюю пару лет было опубликовано очень много материалов по этому вопросу! Информация, содержащаяся в системе doxygen, будет полезна только разработчикам.
make config
По команде make config в папки /etc/rc.d/init.d или /etc/init.d, если таковые будут обнаружены, устанавливаются сценарии запуска в стиле дистрибутива Red Hat. Если эти папки существуют, сценарии устанавливаются с правами доступа к файлам 755. Если сценарий определяет, что папка /etc/rc.d/init.d/ существует, выполняется также команда chkconfig --add asterisk, по которой Asterisk будет добавлена в список автозагрузки. Однако в дистрибутивах, использующих только папку /etc/init.d/, этого сделано не будет. Выполнение команды make config никак не повлияет на уже запущенный процесс Asterisk, но запустит его, если он еще не выполняется.
В настоящее время этот сценарий полезен только в системе на базе Red Hat, хотя в папке ./contrib./init.d/ папки исходного кода Asterisk можно найти сценарии запуска и для других дистрибутивов (таких, как Gentoo, Mandrake и Slackware).
Использование предварительно скомпилированных двоичных файлов
Задокументированный процесс установки Asterisk предполагает, что пользователь самостоятельно компилирует исходный код. Однако некоторые дистрибутивы Linux (такие, как Debian) включают предварительно скомпилированные двоичные файлы Asterisk. При наличии таких двоичных файлов пользователи могли бы устанавливать Asterisk с помощью диспетчеров пакетов, которые предоставляются такими дистрибутивами (например, apt-get для Debian и portage для Gentoo[49]). Но можно заметить, что многие из этих предварительно скомпилированных двоичных файлов довольно устаревшие и не соответствуют новейшим разработкам Asterisk.
Наконец, действительно существуют основные предварительно скомпилированные двоичные файлы Asterisk, которые можно загрузить и установить на любом выбранном дистрибутиве Linux. Однако применение таких двоичных файлов на самом деле не сэкономит много времени. Кроме того, мы пришли к выводу, что компиляция Asterisk при каждой установке не является слишком обременительной задачей. Мы верим, что лучший способ установки Asterisk - компиляция из исходного кода, поэтому в данной книге не уделяется много внимания предварительно скомпилированным двоичным файлам. Кроме того, разве вы не хотите быть 133[50]? В следующей главе будет рассмотрено, как с нуля конфигурировать Asterisk и несколько типов каналов.