Актуализация телефонной базы — различия между версиями
Строка 37: | Строка 37: | ||
== IVR сценарий == | == IVR сценарий == | ||
− | Данный IVR сценарий будет запускаться после ответа абонента. Вообще говоря, для актуализации достаточно только одного факта, что абонент поднимет трубку. Поэтому в IVR сценарии сразу после поднятия трубки, связь будет обрываться. | + | Данный IVR сценарий будет запускаться после ответа абонента. Вообще говоря, для актуализации достаточно только одного факта, что абонент поднимет трубку. Поэтому в IVR сценарии сразу после поднятия трубки, связь будет обрываться. |
Строка 48: | Строка 48: | ||
== Служебный сценарий обработки звонка/попытки == | == Служебный сценарий обработки звонка/попытки == | ||
− | Сценарий обработки звонка/попытки | + | Сценарий обработки звонка/попытки анализирует проведенный звонок и записывает результат в таблицу БД. |
+ | |||
+ | |||
+ | [[Файл:Актуализация БД-006.png|center]] | ||
+ | |||
+ | |||
+ | Компонент "'''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] | ||
+ | *Способ оповещения - всплывающее уведомление | ||
+ | *Ключ получателя - выберите внутренний номер вашего пользователя. | ||
+ | |||
+ | |||
+ | Компонент "'''Запись в БД'''". По номеру абонента в списке и идентификатору задачи определяет статус абонента и время следующей попытки. Затем все найденные параметры записываются в таблицу. | ||
+ | |||
+ | 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''' | ||
Строка 55: | Строка 99: | ||
== Установка готового проекта в систему == | == Установка готового проекта в систему == | ||
− | '''1.''' Скачайте и импортируйте проект Call-центра: [http://wiki.oktell.ru/images/7/7b/%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%B1%D0%B0%D0%B7%D1%8B.prz Актуализация базы.prz] | + | '''1.''' Скачайте и импортируйте проект Call-центра: [http://wiki.oktell.ru/images/7/7b/%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%B1%D0%B0%D0%B7%D1%8B.prz Актуализация базы.prz] (''собран на версии 2.12.0.150423'') |
'''2.''' Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "''База клиентов для актуализации''" | '''2.''' Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "''База клиентов для актуализации''" |
Версия 09:32, 8 мая 2015
Содержание
Задача: Создать задачу для автоматического прозвона и актуализации телефонной базы.
В данной статье под актуализацией понимается проверка доступности телефонных номеров из некоторой базы клиентов. Такая процедура иногда требуется перед операторским исходящим обзвоном, чтобы исключить неотвечающих и недоступных абонентов. В 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]
- Способ оповещения - всплывающее уведомление
- Ключ получателя - выберите внутренний номер вашего пользователя.
Компонент "Запись в БД". По номеру абонента в списке и идентификатору задачи определяет статус абонента и время следующей попытки. Затем все найденные параметры записываются в таблицу.
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
Результаты работы
Установка готового проекта в систему
1. Скачайте и импортируйте проект Call-центра: Актуализация базы.prz (собран на версии 2.12.0.150423)
2. Вставьте или импортируйте номера телефонов для обзвона в таблицу абонентов "База клиентов для актуализации"
3. Выберите в ресурсах задачи линии для обзвона
4. Активируйте задачу