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

  • Михаил
  • 12 мин. на прочтение
  • 171
  • 20 Jun 2022
  • 20 Jun 2022

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


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

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


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

Замечание.


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


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


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