Правила трансляции номера в CISCO

Правила трансляции номера в CISCO

Манипуляция номерами нужна в практически любой телефонной станции имеющей подключение к внешнему миру.
В данной статье мы рассмотрим возможности по манипулированию номерами у маршрутизаторов 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. Добавляем translation profile к dial-peer

Синтаксис Translation Rule:
Router(config)# voice translation-rule rule number
Router(cfg-translation-rule)# rule 1 /match/ /set/
Router(cfg-translation-rule)# rule 2 /match/ /set/
Router(cfg-translation-rule)# rule 3 /match/ /set/ …и т.д.

Мы можем предварительно тестировать Translation Rule командой:
test voice translation-rule

Пример 1

Задача:
— У всех номеров called убрать девятку.
— Все номера calling должны быть заменены на 3467361869

Определяем Translation Rule
voice translation-rule 9
rule 1 /^9/ //

voice translation-rule 361869
rule 1 /.*/ /3467361869/

Ассоциируем Translation Rule с translation profile
voice translation-profile kmg-pbx
translate calling 361869
translate called 9

Добавляем translation profile к dial-peer
dial-peer voice 361869 voip
corlist outgoing call-pbx
description kmg -- UgrTel PBX-style calls
translation-profile outgoing kmg-pbx
preference 3
destination-pattern 9T
session protocol sipv2
session target sip-server
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
dtmf-relay rtp-nte
no vad

Пример 2

Задача:
— Замена called вида [1-5].. на 70[1-5]..

Задачу можно легко сделать используя prefix, посмотрим как добиться того же через Translation Rule
voice translation-rule 333
rule 1 /\([1-5]..\)/ /70\1/
!
voice translation-profile short_calls
translate called 333
!
dial-peer voice 3001 voip
description Short calls
translation-profile outgoing short_calls
destination-pattern [1-5]..
session target ipv4:172.16.2.11
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad

Пример 3

Задача:
— Заменить все номера вида 9839162….. на номера 9…..

Пожалуй подобную задачу можно выполнить только через Translation Rule
voice translation-rule 9839162
rule 1 /^9839162\(.....\)/ /9\1/
!
voice translation-profile national_code_strip
translate called 9839162
!
dial-peer voice 4108 pots
description Local calls from Filials
translation-profile outgoing national_code_strip
preference 3
destination-pattern 9839162.....
port 1/0/12

Примеров можно много найти на:
http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech_note09186a0…

Как итог — по возможности не следует усложнять конфигурацию, Translation Rule очень мощный инструмент, но даже собственные шаблоны через некоторое время воспринимаются с трудом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *