Дополнительные действия
AZykov (обсуждение | вклад) Новая страница: « Предыдущая статья курса: ''Задание 5. Сложная карточка'' = Общая информация = = Хранение информации о звонке в данных класса = = Функционал Click-To-Call = = Передача данных о звонке из сценариев IVR = Следующая статья курса: ''Задание 6. Интеграция звонков в ка...» |
AZykov (обсуждение | вклад) Нет описания правки |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
= Общая информация = | = Общая информация = | ||
Для обеспечения работы со звонками в приложениях, платформа эра предоставляет набор широкий функционала: | |||
* Тип данных '''RecordingInfo''' для хранения информации о записи звонка | |||
* Метод '''playRecordedFile''' для воспроизведения записи | |||
* Функционал карточки очереди для передачи данных из контекста звонка в контекст приложения | |||
* Функционал IVR-сценариев для построения логики работы вызовов | |||
* Тип данных '''PhoneNumber''' для осуществления звонков по клику на номер телефона | |||
В рамках данной статьи, рассматриваются все дейтсвия, необходимые для полноценной интеграции звонок в приложение. | |||
= Хранение информации о звонке в данных класса = | = Хранение информации о звонке в данных класса = | ||
В первую очередь, для начала работы с записью разговора необходимо в какой-либо из классов (наиболее подходящий по смыслу), добавить свойство для хранения информации о ней. | |||
Для хранения информации о записи разговора, используется специализированный тип данных, входящий в пакет callcenter: | |||
callcenter/ccs/RecordInfo | |||
Обычно, привязка записей разговора осуществляется к специально созданному классу '''Звонки''', объекты которого уже имеют связи с другими классами приложения. | |||
= | Таким образом, запись будет доступна и в реестре всех звонков, и в карточке звонка, и в реестре звонков, связанных с другим классом (например звонки по конкретной заявке). | ||
В примерах далее, будем считать что в класс Call было добавлено свойство recordInfo. | |||
= Воспроизведение записи звонка в интерфейсе = | |||
[[Файл:Вкладка Actions.png|мини|Вкладка Actions]] | |||
Для того, чтобы была возможность прослушивания записи, необходимо в класс Call добавить дейтсвие по прослушиванию. | |||
Ранее в курсе ещё не использовались действия, так как они подразумевают написание полноценного кода для обработки, однако в данном примере достаточно лишь скопировать уже готовый код. Более подробно, механизм дейтсвий будет рассмотрен в дальнейших частях курса. | |||
[[Файл:Действие playRecorded.png|мини|Действие playRecorded]] | |||
Для добавления нового действия, необходимо в редакторе класса перейти во вкладку Actions и добавить новую запись. | |||
Имя действия (name) можно указать произвольное, например playRecorded, заголовок (Caption) - просшулать, actionKind - client, actionTarget - entity | |||
Таким образом мы создаем действие, которое будет выполняться на клиентской стороне и по отношению к конкретному объекту (при открытой карточке или выделенной записи в таблице). | |||
В качестве кода действия, необходимо указать следующий:<syntaxhighlight lang="javascript"> | |||
this._eraEnvironment.getStrong('EraGlobal').playRecordedFile(this.recordInfo); | |||
</syntaxhighlight>В данном коде происходит получение глобального контекста и вызов метода playRecordedFile, с передачей в него данных о сохраненной записи разговора. | |||
В качестве кода проверки доступности (allowConditionCode), необходимо указать следующий:<syntaxhighlight lang="javascript"> | |||
!Converter.isNull(this.recordInfo): | |||
</syntaxhighlight>Этим кодом мы проверяем, что информация о записи разговора сохранена. Таким образом, для звонков у которых ещё нет записи разговора, действие прослушки будет недоступно. | |||
= Передача данных о звонке из сценариев IVR = | = Передача данных о звонке из сценариев IVR = | ||
Работе со [[8. Сценарии IVR|сценариями IVR]] и другими компонентами коммуникационного слоя посвящен [[:Категория:Курс IP АТС|курс IP-АТС]]. | |||
В данном пункте мы лишь кратко рассмотрим логику необходимых дейтсвий для сохранения записи разговора и передачи информации о ней в продуктовый слой. Дополнительную справку по всем элементам IVR-сценариев можно найти в [[Сценарии IVR|данной статье]]. | |||
Альтернативный вариант сохранения данных о записи представлен в следующем пункте, однако он не является универсальным. | |||
# Необходимо добавить в IVR-сценарии компонент записи разговора, сохранив путь к результирующему файлу в переменную path[[Файл:Компонент "Запись разговора".png|безрамки|756x756пкс]] | |||
# Сформировать в переменной link новое имя файла в хранилище домена с помощью формулы: <syntaxhighlight> | |||
ss_domain() + "/documents/" + dateformat("yyyy-MM-dd", nowutc()) + "/" + filename([path]): | |||
</syntaxhighlight>[[Файл:Подготовка ссылки на запись разговора.png|безрамки|772x772пкс]] | |||
# Скопировать файл из временной папки сервера IVR в глобальную папку домена с помощью компонента "Файловая операция"[[Файл:Копирование файла записи из временной папки.png|безрамки|775x775пкс]] | |||
# Создать сущность класса Call с помощью компонента "Операция"[[Файл:Создание звонка компонентом Операция.png|безрамки|773x773пкс]][[Файл:Параметры компонента Операция.png|безрамки|773x773пкс]] | |||
Теперь поле recordInfo будет содержать достаточную для прослушивания файла информацию независимо от способа создания сущности – из карточки обращения очереди или из сценария IVR. | |||
= Сохранение данных о звонке с помощью карточки очереди = | |||
В рамках функциональности контакт-центра в рамках платформы эра предоставляется настройка отображения карточки, которая будет открываться в интерфейсе оператора при каждом новом звонке. Данный функционал можно использовать для того, чтобы перенести данные о записи разговора из контекста звонка в контекст приложения. | |||
[[Файл:Обработка очереди.png|мини|Установка ссылки на карточку в очереди]] | |||
Функционал контакт-центра детально рассмотрен в [[:Категория:Курс контакт-центр|соответствующем курсе]], в рамках данного блока будет представлен только пример передачи необходимой информации в карточку звонка. Для того чтобы функционал можно было настроить - необходимо создать [[2. Входящие очереди|очередь звонков]]. | |||
Для того, чтобы открыть карточку объекта Call, необходимо в настройках очереди, на вкладке Обработка, в группе Карточка вызова указать Адрес (URL) по следующему шаблону: | |||
/ui/MyPackageName/Call?mode=add&values={"recordInfo": [recordInfo]} | |||
Где MyPackageName/Call это fullName объекта Call | |||
После сохранения изменений, при поступлении звонка из этой очереди, будет автоматически открываться карточка объекта Call в режиме добавления, а поле recordInfo будет заполнено автоматически. | |||
= Функционал Click-To-Call = | |||
[[Файл:Эдитор PhoneNumber.png|мини|261x261пкс|Эдитор PhoneNumber]] | |||
Для обеспечения возможности совершать звонок одним кликом мыши в пакете callcenter создан редактор callcenter/PhoneNumber. Если его выбрать для строкового поля, в таблице будут отображаться гиперссылки с возможностью совершить исходящий звонок. | |||
Строка 13: | Строка 79: | ||
Предыдущая статья курса: ''[[Задание 5. Сложная карточка]]'' | Предыдущая статья курса: ''[[Задание 5. Сложная карточка]]'' | ||
[[Категория:Курс "Разработка приложений"]] |
Текущая версия от 14:06, 10 февраля 2025
Предыдущая статья курса: Задание 5. Сложная карточка
Общая информация
Для обеспечения работы со звонками в приложениях, платформа эра предоставляет набор широкий функционала:
- Тип данных RecordingInfo для хранения информации о записи звонка
- Метод playRecordedFile для воспроизведения записи
- Функционал карточки очереди для передачи данных из контекста звонка в контекст приложения
- Функционал IVR-сценариев для построения логики работы вызовов
- Тип данных PhoneNumber для осуществления звонков по клику на номер телефона
В рамках данной статьи, рассматриваются все дейтсвия, необходимые для полноценной интеграции звонок в приложение.
Хранение информации о звонке в данных класса
В первую очередь, для начала работы с записью разговора необходимо в какой-либо из классов (наиболее подходящий по смыслу), добавить свойство для хранения информации о ней.
Для хранения информации о записи разговора, используется специализированный тип данных, входящий в пакет callcenter:
callcenter/ccs/RecordInfo
Обычно, привязка записей разговора осуществляется к специально созданному классу Звонки, объекты которого уже имеют связи с другими классами приложения.
Таким образом, запись будет доступна и в реестре всех звонков, и в карточке звонка, и в реестре звонков, связанных с другим классом (например звонки по конкретной заявке).
В примерах далее, будем считать что в класс Call было добавлено свойство recordInfo.
Воспроизведение записи звонка в интерфейсе

Для того, чтобы была возможность прослушивания записи, необходимо в класс Call добавить дейтсвие по прослушиванию.
Ранее в курсе ещё не использовались действия, так как они подразумевают написание полноценного кода для обработки, однако в данном примере достаточно лишь скопировать уже готовый код. Более подробно, механизм дейтсвий будет рассмотрен в дальнейших частях курса.

Для добавления нового действия, необходимо в редакторе класса перейти во вкладку Actions и добавить новую запись.
Имя действия (name) можно указать произвольное, например playRecorded, заголовок (Caption) - просшулать, actionKind - client, actionTarget - entity
Таким образом мы создаем действие, которое будет выполняться на клиентской стороне и по отношению к конкретному объекту (при открытой карточке или выделенной записи в таблице).
В качестве кода действия, необходимо указать следующий:
this._eraEnvironment.getStrong('EraGlobal').playRecordedFile(this.recordInfo);
В данном коде происходит получение глобального контекста и вызов метода playRecordedFile, с передачей в него данных о сохраненной записи разговора. В качестве кода проверки доступности (allowConditionCode), необходимо указать следующий:
!Converter.isNull(this.recordInfo):
Этим кодом мы проверяем, что информация о записи разговора сохранена. Таким образом, для звонков у которых ещё нет записи разговора, действие прослушки будет недоступно.
Передача данных о звонке из сценариев IVR
Работе со сценариями IVR и другими компонентами коммуникационного слоя посвящен курс IP-АТС.
В данном пункте мы лишь кратко рассмотрим логику необходимых дейтсвий для сохранения записи разговора и передачи информации о ней в продуктовый слой. Дополнительную справку по всем элементам IVR-сценариев можно найти в данной статье.
Альтернативный вариант сохранения данных о записи представлен в следующем пункте, однако он не является универсальным.
- Необходимо добавить в IVR-сценарии компонент записи разговора, сохранив путь к результирующему файлу в переменную path
- Сформировать в переменной link новое имя файла в хранилище домена с помощью формулы:
ss_domain() + "/documents/" + dateformat("yyyy-MM-dd", nowutc()) + "/" + filename([path]):
- Скопировать файл из временной папки сервера IVR в глобальную папку домена с помощью компонента "Файловая операция"
- Создать сущность класса Call с помощью компонента "Операция"
Теперь поле recordInfo будет содержать достаточную для прослушивания файла информацию независимо от способа создания сущности – из карточки обращения очереди или из сценария IVR.
Сохранение данных о звонке с помощью карточки очереди
В рамках функциональности контакт-центра в рамках платформы эра предоставляется настройка отображения карточки, которая будет открываться в интерфейсе оператора при каждом новом звонке. Данный функционал можно использовать для того, чтобы перенести данные о записи разговора из контекста звонка в контекст приложения.

Функционал контакт-центра детально рассмотрен в соответствующем курсе, в рамках данного блока будет представлен только пример передачи необходимой информации в карточку звонка. Для того чтобы функционал можно было настроить - необходимо создать очередь звонков.
Для того, чтобы открыть карточку объекта Call, необходимо в настройках очереди, на вкладке Обработка, в группе Карточка вызова указать Адрес (URL) по следующему шаблону:
/ui/MyPackageName/Call?mode=add&values={"recordInfo": [recordInfo]}
Где MyPackageName/Call это fullName объекта Call
После сохранения изменений, при поступлении звонка из этой очереди, будет автоматически открываться карточка объекта Call в режиме добавления, а поле recordInfo будет заполнено автоматически.
Функционал Click-To-Call

Для обеспечения возможности совершать звонок одним кликом мыши в пакете callcenter создан редактор callcenter/PhoneNumber. Если его выбрать для строкового поля, в таблице будут отображаться гиперссылки с возможностью совершить исходящий звонок.
Следующая статья курса: Задание 6. Интеграция звонков в карточку
Предыдущая статья курса: Задание 5. Сложная карточка