Udostępnij za pośrednictwem


Dzienniki rejestrowania połączeń usług Azure Communication Services

Usługi Azure Communication Services oferują funkcje rejestrowania, których można użyć do monitorowania i debugowania rozwiązania usług Komunikacyjnych. Te możliwości można skonfigurować za pośrednictwem witryny Azure Portal.

Zawartość tego artykułu dotyczy dzienników włączonych za pośrednictwem usługi Azure Monitor (zobacz też często zadawane pytania). Aby włączyć te dzienniki dla usług komunikacyjnych, zobacz Włączanie rejestrowania w ustawieniach diagnostycznych.

Kategorie dzienników zasobów

Usługi komunikacyjne oferują następujące typy dzienników, które można włączyć:

  • Dzienniki użycia: podaj dane użycia skojarzone z każdą ofertą rozliczanej usługi.
  • Dzienniki podsumowania nagrywania połączeń: podaj podsumowanie informacji dotyczących nagrań połączeń, takich jak:
    • Czas trwania połączenia.
    • Zawartość multimediów (na przykład audio/wideo, nieprzemieszana lub transkrypcja).
    • Typy formatów używane do nagrywania (na przykład WAV lub MP4).
    • Powód, dla którego nagranie zakończyło się.
  • Rejestrowanie dzienników operacji przychodzących: podaj informacje o żądaniach przychodzących dla operacji nagrywania połączeń. Każdy wpis odpowiada wynikowi wywołania interfejsów API nagrywania wywołań, takich jak StartRecording, StopRecording, PauseRecording i ResumeRecording.

Plik nagrywania jest generowany na końcu rozmowy lub spotkania. Użytkownik lub aplikacja (bot) może uruchomić i zatrzymać nagrywanie. Nagranie może również zakończyć się z powodu awarii systemu.

Dzienniki podsumowania są publikowane po zakończeniu pobierania nagrania. Dzienniki są publikowane w standardowym czasie opóźnienia dla dzienników zasobów usługi Azure Monitor. Zobacz Czas pozyskiwania danych dziennika w usłudze Azure Monitor.

Schemat dziennika użycia

Właściwości opis
timestamp Sygnatura czasowa (UTC) czasu wygenerowania dziennika.
operationName Operacja skojarzona z rekordem dziennika.
operationVersion api-version Wartość skojarzona z operacją, jeśli operationName operacja została wykonana za pośrednictwem interfejsu API. Jeśli żaden interfejs API nie odpowiada tej operacji, wersja reprezentuje wersję operacji, na wypadek gdyby właściwości skojarzone z operacją zmieniły się w przyszłości.
category Kategoria dziennika zdarzenia. Kategoria to stopień szczegółowości, w którym można włączać lub wyłączać dzienniki w zasobie. Właściwości wyświetlane w properties obiekcie blob zdarzenia są takie same w kategorii dziennika i typie zasobu.
correlationID Identyfikator skorelowanych zdarzeń. Służy do identyfikowania skorelowanych zdarzeń między wieloma tabelami.
Properties Inne dane, które mają zastosowanie do różnych trybów usług komunikacyjnych.
recordID Unikatowy identyfikator rekordu użycia.
usageType Tryb użycia (na przykład Czat, PSTN lub NAT).
unitType Typ jednostki, która jest opierać się na trybie użycia (na przykład minutach, megabajtach lub komunikatach).
quantity Liczba jednostek używanych lub używanych dla tego rekordu.

Schemat dziennika podsumowania rejestrowania wywołań

Nazwa właściwości Typ danych opis
timeGenerated Data/godzina Sygnatura czasowa (UTC) czasu wygenerowania dziennika.
operationName Ciąg Operacja skojarzona z rekordem dziennika.
correlationId Ciąg Identyfikator używany do korelowania zdarzeń między tabelami.
recordingID Ciąg Identyfikator nagrania, do którego odnosi się ten dziennik.
category Ciąg Kategoria dziennika zdarzenia. Dzienniki z tą samą kategorią dziennika i typem zasobu mają te same pola właściwości.
resultType Ciąg Stan operacji.
level Ciąg Poziom ważności operacji.
chunkCount Integer Całkowita liczba fragmentów utworzonych dla nagrania.
channelType Ciąg Typ kanału nagrania, taki jak mieszany lub nieskonseksowany.
recordingStartTime Data/godzina Czas rozpoczęcia nagrywania.
contentType Ciąg Zawartość nagrania, taka jak tylko dźwięk, audio/wideo lub transkrypcja.
formatType Ciąg Format pliku nagrania.
recordingLength Liczba rzeczywista Czas trwania nagrania w sekundach.
audioChannelsCount Integer Całkowita liczba kanałów audio w nagraniu.
recordingEndReason Ciąg Powód, dla którego nagranie zakończyło się.

Rejestrowanie wywołań i przykładowe dane

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

Wywołanie może mieć jedno nagranie lub wiele nagrań, w zależności od tego, ile razy jest wyzwalane zdarzenie nagrywania.

Jeśli na przykład agent uruchamia wywołanie wychodzące w zarejestrowanej linii, a wywołanie spadnie z powodu słabego sygnału sieciowego, callID będzie mieć jedną recordingID wartość. Jeśli agent wywołuje klienta, system generuje nowe callID wystąpienie i nową recordingID wartość.

Przykład: wywoływanie nagrywania dla jednego wywołania do jednego nagrania

"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
}

Jeśli agent uruchomi nagranie, a następnie zatrzyma i ponownie uruchomi nagranie wielokrotnie, gdy wywołanie jest nadal włączone, callID będzie miało wiele recordingID wartości. Liczba wartości zależy od tego, ile razy zdarzenia rejestrowania zostały wyzwolone.

Przykład: Wywoływanie nagrywania dla jednego połączenia z wieloma nagraniami


{   
 "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
}

Dzienniki ACSCallRecordingIncomingOperations

Oto właściwości:

Właściwości opis
timeGenerated Sygnatura czasowa (UTC) czasu wygenerowania dziennika.
callConnectionId Identyfikator połączenia połączenia lub nogi, jeśli jest dostępny.
callerIpAddress Adres IP obiektu wywołującego, jeśli operacja odpowiada wywołaniu interfejsu API pochodzącemu z jednostki z publicznie dostępnym adresem IP.
correlationId Identyfikator skorelowanych zdarzeń. Służy do identyfikowania skorelowanych zdarzeń między wieloma tabelami.
durationMs Czas trwania operacji w milisekundach.
level Poziom ważności operacji.
operationName Operacja skojarzona z rekordami dziennika.
operationVersion Wersja interfejsu API skojarzona z operacją lub wersją operacji (jeśli nie ma wersji interfejsu API).
resourceId Unikatowy identyfikator zasobu, z którego jest skojarzony rekord.
resultSignature Podstatu operacji. Jeśli ta operacja odpowiada wywołaniu interfejsu API REST, to pole jest kodem stanu HTTP odpowiedniego wywołania REST.
resultType Stan operacji.
sdkType Typ zestawu SDK używany w żądaniu.
sdkVersion Wersja zestawu SDK.
serverCallId Identyfikator wywołania serwera.
URI Identyfikator URI żądania.

Oto przykład:

"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"
}

Następne kroki