355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Джим Меггелен » Asterisk™: будущее телефонии Второе издание » Текст книги (страница 8)
Asterisk™: будущее телефонии Второе издание
  • Текст добавлен: 7 октября 2016, 17:17

Текст книги "Asterisk™: будущее телефонии Второе издание"


Автор книги: Джим Меггелен


Соавторы: Джаред Смит,Лейф Мадсен

Жанр:

   

ОС и Сети


сообщить о нарушении

Текущая страница: 8 (всего у книги 41 страниц)

Загрузка модулей 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.

/etc/asterisk/

В папке /etc/asterisk/ располагаются конфигурационные файлы Asterisk. Однако один файл, zaptel.conf, находится в папке /etc/. Аппаратные средства Zaptel изначально были разработаны Джимом Диксоном (Jim Dixon), сотрудником компании Zapata Telephony Group, как подходящее и доступное по цене оборудование для компьютерной телефонии. Asterisk использует это оборудование, но любое другое ПО также может воспользоваться устройствами и драйверами Zaptel. Поэтому конфигурационный файл zaptel.conf вынесен из папки /etc/ asterisk/.

/usr/lib/asterisk/modules/

В папке /usr/lib/asterisk/modules/ располагаются все загружаемые модули Asterisk. В этой папке находятся различные приложения, кодеки, форматы и каналы, используемые Asterisk. По умолчанию Asterisk загружает все эти модули при запуске системы. Любые неиспользуемые модули можно отключить в файле modules.conf, но при этом необходимо помнить, что некоторые модули необходимы Asterisk или являются зависимостями других модулей. Попытка загрузить Asterisk без этих модулей приведет к ошибке при запуске.

/var/lib/asterisk

В папке /var/lib/asterisk/ находится файл astdb и ряд подпапок. Файл astdb содержит информацию локальной базы данных Asterisk, что несколько напоминает реестр Microsoft Windows. База данных Asterisk – простая реализация на базе версии 1 Berkeley BD. Один из исходных файлов Asterisk, db.c, информирует, что эта версия была выбрана по следующей причине: «Реализация DB3 создана по альтернативной лицензии, несовместимой с общедоступной лицензией (General Public License, GPL). Таким образом, чтобы не усложнять лицензирование Asterisk, было решено использовать версию 1, поскольку она выпущена по лицензии BSD».

Папка /var/lib/asterisk/ включает следующие подпапки: agi-bin/

В папке agi-bin/ находятся специальные сценарии, которые могут взаимодействовать с Asterisk через различные встроенные приложения AGI. Подробнее об AGI рассказывается в главе 8. firmware/

Папка firmware/ содержит встроенное ПО для различных совместимых с Asterisk устройств. В настоящее время в этой папке имеется только подпапка iax/, в которой находится двоичное отображение встроенного ПО для IAXy производства Digium.

images/

Приложения, которые соединяются с каналами, поддерживающими изображения, ищут папку images/. Большинство каналов не поддерживают передачу изображений, поэтому эта папка используется редко. Однако если появится больше устройств, поддерживающих и использующих изображения, эта папка станет более значимой. keys/

Asterisk может использовать систему открытых/закрытых ключей для аутентификации равноправных участников сети, которые соединяются с модулем, используя цифровую подпись RSA. Если поместить открытый ключ такого участника сети в свою папку keys/, этот участник сети сможет быть аутентифицирован каналами, поддерживающими данный метод (такими, как каналы IAX2). Закрытый ключ никогда не предоставляется. Справедливо и обратное: вы можете предоставить свой открытый ключ равноправным участникам сети, что позволит вам проходить аутентификацию с использованием своего закрытого ключа. И открытый, и закрытый ключи – файлы с расширениями .pub и .key соответственно – хранятся в папке keys/. mohmp3/

Если Asterisk сконфигурирована на воспроизведение музыки при ожидании, приложения, использующие эту функцию, ведут поиск файлов в формате MP3 в папке mohmp3/. Asterisk несколько требовательна к форматированию МР3-файлов, поэтому следует использовать кодирование с постоянной скоростью передачи данных (constant bitrate, CBR) и удалять теги ID3 из файлов. sounds/

Все доступные для Asterisk голосовые сообщения находятся в папке sounds/. Основные сообщения, поставляемые с Asterisk, объединены в файл sounds.txt, размещающийся в папке исходного кода Asterisk. Дополнительные подсказки находятся в файле sounds-extra. txt, расположенном в той папке, в которую ранее в этой главе был извлечен из архива пакет asterisk-sounds.

/var/spool/asterisk/

Папка Asterisk spool имеет несколько подпапок, включая dictate/, meetme/, monitor/, outgoing/, system/, tmp/ и voicemail/ (рис. 3.4). Asterisk отслеживает папку outgoing на наличие текстовых файлов, содержащих информацию запросов вызовов. Эти файлы позволяют производить вызов, просто перемещая правильно структурированный файл в папку outgoing/.

Файлы вызовов, помещенные в папку outgoing/, могут содержать полезную информацию, такую как Context (Контекст), Extension (Расширение) и Priority (Приоритетность), соответственно которой должен начинаться ответ на вызов, или просто приложение и его аргументы.

Рис. 3.4. Структура папки /var/spool/asterisk/

Также в них можно задать переменные и определить код учетной записи для Call Detail Records (Записи параметров вызовов). Более подробная информация об использовании файлов вызовов представлено в главе 9. dictate/ – папка, в которой приложение Dictate() ищет файлы по умолчанию.

meetme/ – папка, в которой сохраняются записи конференций, организованных приложением MeetMe().

Записи, полученные с помощью любого приложения для записи «в одно касание» (флаги w и W для приложения Dial()), MixMonitor() или Monitor(), хранятся в папке monitor/.

Папка system/ используется приложением System() для временного хранения данных.

Папка tmp/, как это ни смешно, используется для хранения временной информации. Некоторым приложениям может потребоваться место для записи файлов перед копированием их окончательных версий в постоянное местоположение. Это предотвращает попытки одновременной записи и чтения файла разными процессами. Все сообщения голосовой почты и приветствия пользователя находятся в папке voicemail/. Для добавочных номеров, заданных в voicemail. conf и по крайней мере один раз зарегистрировавшихся в системе, в voicemail/ создаются подпапки.

/var/run/

Папка /var/run/ содержит идентификаторы процессов (Process ID, PID) для всех активных процессов системы, включая Asterisk (как определено в файле asterisk.conf). Обратите внимание, что в разных ОС для этих целей могут использоваться различные папки.

/var/log/asterisk/

Папка /var/log/asterisk/ является местом хранения журнала Asterisk. Редактируя файл logger.conf, находящийся в папке /etc/asterisk/, можно управлять типом информации, протоколируемой в различных файлах. Базовая конфигурация файла logger.conf рассматривается в приложении D.

/var/log/asterisk/cdr-csv

Папка /var/log/asterisk/cdr-csv используется для хранения записей параметров вызовов (CDR) в формате CSV (с разделяющими запятыми). По умолчанию информация хранится в файле Master.csv, но для отдельных учетных записей с помощью опции accountcode можно организовать хранение их CDR в отдельных файлах (подробнее об этом рассказывается в приложении А).

AsteriskNOW™

В следующих разделах дается последовательное введение в программный продукт AsteriskNOW, который предоставляет собой завершенную систему офисной АТС и графическое окно настройки конфигурации – все в одном!

Что такое AsteriskNOW

AsteriskNOW – это программное устройство с открытым исходным кодом, специализированный дистрибутив Linux, включающий Asterisk, графический пользовательский интерфейс (GUI) Asterisk и все остальное программное обеспечение, необходимое системе Asterisk. С помощью GUI Asterisk можно без труда сконфигурировать систему Asterisk, даже не являясь техническим специалистом.

Примечание: полный дистрибутив программного продукта предоставляется по общедоступной лицензии (http:// www.gnu.org/copyleft/gpl. html) и может на законных основаниях использоваться в любых целях, в том числе и коммерческих.

Прежде чем начать

Установка AsteriskNOW проста, потому что этот дистрибутив включает только компоненты, необходимые для выполнения, отладки и сборки Asterisk. Больше не надо думать о версиях ядра и зависимостях пакетов. AsteriskNOW – специальный дистрибутив Linux для Asterisk, созданный на базе rPath Linux.

Что понадобится

• Система, в которой можно установить AsteriskNOW.

• Устройство для записи CD и соответствующее ПО.

• Соединение с Интернетом.

• Броузер Firefox.

В настоящее время GUI Asterisk для оптимальной производительности необходим броузер Firefox (доступен по адресу http://www.mozilla.com/en-US/). Более широкая поддержка броузеров будет доступна в будущих версиях.

Установка

При подготовке и установке нового дистрибутива следует выполнять все обычные меры

предосторожности. Экспресс-установка (Express Installation) удалит с жесткого диска все существующие операционные системы. Чтобы попробовать поработать с AsteriskNOW, но сохранить при этом имеющуюся систему, необходимо использовать одну из альтернативных установок (обсуждаются в разделе «Альтернативные установки»). Информация о том, где можно найти больше советов и рекомендаций по Asterisk и rPath, приведена в разделе «Дополнительные источники» в конце данной главы.

Быстрая установка

Основная установка AsteriskNOW на самом деле довольно проста и обеспечивает возможность быстро установить и получить работоспособную систему. Эта быстрая установка может использоваться, если нет возражений против принятия настроек по умолчанию. Вся справочная информация, которая может понадобиться, представлена в окнах установки. Более детальную информацию о процедуре установки можно найти в разделе «Развернутая процедура» ниже.

• Скачайте ISO-файл AsteriskNOW (http://www.asterisknow.org/ downloads) и создайте из него CD-образ. Этот шаг необходим для того, чтобы можно было начать установку. Процесс создания CD-обра– за может быть различным в зависимости от используемого ПО для записи CD.

Вставьте созданный CD AsteriskNOW в устройство CD-ROM ПК.

• Перезапустите ПК и выполните загрузку с CD. На экране появится основное меню загрузки AsteriskNOW с несколькими опциями:

• Чтобы установить или обновить систему в графическом режиме, нажмите клавишу Enter.

• Чтобы установить или обновить систему в текстовом режиме Linux, введите команду linux text и затем нажмите клавишу Enter.

Рекомендуется и используется по умолчанию графический режим. Если команда не была введена, установка продолжается в графическом режиме.


4. С этого момента действуйте согласно понятным без дополнительных объяснений подсказкам, появляющимся на экране, которые помогут выполнить установку.

5. По завершении установки система предложит выполнить перезагрузку. После перезагрузки на экран будет выведен URL для доступа к GUI Asterisk.

6. Теперь все готово для конфигурации и запуска AsteriskNOW.

Развернутая процедура

1. Скачайте ISO-файл AsteriskNOW (http://www.asterisknow.org/ downloads) и создайте из него CD-образ. Этот шаг необходим для того, чтобы можно было начать установку. Процесс создания CD-обра– за может быть различным в зависимости от используемого ПО для записи CD.

2. Вставьте созданный CD AsteriskNOW в устройство CD-ROM.

3. Перезапустите ПК и выполните загрузку с CD. На экране появится основное меню загрузки AsteriskNOW с несколькими опциями:

• Чтобы установить или обновить систему в графическом режиме, нажмите клавишу Enter.

• Чтобы установить или обновить систему в текстовом режиме Linux, введите команду linux text и затем нажмите Enter.

Рекомендуется и используется по умолчанию графический режим. Если команда не была введена, установка продолжается в графическом режиме.

После недолгой обработки на экран выводится окно установки. Первое окно выглядит следующим образом:

4. В первом окне установки можно найти сведения о версии или справочную информацию. Когда будете готовы, щелкните по кнопке Next (Далее), чтобы продолжить установку.

В следующем окне установки производится выбор типа установки. Предлагаются два типа установки: Express Installation (Экспресс установка)

Экспресс-установка обеспечит установку всего ПО, необходимого для установки Asterisk. В этом случае устанавливаются инструменты отладки и разработки.

Expert (Эксперт)

Этот тип установки следует выбирать, если вы хотите полностью контролировать все опции установки. Сюда входит выбор пакета ПО, разбиение на разделы и выбор языка.

Типом установки по умолчанию является экспресс-установка. Этот тип установки предназначен для тех, кто владеет английским языком и не желает вдаваться в тонкости процесса установки. Если вы не читаете по-английски и/или хотите контролировать детали установки, выбирайте эксперт-установку. Здесь обсуждается экспресс-установка.

5. Выберите тип установки и щелкните по кнопке Next (Далее).

На экран выводится окно Automatic Partitioning (Автоматическое разбиение на разделы). В нем предлагается несколько опций, которые необходимо определить, прежде чем ПО разобьет на разделы жесткий диск. Вы можете выбрать, какие данные (если таковые имеются) будут удалены из системы и как будет разбит на разделы жесткий диск. Предлагаются следующие варианты: Remove AH Linux Partitions (Удалить все разделы Linux)

Выбор этой опции обеспечит уничтожение всех разделов Linux, созданных при предыдущих установках Linux.

Remove AH Partitions (Удалить все разделы)

Эту опцию следует выбрать, если требуется удалить все разделы системы, включая те, которые были созданы другими операционными системами (такими, как Windows).

Keep AH Partitions (Сохранить все разделы)

Эту опцию следует выбрать, если требуется сохранить все текущие данные и разделы. Для реализации Asterisk потребуется достаточно пространства на жестком диске. 20 Гб – реально возможный минимум, но действительный минимальный объем зависит от требований создаваемой системы.

В большинстве случаев выбирается вариант Remove AH Partitions (Удалить все разделы). Полностью отдать жесткий диск под реализацию Asterisk – лучший способ гарантировать максимальную производительность. Установите флажок Review (Просмотр) в окне Automatic Partitioning (Автоматическое разбиение на разделы), если хотите просмотреть или изменить разбиение на разделы.

6. В окне Automatic Partitioning (Автоматическое разбиение на разделы) отображается список доступных жестких дисков. Установите флажок напротив жесткого диска (или нескольких жестких дисков), который вы хотите использовать для системы. Щелкните по кнопке Next (Далее), чтобы продолжить установку.

• Если выбрана опция Remove All Partitions (Удалить все разделы) или Remove All Linux Partitions (Удалить все разделы Linux), на экране появится диалоговое окно с просьбой подтвердить желание продолжать установку. Щелкните по кнопке Yes (Да), чтобы продолжить, или No (Нет), чтобы изменить выбор относительно разделов.

Если в окне Automatic Partitioning (Автоматическое разбиение на разделы) была включена опция Review (Просмотр), на экран будет выведено окно с созданными разделами. В этом окне можно изменять разделы. Чтобы продолжить, щелкните по кнопке Next (Далее).

7. На экран выводится окно Network Configuration (Конфигурация сети).

• В окне Network Configuration (Конфигурация сети) можно сконфигурировать сетевые устройства, связанные с системой. Программа установки автоматически выявляет все сетевые устройства, подсоединенные к системе, и отображает их в списке Network Devices (Сетевые устройства). Можно принять автоматически выбранное программой установки устройство (либо несколько устройств) или редактировать выбор с помощью опции Edit (Редактировать).

• Задайте значение Hostname (Имя хоста). Для этого выберите вариант Automatically via DHCP (Автоматически с помощью протокола DHCP) или Manually (Вручную) и введите имя хоста для своей системы. Задав имя, щелкните по кнопке Next (Далее), чтобы продолжить.

8. На экран выводится окно Time Zone Selection (Выбор часового пояса).

Окно Time Zone Selection (Выбор часового пояса) предлагает на выбор несколько вариантов часового пояса для вашей установки. Можно воспользоваться картой мира, на которой показаны основные города, списком районов и часовых поясов или опцией System Clock Uses UTC (Системные часы используют UTC [52]52
  UTC (Universal Time Coordinated) – всемирное координированное время. – Примеч. науч. ред.


[Закрыть]
), чтобы использовать системное время. Выбрав часовой пояс, щелкните по кнопке Next (Далее).

9. На экран выводится окно Administrator Password (Пароль администратора).

• Необходимо задать пароль для учетной записи администратора AsteriskNOW, admin. Этот пароль будет использоваться для входа в систему и GUI Asterisk. Задайте и подтвердите пароль администратора и затем щелкните по кнопке Next (Далее), чтобы продолжить.

• На экран выводится окно About to Install (Готов начать установку), предоставляющее возможность отложить или отменить процесс установки. Если вы готовы продолжать установку, щелкните по кнопке Next (Далее).

10. На экран выводится окно Installing Packages (Устанавливаются пакеты).

• В течение всего процесса установки AsteriskNOW на экране будет отображаться окно Installing Packages (Устанавливаются пакеты). Установка займет несколько минут.

• По завершении установки система попросит выполнить перезагрузку. Выньте из устройства созданный вами установочный диск и щелкните по кнопке Reboot (Перезагрузка). После перезагрузки на экране появится URL для доступа к GUI Asterisk.


    Ваша оценка произведения:

Популярные книги за неделю