KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программное обеспечение » Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джим Меггелен, "Asterisk™: будущее телефонии Второе издание" бесплатно, без регистрации.
Перейти на страницу:

# service zaptel start

# service asterisk start

Каждый сценарий запуска имеет несколько опций, с помощью которых можно управлять офисной АТС или драйверами. В табл. 3.2 и 3.3 приведены команды, выполняемые сценарием (но их можно было бы вводить самостоятельно в интерфейсе командной строки (Command- Line Interface, CLI)).

Таблица 3.2. Опции сценария запуска Asterisk


service asterisk <опция> Эквивалент для ввода вручную start asterisk stop killproc asterisk restart stop; start reload asterisk -rx "reload" status ps aux | grep [a]sterisk

Таблица 3.3. Опции сценария запуска Zaptel


service zaptel <опция> Эквивалент для ввода вручную start modprobe zaptel; modprobe <модуль>; /sbin/ztcfg stop rmmod ztdummy; rmmod zaptel restart stop; start reload /sbin/ztcfg

Загрузка модулей Zaptel без использования сценариев

В данном разделе будет кратко рассмотрена загрузка модулей zaptel и ztdummy без сценария запуска CentOS. Если модуль zaptel будет использоваться только для модуля ztdummy, он не требует никакой конфигурации. Если планируется загружать модуль ztdummy в качестве источника временных интервалов (и таким образом, в системе не будут использоваться никакие PCI-устройства), самое время загрузить оба драйвера.

Системы, выполняющие udevd

В эпоху юности Linux системная папка /dev/ заполнялась списком устройств, с которыми система потенциально могла взаимодействовать. В то время в этом списке было примерно 18 000 устройств. Все изменилось с появлением devfs, обеспечившего динамическое создание файлов устройств, которые активно используются системой. Некоторые последние выпущенные дистрибутивы включают программу-демон udev для динамического заполнения папки /dev/ списками устройств. Чтобы Zaptel и другие драйверы устройств могли работать с PCI-уст- ройствами, установленными в системе, необходимо определить несколько правил. В своем любимом текстовом редакторе откройте файл правил udevd. В CentOS, например, этот файл находится по адресу /etc/udev/rules.d/50-udev.rules. В конце файла правил необходимо добавить следующие строки:

# Раздел для zaptel device

KERNEL="zapctl", NAME="zap/ctl"

KERNEL="zaptimer", NAME="zap/timer"

KERNEL="zapchannel", NAME="zap/channel"

KERNEL="zappseudo", NAME="zap/pseudo"

KERNEL="zap[0-9]*", NAME="zap/%n"


Сохраните файл и перезагрузите систему, чтобы настройки вступили в действие.

Возможно, вам не придется ничего редактировать в своей системе, потому что сценарий установки Zaptel попытается определить все правила сам; однако мы приводим эти рекомендации здесь для тех систем, которые конфигурируются не автоматически.

Загрузка Zaptel

Модуль zaptel должен быть загружен до того, как будут загружены и использованы все остальные модули. Следует отметить, что, если модуль zaptel будет использоваться с PCI-устройствами, перед его загрузкой необходимо выполнить конфигурирование в файле /etc/zaptel. conf. (Конфигурация zaptel.conf для использования с аппаратными средствами обсуждается в главе 4.) Если zaptel предназначен только для доступа к ztdummy, его можно загрузить с помощью команды modprobe следующим образом:

# modprobe zaptel

Если все проходит нормально, на экран ничего не выводится. Проверить успешность загрузки модуля zaptel можно с помощью команды lsmod. В результате ее выполнения должна быть возвращена строка с именем модуля и указанием занимаемого им объема оперативной памяти, например:

# lsmod | grep zaptel

zaptel 201988 0

Загрузка ztdummy

Модуль ztdummy - это интерфейс устройства, обеспечивающий генерирование временных интервалов. Благодаря ему Asterisk, в свою очередь, может предоставлять временные интервалы различным приложениям и функциям, которым это необходимо. Модуль ztdummy загружается после загрузки zaptel с помощью команды modprobe:

# modprobe ztdummy

Если загрузка ztdummy проходит успешно, на экран ничего не выводится. Проверить, что ztdummy загружен и используется модулем zaptel, можно с помощью команды lsmod. Следующий вывод получен на компьютере, выполняющем ядро 2.6:

# lsmod | grep ztdummy

Module Size Used by

ztdummy 3796 0

zaptel 201988 1 ztdummy

На компьютере, на котором выполняется ядро 2.4, в выводе, полученном в результате выполнения lsmod, будет показано, что ztdummy использует модуль usb-uhci:

# lsmod | grep ztdummy

Module Size Used by

ztdummy 3796 0

zaptel 201988 0 ztdummy

usb-uhci 24524 0 ztdummy

Загрузка libpri без использования сценария

Библиотеки libpri не требуется загружать, как модули. Asterisk ищет libpri во время компиляции и, если находит их, конфигурируется на использование библиотек самостоятельно.

Запуск Asterisk без использования сценариев

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

Linux. Точно так же Asterisk можно запускать и перезапускать и в системе, использующей сценарии init.d. Однако предпочтительнее запускать Asterisk с помощью сценария safe_asterisk.

Команды консоли

Двоичный файл Asterisk по умолчанию располагается по адресу /usr/ sbin/asterisk. Если запустить файл /usr/sbin/asterisk, Asterisk загрузится как программа-демон. Существует также несколько ключей, которые позволяют (повторно) запускать CLI Asterisk, задавать степень детальности вывода CLI и создавать дампы ядра в случае сбоя Asterisk (для отладки с помощью gdb). Чтобы увидеть все возможные опции, запустите Asterisk с ключом -h:

# /usr/sbin/asterisk -h Вот список наиболее часто используемых опций:

-c

Консоль. Эта опция обеспечит запуск Asterisk как пользовательского процесса (не сервера) и предоставит окно командной строки Asterisk. Она пригодится при настройке параметров запуска, но не должна использоваться при нормальной работе системы (если Asterisk уже выполняется, эта опция не сработает и будет выдано сообщение об ошибке).

-v

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

-g

Дамп ядра. При неожиданном сбое Asterisk этот ключ обусловил бы создание файла ядра для последующей его трассировки с помощью gdb. Обычно этот ключ не используется в производственной эксплуатации, а применяется только в том случае, если пишется код для Asterisk и требуется отладить все возникающие сбои.

-r

Удаленный. Используется для удаленного повторного подключения к уже выполняющемуся процессу Asterisk. (Процесс является удаленным с позиции консоли, подключающейся к нему, но фактически процесс выполняется локально на том же компьютере. Это не имеет ничего общего с подключением к удаленному процессу по сети с использованием, например, протокола IP, поскольку такое взаимодействие не поддерживается.) Это самая распространенная опция. Именно она использовалась бы для соединения с Asterisk в системе, в которой она выполняется как программа-демон/сервис, запущенная в момент запуска системы.

-x "<команда CLI>"

Выполнить. Использование этой команды в сочетании с опцией -r позволяет выполнять команду CLI без необходимости подключения к CLI и ввода команды вручную. В качестве примера можно привести команду на повторный запуск, для инициации которого пришлось бы ввести в командной строке asterisk -rx "reload". Рассмотрим некоторые примеры. Запустить Asterisk как пользовательскую программу (потому что выполняется настройка конфигурационного файла и придется запускать и останавливать выполнение несколько раз) и задать уровень детальности сообщений 3 можно, используя следующую команду:

# /usr/sbin/asterisk -cvvv

Если процесс Asterisk уже выполняется (например, если Asterisk сконфигурирована как часть процесса запуска системы), используется ключ восстановления соединения:

# /usr/sbin/asterisk -vvvr

Если требуется, чтобы Asterisk выводила файл ядра после сбоя, при запуске Asterisk можно использовать ключ -g:

# /usr/sbin/asterisk -g

Чтобы выполнить команду, не подключаясь к CLI и не вводя ее (возможно, для того, чтобы использовать ее в сценарии), можно применять ключ -x в сочетании с ключом -r:

# /usr/sbin/asterisk -rx "restart now"

# /usr/sbin/asterisk -rx "database show"

# /usr/sbin/asterisk -rx "sip show peers"

Если возникают сбои и хотелось бы записывать информацию в файл отладки, используется следующая команда:

# /usr/sbin/asterisk -vvvvc | tee /tmp/debug.log

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

Папки, используемые Asterisk

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*