Читаем Asterisk™: будущее телефонии Второе издание полностью

exten => _2XXX,n,Dial(IAX2/toronto/${EXTEN}) exten => _2XXX,n,Hangup

[toronto_incoming] include => internal

Файл extensions.conf для Осаки:

[globals]

[general]

autofallthrough=yes [default] [incoming_calls] [phones]

include => internal include => remote

[internal]

exten => _2XXX,1,NoOp

exten => _2XXX,n,Dial(IAX2/${EXTEN},30)

exten => _2XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail) exten => _2XXX,n,Hangup

[remote]

exten => _1XXX,1,NoOp

exten => _1XXX,n,Dlal(IAX2/osaka/${EXTEN})

exten => _1XXX,n,Hangup

[osaka_lncomlng] include => internal

Использование шаблонов в конфигурационных файлах

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

Скажем, имеется 20 SIP-телефонов, практически идентичных с точки зрения конфигурации. Согласно документации они должны описываться путем задания параметров для каждого телефона в отдельности. Фрагмент подобного файла sip.conf мог бы выглядеть так:

[1000]

type=friend

context=internal

host=dynamic

disallow=all

allow=ulaw

dtmfmode=rfc2833

maibox=1000

secret=AllYourSetsAreBelongToUs

[1001]

type=friend

context=internal

host=dynamic

disallow=all

allow=ulaw

dtmfmode=rfc2833

maibox=1001

secret=AllYourSetsAreBelongToUs

[1002]

type=friend

context=internal

host=dynamic

disallow=all

allow=ulaw

dtmfmode=rfc2833

maibox=1002

secret=AllYourSetsAreBelongToUs

Слишком много ввода текста, копирования и вставки, правда? А что если требуется изменить имя контекста для телефонов. Не очень удобно, не так ли?

Вводим шаблон. Давайте создадим таких же участников сети типа friend, как делали выше, только на этот раз используя шаблон:

[sets](!) ; <== обратите внимание, восклицательный знак ; взят в круглые скобки. Это признак шаблона. type=friend context=internal host=dynamic disallow=all allow=ulaw dtmfmode=rfc2833 secret=AllYourSetsAreBelongToUs

1000] (sets) ; <== обратите внимание, имя шаблона взято

; в круглые скобки. Все настройки этого шаблона ; будут унаследованы.

maibox=1000

1001] (sets) maibox=1001

1002] (sets) maibox=1002

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

Отладка

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

Подключение к консоли

Чтобы подключиться к консоли Asterisk, можно или запустить сервер непосредственно из консоли (в этом случае невозможно будет выйти из консоли, не завершив работу Asterisk), или запустить Asterisk как демон и затем подключиться к удаленной консоли.

Чтобы запустить процесс Asterisk непосредственно из консоли, используйте флаг консоли: # /usr/sbin/asterisk -c

Чтобы подключиться к удаленной консоли, сначала запустите демон, а затем выполните подключение, используя флаг -r:

# /usr/sbin/asterisk

# /usr/sbin/asterisk -r

Если какой-то модуль не загружается или Asterisk не загружается из- за какого-то модуля, запустите Asterisk с флагом -c, чтобы отслеживать статус загружаемых модулей. Например, если при попытке загрузить драйвер канала OSS (который позволяет использовать канал CONSOLE (консоль)) Asterisk не может открыть /dev/dsp, при запуске будет получено сообщение о такой ошибке:

WARNING[32174]: chan_oss.c:470 soundcard_init: Unable to open /dev/dsp:

No such file or directory

== No sound card detected -- console channel will be unavailable

== Turn off OSS support by adding 'noload=chan_oss.so' in /etc/asterisk/ modules.conf

WARNING[32174]: chan_oss.c:470 soundcard_init: Не получается

открыть /dev/dsp:

Файл или каталог не существует

== Звуковая карта не найдена - канал консоли будет недоступен

== Отключите поддержку OSS, добавив 'noload=chan_oss.so' в /etc/asterisk/modules.conf

Изменение детальности сообщений и включение отладки

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT