Общие принципы обработчика сценариев


Обработчик сценария в зависимости от типа сценария может быть запущен разными способами.

IVR

  • поступление входящего звонка;
  • начало обработки звонка по задаче автоматического оповещения;
  • звонок на внутренний номер, за которым назначен сценарий IVR;
  • передача управления из одного сценария в другой;
  • входящий звонок на задачу автоматической обработки;
  • переключение оператором абонента на номер, за которым назначен сценарий IVR;
  • переадресация на внешние номера с детальным указанием направлений;
  • гибкая маршрутизация (Вход в АТС) при снятии трубки на любом внутреннем телефоне и переключениях;
  • обработка вызовов, поступающих в момент ожидания завершения всех коммутаций при перезапуске сервера.

Диалоговый

  • начало обработки звонка по задаче приема звонков оператором;
  • начало обработки звонка по задаче исходящего оповещения оператором;
  • запрос оператору на дозвон в задаче с резервированием и запросом;

Служебный

  • по таймеру, по расписанию;
  • после разрыва связи с внешней линией с передачей в сценарий собранного контента;
  • в ходе отработки контрольных событий;
  • вложенный запуск из других служебных сценариев;
  • асинхронный параллельный запуск из любых сценариев с передачей кода сессии и значений всех переменных;
  • исходящие текстовые задачи (также ICQ, e-mail и служебные действия);
  • активация контрольного события;
  • асинхронный запуск служебного сценария из других сценариев;
  • набор номеров в менеджерах задач и автодозвона;
  • преобразования строк.


В ходе обработки сценария сервер поочередно выполняет соответствующие команды или преобразования, которые определяются объектами. Все обработанные объекты выстраивается в одну последовательность. Очередной объект определяется результатами выполнения предшествующего ему объекта. Выполняемый в текущий момент времени объект – активный объект.


При реализации сценариев по задачам call-центра, у сценария появляется доступ к информации о текущей выполняемой задаче, а также доступ на чтение и/или запись к строке текущего абонента в прикрепленной к задаче таблице абонентов.


Ход обработки можно проследить на примере. Производится звонок по задаче на исходящее оповещение. К задаче прикреплена таблица с информацией об абонентах. Звонок был произведен на одного из них. В диалоговые формы заносится информация из полей таблицы, соответствующих этому абоненту, маршрутизация звонка происходит на основе имеющейся в БД информации, а также на основе введенной абонентом или оператором информации. Вся введенная информация попадает в ту же таблицу в другие поля, или перезаписывает имеющиеся. При автоматической обработке абоненту могут быть озвучены значения полей из таблицы. Вся полученная информация помимо прикрепленной таблицы может быть загружена во внешнюю БД в ходе реализации сценариев IVR или диалога с указанием параметров задачи, по которой производился звонок. Точно также сценарий диалога может всю имеющуюся информацию выгрузить наружу и запустить любое внешнее приложение, включая PHP и ASP.NET скрипты.