Актуализация телефонной базы — различия между версиями
м (→Установка готового проекта в систему) |
|||
(не показано 10 промежуточных версии этого же участника) | |||
Строка 33: | Строка 33: | ||
<center>[[Файл:Актуализация БД-003.png | 500px]][[Файл:Актуализация БД-004.png| 500px]]</center> | <center>[[Файл:Актуализация БД-003.png | 500px]][[Файл:Актуализация БД-004.png| 500px]]</center> | ||
+ | |||
+ | |||
== IVR сценарий == | == IVR сценарий == | ||
+ | Данный IVR сценарий будет запускаться после ответа абонента. Вообще говоря, для актуализации достаточно только одного факта, что абонент поднимет трубку. Поэтому в IVR сценарии сразу после поднятия трубки, связь будет обрываться. | ||
+ | |||
+ | |||
+ | [[Файл:Актуализация БД-005.png|center]] | ||
+ | |||
+ | |||
+ | Все компоненты имеют свойства по умолчанию. По желанию, вы можете воспроизводить приветствие абоненту или добавить возможность переключения на операторов, например как в статье [[Автоматический_обзвон_абонентов_сценарием_IVR_с_подключением_оператора|Автоматический обзвон абонентов сценарием IVR с подключением оператора]] | ||
== Служебный сценарий обработки звонка/попытки == | == Служебный сценарий обработки звонка/попытки == | ||
+ | |||
+ | Сценарий обработки звонка/попытки анализирует проведенный звонок и записывает результат в таблицу БД. | ||
+ | |||
+ | |||
+ | [[Файл:Актуализация БД-006.png|center]] | ||
+ | |||
+ | |||
+ | Компонент "'''1с'''". Пауза в 1 секунду требуется для занесения необходимых данных о звонке в таблицы оперативный статистики, поскольку при большой интенсивности звонков они могут записываться с некоторой задержкой. | ||
+ | * Время задержки, мс - 1000 | ||
+ | |||
+ | |||
+ | Компонент "'''Начальные параметры'''". Сохраняет номер абонента в списке, идентификатор задачи, результат звонка (Входной параметр 3) и SIP-ответ от провайдера (Входной параметр 5) в переменные: | ||
+ | * переменной '''CallResult''' (строковая) присваивается значение функции "Входной параметр 3". | ||
+ | * переменной '''SipAnswer''' (строковая) присваивается значение функции "Входной параметр 5". | ||
+ | * переменной '''IdInList''' (строковая) присваивается значение функции "Id абонента в списке" | ||
+ | * переменной '''TaskId''' (строковая) присваивается значение функции "Id задачи" | ||
+ | |||
+ | |||
+ | [[Файл:Актуализация БД-007.png|center]] | ||
+ | |||
+ | |||
+ | Компонент "'''Ув1'''". Отладочное уведомление для вывода найденных параметров | ||
+ | *Текст - выражение | ||
+ | '[CallResult] '+[CallResult]+endline+ | ||
+ | '[IdInList] '+[IdInList]+endline+ | ||
+ | '[SipAnswer] '+[SipAnswer]+endline+ | ||
+ | '[TaskId] '+[TaskId] | ||
+ | *Способ оповещения - всплывающее уведомление | ||
+ | *Ключ получателя - выберите внутренний номер вашего пользователя. | ||
+ | |||
+ | |||
+ | Компонент "'''Запись в БД'''". По номеру абонента в списке и идентификатору задачи определяет статус абонента и время следующей попытки. Затем все найденные параметры записываются в таблицу. Запрос использует таблицу [[Описание_результатов_звонка_из_таблицы_A_Cube_CC_Cat_TaskResultTypes|A_Cube_CC_Cat_TaskResultTypes]] для расшифровки статуса звонка. | ||
+ | |||
+ | <nowiki> | ||
+ | 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</nowiki> | ||
+ | |||
+ | где | ||
+ | *@callresult - переменная '''CallResult''' | ||
+ | *@idinlist - переменная '''IdInList''' | ||
+ | *@sipanswer - переменная '''SipAnswer''' | ||
+ | *@taskid - переменная '''TaskId''' | ||
+ | |||
+ | |||
+ | [[Файл:Актуализация БД-008.png|center]] | ||
+ | |||
+ | == Создание задачи == | ||
+ | Создайте исходящую IVR задачу "Актуализация базы". | ||
+ | На вкладке "Параметры" укажите: | ||
+ | *Тип: Исходящая, IVR | ||
+ | *Сценарий IVR - выберите созданный сценарий "Сценарий IVR" | ||
+ | *Расписание задачи - установите время действия задачи, в примере с 10-00 до 18-00 | ||
+ | |||
+ | На вкладке "Ресурсы" укажите внешние линии, по которым будет происходить обзвон | ||
+ | |||
+ | <center>[[Файл:Актуализация БД-009.png | 500px]][[Файл:Актуализация БД-010.png| 500px]]</center> | ||
+ | |||
+ | |||
+ | На вкладке "Абоненты" укажите таблицу абонентов "База клиентов для актуализации" | ||
+ | |||
+ | На вкладке "Дополнительно" укажите | ||
+ | * Паузу и количество сигналов при ответе "Занято" | ||
+ | * Паузу и количество сигналов при ответе "Не отвечает". | ||
+ | * Служебный сценарий обработки звонка/попытки - выберите созданный сценарий "Служебный сценарий обработки звонка" | ||
+ | Сохраните задачу и запустите ее. | ||
+ | |||
+ | <center>[[Файл:Актуализация БД-011.png | 500px]][[Файл:Актуализация БД-012.png| 500px]]</center> | ||
== Результаты работы == | == Результаты работы == | ||
+ | |||
+ | Во время обзвона вы можете в любой момент посмотреть статусы абонентов, определить сколько абонентов находятся в процессе дозвона, какие основные причины недоступности других абонентов. | ||
+ | |||
+ | По завершению задачи в таблице доступные абоненты будут отмечены статусом "Успешно завершен". Абоненты, до которых задача не дозвонилась будут отмечены "Закончились попытки", причину можно посмотреть в столбце с результатом звонка. Если абонент занят, посмотрите на последний SIP-ответ от провайдера — вполне возможно, что этот номер не существует (ответ 404 not found). | ||
+ | |||
+ | [[Файл:Актуализация БД-013.png|center]] | ||
== Установка готового проекта в систему == | == Установка готового проекта в систему == | ||
− | '''1.''' Скачайте и импортируйте проект Call-центра: [ | + | '''1.''' Скачайте и импортируйте проект Call-центра: [[Media:Актуализация_базы.prz|Актуализация базы.prz]] (''собран на версии 2.12.0.150423'') |
'''2.''' Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "''База клиентов для актуализации''" | '''2.''' Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "''База клиентов для актуализации''" |
Текущая версия на 10:46, 31 марта 2023
Содержание
Задача: Создать задачу для автоматического прозвона и актуализации телефонной базы.
В данной статье под актуализацией понимается проверка доступности телефонных номеров из некоторой базы клиентов. Такая процедура иногда требуется перед операторским исходящим обзвоном, чтобы исключить неотвечающих и недоступных абонентов. В Oktell это решается через с помощью исходящей IVR задачи.
Создание проекта
В модуле Call-центр/Проекты нажмите Добавить. Введите название проекта, например, "Актуализация базы".
Нажмите Сохранить.
![Актуализация БД-001.png](/images/thumb/2/25/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-001.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-001.png)
![Актуализация БД-002.png](/images/thumb/6/62/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-002.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-002.png)
Создание таблицы абонентов
- Перейдите в модуль "Таблицы абонентов".
- Нажмите Добавить. Введите название списка и название таблицы (только на латинице). В примере, список называется База клиентов для актуализации, таблица называется Actualized_Database.
- Перейдите на вкладку Данные. Добавьте следующие столбцы:
- Id - номер абонента в списке. Тип Int, назначение Идентификатор создается автоматически.
- phone - телефон абонента. Тип Nvarchar (auto), назначение Телефон, необходим для задачи.
- CallResult - результат последнего звонка абоненту. Тип Nvarchar (auto)
- SipAnswer - ответ от SIP-провайдера по последней попытке. Nvarchar (auto)
- AbonentResult - итоговый результат по абоненту. Тип Nvarchar (auto)
- NextEffortTime - время следующей попытки для дозвона. Тип Datetime
Импортируйте или введите вручную номера для обзвона.
![Актуализация БД-003.png](/images/thumb/3/32/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-003.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-003.png)
![Актуализация БД-004.png](/images/thumb/9/9e/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-004.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-004.png)
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
На вкладке "Ресурсы" укажите внешние линии, по которым будет происходить обзвон
![Актуализация БД-009.png](/images/thumb/3/38/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-009.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-009.png)
![Актуализация БД-010.png](/images/thumb/0/0f/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-010.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-010.png)
На вкладке "Абоненты" укажите таблицу абонентов "База клиентов для актуализации"
На вкладке "Дополнительно" укажите
- Паузу и количество сигналов при ответе "Занято"
- Паузу и количество сигналов при ответе "Не отвечает".
- Служебный сценарий обработки звонка/попытки - выберите созданный сценарий "Служебный сценарий обработки звонка"
Сохраните задачу и запустите ее.
![Актуализация БД-011.png](/images/thumb/d/d9/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-011.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-011.png)
![Актуализация БД-012.png](/images/thumb/d/dd/%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-012.png/500px-%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%91%D0%94-012.png)
Результаты работы
Во время обзвона вы можете в любой момент посмотреть статусы абонентов, определить сколько абонентов находятся в процессе дозвона, какие основные причины недоступности других абонентов.
По завершению задачи в таблице доступные абоненты будут отмечены статусом "Успешно завершен". Абоненты, до которых задача не дозвонилась будут отмечены "Закончились попытки", причину можно посмотреть в столбце с результатом звонка. Если абонент занят, посмотрите на последний SIP-ответ от провайдера — вполне возможно, что этот номер не существует (ответ 404 not found).
Установка готового проекта в систему
1. Скачайте и импортируйте проект Call-центра: Актуализация базы.prz (собран на версии 2.12.0.150423)
2. Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "База клиентов для актуализации"
3. Выберите в ресурсах задачи линии для обзвона
4. Активируйте задачу