CUCM та Digit Manipulation
Digit Manipulation - це здатність CUCM додавати або видаляти цифри відповідно до необхіднихnumbering plan.
Наприклад, для виходу в місто в Москві користувач набирає 9-8-495-578-96-26. У цьому випадку нам як мінімум потрібно підправити: - Called Party - прибрати 9-ку. - Calling Party – замінити внутрішній номер на корпоративний багатоканальний номер.
Номери Calling party та Called Party можуть бути модифіковані в різних locations та різними методами. На схемі зображені методи Digit-Manipulation та locations, які проходить дзвінок у міру його обробки.

Якщо Called number дає збіг tranlation pattern, hunt pilot або route pattern, можна налаштувати різні варіанти маніпуляцій, вказаних на малюнку.
Нарешті, на виході (egress gateway) також є можливість використання різних трансформацій.
External Phone Number Mask - дозволяє підмінити calling party number, якщо дзвінок йде назовні, тобто. off-net. Налаштовується у властивостях кожного DN індивідуально.
Translation Pattern
Translation Pattern забезпечує трансляцію номерів. Трансляція часто потрібна для організації діалогового плану типу Partitional Addressing, а також для вхідних дзвінків. Особливість його роботи в тому, що після зміни номера запускається повторний процес аналізу (Call Routing Process), в результаті якого може відпрацювати ще один Translation Pattern і т.д. (максимально 10шт)
Розглянемо приклад використання Translation Pattern у наступній схемі. Це схема класичної реалізації зв'язку у великій компанії з кількома офісами та з Partitioned Addressing.

Translation Pattern тут відзначені помаранчевим. 70.XXX і 77.XXX -використовуються для здійснення дзвінків між філіями. 2878835 та 532507 - трансують вхідні дзвінки. Необхідні для того, щоб міські дзвінки не перетиналися з внутрішнім діалпланом і не викликали затримки під час перетину.
Transformation Masks
Tranformation Masks - це частинаCalling Party Transformations іCalled Party Transformations. Маска накладається на вихідний номер і виходить номер на виході:
Digit Stripping and Digit Prefixes
Digit Stripping абоDiscard Digits Instructions видаляє певні цифри з номера. Працює з "точкою", яка дозволяє визначити які цифри необхідно видалити. Наприклад, щоб позбутися 9-ки:

Digit prefix - додає цифри до номера зліва.
Called and Calling-Party Transformation Patterns
Найбільш універсальний тип трансформації, хоча й складніший у налаштуванні.
- Called and Calling-Party Transformations Patterns налаштовуються глобально. - Patterns містяться в партиції - У Egress Devices налаштовують Called and Calling-Party Transformations CSS, тим самим розмежовуючи зону дії патерну. - Налаштований Transformations CSS визначає кому цей Transformations Pattern буде видно, а кому ні.
Called and Calling-Party Transformations застосовуються тільки на дзвінки, що йдуть від CUCM на девайс. На практиці це означає, що, наприклад, для шлюзу в місто Calling-Party Transformations будуть застосовуватися тільки для вихідних назовні дзвінках.
Приклад практичного застосування на наступній схемі:

Incoming Number Transformation settings

- Digit Striping
- Adding a prefix
- Більш комплексна трансформація через Transformation CSS
При цьому різні установки можуть бути зроблені для різних типів номерів (unknown, subscriber, national, international). Доступно для MGCP та H.323
Incoming Called Party Settings - дозволяють модифікувати Called party для вхідних дзвінків. Доступно лише для H.323.
Incoming Calling і Called Party Settings можуть бути налаштовані для Gateways або Trunks, Device pool і Service Parameters для сервісу Cisco Call Manager. Якщо налаштування одночасно зроблено на рівні Device і Device pool, то починає відігравати рольUse Device Pool CSS : якщо вона відзначена то пріоритет у Device pool.
Outgoing Number Transformation
Calling Party Transformation Order
Calling Party Transformations можуть бути виконані на рівні route patterns, Route list. -party transformation mask - Prefix digits
Called Party Transformation Order
- Discard digits - Called-party transfomation mask - Prefix digits
Digit manipulation на кількох рівнях
Для вихідного дзвінка маніпуляції можуть бути зроблені на трьох рівнях: - Digit manipulation on Route Pattern - Digit manipulation on Route List - Digit manipulation on Gateway (Transformation CSS)
Три рівні маніпуляцій не кумулятивні, тільки один рівень буде працювати, при цьому "сильніший" це Gateway, найслабший - Route Pattern. При цьому Called party не залежить від Calling Party digit manipulation і можуть бути одночаснозроблено на різних рівнях.
CUCM Digit Manipulation Operation
Як згадувалося, Outgoing Number Tranformation може проводитися різних рівнях. При цьому є кілька особливостей при одночасному налаштуванні трансформацій на кількох рівнях одночасно.
Насамперед розглянемо кілька термінів:
- PT-S—pretransformed source - Це видимий calling-party number у першому call request, тобто. у момент набирання номера.
- PT-D-pretransformed destination - Це видимий calling-party number у першому call request, тобто. той номер, що користувач набрав.
- T-S - transformed source - calling-party number після відповідної операції Digit manipulation.
- T-D - transformed destionaton - called-party number після відповідної операції Digit manipulation.
- S-RP DM - source route pattern digit manipulation - методи маніпуляції дляcalling-party на рівні Route Pattern.
- D-RP DM - destination route pattern digit manipulation - методи маніпуляції дляcalled-party лише на рівні Route Pattern.
- S-RL DM - source route pattern digit manipulation - методи маніпуляції дляcalling-party на рівні Route List.
- D-RL DM - destination route pattern digit manipulation - методи маніпуляції дляcalled-party лише на рівні Route List.
Отже, припустимо, що від запиту від phone, gateway, trunk або translation pattern дає збіг з відповідним Route Pattern. Одразу запам'ятовуються вихідні номериPT-S таPT-D. Також будуються значенняT-S через використання на рівні Route Pattern методівS-RP DM, і будуються значенняT-D на рівні Route Patternчерез методиD-RP DM
Далі Route Pattern посилається на Route List і відбувається таке:
- Route list на основі його Route Groups, а також доступних шлюзів, вибирає Egress device
- Якщо рівні Route list налаштовані якісь called party transformation methods, товсе методи called party transformation methods лише на рівні Route Pattern будуть скасовані.
- Тобто обчислений на рівні Route PatternT-S або зберігається, або замінюється іншим значенням, обчисленим за відповідними правиламиS-RL DM на рівні Route list
. Причому, вихідником буде початковийPT-S.
Така сама логіка застосовується і для calling party. Як наслідок теоретично можлива ситуація, коли трансформація для calling party проводитиметься на рівні Route Pattern, а для called party
на рівні Route List
На рівні Egress Gateway або Trunk маніпуляції відбуватимуться так:
- Calling -party number - Якщо встановлено параметр у поліCaller ID DN, цей номер використовується як calling-party number. - ЯкщоCaller ID DN не встановлено, CUCM перевіряє налаштовані Calling-party tranformation CSS. У випадку, якщо зазначено поле Use Device Pool Called Party Transformation CSS, і в device pool налаштований відповідний CSS, то device pool перемагає. - Якщо calling-party transformation CSSне налаштований, тоді як Caller ID буде використанийT-S. У цьомуT-S буде сформований відповідно до правил описаних вище, тобто. застосування доPT-S правил або через Route patternS-RP DM, або через Route ListS-RL DM - Якщо налаштований Calling- party transformation CSS,PT-S перевіряється на збіг з доступними calling-party transformation pattern. - Якщо збіг знайдено, то доPT-S застосовується відповідний calling-party transformation pattern, і результуючий номер буде використаний як Caller ID. - Якщо збіг не знайдено, застосовуються трансформації на рівні Route patternS-RP DM, або через Route ListS-RL DM.
- Called-party number - Застосовується аналогічна логіка, з тією різницею, що з Called-party number відсутняCaller ID DN