понедельник, 20 июля 2015 г.

Call Routing и Call Handlers в Cisco Unity Connection

В предыдущем примере Интеграция CUC с CUCM (SCCP) все закончилось на том, что если абонент нажмет на своем телефоне кнопку voicemail - то он попадет в приветствие Cisco Unity Connection'а.
Остановимся ненадолго, чтобы понять, что происходит.

Прежде всего (речь про CUC), звонки попадают на Call Routing: в навигационной панели слева Call Management / Call Routing.
Если звонок прямой, то есть абонент сам дозвонился на номер Voice Mail Pilot или нажал на телефоне кнопку voicemail (которая, согласно Voice Mail Profile, набрала Pilot номер) - то звонок попадает сюда:
Порядок исполнения правил важен - сверху вниз. Заглянем в первое - Attempt Sign-In:
Здесь видно, что звонок направляется на conversation "Attempt Sign-In": если номер звонящего сопоставится какому-либо пользователю в CUC, то будет предложено ввести PIN и получить доступ к voicemail ящику.
Но, так как пользователей в CUC я пока не создавал, звонок пойдет на второе правило - Opening Greeting:
Рассмотрим целевой call handler повнимательнее. Идем в Call Management / System Call Handlers и жмем на Opening Greeting:
Идем в меню - Edit / Greetings:
Вот они:
Standard - именно на это приветствие мы сейчас и попадаем. Попробую немного поэкспериментировать :)
Я записал в качестве приветствия - "Вы кто? Я вас не знаю!".
Теперь если на любом телефоне нажать кнопку voicemail - мы услышим эту фразу ))

Идем в настройки call handler'а:
Как видно, я выставил готовое расписание (можно создать и свое в System Settings / Schedules). Затем отредактируем (меню Edit / Greetings) приветствие Closed:
Настройки аналогичны Standard, запишем только другое приветствие, например: "Спят усталые игрушки...".
Теперь, в моменты времени, когда расписание call handler'а неактивно, абонент при нажатии кнопки voicemail будет слышать эту песенку.

Идем дальше. На одном из телефонов (скажем, с номером 1001) нажмем CFwdALL и номер voicemail'а (6000) - пусть все входящие звонки будут перебрасываться на voicemail.
Позвоним на номер 1001 с любого другого номера. Теперь мы попадаем в CUC на Forwarded Routing Rules:
Первое правило (Attempt Forward) переводит звонок на conversation "Attempt Forward", который пытается сопоставить номер звонящего (инициатора звонка, а не того, кто осуществил forward) с базой пользователей CUC:
Но, так как сейчас наша база пуста - управление переходит ко второму правилу. Это "Opening Greeting". При ближайшем рассмотрении выясняется, что его конфигурация идентична схожему правилу в Directed Routing Rules:
Звонок уходит на тот же самый call handler. Это действительно так и, в результате, мы услышим записанные нами ранее приветствия (соответственно расписанию).

Создадим новое правило в Forwarded Routing Rules (в Direct Routing Rules все также). Жмем Add New:
Я направил звонок на call handler - Goodbye.
Сделаем так, чтобы это правило срабатывало только для одного звонящего абонента - внизу, в секции Routing Rule Conditions, нажмем Add New:
Итого:
Теперь только абонент с номером 1003 при звонке на номер 1001 (или любой другой, "сфорварженный" на voicemail) будет попадать на call handler Goodbye. Причем если он (1003) наберет voicemail номер (6000 или кнопкой на телефоне) напрямую - то он получит такое же обслуживание как и все остальные.
Разумеется call handler Goodbye также можно кастомизировать - привязать расписание,  записать свои приветствия, настроить по другому After Greeting... Или вообще создать свой call handler и направить звонок на него.

Конечно это все было just for fun :) чтобы разобраться в логике работы call routing'а и call handler'ов. Пора все возвращать в default и настраивать под нужный Т.З.