Udostępnij za pośrednictwem


Omówienie nagrywania połączeń

Nagrywanie wywołań umożliwia rejestrowanie wielu scenariuszy połączeń dostępnych w usługach Azure Communication Services, zapewniając zestaw interfejsów API do uruchamiania, zatrzymywania, wstrzymywania i wznawiania nagrywania. Niezależnie od tego, czy jest to wywołanie PSTN, WebRTC, czy SIP, te interfejsy API mogą być dostępne z poziomu logiki biznesowej po stronie serwera. Ponadto nagrania mogą być wyzwalane przez akcję użytkownika, która nakazuje aplikacji serwera rozpoczęcie nagrywania.

W zależności od potrzeb biznesowych możesz użyć funkcji call recording dla różnych implementacji wywołujących usługi Azure Communication Services.

Można na przykład rejestrować połączenia audio i wideo 1:1 lub 1:N:

Diagram przedstawiający zarejestrowane wywołanie.

Za pomocą funkcji nagrywania połączeń można również rejestrować złożone przepływy pracy połączeń przychodzących i wychodzących PSTN lub VoIP zarządzanych przez usługę Call Automation.

Niezależnie od tego, jak nawiązaliśmy połączenie, funkcja Call Recording umożliwia tworzenie mieszanych lub niemiesianych plików multimedialnych przechowywanych przez 24 godziny w wbudowanym magazynie tymczasowym. Możesz pobrać pliki, przenieść je we własnym magazynie obiektów blob platformy Azure lub wybrać wybrane rozwiązanie magazynu. Funkcja Call Recording obsługuje wszystkie regiony danych usług Azure Communication Services.

Diagram przedstawiający architekturę rejestrowania wywołań.

Nagrywanie połączeń, które obsługuje potrzeby biznesowe

Funkcja Call Recording obsługuje wiele danych wyjściowych multimediów i typów zawartości w celu zaspokojenia potrzeb biznesowych i przypadków użycia. Możesz używać mieszanych formatów dla scenariuszy, takich jak przechowywanie rekordów, notatek spotkań, coaching i szkolenia, a nawet zgodność i zgodność. Możesz też użyć formatu dźwięku niemieszonego do obsługi przypadków użycia kontroli jakości, a nawet bardziej złożonych scenariuszy, takich jak zaawansowana analiza lub zaawansowane procesy po wywołaniu sztucznej inteligencji (sztuczna inteligencja).

Wideo

Typ kanału Format zawartości Rozwiązanie Częstotliwość próbkowania Szybkość transmisji bitów Szybkość danych Wyjście opis
mieszane mp4 1920x1080, 16 FPS (ramki na sekundę) 16 kHz 1 mb/s 7,5 MB/min* pojedynczy plik, pojedynczy kanał mieszane wideo w domyślnym układzie kafelków 3x3 (najbardziej aktywnych głośników) z obsługą nazw wyświetlanych

Audio

Typ kanału Format zawartości Częstotliwość próbkowania Szybkość transmisji bitów Szybkość danych Wyjście opis
mieszane Mp3 16 kHz 48 kb/s 0,36 MB/min* pojedynczy plik, pojedynczy kanał mieszany dźwięk wszystkich uczestników
mieszane Wav 16 kHz 256 kb/s 1,92 MB/min pojedynczy plik, pojedynczy kanał mieszany dźwięk wszystkich uczestników
Niezmieszane Wav 16 kHz 256 kb/s 1,92 MB/min* na kanał pojedynczy plik, maksymalnie 5 kanałów wav unmixed audio, jeden uczestnik na kanał, maksymalnie pięć kanałów

[*UWAGA] Formaty Mp3 i Mp4 używają kompresji stratowej, która powoduje zmienną szybkość transmisji bitów; w związku z tym wartości szybkości danych w poprzednich tabelach odzwierciedlają teoretyczną wartość maksymalną. Format WAV jest nieskompresowany, a szybkość transmisji bitów jest stała, więc obliczenia szybkości danych są dokładne.

Uzyskaj pełną kontrolę nad nagraniami za pomocą naszych interfejsów API nagrywania połączeń

Interfejsy API rejestrowania wywołań umożliwiają zarządzanie rejestrowaniem za pośrednictwem wewnętrznych wyzwalaczy logiki biznesowej, takich jak aplikacja tworząca wywołanie grupy i rejestrując konwersację. Ponadto nagrania mogą być wyzwalane przez akcję użytkownika, która nakazuje aplikacji serwera rozpoczęcie nagrywania. Interfejsy API rejestrowania wywołań używają wyłącznie elementu do inicjowania nagrywania serverCallId . Aby dowiedzieć się, jak uzyskać plik , zapoznaj się z serverCallIdnaszym przewodnikiem Szybki start dotyczący nagrywania połączeń. Element A recordingId jest zwracany podczas uruchamiania nagrywania, który może być następnie używany do wykonywania kolejnych operacji, takich jak wstrzymywanie i wznawianie.

Operacja Działa na Komentarze
Rozpocznij nagrywanie serverCallId Zwraca recordingId
Uzyskiwanie stanu rejestrowania recordingId Zwraca RecordingStateResult
Wstrzymywanie nagrywania recordingId Wstrzymywanie i wznawianie nagrywania połączeń pozwala pominąć nagrywanie części rozmowy lub spotkania i wznowić nagrywanie do jednego pliku.
Wznów nagrywanie recordingId Wznawia operację wstrzymywania nagrywania. Zawartość znajduje się w tym samym pliku co zawartość z wcześniejszego wstrzymania.
Zatrzymaj nagrywanie recordingId Zatrzymuje nagrywanie i inicjuje końcowe przetwarzanie multimediów na potrzeby pobierania plików.

Powiadomienia usługi Event Grid

Nagrywanie połączeń używa usługi Azure Event Grid do dostarczania powiadomień związanych z multimediami i metadanymi.

Uwaga

Usługi Azure Communication Services udostępniają krótkoterminowy magazyn multimediów na potrzeby nagrywania. Nagrania są dostępne do pobrania przez 24 godziny. Po 24 godzinach nagrania nie są już dostępne.

Powiadomienie Microsoft.Communication.RecordingFileStatusUpdated usługi Event Grid jest publikowane, gdy nagranie jest gotowe do pobrania, zazwyczaj kilka minut po zakończeniu procesu nagrywania, takich jak zakończenie spotkania lub zatrzymanie nagrywania. Rejestrowanie powiadomień o zdarzeniach obejmuje i contentLocation metadataLocation, które są używane do pobierania zarówno zarejestrowanego nośnika, jak i pliku metadanych nagrywania.

Dokumentacja schematu powiadomień

{
    "id": string, // Unique guid for event
    "topic": string, // /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}
    "subject": string, // /recording/call/{call-id}/serverCallId/{serverCallId}/recordingId/{recordingId}
    "data": {
        "recordingStorageInfo": {
            "recordingChunks": [
                {
                    "documentId": string, // Document id for retrieving from storage
                    "index": int, // Index providing ordering for this chunk in the entire recording
                    "endReason": string, // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
                    "metadataLocation": <string>,  // url of the metadata for this chunk
                    "contentLocation": <string>,   // url of the mp4, mp3, or wav for this chunk
                    "deleteLocation": <string>     // url of the mp4, mp3, or wav to delete this chunk
                }
            ]
        },
        "recordingStartTime": string, // ISO 8601 date time for the start of the recording
        "recordingDurationMs": int, // Duration of recording in milliseconds
        "sessionEndReason": string // Reason for call ending: "CallEnded", "InitiatorLeft", etc.
    },
    "eventType": string, // "Microsoft.Communication.RecordingFileStatusUpdated"
    "dataVersion": string, // "1.0"
    "metadataVersion": string, // "1"
    "eventTime": string // ISO 8601 date time for when the event was created
}

Dokumentacja schematu metadanych

{
  "resourceId": <string>,           // stable resource id of the Azure Communication Services resource recording
  "callId": <string>,               // id of the call
  "chunkDocumentId": <string>,      // object identifier for the chunk this metadata corresponds to
  "chunkIndex": <number>,           // index of this chunk with respect to all chunks in the recording
  "chunkStartTime": <string>,       // ISO 8601 datetime for the start time of the chunk this metadata corresponds to
  "chunkDuration": <number>,        // [Chunk duration has a maximum of 4 hours] duration of the chunk this metadata corresponds to in milliseconds
  "pauseResumeIntervals": [
              "startTime": <string>,          // ISO 8601 datetime for the time at which the recording was paused
              "duration": <number>            // duration of the pause in the recording in milliseconds
                          ],
  "recordingInfo": {
               "contentType": <string>,        // content type of recording, e.g. audio/audioVideo
               "channelType": <string>,        // channel type of recording, e.g. mixed/unmixed
               "format": <string>,             // format of the recording, e.g. mp4/mp3/wav
               "audioConfiguration": {
                   "sampleRate": <number>,       // sample rate for audio recording
                   "bitRate": <number>,          // bitrate for audio recording
                   "channels": <number>          // number of audio channels in output recording
                                     },
               "videoConfiguration": {
                   "longerSideLength": <number>,        // longerSideLength for video recording
                   "shorterSideLength": <number>,       // shorterSideLength for video recording
                   "frameRate": <number>,               // frameRate for video recording
                   "bitRate": <number>                  // bitrate for video recording
                                     }
                    },
  "participants": [
    {
      "participantId": <string>,    // participant identifier of a participant captured in the recording
      "channel": <number>           // channel the participant was assigned to if the recording is unmixed
    }
  ]
}

Kwestie związane z przepisami i prywatnością

Wiele krajów/regionów i państw ma przepisy prawne i przepisy, które mają zastosowanie do nagrywania połączeń. Połączenia PSTN, głosowe i wideo często wymagają, aby użytkownicy wyrazili zgodę na nagrywanie ich komunikacji. Na Użytkowniku spoczywa odpowiedzialność za korzystanie z funkcji rejestrowania rozmów zgodnie z prawem. Klient musi uzyskać zgodę od uczestników nagrywanej komunikacji w sposób zgodny z przepisami prawa mającymi zastosowanie do każdego z nich.

Przepisy dotyczące utrzymania danych osobowych wymagają możliwości eksportowania danych użytkownika. Aby spełnić te wymagania, rejestrowanie plików metadanych obejmuje participantId element dla każdego uczestnika wywołania w tablicy participants . Możesz odwoływać się krzyżowo do tożsamości użytkownika usług Azure Communication Services w participants tablicy przy użyciu wewnętrznych tożsamości użytkowników, aby zidentyfikować uczestników wywołania.

Następne kroki

Oto kilka interesujących Cię artykułów: