среда, 22 июля 2015 г.

Интеграция Cisco Unity Connection с CUCM (посредством SIP)

На данный момент мой CUC уже связан с CUCM (Интеграция Cisco Unity Connection с Cisco Unified Communications Manager'ом (посредством SCCP)), но ничего не мешает попробовать SIP. Тем более, что этот вариант даже проще...

Открываем CUCM, идем в System / Security / SIP Trunk Security Profile:
Find, затем - Non Secure SIP Trunk Profile:
Отмечаем checkbox'ы напротив: Accept out-of-dialog refer, Accept unsolicited notification, Accept replaces header.
Save.

Теперь создадим SIP trunk - идем в меню Device / Trunk, жмем Add New:
В качестве Trunk Type выбираем SIP Trunk.
Next. Настраиваем:
Тут главное не забыть активировать Redirecting Diversion Header Delivery - Outbound в секции Outbound Calls, иначе не будет работать Forwarded Routing Rules в CUC (в видео, по ссылке внизу страницы, этот момент упущен).
Указываем также Non Secure SIP Trunk Profile, который отредактировали чуть раньше. IP адрес CUC сервера и т.д....
Save,

Итак, SIP trunk есть, но пока из CUCM на него нет маршрута. Идем в меню: Call Routing /  Route/Hunt / Route Pattern. Add New:
В качестве номера, через который будет осуществляться выход из CUCM в CUC, я указал 7000 (это может быть любой свободный DN).
В качестве destination'а куда отправлять звонок - CUC_SIP_trunk, созданный шагом раньше.
Save.

Итак маршрут создан, но нужно еще привязать DN 7000 к voicemail'у. Идем в меню: Advanced Features / Voce Mail / Voice Mail Pilot. Жмем Add New:
"Make this the default Voice Mail Pilot for the system" - по желанию :) если отметить - при нажатии на телефоне кнопки voicemail будет набираться именно этот DN. 

Теперь Voice Mail Profile - идем в Advanced Features / Voice Mail / Voice Mail Profile, Add New:
Выбираем только что созданный Voice Mail Pilot (7000).
"Make this the default Voice Mail Profile for the System" - аналогично... если отметить, то forward настройки на voicemail будут срабатывать именно для этого profile. При наличии нескольких Voice Mail Profile, можно индивидуально выставлять в настройках DN, какой profile (а значит и pilot номер) он будет использовать.

Пора переходить к CUC.
Слева в навигационной панели выбираем Telephony Integrations / Phone System, жмем Add New:
Пусть называется SIP_CUCM.
Save:
Оставляем все как есть. Идем слева в панели в Telephony Integrations / Port Group. Жмем Add New:
Выбираем нашу phone system (SIP_CUCM), выбираем тип (SIP), даем название и указываем ip адрес CUCM сервера.
Save:
В свойствах Port Group отмечаем Register with SIP Server. После сохранения изменений (Save) может потребоваться Reset. Жмем Reset.

Теперь нужно создать порты (согласно лицензии и возможностям железа) - именно они будут определять количество одновременных соединений между CUCM и CUC. Идем в Telephony Integrations / Port, жмем Add New:
Save.

Ссылки:
CAPPS Video #2 Integrating Cisco Unity Connection with CUCM via SIP
Configuring Cisco Unity Connection for SIP Support

вторник, 21 июля 2015 г.

Перенос пользователей из CUCM в Cisco Unity Connection (с помощью AXL сервиса)

На самом деле все просто.

Конечно, прежде всего надо настроить шаблон. Открываем Cisco Unity Connection, идем в Templates / User Templates, выбираем voicemailusertemplate:
Настраиваем (главное, конечно, выбрать phone system):
Save.

Далее идем в Telephony Integrations / Phone System, жмем на нашу PBX (SCCP_CUCM), идем в меню:
 Выбираем: Edit / Cisco Unified Communications Manager AXL Servers:
Заполняем данные нашего CUCM сервера:
Save и Test.

Теперь нужно убедиться, что в CUCM нужный нам сервис запущен. Открываем CUCM, идем в Cisco Unified Serviceability:
Убеждаемся что сервис Cisco AXL Web Service активен:
Если нет - активируем.

Есть только одна проблема - перенести получится только End User'ов, у которых Primary Extension не пуст. Идем в Cisco Unified CM Administration, затем User Management / End User, Find, жмем на интересующего нас пользователя и проверяем:
Если Primary Extension пуст - сначала связываем End User'а с телефоном (Device Associations), затем в выпадающем списке Primary Extension выбираем какой номер у этого пользователя основной (ведь даже на одном телефоне может быть несколько номеров).
Save.

Возвращаемся в Cisco Unity Connection. Идем в навигационной панели слева в Users / Import Users:
Выбираем нужную phone system и жмем Find:
Все, можно импортировать. Import Selected.

Теперь, если абонент с номером 1003 нажмет на телефоне кнопку voicemail, то вместо Opening Greeting он попадет в свой voicemail ящик.

Кстати, чтобы удалить такого пользователя, нужно сначала удалить AXL сервер из phone system.

понедельник, 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 и настраивать под нужный Т.З.

суббота, 18 июля 2015 г.

Интеграция Cisco Unity Connection с Cisco Unified Communications Manager'ом (посредством SCCP)

Наверное, с этого и стоило начать :) но... лучше поздно, чем никогда.

Итак, есть свежепоставленный CUCM и, аналогично, CUC. Задача: при звонке на любой из номеров, если абонент не поднимает трубку, иметь возможность оставить ему голосовое сообщение.

Для начала идем в CUCM: CM Administration / Advanced Features / Voice Mail / Cisco Voice Mail Port Wizard:
Самое начало wizard'а:
Какое бы значение мы здесь не указали (я оставил по умолчанию CiscoUM1) его нужно запомнить, так как оно затем понадобится при настройке CUC.
Жмем Next:
Выбираем количество портов, которые мы хотим создать - они определят количество одновременных соединений между CUCM и CUC (т.е. сколько человек одновременно захотят оставить или прослушать сообщения). Вообщем-то, эта цифра ограничена возможностями железа и купленной лицензией.
Идем дальше - Next и настраиваем будущие порты:
Next. Теперь нужно указать начальный DN для портов, которые будут созданы wizard'ом (в моем случае их будет 5 штук). Каждый следующий порт будет иметь значение DN+1:
Next. На этом этапе можно отказаться от услуг wizard'а и создать Line Group вручную. Но мы пойдем до конца:
Next:
Я назвал автоматически создаваемый Line Group как LineGroup4voicemail. Next и мы в шаге от завершения wizard'а:
Осталось только нажать Finish и:

На результат wizard'а можно посмотреть здесь (Advanced Features / Voice Mail / Cisco Voice Mail Port):
Собственно, все эти порты можно было создать прямо здесь, по одному, wizard лишь облегчает задачу. Главное помнить о том, что Device Name должен иметь определенный формат. Как здесь видно, все порты имеют название: значение Cisco Voice Mail Server плюс "-VI" плюс порядковый номер.
Wizard также создал и Line Group, в которой объединил все voice порты (Call Routing / Route/Hunt / Line Group):

Теперь нужно создать Hunt List. Идем в Call Routing / Route/Hunt / Hunt List и жмем Add New, настраиваем:
Я назвал Hunt List как HuntList4voicemail.
Жмем Save и внизу открывается секция Hunt List Member Information. Нажимаем Add Line Group и добавляем в список нашу Line Group'у: LineGroup4voicemail. В результате:
Save.

Теперь Hunt Pilot - идем в Call Routing / Route/Hunt / Hunt Pilot, жмем Add New и настраиваем:
Нужно указать какой-нибудь свободный DN, который будет использоваться системой для выхода на voicemail. Я указал 6000. Также выбираем ранее созданный HuntList4voicemail и отключаем Provide Outside Dial Tone.
Save.

Теперь Message Waiting Indicators: нужно настроить - какой (свободный) DN использовать для MWI On и какой - для MWI Off. Идем в Advanced Features / Voice Mail / Message Waiting.
Жмем Add New в первый раз и настраиваем MWI On:
Save.
Затем жмем Add New во второй раз и настраиваем MWI Off:
Для проверки, если сейчас с любого телефона набрать 6001 - на телефоне должен загореться индикатор "непрочитанные сообщения". Чтобы индикатор погас - нужно набрать 6002.

Итак, двигаемся дальше.

Voice Mail Pilot: идем в Advanced Features / Voice Mail / Voice Mail Pilot и жмем Add New (хотя, в принципе можно отредактировать существующий):
В качестве Voice Mail Pilot Number нужно указать тот DN, для которого был создан Hunt Pilot (т.е. в моем случае это 6000).

Voice Mail Profile: идем в Advanced Features / Voice Mail / Voice Mail Profile и также жмем Add New или используем существующий профиль:
Я назвал новый профиль MySCCPprofile4CUC и сделал его используемым по умолчанию. В качестве Voice Mail Pilot нужно не забыть выставить созданный ранее 6000.

Итак, если теперь пользователь нажмет кнопку voicemail на телефоне он попадет в Voice Mail Pilot, равный 6000, т.е. фактически наберет номер 6000, для которого есть Hunt Pilot с тем же номером, Hunt Pilot направит звонок в Hunt List (HuntList4voicemail), а оттуда в Line Group (LineGroup4voicemail), в которой же находятся Voice Mail Port'ы. Система выберет первый свободный порт и...
Но пока что, voice port'ы никуда не указывают - пора настраивать CUC.

Теперь идем в Cisco Unity Connection. Слева в навигационной панели выбираем Telephony Integrations / Phone System, и жмем Add New:
Пусть называется: SCCP_CUCM.
Жмем Save и попадаем в детали настройки нашей phone system:
 Пока оставляем все по умолчанию, идем дальше - Save.

Слева в навигационной панели выбираем Telephony Integrations / Port Group и жмем Add New. Настраиваем:
Выбираем только что созданную phone system (SCCP_CUCM), тип группы = SCCP, даем название (пусть будет SCCP_CUCM-PortGroup) и (тут очень внимательно!) Device Name Prefix устанавливаем в значение, эквивалентное названию voicemail портов (Device Name) в CUCM (Advanced Features / Voice Mail / Cisco Voice Mail Port), за вычетом порядкового номера (в конце). В моем случае это будет CiscoUM1-VI.
Указываем также DN для MVI On и MWI Of, которые завели ранее в CUCM. И в секции Primary Server Settings пишем ip адрес CUCM сервера.
Save.

Пришла пора создавать собственно voice mail порты: слева идем в Telephony Integrations / Port, жмем Add New и настраиваем:
Указываем количество портов (в данном случае 5), выбираем нужную Phone System, Port Group и Save.
В результате:
Если кликнуть на любой из этих портов:
Можно увидеть внизу поле SCCP (Skinny) Device Name - его значение должно в точности соответствовать одному из voice mail портов (его Device Name) в CUCM .

Теперь самое интересное, то, ради чего все и затевалось - идем обратно в CUCM, в меню: Advanced Features / Voice Mail / Cisco Voice Mail Port, жмем Find и видим:

Все! Теперь если на телефоне нажать кнопку voicemail - мы попадем в Cisco Unity и услышим соответствующее приветствие.
Для полноценной работы осталось только перенести пользователей в unity (чтобы у каждого номера был свой голосовой ящик) и настроить в CUCM перевод звонка на voicemail в случае No Answer.


Ссылки:
How to integrate Cisco Unity Connection with CUCM 8.x