Как стать автором
Обновить

Customer Response Solutions: донабор номера

Время на прочтение4 мин
Количество просмотров3.4K
На работе появилась задача реализовать дозвон на внутренние номера организации. В качестве IP АТС у нас используется Cisco CallManager 4.2, а для колл-центра используется Customer Response Solutions 4.0 (IPCC). Для написания скрипта использовался Cisco Customer Response Solutions Editor, который поставляется вместе с CRS. За основу взят скрипт из пакета поставки редактора — aa.aef.

На данный момент скрипт уж очень простой и не содержит никаких голосовых приветствий, обработки различных событий (вроде сигнала «занято», неверно набранного номера). В дальнейшем я планирую его усовершенствовать до полноценного скрипта с приветствиями, запросами и всеми возможными проверками «на дурака». Сейчас опишу подробно, как сделать донабор номера.


Написание скрипта

Запускаем редактор и создаем новый скрипт.
image

Создадим две переменные: одна для хранения номера, другая — для запроса. Запрос у будет пустым, т.к. диалог требует присутствия этого параметра в настройках.
image

Теперь нужно добавить обработчики событий для входящего звонка. Вот такой получился скрипт:
image

По порядку пройдемся по основным элементам. Первый оператор Start по-умолчанию присутствует во всех скриптах и означает начало. Два последующих принимают вызов. Следующая функция Get Digit String позволяет получить от абонента набираемые цифры. Ее нужно настроить. После того, как вытащили ее с панели объектов в тело скрипта, нажмите на ней правой кнопкой мыши и выберите Properties. На первой вкладке General в списке Result Digit String выбираем переменную intNum. Далее на вкладке Prompt в списке Prompt выбираем переменную prompt. На вкладке Input вы можете настроить параметры получения цифр от абонента. Я оставил все по-умолчанию. И наконец, на вкладке Filter нужно задать количество цифр, которое будет ожидаться от абонента. Я выставил число 4 в поле Input Length, так как у меня четырехзначный внутренний номерной план.

Так как пока учитываем, что пользователь все ввел верно, добавляем функцию Call Redirect в условие Successful. Эта функция будет переадресовывать звонок на номер, который ввел абонент. Ее так же надо настроить. В свойствах Call Redirect в поле Destination выберите переменную intNum.

Добавляем в условие Successful функции Call Redirect функцию Set Contact Info. Нажимаем на ней ПКМ и в табличке Attributes напротив параметра Handled выбираем — Marked --. После добавляем оператор End. Это отметит звонок абонента как «обработанный» и завершит сессию.

В конце скрипта добавляем Terminate и End. На этом скрипт закончен. Сохраняем его на диске, после чего мы его зальем на сервер CRS.

Настройка CRS

Открываем админку CRS, выбираем пункт Script Management.
image

image

Перед нами список скриптов присутствующих в системе. Нужно добавить свой, только что созданный. Нажимайте на ссылку Upload New Scripts.
image

Выбирайте сохраненный скрипт и нажимайте кнопку Upload. Теперь, когда скрипт залит, нужно создать приложение. Приложение в CRS определяет скрипт, используемый JTAPI для обработки вызовов, а также задает начальные параметры для скрипта, если такие имеются.
Выбираем пункт Application Management.
image

Видим список имеющихся приложений в системе:
image

Нажимаем Add a New Application. В окошке появившемся в списке выбирайте Cisco Script Application.
image

Называем приложение как больше нравится. Я назвал его CityToInternal. Description — напишите что-то, что позволит вам в будущем вспомнить, зачем это приложение. ID — задается системой автоматически, но вы можете его поменять например на 666, если такое уже не занято другим приложением. Maximum number of sessions — максимальное количество звонков одновременно обрабатываемых приложением. Script — выбираем скрипт, в моем случае CTI.aef. Нажимаем Update.

Теперь нужно создать Media Termination Dialog Group. Медиа группы нужны для взаимодействия с абонентами, а именно для обработки DTMF тонов.

Выбираем пункт Cisco media.
image

Получаем список групп. Нажимаем Add a New CMT Dialog Control Group.
image

На появившейся странице задаем поля Description (что-нибудь, чтобы идентифицировать группу) и Maximum Number Of Channels (в моем случае 10). На самом деле под все приложения можно создать одну группу на 100 каналов, например. Но я предпочел разделить их.
image

Нажимаем Add и группа добавлена (на моем скриншоте Update, т.к. я скринил уже созданную группу).

Теперь выбираем пункт JTAPI и слева нажимаем на JTAPI Call Control Group. Нужно создать группу контроля вызова. Эта группа создаст необходимое количество CTI портов, на которые будет переадресовывать вызов абонента и уже с него активироваться приложение и наш скрипт.
image

Нажимаем Add a New JTAPI Call Control Group.
image

Заполняем поля. Group ID — заполняется системой автоматически, но вы опять же можете поставить что угодно, кроме уже используемых. Description — описание группы, поставьте что-то узнаваемое. Часто поля Description используются для отображения элементов в списках настроек, вместо ID. Number of CTI ports — я установил 10, это количество CTI портов, которое будет создано. Starting directory number — для этой группы потребуется 10 номеров и тут нужно указать номер первого порта (в моем случае 9980). Эти номера не должны быть назначены абонентам или Hunt-группам. Device name prefix — префикс для именование CTI портов. Device pool — выбрал Default. Media resource group list — выберите свой основной MRGL. Display — описание CTI портов, фактически то, что будет отображаться рядом с номером на экране телефона (Alerting name), когда CTI будет вам звонить. Жмем Add.

Теперь нужно создать триггер. Триггер — это некий номер, который абонент будет набирать, чтобы получить доступ к нашему приложению. Тот же пункт JTAPI, выбираем слева JTAPI Triggers. Видим список триггеров в системе.
image

Нажимаем Add a New JTAPI Trigger.
image

Directory number — номер, на котором будет активироваться наше приложение. Уточню, у меня указан 7-значный городской номер. Эти номера попадают на CCM с роутера, на который приходит PRI-поток, посредством dial-peer voip. В вашем случае, это может быть все что угодно — внутренний или любой другой номер, который попадает на CCM. Application name — выбираем приложение (в моем случае CityToInternal). Maximum number of sessions — максимальное количество сессий, ставим 10. Call control group — группа контроля вызова (JTAPI Call control group). Primary dialog group — медиа группа (Media Termination Dialog Group). Device Name и Description — задаются автоматически на основе Prefix(DN) + Directory Number, но вы можете их изменить под себя. Нажимаем Add и все готово.

Конфигурация роутера

Dial-peer на моем voice-gateway выглядит следующим образом:

dial-peer voice 254 voip
description === 1234567 ===
destination-pattern 1234567
session target ipv4:1.2.3.4
dtmf-relay h245-signal h245-alphanumeric
codec g711ulaw

1.2.3.4 — IP-адресс Cisco CallManager.

Теперь можно проверить работу приложения, позвонив на номер указанный в JTAPI триггере.

На этом пока все. Надеюсь моя статья сможет вам пригодиться.
Теги:
Хабы:
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

Публикации