Поделиться через


журналы записи вызовов Службы коммуникации Azure

Службы коммуникации Azure предоставляют возможности ведения журналов, которые можно использовать для мониторинга и отладки решения Служб коммуникации. Эти возможности можно настроить с помощью портал Azure.

Содержимое этой статьи относится к журналам, включенным с помощью Azure Monitor (см. также вопросы и ответы). Чтобы включить эти журналы для служб коммуникации, см . раздел "Включить ведение журнала в параметрах диагностики".

Категории журналов ресурсов

Службы коммуникации предоставляют следующие типы журналов, которые можно включить:

  • Журналы использования: предоставьте данные об использовании, связанные с каждым выставленным предложением службы.
  • Журналы сводных вызовов: укажите сводную информацию для записей звонков, например:
    • Длительность вызова.
    • Содержимое мультимедиа (например, аудио/видео, несоотредованное или транскрибирование).
    • Типы форматирования, используемые для записи (например, WAV или MP4).
    • Причина окончания записи.
  • Запись входящих журналов операций: укажите сведения о входящих запросах для операций записи звонков. Каждая запись соответствует результату вызова API записи вызовов, таких как StartRecording, StopRecording, PauseRecording и ResumeRecording.

Файл записи создается в конце звонка или собрания. Пользователь или приложение (бот) могут запускать и останавливать запись. Запись также может завершиться из-за сбоя системы.

Сводные журналы публикуются после того, как запись готова к загрузке. Журналы публикуются в течение стандартного времени задержки для журналов ресурсов Azure Monitor. См . сведения о времени приема данных журнала в Azure Monitor.

Схема журнала использования

Свойство Description
timestamp Метка времени создания журнала (в формате UTC).
operationName Операция, связанная с записью журнала.
operationVersion Значение api-version , связанное с операцией, если operationName операция была выполнена через API. Если API не соответствует этой операции, версия представляет версию операции, если свойства, связанные с операцией, изменяются в будущем.
category Категория журнала для события. Категория — это степень детализации, при которой можно включить или отключить журналы в ресурсе. Свойства, отображаемые в большом двоичном объекте события, совпадают с properties категорией журнала и типом ресурса.
correlationID Идентификатор для коррелированных событий. Его можно использовать для выявления коррелированных событий между несколькими таблицами.
Properties Другие данные, применимые к различным режимам служб коммуникации.
recordID Уникальный идентификатор записи об использовании.
usageType Режим использования (например, чат, ТСОП или NAT).
unitType Тип единицы использования основан на режиме использования (например, минутах, мегабайтах или сообщениях).
quantity Количество единиц, использованных или потребленных для данной записи.

Схема сводного журнала записи вызовов

Имя свойства Тип данных Description
timeGenerated Дата/время Метка времени (UTC) о том, когда был создан журнал.
operationName Строка Операция, связанная с записью журнала.
correlationId Строка Идентификатор, используемый для сопоставления событий между таблицами.
recordingID Строка Идентификатор записи, на которую ссылается этот журнал.
category Строка Категория журнала для события. Журналы с той же категорией журналов и типом ресурсов имеют одинаковые поля свойств.
resultType Строка Состояние операции.
level Строка Уровень серьезности операции.
chunkCount Целое Общее количество блоков, созданных для записи.
channelType Строка Тип канала записи, например смешанный или несмешанный.
recordingStartTime Дата/время Время начала записи.
contentType Строка Содержимое записи, например только аудио, аудио/ видео или транскрибирование.
formatType Строка Формат файла записи.
recordingLength Двойной Длительность записи в секундах.
audioChannelsCount Целое Общее количество аудиоканалов в записи.
recordingEndReason Строка Причина окончания записи.

Запись звонков и примеры данных

"operationName":            "Call Recording Summary",
"operationVersion":         "1.0",
"category":                 "RecordingSummary",

Вызов может иметь одну запись или несколько записей в зависимости от того, сколько раз активируется событие записи.

Например, если агент запускает исходящий вызов в записанной строке, а вызов удаляется из-за плохого сетевого сигнала, callID будет иметь одно recordingID значение. Если агент вызывает клиента, система создает новый callID экземпляр и новое recordingID значение.

Пример. Запись звонков для одного вызова одной записи

"properties"
{  
  "TimeGenerated":"2022-08-17T23:18:26.4332392Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "zzzzzz-cada-4164-be10-0000000000",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBvaW5xxxxxxxxFmNjkwxxxxxxxxxxxxSZXNvdXJjZVNwZWNpZmljSWQiOiJiZGU5YzE3Ni05M2Q3LTRkMWYtYmYwNS0yMTMwZTRiNWNlOTgifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-16T09:07:54.0000000Z",
    "RecordingLength": "73872.94",
    "ChunkCount": 6,
   "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Если агент запускает запись, а затем останавливает и перезапускает запись несколько раз во время вызова, callID будет иметь много recordingID значений. Количество значений зависит от того, сколько раз активировались события записи.

Пример. Запись звонков для одного вызова для многих записей


{   
 "TimeGenerated": "2022-08-17T23:55:46.6304762Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBxxxxxxxxxxxxjkwMC05MmEwLTRlZDYtOTcxYS1kYzZlZTkzNjU0NzciLCJSxxxxxNwZWNpZmljSWQiOiI5ZmY2ZTY2Ny04YmQyLTQ0NzAtYmRkYy00ZTVhMmUwYmNmOTYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:43.3304762Z",
    "RecordingLength": 3.34,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}
{
    "TimeGenerated": "2022-08-17T23:55:56.7664976Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuxxxxxxiOiI4NDFmNjkwMC1mMjBiLTQzNmQtYTg0Mi1hODY2YzE4M2Y0YTEiLCJSZXNvdXJjZVNwZWNpZmljSWQiOiI2YzRlZDI4NC0wOGQ1LTQxNjEtOTExMy1jYWIxNTc3YjM1ODYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:54.0664976Z",
    "RecordingLength": 2.7,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Журналы ACSCallRecordingIncomingOperations

Ниже приведены свойства:

Свойство Description
timeGenerated Метка времени (UTC) о том, когда был создан журнал.
callConnectionId Идентификатор подключения или ноги вызова, если он доступен.
callerIpAddress IP-адрес вызывающего объекта, если операция соответствует вызову API, который поступает из сущности с общедоступным IP-адресом.
correlationId Идентификатор для коррелированных событий. Его можно использовать для выявления коррелированных событий между несколькими таблицами.
durationMs Время выполнения операции в миллисекундах.
level Уровень серьезности операции.
operationName Операция, связанная с записями журнала.
operationVersion Версия API, связанная с операцией или версией операции (если версия API отсутствует).
resourceId Уникальный идентификатор ресурса, с которым связана запись.
resultSignature Подстатус операции. Если эта операция соответствует вызову REST API, то это поле содержит код состояния HTTP соответствующего вызова REST.
resultType Состояние операции.
sdkType Тип пакета SDK, используемый в запросе.
sdkVersion Версия пакета SDK.
serverCallId Идентификатор вызова сервера.
URI URI-адрес запроса.

Приведем пример:

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "a999f996-b4e1-xxxx-ac04-a59test87d97",
    "OperationName": "ResumeCallRecording",
    "OperationVersion": "2023-03-06",
    "URI": "https://acsresouce.communication.azure.com/calling/recordings/   eyJQbGF0Zm9ybUVuZHBviI0MjFmMTIwMC04MjhiLTRmZGItOTZjYi0...:resume?api-version=2023-03-06",
    "ResultType": "Succeeded",
    "ResultSignature": 202,
    "DurationMs": 130,
    "CallerIpAddress": "127.0.0.1",
    "CallConnectionId": "d5596715-ab0b-test-8eee-575c250e4234",
    "ServerCallId": "aHR0cHM6Ly9hcGk0vjCCCCCCQd2pRP2k9OTMmZT02Mzc5OTQ3xMDAzNDUwMzg...",
    "SdkVersion": "1.0.0-alpha.20220829.1",
    "SdkType": "dotnet"
}

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