Azure Communication Services 통화 녹음/녹화 로그
Azure Communication Services는 Communication Services 솔루션을 모니터링하고 디버깅하는 데 사용할 수 있는 로깅 기능을 제공합니다. 이러한 기능은 Azure Portal을 통해 구성합니다.
이 문서의 내용은 Azure Monitor를 통해 사용하도록 설정된 로그를 참조합니다(FAQ 참조). 이러한 로그를 Communication Services에 사용하도록 설정하려면 진단 설정에서 로깅 사용을 참조하세요.
리소스 로그 범주
Communication Services는 사용할 수 있는 다음 유형의 로그를 제공합니다.
- 사용량 로그: 요금이 청구된 각 서비스 제품과 연결된 사용량 데이터를 제공합니다.
- 통화 녹음/녹화 요약 로그: 다음과 같이 통화 녹음/녹화에 대한 요약 정보를 제공합니다.
- 호출 기간.
- 미디어 콘텐츠(예: 오디오/비디오, 혼합되지 않음 또는 전사).
- 녹음/녹화에 사용되는 형식(예: WAV 또는 MP4).
- 녹음/녹화가 종료된 이유입니다.
- 녹음/녹화 수신 작업 로그: 통화 녹음/녹화 작업에 대한 수신 요청에 대한 정보를 제공합니다. 모든 항목은 StartRecording, StopRecording, PauseRecording 및 ResumeRecording과 같은 통화 녹음/녹화 API 호출의 결과에 해당합니다.
녹음/녹화 파일은 통화 또는 모임이 끝날 때 생성됩니다. 사용자 또는 앱(봇)은 녹음/녹화를 시작하고 중지할 수 있습니다. 녹음/녹화는 시스템 오류로 인해 종료할 수도 있습니다.
요약 로그는 녹음/녹화를 다운로드할 준비가 된 후에 게시됩니다. 로그는 Azure Monitor 리소스 로그에 대한 표준 대기 시간 내에 게시됩니다. Azure Monitor의 로그 데이터 수집 시간을 참조하세요.
사용량 로그 스키마
속성 | 설명 |
---|---|
timestamp |
로그가 생성된 시간의 타임스탬프(UTC)입니다. |
operationName |
로그 레코드와 연결된 작업입니다. |
operationVersion |
operationName 작업이 API를 통해 수행된 경우 작업과 연결된 api-version 값입니다. 이 작업에 해당하는 API가 없으면 나중에 작업과 관련된 속성이 변경될 경우 버전이 작업의 버전을 나타냅니다. |
category |
이벤트의 로그 범주입니다. 범주는 리소스에 대한 로그를 사용 또는 사용하지 않도록 설정할 수 있는 세분성입니다. 이벤트의 properties Blob 내에 나타나는 속성은 로그 범주 및 리소스 종류 내에서 동일합니다. |
correlationID |
상관 관계가 있는 이벤트의 ID입니다. 이 속성을 사용하여 여러 테이블 간의 상관 관계가 있는 이벤트를 식별할 수 있습니다. |
Properties |
다양한 Communication Services 모드에 적용할 수 있는 기타 데이터입니다. |
recordID |
사용량 레코드에 대한 고유 ID입니다. |
usageType |
사용량 모드(예: 채팅, PSTN, NAT)입니다. |
unitType |
사용량의 기준이 되는 단위 유형(예: 분, 메가바이트 또는 메시지 수)입니다. |
quantity |
이 레코드에 사용된 단위 수입니다. |
통화 녹음/녹화 요약 로그 스키마
속성 이름 | 데이터 형식 | 설명 |
---|---|---|
timeGenerated |
DateTime | 로그가 생성된 시점의 타임스탬프(UTC)입니다. |
operationName |
문자열 | 로그 레코드와 연결된 작업입니다. |
correlationId |
문자열 | 테이블 간의 이벤트 상관 관계를 지정하는 데 사용되는 ID입니다. |
recordingID |
문자열 | 이 로그가 참조하는 기록의 ID입니다. |
category |
문자열 | 이벤트의 로그 범주입니다. 로그 범주 및 리소스 종류가 동일한 로그에는 동일한 속성 필드가 있습니다. |
resultType |
문자열 | 작업의 상태입니다. |
level |
문자열 | 작업의 심각도 수준입니다. |
chunkCount |
정수 | 녹음/녹화를 위해 만든 총 청크 수입니다. |
channelType |
문자열 | 혼합 또는 혼합 해제와 같은 녹음/녹화의 채널 유형입니다. |
recordingStartTime |
DateTime | 녹음/녹화가 시작된 시간입니다. |
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 로그
속성은 다음과 같습니다.
속성 | 설명 |
---|---|
timeGenerated |
로그가 생성된 시점의 타임스탬프(UTC)입니다. |
callConnectionId |
사용 가능한 경우 통화 연결 또는 레그의 ID입니다. |
callerIpAddress |
작업이 공용 IP 주소를 사용하는 엔터티에서 시작되는 API 호출에 해당하는 경우 호출자 IP 주소입니다. |
correlationId |
상관 관계가 있는 이벤트의 ID입니다. 이 속성을 사용하여 여러 테이블 간의 상관 관계가 있는 이벤트를 식별할 수 있습니다. |
durationMs |
밀리초 단위의 작업 기간입니다. |
level |
작업의 심각도 수준입니다. |
operationName |
로그 레코드와 연결된 작업입니다. |
operationVersion |
작업 또는 작업 버전과 연결된 API 버전입니다(API 버전이 없는 경우). |
resourceId |
레코드가 연결된 리소스의 고유 식별자입니다. |
resultSignature |
작업의 하위 상태입니다. 이 작업이 REST API 호출에 해당하는 경우 이 필드는 해당 REST 호출의 HTTP 상태 코드입니다. |
resultType |
작업의 상태입니다. |
sdkType |
요청에 사용되는 SDK 유형입니다. |
sdkVersion |
SDK 버전. |
serverCallId |
서버 호출 ID. |
URI |
요청의 URI. |
예를 들면 다음과 같습니다.
"properties"
{ "TimeGenerated": "2023-05-09T15:58:30.100Z",
"Level": "Informational",
"CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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"
}
다음 단계
- 통화 녹음/녹화 인사이트를 가져옵니다.
- 통화 녹음/녹화에 대해 자세히 알아보세요.