Обзор записи звонков

Примечание.

Запись звонков для взаимодействия Teams теперь доступна в общедоступной предварительной версии.

Запись вызовов позволяет записывать несколько сценариев вызова, доступных в Службы коммуникации Azure, предоставляя набор API для запуска, остановки, приостановки и возобновления записи. Независимо от того, является ли это вызов ТСОП, WebRTC или SIP, эти API можно получить из бизнес-логики на стороне сервера. Кроме того, записи могут быть активированы действием пользователя, которое сообщает серверу приложению начать запись.

В зависимости от бизнес-потребностей можно использовать запись звонков для различных Службы коммуникации Azure реализации вызовов. Например, можно записать аудио- и видеозвонки 1:1 или 1:N:

Diagram showing a call that it's being recorded.

Но также можно использовать запись вызовов для записи сложных рабочих процессов ТСОП или VoIP для входящих и исходящих вызовов, управляемых службой автоматизации вызовов. Независимо от того, как вы установили вызов, запись звонков позволяет создавать смешанные или несмешанные файлы мультимедиа, которые хранятся в течение 48 часов во встроенном временном хранилище. Вы можете получить файлы и взять их в долгосрочное решение хранилища вашего выбора. Запись звонков поддерживает все Службы коммуникации Azure области данных.

Diagram showing call recording architecture.

Запись звонков, которая поддерживает бизнес-потребности

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

Видео

Тип канала Формат содержимого Разрешение Частота дискретизации Скорость Скорость передачи данных Выходные данные Description
mixed mp4 1920x1080, 16 FPS (кадры в секунду) 16 кГц 1 мбит/с 7.5 МБ/мин* один файл, один канал смешанное видео в расположении плитки по умолчанию 3x3 (большинство активных динамиков) с поддержкой отображаемого имени

Аудио

Тип канала Формат содержимого Частота дискретизации Скорость Скорость передачи данных Выходные данные Description
mixed MP3 16 кГц 48 кб/с 0,36 МБ/мин* один файл, один канал смешанный звук всех участников
mixed WAV 16 кГц 256 Кбит/с 1.92 МБ/мин один файл, один канал смешанный звук всех участников
несмешанный WAV 16 кГц 256 Кбит/с 1.92 МБ/min* на канал один файл, до 5 каналов wav несмешанный звук, один участник на канал, до пяти каналов

[*ПРИМЕЧАНИЕ] Форматы Mp3 и Mp4 используют сжатие потери, которое приводит к переменной скорости; Таким образом, значения скорости данных в таблицах выше отражают теоретический максимум. Формат WAV распаковлен, а скорость передачи данных фиксирована, поэтому вычисления скорости данных точны.

Полный контроль над записями с помощью API записи звонков

API записи вызовов можно использовать для управления записью с помощью триггеров внутренней бизнес-логики, таких как приложение, создающее групповой вызов и запись беседы. Кроме того, записи могут быть активированы действием пользователя, которое сообщает серверу приложению начать запись. API записи вызовов используют исключительно serverCallId для запуска записи. Чтобы узнать, как получить проверка краткое serverCallIdруководство по записи звонков. Когда запускается запись, возвращается значение recordingId, которое затем используется для последующих операций, таких как приостановка и возобновление.

Операция Область применения Комментарии
Начать запись serverCallId Возвращает recordingId.
Отобразить состояние записи recordingId Возвращает RecordingStateResult.
Приостановить запись recordingId Функция приостановки и возобновления записи разговора позволяет пропустить запись части разговора или встречи и возобновить запись в один файл.
Возобновить запись recordingId Возобновляет операцию приостановки записи. Содержимое добавляется в тот же файл, что и перед приостановкой.
Остановить запись recordingId Останавливает запись и инициирует окончательную обработку данных мультимедиа для скачивания файла.

Уведомления в сетке событий

Запись вызовов использует Сетка событий Azure для предоставления уведомлений, связанных с мультимедиа и метаданными.

Примечание.

Службы коммуникации Azure предоставляют краткосрочное хранилище носителей для записей. Записи будут доступны для скачивания в течение 48 часов. Через 48 часов записи больше не будут доступны.

Уведомление Microsoft.Communication.RecordingFileStatusUpdated сетки событий публикуется, когда запись готова к получению, обычно через несколько минут после завершения процесса записи (например, завершение собрания, остановка записи). Запись уведомлений о событиях включает значения contentLocation и metadataLocation, которые можно использовать для получения записанного носителя и файла метаданных записи.

Справочник по схемам уведомлений

{
    "id": string, // Unique guid for event
    "topic": string, // /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}
    "subject": string, // /recording/call/{call-id}/serverCallId/{serverCallId}/recordingId/{recordingId}
    "data": {
        "recordingStorageInfo": {
            "recordingChunks": [
                {
                    "documentId": string, // Document id for retrieving from storage
                    "index": int, // Index providing ordering for this chunk in the entire recording
                    "endReason": string, // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
                    "metadataLocation": <string>,  // url of the metadata for this chunk
                    "contentLocation": <string>,   // url of the mp4, mp3, or wav for this chunk
                    "deleteLocation": <string>     // url of the mp4, mp3, or wav to delete this chunk
                }
            ]
        },
        "recordingStartTime": string, // ISO 8601 date time for the start of the recording
        "recordingDurationMs": int, // Duration of recording in milliseconds
        "sessionEndReason": string // Reason for call ending: "CallEnded", "InitiatorLeft", etc.
    },
    "eventType": string, // "Microsoft.Communication.RecordingFileStatusUpdated"
    "dataVersion": string, // "1.0"
    "metadataVersion": string, // "1"
    "eventTime": string // ISO 8601 date time for when the event was created
}

Справочник по схеме метаданных

{
  "resourceId": <string>,           // stable resource id of the Azure Communication Services resource recording
  "callId": <string>,               // id of the call
  "chunkDocumentId": <string>,      // object identifier for the chunk this metadata corresponds to
  "chunkIndex": <number>,           // index of this chunk with respect to all chunks in the recording
  "chunkStartTime": <string>,       // ISO 8601 datetime for the start time of the chunk this metadata corresponds to
  "chunkDuration": <number>,        // [Chunk duration has a maximum of 4 hours] duration of the chunk this metadata corresponds to in milliseconds
  "pauseResumeIntervals": [
              "startTime": <string>,          // ISO 8601 datetime for the time at which the recording was paused
              "duration": <number>            // duration of the pause in the recording in milliseconds
                          ],
  "recordingInfo": {
               "contentType": <string>,        // content type of recording, e.g. audio/audioVideo
               "channelType": <string>,        // channel type of recording, e.g. mixed/unmixed
               "format": <string>,             // format of the recording, e.g. mp4/mp3/wav
               "audioConfiguration": {
                   "sampleRate": <number>,       // sample rate for audio recording
                   "bitRate": <number>,          // bitrate for audio recording
                   "channels": <number>          // number of audio channels in output recording
                                     }
                    },
  "participants": [
    {
      "participantId": <string>,    // participant identifier of a participant captured in the recording
      "channel": <number>           // channel the participant was assigned to if the recording is unmixed
    }
  ]
}

Нормативные требования и защита конфиденциальности

Многие страны или регионы и государства имеют законы и правила, применимые к записи звонков. ТСОП, голосовые и видеозвонки часто требуют, чтобы пользователи предоставили согласие на запись своих сообщений. Вы обязаны использовать возможности записи разговоров в соответствии с законом. Вы должны получить согласие сторон записываемых коммуникаций в соответствии с законами, применимыми к каждому участнику.

Нормативам по обслуживанию персональных данных требуется возможность экспорта данных пользователей. Для поддержки этих требований файлы метаданных записи включают в себя ParticipantId для каждого участника вызова в participantsмассиве. Вы можете перекрестно ссылаться на Службы коммуникации Azure удостоверение пользователя в массиве participants с внутренними удостоверениями пользователей для идентификации участников вызова.

Следующие шаги

Ниже приведены некоторые статьи, интересующие вас: