Джим Меггелен - Asterisk™: будущее телефонии Второе издание
WAIT FOR DIGIT времяожидания
Ожидает введения DTMF-кода в течение количества секунд, заданного для канала параметром времяожидания. Используйте -1 в качестве значения параметра времяожидания, если вы хотите блокировать вызов неопределенно долго. Возвращаемые значения: -1
Ошибка или сбой канала.
0
Время ожидания истекло.
значение
ASCII-значение цифры (если введена), в десятичной форме.
D
Конфигурационные файлы
Данное приложение является справочником по конфигурационным файлам, которые не были рассмотрены в предыдущих приложениях. Настройки VoIP-канала можно найти в приложении А. Справочные данные по диалплану приведены в приложении В.
Для каждого модуля Asterisk, который предполагается использовать, необходим конфигурационный файл. Эти файлы, .conf, содержат определения каналов, описывают внутренние сервисы, определяют местоположения других модулей или устанавливают связь с диалпланом. Для получения функциональной системы необязательно настраивать их все, а только те, которые необходимы для вашей конфигурации. Asterisk поставляется с образцами всех конфигурационных файлов, но Asterisk можно запустить, не имея ни одного из них. В этом случае система работать не будет, но это наглядно демонстрирует модульный принцип платформы.
Не найдя ни одного файла .conf, Asterisk примет некоторые решения относительно модулей. Например, всегда выполняются следующие шаги:
• Загружается журнал регистрации событий Asterisk, и события протоколируются в файле /var/log/asterisk/event_log.
• Регистрируются команды интерфейса Manager.
• Запускается ядро офисной АТС.
• Выделяется ряд RTP-портов от 5000 до 31000.
• Загружается несколько встроенных приложений, таких как
Answer(), Background^, GotoIf(), NoOp() и Set().
• Запускается динамический загрузчик, то есть механизм, ответственный за загрузку модулей, описанных в файле modules.conf.
Это приложение начинается с детального обсуждения конфигурационного файла modules.conf. Затем кратко рассматриваются другие файлы, которые, возможно, вам придется сконфигурировать для своей системы Asterisk.
modules.conf
Файл modules.conf управляет тем, какие модули загружаются или не загружаются при запуске Asterisk. Описывается это с помощью структур load => или noload =>.
Этот файл является ключевым компонентом для построения безопасной системы Asterisk: лучшей практикой считается загружать только необходимые модули.
Файл modules.conf всегда начинается с заголовка [modules] (модули). Asterisk может автоматически загружать все модули, содержащиеся в папке модулей, используя выражение autoload (автозагрузка), или загружать только те модули, которые указаны выражениями load =>. Мы рекомендуем вручную загружать только необходимые модули, но многие считают, что проще позволить Asterisk автоматически загрузить все, что она найдет в папке /usr/lib/asterisk/modules. После этого определенные модули можно исключить1 из загрузки с помощью выражений noload =>. Вот пример файла modules.conf:
[modules][modules] autoload=no задайте значение yes - и Asterisk будет загружать все модули, которые найдет в папке /usr/lib/asterisk/modulesload => res_adsi.so load => pbx_config.so ; Требует: ничего load => chan_iax2.so ; Требует: res_crypto.so, ; res_features.so load => chan_sip.so ; Требует: res_features.so load => codec_alaw.so ; Требует: ничего load => codec_gsm.so ; Требует: ничего load => codec_ulaw.so ; Требует: ничего load => format_gsm.so ; Требует: ничего
1 С появлением новой системы выбора компонентов сборки следовать лучшей практике необязательно, если в первую очередь выполняется сборка только необходимых модулей.
load => app_dial.so ; Требует: res_features.so, ; res_musiconhold.so
Поскольку мы предполагаем, что сборка Asterisk выполнена в Linux, имена всех используемых модулей заканчиваются расширением .so. Однако если вы выполнили сборку Asterisk в другой операционной системе, расширения будут другими.
На момент написания данной книги существует восемь типов модулей: ресурсы, приложения, коннекторы баз данных для хранения Call Detail Record, каналы, кодеки, форматы, модули АТС и самостоятельные функции. Остановимся на каждом из них в отдельности.
adsi.conf
Интерфейс сервисов для аналогового дисплея (Analog Display Services Interface, ADSI) был разработан для того, чтобы телефонные компании могли поставлять улучшенные сервисы по аналоговым телефонным сетям. В Asterisk этот файл можно использовать для передачи команд ADSI в поддерживающие его телефоны. Пожалуйста, обратите внимание, что телефон должен быть напрямую подключен к каналу Zapata. ADSI-сообщения не могут передаваться на удаленный аналоговый телефон через VoIP-соединение.
Приложение Voicemail() требует наличия модуля res_adsi.so; однако необязательно, чтобы использовался файл adsi.conf. Информация об ADSI не является общедоступной. Документацию необходимо покупать у компании Telcordia.
adtranvofr.conf
До появления технологии Voice over IP некоторое время в качестве средства пакетной передачи голоса широко использовалась технология Voice over Frame Relay (VoFR - передача голоса по сетям с ретрансляцией кадров). Использование оборудования Adtran для поддержки VoFR - часть истории Asterisk.
Однако этот протокол больше не пользуется популярностью в сообществе, поэтому могут возникнуть трудности с его поддержкой.
agents.conf
Этот файл позволяет создавать агентов вашего центра обработки вызовов и управлять ими. Если используется приложение Queue(), можно сконфигурировать настройки агентов для обработки очереди вызовов. Для настройки драйвера канала AGENT (агент) используется файл agents.conf.
Раздел [general] файла agents.conf в настоящее время содержит только два параметра. Параметр persistentagents (постоянно хранимые агенты) указывает Asterisk, должен ли сохраняться статус агентов, использующих возможность обратного вызова очередей, в локальной базе данных Asterisk. Если задано значение yes, регистрация удаленного агента будет сохраняться при перезагрузках системы (если только не будет удалена из базы данных какими-либо иными средствами). Параметр multiplelogin (множественная регистрация) говорит Asterisk о возможности регистрации множества агентов с одного добавочного номера.
Следующие параметры, заданные в разделе [agents] (агенты), используются для описания агентов и способа взаимодействия системы с ними. Настройки применяются ко всем агентам, но могут быть переопределены для отдельного агента его индивидуальными настройками:
maxlogintries
Максимальное число попыток, которое дается агенту, чтобы зарегистрироваться. Значение по умолчанию - 3.
autologoff
Принимает аргумент (в секундах), определяющий время ожидания ответа на вызов по каналу агента, по истечении которого агент будет признан недоступным и выгружен из системы.
autologoffunavail
Задается, чтобы выполнялась автоматическая выгрузка агентов из системы в случае возвращения приложением Dial() статуса CHANUNAVAIL в результате попытки дозвониться до этого агента. Значение по умолчанию - no.
ackcall
Принимает аргументы yes и no. Если задано значение yes, агент с возможностью обратного вызова должен после регистрации подтверждать вход в систему нажатием кнопки #. Используется в сочетании с приложением AgentCallbackLogin().
endcall
Если задано значение yes, агент может разрывать соединение нажатием кнопки *. Значение по умолчанию - yes. Задайте no, чтобы Asterisk не выполняла никаких действий при нажатии кнопки * агентом.
wrapuptime
Можно задать этот параметр, чтобы обеспечить агентам некоторую паузу перед передачей им следующего вызова после завершения предыдущего. Эта настройка задается в миллисекундах.
musiconhold => класс
Принимает в качестве аргумента класс музыки во время ожидания. Эта настройка применяется ко всем агентам.
agentgoodbye
Определяет стандартный звуковой сигнал завершения сеанса для агентов.
updatecdr
Принимает аргументы yes и no. Определяет, должны ли в записях CDR для канала, с которого поступил вызов, быть указаны agent/ agent_id для обозначения агентов, выполнивших вызовы.
group
Определяет группы, в которые входит агент. Группы задаются целыми числами. Если агент входит в несколько групп, их номера (целые числа) перечисляются через запятую.
recordagentcalls
Принимает аргументы yes и no. Определяет, должны ли записываться звонки агента.
recordformat
Определяет формат записываемых файлов. Допустимые значения - wav, gsm или wav49. Формат записи по умолчанию - wav.
urlprefix
В качестве аргумента принимает строку. Строка может быть сформирована как URL и прикрепляться в начало текста, который должен быть добавлен к имени записи.
savecallsin
В качестве аргумента принимает путь в файловой системе. Позволяет по своему усмотрению переопределять путь по умолчанию /var/ spool/asterisk/monitor/.