Asterisk Dialplan:Стандартные расширения

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

  • a: Вызывается, когда пользователь нажимает '*' во время проигрывания приветствия системы голосовой почты.
  • h: Вызывается, по завершению вызова(hangup).
  • i: Вызывается, при попытке вызова неизвестного екстеншена (invalid).
  • o: Расширение оператора, используется для обработки нажатия нуля в системе голосовой почты.
  • s: Стартовое расширение в контексте. Очень часто используется, просто как символ расширения.
  • t: Вызывается, при наступлении состояния таймаута.
  • T: Вызывается, при наступлении состояния абсолютного таймаута, заданного функцией AbsoluteTimeout(absolute).
  • e: Перехват расширений i,t и T для обработки ошибки в едином месте. Для выяснения типа ошибки может быть использована функция function 'EXCEPTION'()
  • failed: Используется, если auto-dial out вызов завершился неудачно (который имеет определённый контекст, приоритет и расширение).
  • fax: Используется для определения факса на DAHDI каналах.
  • talk: Используется совместно с BackgroundDetect.

Краткая расшифровка назначения.

  • s: (Start) – Старт. В основном, используется в плане набора когда в контекст поступает вызов, не содержащий конкретной информации о вызываемом екстеншене. По примеру обычной телефонной линии: когда поступает вызов, мы слышим, что телефон звонит, и больше ничего не можем сказать об этом вызове и кому он адресован. Даже если мы знаем номер звонящего, у нас должна быть точка в контексте, с которой мы бы могли начать обработку этого вызова. Также, можно представить екстеншен s, как список команд плана набора, которые будут выполнены по умолчанию для абонентов, попавших в какой-либо контекст.
  • t: (Timeout) – Тайм-аут. Команды этого экстеншена будут выполнены, если вызывающий абонент не произвел никаких действий в течение заданного времени после того, как ему было проиграно сообщение или по истечению таймаута команды WaitExten, наример. Также используется для отключения бездействующих линий.
  • T: (AbsolutTimeout) – Абсолютный Таймаут. Используется для вызовов, которые были завершены из-за ограничения продолжительности вызовов, установленной функцией AbsoluteTimeout(absolute). Например, для проигрывания голосового уведомления приложением Asterisk app: Playback.
  • h: (Hangup) – Отбой. Используется при завершении вызова. По завершению вызова, если задано стандартное расширение h, оно будет выполнено. Таким образом можно выполнить какое-либо действие, сохранить или передать данные о вызове и тд.
  • i: (Invalid) Используется, если в контексте вызывается неизвестный екстеншен или получен неопределенный в контексте DTMF ввод в голосовом меню.

Использование этих екстеншенов может изменить содержание ваших CDR записей, что может Вам совсем не понравиться, например: Поле dst больше не будет содержать набранный номер! Как обходной маневр, Вы можете исследовать команду Dial() с опцией 'g' («go on in context») и обдумать использование ResetCDR(w) и/или NoCdr().

Стандартные приоритеты

  • hint: Приоритет 'hint' используется для ассоциации екстеншена с Астериск каналом, для того, чтобы можно было мониторить состояние этого канала, как состояние екстеншена (телефон не может обращаться к каналам, а только к экстеншенам).

В Asterisk, канал (технология/устройство) может иметь несколько состояний (недоступен, в использовании, занято, посылка вызова, и т.д.), но расширение – это только метка для последовательности приложений. Как бы то ни было, когда сообщая состояние канала к внешнему устройству, типа receptionist консоли, вы не можете использовать внутренние названия каналов Астериска, но должны использовать имя внешнего опознаваемого ресурса, обычно номер расширения.

Файлы конфигурации Asterisk

~~socialite~~

  • asterisk/cf/standart_extensions.txt
  • Последние изменения: 2016/12/17