다음을 통해 공유


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 사용량 모드(예: Chat, 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": "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"
}

다음 단계