- База знаний
- Пример файла конфигурации XML для Cisco 8851 phone
- Пример файла конфигурации XML для Cisco 7970 phone
- Пример файла конфигурации XML для Cisco 9971
- Отладка VoIP звонка с Wireshark
- Книги
- Использование поля Diversion в SIP пакете
- Астериск и Н.323
- ISDN release cause codes
- Пример файла конфигурации голосового шлюза Cisco
- Пример конфигурации интерфейса E1 PRI в голосовом шлюзе Cisco
- Аналоговое зло
- Интернациональные телефонные коды стран
- Практикум по интеграции Астериск в комплексе с OpenBSC/Osmocom
- Факс по IP
Имена екстеншенов и шаблоны в плане набора Asterisk.
Имена екстеншенов.
Именами для екстеншенов в плане набора могут быть обычные номера, такие как “412” или “0”. Также они могут состоять из букв или строк, содержащих, как цифры, так и буквы, например, “john” или “A93”. Однако, на обычном телефоне невозможно набрать номер екстеншена, такой как “john”, там просто нет таких символов. Однако, на некоторых телефонных аппаратах можно исхитриться и набрать такой номер (например, на телефонах Cisco, с помощью алфавитно-цифровой клавиатуры). Но для таких экстеншенов есть другое логичное применение. Суть его состоит в том, что, проектируя логику Вашего плана набора, может возникнуть желание совершить переход с обработки последовательности команд одного екстеншена, на обработку последовательности команд, которые связаны с другим екстеншеном. Имя екстеншена, на который совершается переход, можно выбрать по Вашему желанию, т.к. в этом случае, вызов не попадает непосредственно в него, а используется скорее, как ветвление алгоритма плана набора, для изначального екстаншена (того, на который непосредственно попадает вызов).
И еще один момент, кнопочные телефоны часто содержат не только цифры от 0 до 9. У них еще бывают кнопки: * (звездочка) и # (называемые “pound” или “hash”, в зависимости от того, где вы живете). А некоторые кнопочные (DTMF) телефоны имеют еще и четыре дополнительные “цифровые” кнопки: A, B, C и D. Если в вашей организации есть подобные телефонные трубки, то ничего не мешает использовать в Вашем плане набора имена екстеншенов с этими символами, для каких-либо целей по Вашему усмотрению.
Замечание: Для того чтобы задать номер екстеншена, который вызывается набором символа #, Вам необходимо использовать шаблонный екстеншен (смотри ниже). Астериск не воспринимает # как обычный “символ”, хотя он есть у всех DTMF телефонов.
Замечание: Екстеншен X - (без подчеркивания), это не шаблон, который совпадает с любой цифрой от 0 до 9, а простой екстеншен с именем "X".
Шаблоны для екстеншенов.
Имена екстеншенов не ограничиваются однозначно определенными “номерами телефонов”. Один экстеншен может быть сопоставлен целому набору номеров, на основе шаблона.
В файле extensions.conf имя екстеншена является шаблоном, если оно начинается с символа подчеркивания (_).
В именах шаблонных екстеншенов, следующие символы имеют специальное значение и трактуются особым образом:
X соответствует любому числу от 0 до 9
Z соответствует любому числу от 1 до 9
N соответствует любому числу от 2 до 9
[1237-9] соответствует любому числу или диапазону чисел, которые заключены в квадратные скобки (в данном случае: 1,2,3,7,8,9)
. специальный символ, соответствует одному или более символов (не только цифрам)
! специальный символ, соответствует отсутствию, одному или более символов (не только цифрам) (Asterisk 1.2 и более поздние версии, см. замечание)
Замечание: Символ шаблона "!" доступен, начиная с версии 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-значному телефонному номеру (стоит отметить, что забугром обычные номера не могут начинаться с цифры 0 или 1)
_1NXXNXXXXXX соответствует коду зоны и телефонному номеру
_9011. соответствует любой строке минимум из пяти символов, которая начинается с 9011, но не соответствует самому номеру 9011.
_9011! в отличие от предыдущего примера, соответствует еще и самому четырехзначному номеру 9011.
_# соответствует единичному нажатию клавиши #
Предупреждение
Не используйте шаблон _., т.к. он будет соответствовать вообще всему, включая специальные екстеншены сервера Астериска типа i, t, h, т.д. Вместо этого используйте шаблоны вида: _X. или _X, под которые не будут подпадать специальные екстеншены asterisk.
Порядок сортировки и поиска совпадений с шаблонными екстеншенами.
Если более чем один шаблон соответствует набранному номеру, Астериск может выбрать совсем не тот екстеншен, что Вы ожидаете.
Для дополнительной информации, смотри страницу:
Ссылки по теме
- План набора - extensions.conf
- Стандартные екстеншены в Asterisk
- Введение в понятия контекстов и екстеншенов
- Файлы конфигурации сервера Asterisk
- Asterisk