Bagikan melalui


Gambaran umum Perekaman Panggilan

Perekaman Panggilan memungkinkan Anda merekam beberapa skenario panggilan yang tersedia di Azure Communication Services dengan memberi Anda sekumpulan API untuk memulai, menghentikan, menjeda, dan melanjutkan perekaman. Baik itu panggilan PSTN, WebRTC, atau SIP, API ini dapat diakses dari logika bisnis sisi server Anda. Selain itu, rekaman dapat dipicu oleh tindakan pengguna yang memberi tahu aplikasi server untuk mulai merekam.

Bergantung pada kebutuhan bisnis Anda, Anda dapat menggunakan Rekaman Panggilan untuk implementasi panggilan Azure Communication Services yang berbeda.

Misalnya, Anda dapat merekam panggilan audio dan video 1:1 atau 1:N:

Diagram memperlihatkan panggilan bahwa sedang direkam.

Anda juga dapat menggunakan Rekaman Panggilan untuk merekam alur kerja panggilan masuk dan keluar PSTN atau VoIP yang kompleks yang dikelola oleh Automasi Panggilan.

Terlepas dari cara Anda membuat panggilan, Perekaman Panggilan memungkinkan Anda menghasilkan file media campuran atau yang tidak dimix yang disimpan selama 24 jam pada penyimpanan sementara bawaan. Anda dapat mengambil file, memindahkannya di Azure Blob Store Bring Your Own Storage Anda sendiri, atau solusi penyimpanan pilihan Anda. Rekaman Panggilan mendukung semua wilayah data Azure Communication Services.

Diagram memperlihatkan arsitektur perekaman panggilan.

Rekaman Panggilan yang mendukung kebutuhan bisnis Anda

Rekaman Panggilan mendukung beberapa output media dan jenis konten untuk mengatasi kebutuhan bisnis dan kasus penggunaan Anda. Anda dapat menggunakan format campuran untuk skenario seperti menyimpan rekaman, catatan rapat, pelatihan dan pelatihan, atau bahkan kepatuhan dan kepatuhan. Atau, Anda dapat menggunakan format audio yang tidak dimix untuk mengatasi kasus penggunaan jaminan kualitas atau skenario yang lebih kompleks seperti analitik tingkat lanjut atau proses pasca-panggilan yang canggih berbasis AI (Kecerdasan Buatan).

Video

Jenis Saluran Format Konten Resolusi Laju Pengambilan Sampel Laju bit Laju data Output Deskripsi
campuran mp4 1920x1080, 16 FPS (bingkai per detik) 16 kHz 1 mbps 7,5 MB/menit* satu file, saluran tunggal video campuran dalam pengaturan petak peta 3x3 (speaker paling aktif) default dengan dukungan nama tampilan

Audio

Jenis Saluran Format Konten Laju Pengambilan Sampel Laju bit Laju data Output Deskripsi
campuran mp3 16 kHz 48 kbps 0,36 MB/menit* satu file, saluran tunggal audio campuran semua peserta
campuran wav 16 kHz 256 kbps 1,92 MB/menit satu file, saluran tunggal audio campuran semua peserta
tidak dimix wav 16 kHz 256 kbps 1,92 MB/menit* per saluran satu file, hingga 5 saluran wav audio yang tidak dimix, satu peserta per saluran, hingga lima saluran

[*CATATAN] Format Mp3 dan Mp4 menggunakan kompresi lossy yang menghasilkan laju bit variabel; oleh karena itu, nilai laju data dalam tabel sebelumnya mencerminkan maksimum teoritis. Format WAV tidak dikompresi dan laju bit diperbaiki, sehingga perhitungan laju data tepat.

Dapatkan kontrol penuh atas rekaman Anda dengan API Perekaman Panggilan kami

Anda dapat menggunakan API Perekaman Panggilan untuk mengelola perekaman melalui pemicu logika bisnis internal, seperti aplikasi yang membuat panggilan grup dan merekam percakapan. Selain itu, rekaman dapat dipicu oleh tindakan pengguna yang memberi tahu aplikasi server untuk mulai merekam. API Perekaman Panggilan menggunakan secara serverCallId eksklusif untuk memulai perekaman. Untuk mempelajari cara mendapatkan serverCallId, periksa Mulai Cepat Rekaman Panggilan kami. recordingId dikembalikan saat perekaman dimulai, yang kemudian dapat digunakan untuk operasi tindak lanjut seperti jeda dan lanjutkan.

Operasi Beroperasi Pada Komentar
Mulai rekaman serverCallId Mengembalikan recordingId
Dapatkan Status Perekaman recordingId Mengembalikan RecordingStateResult
Jeda rekaman recordingId Menjeda dan melanjutkan rekaman panggilan memungkinkan Anda untuk melompati rekaman sebagian panggilan atau rapat, dan melanjutkan rekaman ke satu file.
Lanjutkan rekaman recordingId Melanjutkan operasi perekaman Dijeda. Konten disertakan dalam file yang sama dengan konten sebelum dijeda.
Hentikan rekaman recordingId Menghentikan perekaman, dan memulai pemrosesan media akhir untuk pengunduhan file.

Pemberitahuan Event Grid

Perekaman Panggilan menggunakan Azure Event Grid untuk memberi Anda pemberitahuan yang terkait dengan media dan metadata.

Catatan

Azure Communication Services menyediakan penyimpanan media jangka pendek untuk rekaman. Rekaman tersedia untuk diunduh selama 24 jam. Setelah 24 jam, rekaman tidak lagi tersedia.

Pemberitahuan Microsoft.Communication.RecordingFileStatusUpdated Event Grid diterbitkan saat rekaman siap diambil, biasanya beberapa menit setelah proses perekaman selesai, seperti rapat berakhir, atau perekaman dihentikan. Pemberitahuan peristiwa rekaman menyertakan contentLocation dan metadataLocation, yang dapat digunakan untuk mengambil media yang direkam dan file metadata rekaman.

Referensi Skema Pemberitahuan

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

Referensi Skema Metadata

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

Masalah peraturan dan privasi

Banyak negara/wilayah dan negara bagian memiliki undang-undang dan peraturan yang berlaku untuk perekaman panggilan. Panggilan PSTN, suara, dan video sering mengharuskan pengguna menyetujui perekaman komunikasi mereka. Anda bertanggung jawab untuk menggunakan kemampuan rekaman panggilan sesuai dengan hukum. Anda harus mendapatkan persetujuan dari para pihak komunikasi yang direkam dengan cara yang sesuai dengan hukum yang berlaku untuk setiap peserta.

Peraturan seputar pemeliharaan data pribadi memerlukan kemampuan untuk mengekspor data pengguna. Untuk mendukung persyaratan ini, merekam file metadata menyertakan participantId untuk setiap peserta panggilan dalam participants array. Anda dapat mereferensikan silang Identitas Pengguna Azure Communication Services dalam participants array dengan identitas pengguna internal Anda untuk mengidentifikasi peserta dalam panggilan.

Langkah berikutnya

Berikut adalah beberapa artikel yang menarik bagi Anda: