Asterisk Dialplan - план набора
диалплан
Наиболее важным для понимания Asterisk является план набора (диалплан). Диалплан направляет каждый звонок от его источника, с помощью различных приложений, в пункт назаначения. Все вызовы, будь-то голосовая почта, конференция, меню автосекретаря или вызов телефона, определяются логикой и концепцией диалплана.
http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan
Введение в расширения (extensions) и контексты (context)
Каналам назначаются контексты. Контексты определяют правила набора для каналов
План набора состоит из одного или нескольких контекстов. Каждый контекст это просто набор расширений (екстеншенов). Каждый екстеншен в контексте имеет уникальное имя.
Контексты ипользуются для выполнения основных функций АТС:
*Безопасность: Можно разрешить междугородные/международные вызовы только конкретным абонентам.
*Маршрутизация вызовов: Маршрутизация вызовов в зависимости от номера абонента.
*Автосекретарь: Проигрывание приветствия и приглашение ввести добавочный номер.
*Многоуровневые голосовые меню: Голосовые меню для службы поддержки, отдела продаж и т.д.
*Авторизация: Запрос пароля для доступа к некоторым екстеншенам.
*Обратный вызов: Позволяет уменьшить затраты на междугородние/международные вызовы.
*Списки доступа: Занесение в черные списки надоедливых абонентов, не давая им возможности связаться с Вами.
*Виртуальные АТС: Вы можете создать «виртуальную АТС» в пределах Вашей основной АТС.
*Дневной/Ночной режим работы: Вы можете изменять поведение Вашей АТС в зависимости от времени суток.
* Макросы: Можно создавать скрипты для решения повторяющихся задач в плане набора.
Что такое екстеншен?
В традиционных АТС екстеншен связан с интерфейсом (портом). В Asterisk екстеншен определяется как перечень приложений (applications) и их аргументов, выполняемых в определённом порядке, Порядок выполнения определяется приоритетами (priority). Когда екстеншен набран приоритеты выполняются до разъединения вызова, или перенаправления на другой екстеншен. Каждый шаг записывается следующим образом:
exten =>
,,, [()]
Пример простого екстеншена
exten => 100,1,Wait(5)
exten => 100,2,Answer
exten => 100,3,Playback(demo-congrats)
exten => 100,n,Hangup
Этот екстеншен состоит из 4-х действий.
Первым выполняется приложение Wait c приоритетом 1 - ждать 5 секунд (время задаётся аргументом (5).
Вторым приложение Answer - поднять трубку.
Затем Playback - проиграть звуковой файл; аргумент задает имя файла (demo-congrats) в директории по умолчанию.
Последним выполняется приложение Hangup - повесить трубку. Приоритет 'n' означает next (следующий) и может использоваться вместо любого приоритета кроме 1-го.
Например:
[default]
exten => 100,1,Wait(5)
exten => 100,n,Answer
exten => 100,n,Playback(demo-congrats)
exten => 100,n,Hangup
Использование приоритета 'n' позволяет легко редактировать отдельные строки не переписывая все приоритеты.
Набор номера
Чаще всего вызывается другой интерфейс. Вызов осуществляется командой Dial().
[default]
exten => 100,1,Dial(DAHDI/1,20)
exten => 100,2,Voicemail(u100@default)
exten => 100,102,Voicemail(b100@default)
Этот пример иллюстрирует разные варианты действий в случае, если на вызов не ответили. Сначала вызывается канал DAHDI/1, если через 20 секунд никто не ответил вызов пренаправляется на VoiceMail() с объявлением «абонент не отвечает»(u100), Если же абонент занят, вызов перейдет на приоритет N+101, в нашем случае это приоритет 102.
Маршрутизация по CallerID
http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan [B]