Встроенные функции сценария

Встроенная функция сценария даёт доступ к данным системы в момент выполнения сценария. Функции задаются на вкладке «Функции» окна аргумента; значение вычисляется при обработке и подставляется в свойство текущего объекта. Обратиться к функции можно и из выражения — через ScriptFunc('полное название').

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

Обозначения в колонке «Типы» IVR — сценарии IVR, Д — диалоговые, С — служебные, Все — доступна во всех типах. Функция, недоступная в текущем типе сценария, в списке не появится.

Время и дата

ФункцияВозвращаетТипыОписание
Текущая датадата/времяВсеТекущая дата.
Текущее времястрокаВсеТекущее время.
Текущий год / месяц / деньчислоВсеСоответствующая составляющая текущей даты.
Текущий день неделичислоВсеДень недели, 1—7.
Текущий час / минута / секундачислоВсеСоответствующая составляющая текущего времени.
Время в текущем сценариичислоВсеСекунд, прошедших после запуска непосредственно текущего сценария.
Время в обработчике сценариевчислоВсеСекунд, прошедших после запуска текущей сессии сценариев.

Сценарий и сессия

ФункцияВозвращаетТипыОписание
Id сессии сценариястрокаВсеУникальный код сессии сценария — строковое представление GUID. По нему идёт доступ к хранилищу глобальных переменных и формируются цепочки коммутаций при дозвоне.
Название текущего сценариястрокаВсеНазвание выполняемого сценария.
Случайное числочислоВсеСлучайное число от 0 до 999999, равномерное распределение.

Абонент и звонок

ФункцияВозвращаетТипыОписание
Номер абонента (CallerId)строкаIVR, ДДля внешних линий — определитель номера абонента. Если номер не определён, возвращается строка «Номер не определен».
Набранный (внешний) номер (CalledId)строкаIVR, ДНомер, по которому дозвонился абонент — актуально для потоков E1. Если номер не определился, подставляется значение из свойства внешней линии.
XML-INFO абонентастрокаIVR, ДСтрока, сформированная внешним приложением и переданная вместе со звонком из интеграционного модуля SipClient. Может быть разобрана в сценарии и использована для произвольной маршрутизации. Вызов поступает на каналы шлюзов с типом регистрации «Входящие из COM-клиента».
Тип соединениячислоIVR, ДКод направления вызова, см. таблицу ниже.
Id коммутациистрокаIVR, ДУникальный идентификатор коммутации.
Id цепочки коммутацийстрокаIVR, ДУникальный идентификатор звонка (сессии) внутри АТС Октелл.
Id sip-сессиистрокаIVRПо умолчанию — уникальный идентификатор SIP-сессии из поля «Call-ID».
CallerId и CalledId на внутренних линиях В IVR-сценарии эти функции ведут себя иначе, чем на внешних линиях.

CallerId возвращает номер обслуживаемого пользователя в виде строки, начинающейся с символа «U», — это прямой сервисный внутренний номер. Набрать его с телефона нельзя из-за спецсимволов, он служебный. Зато его можно подставить аргументом в компоненты со свойством «Внутренний номер получателя» — «Уведомление», «Голосовая почта» и другие.

CalledId возвращает номер, по которому был осуществлён вход в текущий сценарий из АТС. При звонке с IP-телефона, если набранный номер начинается с внутреннего номера входа в сценарий, функция вернёт всю последовательность. Пример: номер сценария 25, на IP-телефоне набрали 2511 — функция вернёт 2511.

Коды типов соединения

КодНаправление
1Звонок с внутренней линии на внешнюю (только диалоговый)
2Звонок с внутренней линии в IVR
4Звонок с внешней линии в IVR
5Звонок с внешней линии на внутреннюю (только диалоговый)
7Звонок из IVR на внешнюю линию (из задачи)
8Звонок из IVR на внутреннюю линию (из задачи)

Линия

ФункцияВозвращаетТипыОписание
Guid-идентификатор линиистрокаВсеGUID обслуживаемой сценарием линии.
Номер линиистрокаВсеНомер линии по классификации АТС Октелл — 11001, 15049 и подобные. Список линий и их номеров — в модуле «Администрирование. Линии».
Код линиистрокаВсеКод линии, назначенный в модуле «Администрирование. Линии».
Тип линиистрокаIVR, ДЧисло, определяющее тип линии, см. таблицу ниже.
Код направлениястрокаIVRКод первого найденного активного направления, в котором присутствует обслуживаемая линия.
Номер линии, ожидающей во Flash-буферестрокаIVRНомер линии абонента, ожидающего во Flash-буфере обслуживаемой линии. Иначе — пустая строка.
Номер линии, осуществившей переключениестрокаIVRЕсли сценарий был переведён другой линией через Flash-удержание — её номер. Иначе — пустая строка.
Название активного фонового IVR-сценария медиа-взаимодействиястрокаIVRНазвание фонового сценария медиа-взаимодействия, активного с текущей линией. Иначе — пустая строка.
Функции линии в служебном сценарии «Guid-идентификатор линии», «Номер линии» и «Код линии» формально доступны во всех типах сценариев, но в служебном возвращают непустое значение только в некоторых режимах — например, когда сценарий работает преобразователем CallerId на входящих вызовах. В остальных случаях рассчитывать на них нельзя.
Когда линия в нескольких направлениях «Код направления» вернёт только первое найденное активное направление. Если линия назначена в несколько и нужно уточнить принадлежность к конкретному, пользуйтесь компонентом «Статус объекта».

Коды типов линии

КодТип линии
1Внешняя аналоговая
2Внутренняя аналоговая
3VoIP-канал
4Внешняя GSM
5IP
6Канал потока E1
7Внешняя SIP
8Внутренний транк на шлюз SIP
11Внешний SIP-канал из потока шлюза с динамической регистрацией
13Транк для межсерверного взаимодействия

Пользователь, обслуживаемый в сценарии

ФункцияВозвращаетТипыОписание
Guid-идентификатор пользователястрокаIVRИдентификатор пользователя, который обслуживается в сценарии.
Имя пользователястрокаIVRИмя обслуживаемого пользователя. Работает для внутренних линий всех типов, связанных с пользователем; для остальных — пустая строка.
Номер пользователя внутри АТСстрокаIVRВнутренний стандартный номер, по которому можно дозвониться до обслуживаемого объекта. Для внешних линий — пустая строка.
Как выбирается номер, если их несколько Когда во внутреннем номерном плане несколько номеров ссылаются на обслуживаемый объект, будет выбран негрупповой — тот, в списке ссылок которого присутствует единственный объект, линия или пользователь. Если негруппового номера нет, берётся групповой с наименьшим значением: из 203 и 405 будет выбран 203.

Оператор

ФункцияВозвращаетТипыОписание
Id операторастрокаДИдентификатор текущего оператора в виде 00000000-0000-0000-0000-000000000000.
Имя операторастрокаДИмя текущего оператора.
Внутренний номер оператора (Uguid)строкаДКодовое представление номера оператора, обслуживающего текущий звонок. Требуется компонентам «Уведомление», «Определение статуса» и другим, где указывается номер.
Хост операторастрокаДИмя компьютера оператора, обслуживающего текущий звонок.
Оператор может смениться по ходу сценария В ходе обработки диалогового сценария операторы могут переключаться. Значение, полученное в начале сценария, к его концу может относиться уже к другому человеку — при необходимости читайте функцию повторно в нужной точке.

Проект, задача, абонент

ФункцияВозвращаетТипыОписание
Id проекта / Название проектастрокаВсеИдентификатор и название проекта текущей задачи, в ходе обработки которой запущен сценарий.
Id задачи / Код задачи / Название задачистрокаВсеИдентификатор, код и название текущей задачи.
Параметр задачичислоВсеПараметр запуска сценария, переданный из задачи. Попал туда в момент её создания из компонента «Задание на звонок».
Id абонента в спискечислоВсеИдентификатор абонента в прикреплённой таблице абонентов.

Состояние системы

ФункцияВозвращаетТипыОписание
Количество свободных внешних линийчислоIVR, ДЧисло свободных внешних линий в активном состоянии.
Количество абонентов на набранном номеречислоIVR, ДСколько абонентов дозвонилось на тот же номер, что и текущий. Применяется для отсечения вызовов при превышении лимита подключений на конкретный номер.
Количество зарегистрированных операторовчислоВсеОператоров онлайн в call-центре — в свободном и занятом режимах, исключая перерывы.
Количество свободных операторовчислоВсеОператоров в свободном состоянии, готовых обработать вызов немедленно.

Служебные сценарии: контрольные события

Функции заполняются, когда служебный сценарий запущен для обработки контрольного события.

ФункцияВозвращаетОписание
КС: идентификаторстрокаGUID контрольного события в строковом представлении.
КС: названиестрокаНазвание контрольного события.
КС: идентификатор задачистрокаGUID задачи, в которой событие обнаружено.
КС: идентификатор операторастрокаGUID оператора, совершившего контрольное событие.
КС: показательчислоЧисловой показатель события.
КС: описаниестрокаДополнительное текстовое поле с деталями события.

Служебные сценарии: кто запустил

ФункцияВозвращаетОписание
Инициатор запуска. Код типастрокаКод модуля-инициатора запуска, см. таблицу ниже.
Инициатор дозвона. ТипстрокаНазвание модуля-инициатора в некоторых режимах: «КС», «Задача», «АДЗ», «Быстрый», «Экстренный», «Внутренний из конференции», «Внутренний из АДЗ». В прочих случаях — пустая строка.
Инициатор дозвона. Идентификатор (задача/пользователь)строкаGUID контрольного события, задачи либо пользователя, запустившего автодозвон. В прочих случаях — пустая строка.
Инициатор дозвона. Имя (задача/пользователь)строкаНазвание соответствующего контрольного события, задачи или пользователя.
Инициатор дозвона. Внутренний номер (пользователь)строкаДля режима набора номера в автодозвоне — внутренний номер инициировавшего пользователя. В прочих случаях — пустая строка.

Коды типов инициатора запуска

КодМодуль-инициатор
10Контрольное событие
11Дозвон из задачи на внешний номер
12Автодозвон на внешний номер
13Строковое преобразование
14Запуск по инициативе клиентского приложения — из модуля администрирования, из плагина либо из внешнего интегрированного приложения
15Набор быстрого номера
16Набор экстренного номера
17Набор внутреннего номера при приглашении в конференцию
18Набор внутреннего номера из автодозвона
19Прерывание вызова внутреннего номера в конференции
20Обработка завершения конференции
21Поиск абонента для голосовой задачи в режиме работы с таблицей абонентов через сценарий
22Обработка завершения звонка или попытки звонка в голосовой задаче
23Набор внешнего номера из конференции
24Набор внешнего номера, указанного в стандартном внутреннем
25Обработка завершения сессии внешнего канала — обработка контента линии по общему сценарию АТС
26Обработка завершения сессии внешнего канала — обработка контента линии по сценарию задачи
27Обработка веб-запроса к серверу на запуск сценария
28Определение абонента при входящем вызове
29Отправка SMS
30Отправка e-mail

Служебные сценарии: конференция

Функции заполняются при запуске сценариев, связанных с конференцией: набор номера, отмена набора, обработка завершения.

ФункцияВозвращаетОписание
Конференция. Идентификатор (Guid)строкаGUID связанной конференции в строковом представлении.
Конференция. Код идентификатора (Int32)числоДовольно уникальная числовая функция от GUID конференции. Годится для идентификации конференции при входе из IVR-сценария.
Конференция. Номер комнатычислоНомер комнаты связанной конференции.
Конференция. Идентификатор участника (Guid)строкаGUID связанного участника. Применяется при организации внешней очереди — чтобы привязать звонок к конкретному участнику, ожидающему ответа. Задаётся при наборе номера и отмене набора.
Конференция. Код идентификатора участника (Int32)числоЧисловая функция от GUID участника; используется так же, как и код конференции.

Служебные сценарии: входные параметры

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

ФункцияОписание
Входной параметр 1Совпадает с параметром, сохраняемым в компоненте «Старт».
Входной параметр 2В сценариях преобразования CallerId содержит внешний номер (CalledId). Может быть установлен при запуске по инициативе плагинов и внешнего ПО через ядро клиентского уровня платформы; также передаёт служебную информацию в сценариях-триггерах, обработчиках и при наборе номера.
Входные параметры 3, 4, 5Устанавливаются при запуске по инициативе плагинов и внешнего ПО через ядро клиентского уровня платформы; используются для передачи служебной информации в сценариях-триггерах, обработчиках и при наборе номера.