Вы здесь

Манипуляция номерами в CUCME (Wildcards, Number Translating)

Манипуляция номерами нужна в практически любой телефонной станции имеющей подключение к внешнему миру.
В данной статье мы рассмотрим возможности по манипулированию номерами у маршрутизаторов Cisco с CUCME или у маршрутизаторов выполняющих функцию голосового шлюза.

Использование шаблонов или Dial-Peer Wildcards

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

Шаблон (Wildcard) Описание
Period (.) Точка соответствует любому набранному символу 0 - 9, например 30.. соответствует любым номерам начиная от 3000 до 3099
Plus (+) Соответствует одному и более повторению предыдущего символа, например: 6+345 соответствует 66345, 666345, 6666345 и т.д. до общейдниы не более 32 символов.
Brackets ([]) Квадратными скобками можно задать диапазон, например [1-3]47 соответствует 147, 247, 347.
T Соответствует любому последующему символу и любому их количеству (от 0 до 32 символов)
Comma (,) Добавление запятой добавляет паузу в 1 секунду между набираемыми цифрами.

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

333[1-3]... Соответствует набираемым номерам, начинающимся с 333, имеющим 1 или 2 или 3 как четвертую цифру и и заканчивается любыми тремя цифрами
[14-6]444 Соответствует набираемым номерам, где первая цифра 1, 4, 5, 6 и последние три цифры 444
11[56]12 Соответствует набираемым номерам, где первые две цифры 11, третья цифра 5 или 6 и последние две цифры 12
[^1-7]..[135] Соответствует набираемым номерам, первая цифра не является 1-7, вторая и третья цифры - любые, последняя цифра 1 или 3 или 5

Выход в город

Выход в город обеспечивается несколькими шаблонами, их еще называют PSTN Dial Plan.

С первого взгляда выход в город можно сделать простым шаблоном 9T. Проблема тут в том, что шаблон T соответствует номеру длиной до 32 символов. Поэтому после набора к примеру 7-ми значного московского номера, система будет ждать дальнейших цифр в течение 10 секунд (T302 timer) и только после этого отдаст номер на PSTN.
Поэтому на практике стараются явно обозначить длину ожидаемого номера.

Пример PSTN Dial Plan для выхода в город в Москве

9....... Выход в город
98.......... Выход в межгород и на мобильные
9810T Выход на международную связь

В виде диалпиров это будет выглядеть следующим образом:
dial-peer voice 910 pots
description Local Calls
preference 4
destination-pattern 9.......
port 1/0/8

dial-peer voice 808 pots
description National Calls
preference 2
destination-pattern 98..........
port 1/0/8
forward-digits 11

dial-peer voice 809 pots
description International Calls
preference 2
destination-pattern 98011T
port 1/0/8
prefix 8011

Вообще, следует отметить, что бывают диалпиры двух типов:

  • Pots - plain old telephone system dialpeer - Как понятно из названия, используется для подключения к аналоговым линиям или к E1
  • Voip - используется для подключения к шлюзам VoIP

У pots есть свойство автоматически "откусывать" явно заданные цифры из шаблона. Поэтому в 910-м диалпире 9-ка будет откусана автоматом.
С остальными двумя диалпирами есть проблема, т.к. в 808-м нам нужно сохранить 8-ку, а в 809-м нужно сохранить 8011.

Здесь нам помогут следующие две команды:
forward-digits - команда позволяет определить число символов, считая справа, которые мы хотим сохранить или не откусывать (NOT strip)
Таким образом, в 808-м диалпире, если считать справа, попадет 8.......... и от общего номера откусится только 9-ка.

prefix - Команда приставляет указанные цифры слева к номеру.
Это очень полезно для 809-ого диалпира. Там используется международные номера и в конце указана T, т.е. номер допускается переменной длины, в результате чего команда forward-digits в данном случае бесполезна.
Что происходит при использовании prefix 8011: от номера система откусывает явно указанные цифры 98011, но затем мы слева добавляем 8011 и отдаем получившийся номер в город.

Использование Translation Profiles

Для более тонких преобразований можно использовать Translation Profiles. Более того, с помощью них можно сделть все что делается через forward-digits или prefix.

Создание Translation Profiles включает три этапа:

  1. Определяем Translation Rule
  2. Ассоциируем Translation Rule с translation profile
  3. Доб