Имена екстеншенов и шаблоны в плане набора Asterisk.

Имена екстеншенов.

Именами для екстеншенов в плане набора могут быть обычные номера, такие как “412” или “0”. Также они могут состоять из букв или строк, содержащих, как цифры, так и буквы, например, “john” или “A93”. Однако, на обычном телефоне невозможно набрать номер екстеншена, такой как “john”, там просто нет таких символов. Однако, на некоторых телефонных аппаратах можно исхитриться и набрать такой номер (например, на телефонах Cisco, с помощью алфавитно-цифровой клавиатуры). Но для таких экстеншенов есть другое логичное применение. Суть его состоит в том, что, проектируя логику Вашего плана набора, может возникнуть желание совершить переход с обработки последовательности команд одного екстеншена, на обработку последовательности команд, которые связаны с другим екстеншеном. Имя екстеншена, на который совершается переход, можно выбрать по Вашему желанию, т.к. в этом случае, вызов не попадает непосредственно в него, а используется скорее, как ветвление алгоритма плана набора, для изначального екстаншена (того, на который непосредственно попадает вызов).

И еще один момент, кнопочные телефоны часто содержат не только цифры от 0 до 9. У них еще бывают кнопки: * (звездочка) и # (называемые “pound” или “hash”, в зависимости от того, где вы живете). А некоторые кнопочные (DTMF) телефоны имеют еще и четыре дополнительные “цифровые” кнопки: A, B, C и D. Если в вашей организации есть подобные телефонные трубки, то ничего не мешает использовать в Вашем плане набора имена екстеншенов с этими символами, для каких-либо целей по Вашему усмотрению.

Замечание: Для того чтобы задать номер екстеншена, который вызывается набором символа #, Вам необходимо использовать шаблонный екстеншен (смотри ниже). Астериск не воспринимает # как обычный “символ”, хотя он есть у всех DTMF телефонов.

Замечание: Екстеншен X - (без подчеркивания), это не шаблон, который совпадает с любой цифрой от 0 до 9, а простой екстеншен с именем «X».

Имена екстеншенов не ограничиваются однозначно определенными “номерами телефонов”. Один экстеншен может быть сопоставлен целому набору номеров, на основе шаблона. exclaim В файле extensions.conf имя екстеншена является шаблоном, если оно начинается с символа подчеркивания (_). В именах шаблонных екстеншенов, следующие символы имеют специальное значение и трактуются особым образом:

X соответствует любому числу от 0 до 9
Z соответствует любому числу от 1 до 9
N соответствует любому числу от 2 до 9
[1237-9] соответствует любому числу или диапазону чисел, которые заключены в квадратные скобки (в данном случае: 1,2,3,7,8,9)
. специальный символ, соответствует одному или более символов (не только цифрам)
! специальный символ, соответствует отсутствию, одному или более символов (не только цифрам) 

Замечание: Символ шаблона «!» доступен, начиная с версии Asterisk 1.2 и в более поздних, он ведет себя особенно — как только все маски или символы до него совпали с набираемым номером и набираемый номер (на данный момент) не совпадает ни с одним шаблонным или простым екстеншеном в контексте, будет использоваться данный екстеншен, причем, не дожидаясь пока номер будет введен полностью. Это было сделано для следующих сценариев, например, как описано в контексте ниже, как только набираемый номер перестал совпадать с '001800…', будет задействована обычная телефонная линия и все последующие номера набираемого номера будут донабираться непосредственно в линию (с аудиоконтролем состояния линии) .

Context "outgoing":
Extension Description
_001800NXXXXXX Вызовы на бесплатные номера в US производим через VoIP
_X! Все остальные вызовы - через обычного телефонного оператора, с донабором в линию.

Пример

Посмотрим на следующий контекст:

Context "routing":
Extension Description
_61XX Dallas Office
_63XX Dallas Office
_62XX Huntsville Office
_7[1-3]XX San Jose Office
_7[04-9]XX Los Angeles Office

Этот контекст с именем “routing”, отправляет вызовы на другие сервера, в зависимости от номера екстеншена. Предполагается, что все номера в организации содержат 4 цифры. Если пользователь набрал номер, начинающийся с 61 или 63, то вызов будет отправлен на сервер «Dallas office»; 62 – на сервер «Huntsville office»; 71, 72, или 73 – в San Jose, 70, 74, 75, 76, 77, 78 или 79 – на сервер «Los Angeles office».

_NXXXXXX соответствует обычному 7-значному телефонному номеру 
_1NXXNXXXXXX соответствует коду зоны и телефонному номеру
_9011. соответствует любой строке минимум из пяти символов, которая начинается с 9011, но не соответствует самому номеру 9011.
_9011! в отличие от предыдущего примера, соответствует еще и самому четырехзначному номеру 9011.
_# соответствует единичному нажатию клавиши #

Предупреждение

Не используйте шаблон _., т.к. он будет соответствовать вообще всему, включая специальные екстеншены сервера Астериска типа i, t, h, т.д. Вместо этого используйте шаблоны вида: _X. или _X, под которые не будут подпадать специальные екстеншены asterisk.

Порядок сортировки и поиска совпадений с шаблонными екстеншенами.

Если более чем один шаблон соответствует набранному номеру, Астериск может выбрать совсем не тот екстеншен, что Вы ожидаете. Для дополнительной информации, смотри страницу:

  • Порядок выбора совпадения при использовании шаблонных екстеншенов.

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

Только авторизованные участники могут оставлять комментарии.
  • asterisk/cf/patterns.txt
  • Последние изменения: 2016/11/11