다음을 통해 공유


통화 요약 업데이트 로그 스키마

호출 요약 업데이트 로그 스키마와 호출 요약 로그 스키 마 간의 속성의 유일한 차이점은 추가 CallUpdatesVersion 속성입니다. 이 속성은 CallUpdatesVersion 로그의 최근 정도를 나타냅니다. 호출 요약 업데이트 로그 스키마는 호출 요약 로그 스키마보다 대기 시간이 짧으며, 스키마 속성을 보낼 수 있는 즉시 전송하여 짧은 대기 시간을 달성합니다. 반면, 호출 요약 로그 스키마 는 전체 로그 스키마가 내부 Microsoft 만들기를 완료할 때까지 로그 스키마를 보내지 않습니다.

호출 요약 업데이트 로그에는 모든 호출의 키 속성을 식별하는 데 도움이 되는 데이터가 포함되어 있습니다. 호출의 각 participantId (또는 endpointId 피어 투 피어 [P2P] 호출) 값에 대해 다른 호출 요약 업데이트 로그가 생성됩니다.

통화 내의 각 참가자에 대해 Communication Services는 고유한 통화 요약 업데이트 로그를 만듭니다. 다른 사용자가 통화에 다시 참여하면 해당 참가자는 동일한 EndpointId 값을 갖지만 다른 ParticipantId 값을 갖습니다. 그런 다음, 해당 엔드포인트는 두 개의 호출 요약 업데이트 로그를 가질 수 있습니다.

통화 로그를 사용하는 방법

통화 사용량을 모니터링하고 통화 품질을 개선하고 릴리스할 때 Azure Communication Services에서 새 로그를 받을 수 있도록 로그 분석 리소스에서 사용 가능한 모든 통화 로그를 수집하는 것이 좋습니다.

통화를 모니터링하고 통화 품질을 개선하는 데 사용할 수 있는 두 가지 주요 도구가 있습니다.

음성 및 비디오 인사이트 대시보드 대시보드를 사용하여 품질 조사를 시작하고 필요에 따라 통화 진단을 사용하여 세부적인 세부 정보가 필요할 때 개별 통화를 탐색하는 것이 좋습니다.

데이터 개념

Important

로그를 분석하려면 로그를 수집해야 합니다. 자세한 내용은 다음을 참조하세요. 어떻게 할까요? 로그를 저장하시겠습니까?

이러한 특정 진단 설정을 사용하도록 설정하지 않는 한 Azure는 통화 로그 데이터를 저장하지 않습니다. 통화 데이터는 소급하여 사용할 수 없습니다. 진단 설정을 만든 후 데이터를 누적합니다.

호출 요약 업데이트 로그 스키마를 사용하는 경우 항상 가장 CallUpdatesVersion 높은 수를 참조하여 최신 정보를 확인합니다. 호출 데이터가 업데이트되면 최신 정보를 포함하는 새 버전의 로그가 만들어집니다. 예를 들어 숫자가 높을수록 CallUpdatesVersion 최신 업데이트가 있습니다. 즉, 버전 3은 최신 버전이며 버전 1에 비해 최신 변경 내용을 포함합니다.

로그 버전 및 데이터 대기 시간에 대한 자세한 정보

호출이 종료되면 로그의 초기 버전(버전 1)이 CallSummaryUpdates 및 CallDiagnosticUpdates 테이블로 전송됩니다. 초기 버전에는 값이 포함될 null 수 있습니다. 자세한 정보가 사용 가능해지면 자세한 정보로 로그의 업데이트된 버전이 만들어집니다. 예를 들어 클라이언트 컴퓨터와 서버 간의 네트워크 연결 문제 또는 클라이언트 데이터가 전송되기 전에 랩톱 통화 후 뚜껑을 닫고 몇 시간(또는 며칠) 후에 다시 여는 것과 같은 간단한 문제로 인해 클라이언트 데이터가 지연될 수 있습니다.

이러한 컬렉션 변형으로 인해 증분 버전이 몇 시간 또는 며칠 후에 도착하는 것을 볼 수 있습니다. 호출하는 모든 SDK 클라이언트 데이터가 수신될 때까지 기다리는 것보다 호출 리소스를 더 빠르게 이해하기 위해 버전을 사용할 수 있습니다. 가장 좋은 시나리오는 모든 호출 참가자가 통화를 종료하고 호출 SDK가 서버에 데이터를 보낼 수 있도록 하는 것입니다.

데이터 정의

통화 요약 업데이트 로그 스키마

Important

통화 요약 업데이트 로그의 참가자 정보는 참가자 테넌트에 따라 다릅니다. 참가자가 Communication Services 리소스와 동일한 테넌트(테넌트 간이라고도 함) 내에 있지 않으면 SDK 버전 및 OS 버전이 수정됩니다. 테넌트 간 참가자는 통화 중에 참여하고 협업하기 위해 리소스 테넌트에서 초대한 외부 사용자로 분류됩니다.

이 표에서는 각 속성에 대해 설명합니다.

속성 설명
time 로그가 생성된 시점의 타임스탬프(UTC)입니다.
operationName 로그 레코드와 연결된 작업입니다.
operationVersion operationName 작업이 API를 통해 수행된 경우 작업과 연결된 api-version 값입니다. 이 작업에 해당하는 API가 없으면 나중에 작업과 관련된 속성이 변경될 경우 버전이 작업의 버전을 나타냅니다.
category 이벤트의 로그 범주입니다. 이 속성은 리소스에 대한 로그를 사용하도록 사용하지 않도록 설정할 수 있는 세분성입니다. 이벤트의 properties Blob 내에 나타나는 속성은 로그 범주 및 리소스 종류 내에서 동일합니다.
correlationId 통화에 대한 고유 ID입니다. 단일 통화 중에 연결하는 모든 참가자 및 엔드포인트의 상관 관계가 있는 이벤트를 식별하며 다른 로그의 데이터를 조인하는 데 사용할 수 있습니다. Microsoft에서 지원 사례를 열어야 하는 경우 correlationId 값을 사용하여 문제를 해결하려는 통화를 쉽게 식별할 수 있습니다.
identifier 사용자에 대한 고유한 ID. ID는 Azure Communication Services 사용자, Microsoft Entra 사용자 ID, Teams 익명 사용자 ID 또는 Teams 봇 ID일 수 있습니다. 이 ID를 사용하여 로그 전체에서 사용자 이벤트의 상관 관계를 지정할 수 있습니다.
callStartTime 엔드포인트에서 첫 번째 시도된 연결을 기준으로 하는 통화 시작에 대한 타임스탬프입니다.
callDuration 두 엔드포인트 간의 처음으로 시도된 연결과 마지막 연결의 끝을 기준으로 하는 통화 지속 기간(초)입니다.
callType 통화 유형입니다. "P2P" 또는 "Group"을 포함합니다. "P2P" 통화는 서버가 아닌 두 엔드포인트 간의 직접 1:1 연결입니다. "Group" 통화는 3개 이상의 엔드포인트가 있거나 연결 전에 "Group" 통화로 만들어지는 통화입니다.
teamsThreadId Teams 스레드 ID입니다. 이 ID는 통화가 Teams 모임으로 구성된 경우에만 관련이 있습니다. 그런 다음, Microsoft Teams와 Azure Communication Services 간의 상호 운용성 사용 사례를 나타냅니다.

이 ID는 작업 로그에 표시됩니다. 채팅 API를 통해 이 ID를 가져올 수도 있습니다.
participantId 이 ID는 "Participant" 엔드포인트(endpointType = "Server")와 서버 간의 양방향 연결을 나타내기 위해 생성됩니다. callType = "P2P"인 경우 두 엔드포인트 간의 직접적인 연결이 있으며 participantId 값이 생성되지 않습니다.
participantStartTime 참가자의 첫 번째 연결 시도 시작에 대한 타임스탬프입니다.
participantDuration participantStartTime부터 연결이 종료된 타임스탬프까지의 각 참가자 연결 기간(초)입니다.
participantEndReason 참가자 연결이 종료된 이유입니다. 여기에는 SDK에서 각 participantId 값에 대해 내보내는 통화 SDK 오류 코드(관련이 있는 경우)가 포함됩니다.
endpointId 통화에 연결된 각 엔드포인트를 나타내는 고유 ID입니다. 여기서 endpointType은 엔드포인트 유형을 정의합니다. 값이 null이면 연결된 엔터티가 Communication Services 서버(endpointType = "Server")입니다.

경우에 따라 네이티브 클라이언트에 대한 여러 통화(correlationId)에서 동일한 사용자에 대해 endpointId 값이 지속될 수 있습니다. endpointId 값의 수에 따라 통화 요약 로그의 수가 결정됩니다. 각 endpointId 값에 대해 고유한 요약 로그가 만들어집니다.
endpointType 이 값은 통화에 연결된 각 엔드포인트의 속성을 설명합니다. "Server", "VOIP", "PSTN", "BOT" 또는 "Unknown"을 포함할 수 있습니다.
sdkVersion 각 관련 엔드포인트에서 사용하는 Communication Services 통화 SDK 버전에 대한 버전 문자열입니다(예: "1.1.00.20212500").
osVersion 각 엔드포인트 디바이스의 운영 체제와 버전을 나타내는 문자열입니다.
participantTenantId 참가자의 ID와 연결된 Microsoft 테넌트의 ID입니다. 테넌트는 Azure Communication Services 리소스를 소유하는 Azure 테넌트이거나 Microsoft 365 ID의 Microsoft 테넌트일 수 있습니다. 이 필드는 테넌트 간 편집을 안내하는 데 사용됩니다.
participantType 참가자를 클라이언트(Azure Communication Services 또는 Teams)와 해당 ID(Azure Communication Services 또는 Microsoft 365)의 조합으로 나타내는 설명입니다. 가능한 값은 다음과 같습니다. Azure Communication Services(Azure Communication Services ID 및 Azure Communication Services SDK), Teams(Teams ID 및 Teams 클라이언트), Teams 외부 사용자로서의 Azure Communication Services(Teams 통화 또는 모임의 Azure Communication Services ID 및 Azure Communication Services SDK), Microsoft 365 사용자로서의 Azure Communication Services(Microsoft 365 ID 및 Azure Communication Services 클라이언트) 및 Teams Voice Apps
pstnParticipantCallType 긴급 통화, 직접 라우팅, 전송, 전달 등을 포함한 PSTN 참가자의 유형과 방향을 나타냅니다.
ParticipantEndSubCode SDK가 각 participantId 값에 대해 내보내는(관련된 경우) 통화 SDK 오류 하위 코드를 나타냅니다.
ResultCategory 통화를 종료한 참가자의 범주를 나타냅니다. Success, ExpectedError, UnexpectedClientError, UnexpectedServerError의 4가지 값 중 하나일 수 있습니다.
DiagnosticOptions 이 값을 사용하면 개발자가 클라이언트 원격 분석에 사용자 지정 태그를 연결할 수 있으며 호출 진단 섹션에서 볼 수 있습니다. 이렇게 하면 문제를 보다 효과적으로 식별하고 해결하는 데 도움이 됩니다. 이 값에 사용자 지정 태그를 추가하는 방법을 알아보려면 클라이언트 원격 분석에 사용자 지정 태그를 추가하는 방법에 대한 자습서를 참조 하세요.
CallUpdatesVersion 가장 최근에 게시된 버전을 나타내는 숫자가 더 높은 로그 버전을 나타냅니다.

오류 코드

participantEndReason 속성에는 통화 SDK 오류 코드 집합의 값이 포함됩니다. 이러한 코드를 참조하여 각 엔드포인트에 대해 호출 중에 검색된 문제를 해결할 수 있습니다. 통화 SDK, 통화 자동화 SDK, PSTN, 채팅 SDK 및 SMS SDK에 대한 통화 종료 응답 코드 문제 해결을 참조하세요.

다양한 호출 유형에 대한 샘플 데이터

참고 항목

이 문서에서 P2P 및 그룹 호출은 기본적으로 동일한 테넌트 내에 있습니다. 교차 테넌트인 모든 호출 시나리오는 문서 전체에서 적절하게 지정됩니다.

P2P 통화

P2P 통화의 모든 로그에 대한 공유 필드는 다음과 같습니다.

"time":                     "2021-07-19T18:46:50.188Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "aaaa0000-bb11-2222-33cc-444444dddddd",

통화 요약 업데이트 로그

호출 요약 업데이트 로그 공유 작업 및 범주 정보:

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

VoIP 사용자 1에 대한 통화 요약은 다음과 같습니다.

"properties": {
    "identifier":               "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "callStartTime":            "2021-07-19T17:54:05.113Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",    
    "participantStartTime":     "2021-07-19T17:54:06.758Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.1.0",
    "osVersion":                "Windows 10.0.17763 Arch: x64"
    "callupdatesversion":   "2"
}

VoIP 사용자 2에 대한 통화 요약은 다음과 같습니다.

"properties": {
    "identifier":               "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
    "callStartTime":            "2021-07-19T17:54:05.335Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantStartTime":     "2021-07-19T17:54:06.335Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.1.0.0",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

다음은 VoIP 사용자 1에 대한 테넌트 간 통화 요약 업데이트 로그입니다.

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             520,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "520",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

PSTN 통화에 대한 통화 요약은 다음과 같습니다.

참고 항목

P2P 또는 그룹 통화 로그에는 참가자의 테넌트인지 아니면 봇의 테넌트인지에 관계없이 수정된 OS 및 SDK 버전이 있습니다.

"properties": {
    "identifier": "b1999c3e-bbbb-4650-9b23-9999bdabab47",
    "callStartTime": "2022-08-07T13:53:12Z",
    "callDuration": 1470,
    "callType": "Group",
    "teamsThreadId": "19:36ec5177126fff000aaa521670c804a3@thread.v2",
    "participantId": " b25cf111-73df-4e0a-a888-640000abe34d",
    "participantStartTime": "2022-08-07T13:56:45Z",
    "participantDuration": 960,
    "participantEndReason": "0",
    "endpointId": "8731d003-6c1e-4808-8159-effff000aaa2",
    "endpointType": "PSTN",
    "sdkVersion": "Redacted",
    "osVersion": "Redacted"
    "callupdatesversion":   "2"
}

그룹 통화

그룹 호출에 대한 데이터는 3개의 호출 요약 업데이트 로그와 6개의 호출 진단 로그에서 생성됩니다. 통화의 모든 로그에 대한 공유 필드는 다음과 같습니다.

"time":                     "2021-07-05T06:30:06.402Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "bbbb1111-cc22-3333-44dd-555555eeeeee",

통화 요약 업데이트 로그

호출 요약 업데이트 로그 공유 작업 및 범주 정보:

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

VoIP 엔드포인트 1에 대한 통화 요약은 다음과 같습니다.

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-729f-ac00-343a0d00d975",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "participantStartTime":     "2021-07-05T06:16:44.235Z",
    "participantDuration":      "82",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-89e6-4f3f0453b1a6",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Darwin Kernel Version 18.7.0: Mon Nov 9 15:07:15 PST 2020; root:xnu-4903.272.3~3/RELEASE_ARM64_S5L8960X"
    "callupdatesversion":   "2"
}

VoIP 엔드포인트 3에 대한 통화 요약은 다음과 같습니다.

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-57c6-ac00-343a0d00d972",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLTk2ZDUtYTZlM2I2ZjgxOTkw@thread.v2",
    "participantId":            "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "participantStartTime":     "2021-07-05T06:16:40.240Z",
    "participantDuration":      "87",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-ab89-19ff584890b7",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Android 11.0; Manufacturer: Google; Product: redfin; Model: Pixel 5; Hardware: redfin"
    "callupdatesversion":   "2"
}

PSTN 엔드포인트 2에 대한 통화 요약은 다음과 같습니다.

"properties": {
    "identifier":               "null",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "515650f7-8204-4079-ac9d-d8f4bf07b04c",
    "participantStartTime":     "2021-07-05T06:17:10.447Z",
    "participantDuration":      "52",
    "participantEndReason":     "0",
    "endpointId":               "46387150-692a-47be-8c9d-1237efe6c48b",
    "endpointType":             "PSTN",
    "sdkVersion":               "null",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

다음은 테넌트 간 호출 요약 업데이트 로그입니다.

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             912,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "aa1dd7da-5922-4bb1-a4fa-e350a111fd9c",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "902",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

다음은 봇을 참가자로 사용하는 테넌트 간 통화 요약 업데이트 로그입니다.


"properties": {
    "identifier":             "b1902c3e-b9f7-4650-9b23-9999bdabab47",
    "callStartTime":          "2022-08-09T16:00:32Z",
    "callDuration":            1470,
    "callType":               "Group",
    "teamsThreadId":         "19:meeting_MmQwZDcwYTQtZ000HWE6NzI4LTg1YTAtNXXXXX99999ZZZZZ@thread.v2",
    "participantId":           "66e9d9a7-a434-4663-d91d-fb1ea73ff31e",
    "participantStartTime":    "2022-08-09T16:14:18Z",
    "participantDuration":      644,
    "participantEndReason":    "0",
    "endpointId":             "69680ec2-5ac0-4a3c-9574-eaaa77720b82",
    "endpointType":           "Bot",
    "sdkVersion":             "Redacted",
    "osVersion":              "Redacted"
    "callupdatesversion":   "2"
}

자주 묻는 질문

로그를 저장할 어떻게 할까요? 있나요?

다음 섹션에서는 이 요구 사항을 설명합니다.

Azure Communication Services 로그는 기본적으로 Azure 계정에 저장되지 않으므로 음성 및 비디오 인사이트 대시보드와 같은 도구와 통화 진단이 작동하려면 저장을 시작해야 합니다. 이러한 호출 로그를 수집하려면 호출 데이터를 Log Analytics 작업 영역으로 안내하는 진단 설정을 사용하도록 설정해야 합니다.

데이터는 소급하여 저장되지 않으므로 진단 설정을 구성한 후에만 통화 로그 캡처를 시작합니다.

Azure Monitor에서 진단 설정을 통해 로그 사용의 지침에 따라 리소스에 대한 진단 설정을 추가합니다. 처음에는 모든 로그를 수집하는 것이 좋습니다. Azure Monitor의 기능을 이해한 후에는 보존할 로그와 보존 기간을 결정합니다. 진단 설정을 추가하면 로그를 선택하라는 메시지가 표시됩니다. 모든 로그를 수집하려면 allLogs를 선택합니다.

Azure Monitor 내 Log Analytics의 데이터 볼륨, 보존 및 사용량은 기존 Azure 데이터 미터를 통해 청구됩니다. 필요에 따라 비용 고려 사항에 대한 데이터 사용량 및 보존 정책을 모니터링하는 것이 좋습니다. 자세한 내용은 비용 관리를 참조하세요.

Azure Communications Services 리소스 ID가 여러 개 있는 경우 각 리소스 ID에 대해 이러한 설정을 사용하도록 설정해야 합니다.

다음 단계

  • 모든 음성 및 비디오 로그의 개요를 검토합니다. 다음을 참조하세요. Azure Communication Services 통화 로그 개요

  • 통화 품질과 안정성을 관리하기 위한 모범 사례를 알아보려면 통화 품질 개선 및 관리를 참조하세요.

  • 음성 통화 및 화상 통화 로그를 모니터링하는 인사이트 대시보드에 대해 알아봅니다.

  • 통화 로그를 사용하여 통화 진단에서 통화 품질 및 안정성 문제를 진단하는 방법을 알아보려면 통화 진단을 참조하세요.