Вы здесь

Приоритет answer-address и destination-pattern

Форумы: 

Если возможно, прошу помочь советом и опытом - как лучше сделать в моей ситуации:

Схема:
CiscoPhone <=> CUCM <=> Sip-trunk CMe 2821 <=> SIP Trunk Provider <=> ТФоП.

В компании есть несколько сотен телефонов, распределенных по dialplan'у [12]XXX (1000-1999, 2000-2999). Все телефоны подключены к CUCM 7.1, который SIP-транком подключен к CMe 2821. Cisco 2821 подключен к двум провайдерам телефонии также по SIP.

Основной провайдер предоставляет десятки прямых городских номеров и нужно раздать эти номера соответствующему количеству внутренних абонентов ([12]XXX) таким образом, чтобы входящие звонки на городские номера приземлялись сразу на внутренних абонентов, а звонки соответствующих абонентов уходили с определенными ANI.

Как правильно это сделать? Для входящих звонков прописал translation-pattern в CUCM, а вот для исходящих столкнулся с проблемой:

Внутренний абонент - 1001, ему нужно присвоить городской номер при выходе через Оператора1 номер 4951234567. Я матчу входящий звонок от 1001 (звонок идёт через CUCM в CMe) через диалпир с прописанным answer-address 1001 и на этом же диалпире делаю translation-profile incoming CALLING_NUMBER_1001, в котором прописано преобразование Calling номера с 1001 на 4951234567.

Но на этом же CMe есть другой диалпиар:

dial-peer voice 700 voip
destination-pattern [12]...$
session target ipv4:CUCM

И DP с destionation-pattern в сторону CUCM выбирается для входящего dialpeer'а "первее" dialpeer'а с answer-address. Прочёл на Cisco.com, что порядок обработки входящих dialpeer'ов именно такой - вначале destination-pattern, потом answer-address.

Пробовал вообще отключить dial-peer voice 700 voip - тогда то работает, то не работает трансляция (хотя в дебаге постоянно пишется, что трансляция номера произошла успешна). Однако, конечно же, отключать этот DP нельзя - на CMe есть ivr и возможностью донабора внутреннего номера, и CMe должен знать, куда посылать звонки на [12]XXX

Как правильнее транслировать множество внутренних номеров в соответствующие внешние при отправке через SIP-транк определенного провайдера?

Спасибо.

Для трансляции можно использовать CUCM либо CUBE.
В вашем случае вероятно лучше использовать CUBE, но тут всё дело в личных предпочтениях, к тому же у вас живёт IVR, т.е. живут внутренние номера.

Я предпочитаю транслировать как можно ближе к городу. В случае с CUBE может возникнуть ситуация когда потребуется подключить аналоговый факс с использованием этого роутера, следовательно на роутере должны жить внутренние номера и соответственно и трансляция.

С другой стороны, при использовании MGCP трансляция возможна только на уровне CUCM, поэтому тут точно неообходимо использовать Globalized Call Routing.
Вообще Globalized Call Routing нужно использовать всегда, - может технология сложнее в понимании и настройке, но она действительно удобна в организации с более чем 5 филиалов.

CUCM и Digit Manipulation

Правильный диалплан (dialplan) в крупной организации или Globalized Call Routing

Касательно построения трансляций на CUBE:
Привожу пример касающийся только диалпиров.
В данном примере индивидуальные трансляции исходящих внутренних номеров проводятся на уровне translation-rule 5000, на ИСХОДЯЩЕМ диалпире, смотрящим на провайдера.
Для связи с CUCM используется исходящий диалпир в его сторону, на нём не производятся трансляций, и он обслуживает входящи и исходящие звонки.
это возможно, поскольку при выборе диалпира используются следующие приоритеты:
1) Called number совпадает с командой в диалпире incoming called number
2) Calling number совпадает c answer address
3) Calling number совпадает c destination pattern
4) В диалпире указан port
5) default dialpeer

Подробнее см. Настройка Call Manager CUCM с нуля: Связь с внешним миром H.323 и FXO(Часть 3)

Подробнее про CUBE см. Настройка Call Manager CUCM с нуля: Подключение к SIP-провайдеру (Часть 6).

Обработка входящих

dial-peer voice 1 voip description Incoming-Dialplan translation-profile incoming ITSP_Incoming session protocol sipv2 session target sip-server incoming called-number 23035 voice-class codec 1 dtmf-relay rtp-nte ip qos dscp cs3 signaling ! voice translation-profile ITSP_Incoming translate calling 2 translate called 1 ! voice translation-rule 1 rule 1 /^23035$/ /3357/ ! voice translation-rule 2 rule 1 /\(^..........$\)/ /+7\1/

Связь до CUCM

dial-peer voice 500114 voip description internal to CUCM preference 5 destination-pattern [1-4]... session protocol sipv2 session target ipv4:11.19.65.11 voice-class codec 1 voice-class sip bind control source-interface Loopback0 voice-class sip bind media source-interface Loopback0 dtmf-relay rtp-nte ip qos dscp cs3 signaling no vad

Обработка исходящих:

dial-peer voice 98 voip description -- National calls translation-profile outgoing OUTSIDE_SIPCALLS destination-pattern 98.......... session protocol sipv2 session target sip-server voice-class codec 1 voice-class sip options-keepalive dtmf-relay rtp-nte ip qos dscp cs3 signaling no vad ! voice translation-profile OUTSIDE_SIPCALLS translate calling 5000 translate called 9000 ! voice translation-rule 5000 rule 1 /^1111/ /23031/ rule 2 /^1112/ /23032/ rule 1 /^...$/ /23035/ rule 2 /^....$/ /23035/ rule 3 /^.....$/ /23035/

Понял. Но ведь в voice translation-rule 5000 можно сделать только до 15 правил (rule 15) - а это значит, что максимальное количество преобразований в сторону 1 провайдера - не более 15. А что делать в случае, если нужно сделать несколько сотен преобразований?

Странно на моем CISCO2921 IOS Version 15.4(3)M2 позволяет создать до 100.

Я бы настроил трансляцию на CUCM вышеуказанным способом, хотя для IOS также есть варианты.

voice translation-rule 10 rule 1 /0001/ /4000/ rule 2 /0002/ /4213/ rule 3 /0003/ /4209/ rule 4 /0004/ /4113/ rule 5 /0005/ /4215/ rule 6 /0006/ /4217/ rule 7 /0007/ /4219/ rule 8 /0008/ /4222/ rule 9 /0009/ /4223/ ! voice translation-rule 11 rule 10 /0010/ /4224/ rule 11 /0011/ /4208/ rule 12 /0012/ /4207/ rule 13 /0013/ /4206/ rule 14 /0014/ /4216/ rule 15 /0015/ /4214/ voice translation-profile INCOMING_000 translate called 100 voice translation-profile INCOMING_001 translate called 100 dial-peer voice 100 pots translation-profile incoming INCOMING_000 incoming called-number 000. direct-inward-dial port 0/1/0 dial-peer voice 101 pots translation-profile incoming INCOMING_001 incoming called-number 001. direct-inward-dial port 0/1/0

и т.д.

Понял :) Спасибо большое!

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

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image