Загружается...
 

Команда EnumLookup()


Назначение:

Поиск номера в ENUM

Описание:

EnumLookup(exten)

Поиск номера абонента, используя ENUM, и установка переменной 'ENUM'. Екстеншен должен быть задан в полном международном формате, включая код страны, но без пробелов или любых других символов перед кодом страны, по типу 46XXXXXXXX_ для Шведского номера телефона.


Коды возврата

На данный момент , этот сервис работает с каналами SIP, IAX и TEL. Если в результате будет получена правильная запись для канала SIP, то будет выполнена команда со следующим приоритетом. Если получена правильная TEL запись, то приоритет будет увеличен на 51 (если такой есть).
Если поиск закончился неудачно и существует команда с приоритетом по смещению n + 101, то тогда следующей будет выполнена команда с этим приоритетом.

Пример

[fullaccess]
exten=> _0[1-9]XXX.,1,BackGround(nic.at/enum-doing)
exten=> _0[1-9]XXX.,2,EnumLookup(431${EXTEN:1})
; ${EXTEN:1} - номер, набранный пользователем с обрезанным ведущим нулем.
; "431${EXTEN:1}" - номер в формате E.164.
;EnumLookup установит переменную ${ENUM} при удачном поиске. При неудачном - будет выполнен переход на приоритет +101.
exten=> _0[1-9]XXX.,3,BackGround(nic.at/enum-successful)
exten=> _0[1-9]XXX.,4,Dial(${ENUM},30)
exten=> _0[1-9]XXX.,5,Goto(104); По каналу SIP нет ответа, используем PSTN
exten=> _0[1-9]XXX.,103,BackGround(nic.at/enum-failed)
exten=> _0[1-9]XXX.,104,Dial,${TRUNK}/${EXTEN:1}

Другие примеры можно найти в разделе Asterisk E164 Call Routing.


Замечания

  • Запуская свою локальную систему с ENUM подобными записями в DNS, для поддержки поиска направлений по E.164 номеру в DNS, вы сделаете невозможным поиск в глобальной ENUM базе, которая используется в разных странах мира. Для того, чтобы сконфигурировать поиск записей ENUM, используя несколько доменов, добавляйте Ваш локальный Enum DNS домен до глобального Enum домена, e164.arpa в файле конфигурации Asterisk: enum.conf.
  • Для того, чтобы построить шаблонную NAPTR запись, в которой будут работать регулярные выражения, Вам понадобиться DNS сервер одних из последних версий, для BIND нужна, как минимум, версия 9 . Иначе, вторичный DNS сервер при получении зоны получит ее в искаженном виде, где конструкция "\\" будет заменена одиночным символом \.
  • Если будет получена запись с типом канала TEL, EnumLookup установит в переменной только номерную часть URI, без префикса "tel:". Для других URL, префикс будет преобразован в вид SIP/ и т.д. , что дает нам возможность использовать результат в команде Dial,:::::()" class="wiki wiki_page">dial без каких либо преобразований в нашем плане набора.
  • Asterisk может работать только с первой полученной NAPTR записью, он не получает все записи, которые соответствуют запросу, но имеющие разные приоритеты.

Если Вам необходимо получить ВСЕ записи ENUM и далее работать, с назначенными в ENUM записях приоритетами, прочтите этот раздел: Asterisk and multiple ENUM entries


Ссылки по теме:


Создано admin. Последнее изменение: вторник 06 / сентябрь, 2005 13:05:17 MSD автор admin.