Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
• WAV.
• plaw.
• alaw.
• GSM.
• G.729.
• G.722 (широкополосный, 16-разрядный).
На момент написания данной книги пакеты Core Sound доступны на следующих языках:
• Английский.
• Испанский.
• Французский.
Для любых звуков, определенных в окне выбора компонентов сборки, при установке система загрузит соответствующие файлы с FTP-сервера Digium. Размер этих файлов варьируется в диапазоне от 2 до 27 Мб, об этом следует помнить при установке в автономном режиме или загрузке по медленным и дорогим линиям
Другие полезные дополнения
Пакет asterisk-addons содержит код, обеспечивающий возможность хранения записей параметров вызовов (Call Detail Records, CDRs) в базе данных MySQL. Также в нем имеется код, с помощью которого Asterisk может воспроизводить звуковые файлы в формате MP3 (что мы рекомендуем делать только в очень мощной системе с небольшим количеством телефонов). Кому-то также может быть интересен интерпретатор, который позволяет загружать Perl-сце- нарии в память на время активности процесса Asterisk (что может быть очень полезно при поступлении большого количества AGI- обращений к интерпретатору Perl). В asterisk-addons помещаются программы, недостаточно тщательно разработанные для интеграции с Asterisk или те, вопросы лицензирования которых не позволяют реализовать их непосредственно в исходном коде Asterisk. По адресу http://ftp.digium.com/pub/asterisk/g729/ располагаются код и программа регистрации специализированного кодека G. 729A. Если установлены аудиопакеты g729, Asterisk сможет связываться с устройствами, поддерживающими кодек G.729A, но не способна преобразовывать сигналы в другие кодеки, пока не получит лицензию на использование G.729A.
Распространенные проблемы компиляции Asterisk
Существует множество проблем компиляции, с которыми часто сталкиваются пользователи. Далее рассматриваются некоторые самые распространенные из них и способы их решения.
Сначала давайте рассмотрим некоторые ошибки, которые могут возникнуть при выполнении сценария configure.
configure: error: no acceptable C compiler found in $PATH
Если при попытке выполнения сценария configure возникает такая ошибка, требуется установить компилятор gcc и его зависимости:
configure: error: no acceptable C compiler found in $PATH
(configure: ошибка: не найден необходимый компилятор C в $PATH)
Для gcc необходимы следующие пакеты:
• gcc
• cpp
• glibc-headers
• glibc-devel
• glibc-kernheaders
Эти пакеты могут быть установлены вручную путем копирования файлов с диска используемого дистрибутива или посредством диспетчера пакетов yum с помощью команды yum install gcc.
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
Эта ошибка возникает, если в системе не обнаружен препроцессор С++. Требуется установить пакет gcc-c++ и его зависимости:
configure: error: C++ preprocessor "/lib/cpp" fails sanity check (configure: ошибка: препроцессор С++ "/lib/cpp" не проходит проверку на готовность к работе)
Препроцессор gcc-c++ требует наличия следующих пакетов; устанавливаются они путем выполнения команды yum install gcc-c++:
• gcc-c++
• libstdc++-devel
configure: error: *** termcap support not found
Следующая ошибка может возникнуть при запуске сценария configure, если не установлен пакет libtermcap-devel:
configure: error: *** termcap support not found (configure: ошибка: поддержка *** termcap не выявлена) Для компиляции Asterisk необходим следующий файл; его можно установить, выполнив команду yum install libtermcap-devel:
• libtermcap-devel
Zaptel
Ошибки могут возникать и при компиляции Zaptel. Здесь представлены некоторые наиболее распространенные проблемы и способы их решения. Если ниже вы не находите ошибки, с которой столкнулись, посмотрите предыдущий раздел, может быть, вы найдете ее там.
make: cc: Command not found
Следующее сообщение об ошибке будет получено при попытке сборки Zaptel без компилятора gcc:
make: cc: Command not found make: *** [gendigits.o] Error 127
(make: сс: Команда не найдена
make: *** [gendigits.o] Ошибка 127)
Убедитесь, что gcc и его зависимости установлены. Больше информации можно найти в подразделе «configure: error: no acceptable C compiler found in $PATH» предыдущего раздела.
FATAL: Module wctdm/fxs/fxo not found
Для плат TDM400P необходима PCI-шина версии 2.2. При попытке загрузить драйверы телефонии Zapata с более старой версией могут возникать следующие ошибки:
• При попытке загрузить драйвер wctdm может появиться такое сообщение об ошибке:
FATAL: Module wctdm not found
(ФАТАЛЬНАЯ ОШИБКА: Модуль wctdm не найден)
• При попытке загрузить драйвер wctdm или wcfxo может появиться такое сообщение об ошибке:
ZT_CHANCONFIG failed on channel 1: No such device or address (6) FATAL: Module wctdm not found
(Не удалось выполнить ZT_CHANCONFIG для канала 1: Такое устройство или адрес не обнаружены (6) ФАТАЛЬНАЯ ОШИБКА: Модуль wctdm не найден) Единственный способ исправить эти ошибки - использовать более новую системную плату, которая поддерживает PCI версии 2.2:
• Также эти ошибки могут возникнуть, если блок питания не подключен в разъем Molex на плате TDM400P.
Неразрешимая символическая ссылка при загрузке ztdummy
Драйвер ztdummy требует наличия доступного контроллера UHCI USB в ядрах Linux 2.4 (USB-котроллер не является обязательным требованием для ядер Linux 2.6, потому что они способны генерировать опорный синхросигнал частотой 1 кГц). Существуют контроллеры вторичного типа, известные как OHCI-контроллеры[51], которые несовместимы с драйвером ztdummy. Если контроллер UHCI USB недоступен в ядрах Linux 2.4, возникнет следующая ошибка:
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol unlink_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol alloc_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol delete_desc
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/mlsc/ztdummy.o: unresolved symbol uhci_devices
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol uhci_interrupt
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol fill_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol insert_td_horizontal
/lib/modules/2.4.22/misc/ztdummy.o: insmod /lib/modules/2.4.22/misc/ ztdummy.o failed
/lib/modules/2.4.22/misc/ztdummy.o: insmod ztdummy failed Убедиться в наличии соответствующего USB-контроллера и связанных с ним драйверов можно с помощью команды lsmod:
# lsmod
Module Size Used by
usb_uhci 26412 0
usbcore 79040 1 [hid usb-uhci]
Как можно увидеть в приведенном выше примере, мы проверяем, загружены ли модули usbcore и usb_uhci. Если эти модули не загружены, необходимо убедиться, что USB в BIOS активирован и что эти модули есть в наличии.
Если драйверы USB не загружены, все равно с помощью команды dmesg есть возможность проверить тип имеющегося USB-контроллера:
# dmesg | grep -i usb
Наличие контроллера UHCI USB подтвердят следующие строки: