Актуализация телефонной базы — различия между версиями
м (→IVR сценарий) |
|||
Строка 43: | Строка 43: | ||
− | Все компоненты имеют свойства по умолчанию. По желанию, вы можете воспроизводить приветствие абоненту или добавить возможность переключения на операторов, например как в статье [ | + | Все компоненты имеют свойства по умолчанию. По желанию, вы можете воспроизводить приветствие абоненту или добавить возможность переключения на операторов, например как в статье [[Автоматический_обзвон_абонентов_сценарием_IVR_с_подключением_оператора|Автоматический обзвон абонентов сценарием IVR с подключением оператора]] |
− | + | ||
== Служебный сценарий обработки звонка/попытки == | == Служебный сценарий обработки звонка/попытки == |
Версия 10:42, 31 марта 2023
Содержание
Задача: Создать задачу для автоматического прозвона и актуализации телефонной базы.
В данной статье под актуализацией понимается проверка доступности телефонных номеров из некоторой базы клиентов. Такая процедура иногда требуется перед операторским исходящим обзвоном, чтобы исключить неотвечающих и недоступных абонентов. В Oktell это решается через с помощью исходящей IVR задачи.
Создание проекта
В модуле Call-центр/Проекты нажмите Добавить. Введите название проекта, например, "Актуализация базы".
Нажмите Сохранить.


Создание таблицы абонентов
- Перейдите в модуль "Таблицы абонентов".
- Нажмите Добавить. Введите название списка и название таблицы (только на латинице). В примере, список называется База клиентов для актуализации, таблица называется Actualized_Database.
- Перейдите на вкладку Данные. Добавьте следующие столбцы:
- Id - номер абонента в списке. Тип Int, назначение Идентификатор создается автоматически.
- phone - телефон абонента. Тип Nvarchar (auto), назначение Телефон, необходим для задачи.
- CallResult - результат последнего звонка абоненту. Тип Nvarchar (auto)
- SipAnswer - ответ от SIP-провайдера по последней попытке. Nvarchar (auto)
- AbonentResult - итоговый результат по абоненту. Тип Nvarchar (auto)
- NextEffortTime - время следующей попытки для дозвона. Тип Datetime
Импортируйте или введите вручную номера для обзвона.


IVR сценарий
Данный IVR сценарий будет запускаться после ответа абонента. Вообще говоря, для актуализации достаточно только одного факта, что абонент поднимет трубку. Поэтому в IVR сценарии сразу после поднятия трубки, связь будет обрываться.
Все компоненты имеют свойства по умолчанию. По желанию, вы можете воспроизводить приветствие абоненту или добавить возможность переключения на операторов, например как в статье Автоматический обзвон абонентов сценарием IVR с подключением оператора
Служебный сценарий обработки звонка/попытки
Сценарий обработки звонка/попытки анализирует проведенный звонок и записывает результат в таблицу БД.
Компонент "1с". Пауза в 1 секунду требуется для занесения необходимых данных о звонке в таблицы оперативный статистики, поскольку при большой интенсивности звонков они могут записываться с некоторой задержкой.
- Время задержки, мс - 1000
Компонент "Начальные параметры". Сохраняет номер абонента в списке, идентификатор задачи, результат звонка (Входной параметр 3) и SIP-ответ от провайдера (Входной параметр 5) в переменные:
- переменной CallResult (строковая) присваивается значение функции "Входной параметр 3".
- переменной SipAnswer (строковая) присваивается значение функции "Входной параметр 5".
- переменной IdInList (строковая) присваивается значение функции "Id абонента в списке"
- переменной TaskId (строковая) присваивается значение функции "Id задачи"
Компонент "Ув1". Отладочное уведомление для вывода найденных параметров
- Текст - выражение
'[CallResult] '+[CallResult]+endline+ '[IdInList] '+[IdInList]+endline+ '[SipAnswer] '+[SipAnswer]+endline+ '[TaskId] '+[TaskId]
- Способ оповещения - всплывающее уведомление
- Ключ получателя - выберите внутренний номер вашего пользователя.
Компонент "Запись в БД". По номеру абонента в списке и идентификатору задачи определяет статус абонента и время следующей попытки. Затем все найденные параметры записываются в таблицу. Запрос использует таблицу A_Cube_CC_Cat_TaskResultTypes для расшифровки статуса звонка.
update Actualized_Database set CallResult=(select top 1 name from oktell_cc_temp.dbo.A_Cube_CC_Cat_TaskResultTypes where id=@callresult), sipanswer=case when @sipanswer='' then '' else @sipanswer end, NextEffortTime = (select top 1 NextEffortTime from A_TaskManager_SubTasks where taskid=@taskid and IdInList=@idinlist), abonentresult = (select top 1 case when nresult=0 then 'В процессе' when NResult=1 then 'Успешно завершен' when NResult=2 then 'Закончились попытки' when NResult=3 then 'Удален из обзвона' end from A_TaskManager_SubTasks where taskid=@taskid and IdInList=@idinlist) where id=@idinlist
где
- @callresult - переменная CallResult
- @idinlist - переменная IdInList
- @sipanswer - переменная SipAnswer
- @taskid - переменная TaskId
Создание задачи
Создайте исходящую IVR задачу "Актуализация базы". На вкладке "Параметры" укажите:
- Тип: Исходящая, IVR
- Сценарий IVR - выберите созданный сценарий "Сценарий IVR"
- Расписание задачи - установите время действия задачи, в примере с 10-00 до 18-00
На вкладке "Ресурсы" укажите внешние линии, по которым будет происходить обзвон


На вкладке "Абоненты" укажите таблицу абонентов "База клиентов для актуализации"
На вкладке "Дополнительно" укажите
- Паузу и количество сигналов при ответе "Занято"
- Паузу и количество сигналов при ответе "Не отвечает".
- Служебный сценарий обработки звонка/попытки - выберите созданный сценарий "Служебный сценарий обработки звонка"
Сохраните задачу и запустите ее.


Результаты работы
Во время обзвона вы можете в любой момент посмотреть статусы абонентов, определить сколько абонентов находятся в процессе дозвона, какие основные причины недоступности других абонентов.
По завершению задачи в таблице доступные абоненты будут отмечены статусом "Успешно завершен". Абоненты, до которых задача не дозвонилась будут отмечены "Закончились попытки", причину можно посмотреть в столбце с результатом звонка. Если абонент занят, посмотрите на последний SIP-ответ от провайдера — вполне возможно, что этот номер не существует (ответ 404 not found).
Установка готового проекта в систему
1. Скачайте и импортируйте проект Call-центра: Актуализация базы.prz (собран на версии 2.12.0.150423)
2. Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "База клиентов для актуализации"
3. Выберите в ресурсах задачи линии для обзвона
4. Активируйте задачу