Предыдущая статья курса: Задание 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
Сохранение данных о звонке с помощью карточки очереди
Функционал Click-To-Call
Следующая статья курса: Задание 6. Интеграция звонков в карточку
Предыдущая статья курса: Задание 5. Сложная карточка