Nahrávání hovorů: Rychlý start přineste si vlastní úložiště Azure
Tento rychlý start vám pomůže začít s používáním vlastního úložiště Azure pro záznam hovorů. Pokud chcete začít používat funkci Přineste si vlastní službu Azure Storage, ujistěte se, že znáte rozhraní API pro nahrávání hovorů.
Předpoklad: Nastavení přiřazení rolí Spravované identity a řízení přístupu na základě role (RBAC)
1. Povolení spravované identity přiřazené systémem pro Azure Communication Services
- Otevřete prostředek Azure Communication Services. Na levé straně přejděte na Identitu .
- Povolená spravovaná identita přiřazená systémem a klikněte na Uložit.
- Po dokončení uvidíte ID objektového objektu nově vytvořené identity.
- Po úspěšném vytvoření identity klikněte na přiřazení rolí Azure a začněte přidávat přiřazení rolí.
2. Přidání přiřazení role
- Klikněte na Přidat přiřazení role.
- Na panelu Přidat přiřazení role vyberte následující hodnoty.
- Rozsah: Storage
- Předplatné: Zvolte své předplatné.
- Prostředek: Volba účtu úložiště
- Role: Služba Azure Communication Services potřebuje přispěvatel dat objektů blob úložiště, aby mohl zapisovat do vašeho účtu úložiště.
- Klikněte na Uložit.
- Po dokončení se v okně Přiřazení role Azure zobrazí nově přidané přiřazení role.
Zahájení záznamové relace se zadaným externím úložištěm
Použijte ID volání serveru přijaté během zahájení volání.
Použití úložiště objektů blob v Azure pro externí úložiště
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
{
//...
ExternalStorage = new BlobStorage(new Uri("<Insert Container / Blob Uri>"))
};
Response<RecordingStateResult> startRecordingWithResponse = await callAutomationClient.GetCallRecording()
.StartRecordingAsync(options: recordingOptions);
Použití úložiště objektů blob v Azure pro externí úložiště
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Oznámení o úspěšném exportu
Pomocí webového háku Služby Azure Event Grid nebo jiné aktivované akce upozorněte své služby, když je nahrané médium připravené a exportované do externího úložiště.
Podívejte se na tento příklad schématu událostí.
{
"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}
"data": {
"storageType": "string", // AzureBlob etc.
"recordingId": "string", // unique id for recording
"recordingStorageInfo": {
"recordingChunks": [
{
"documentId": "string", // Document id for the recording chunk
"contentLocation": "string", //Azure Communication Services URL where the content is located
"metadataLocation": "string", // Azure Communication Services URL where the metadata for this chunk is located
"deleteLocation": "string", // Azure Communication Services URL to use to delete all content, including recording and metadata.
"index": "int", // Index providing ordering for this chunk in the entire recording
"endReason": "string", // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
}
]
},
"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
}
Struktura složek pro záznam hovoru
Nahrávky se ukládají v následujícím formátu, jak je znázorněno v diagramu.
- /YYYYMMDD/callId/first_8_of_recordingId + '-' + unique guid/[chunk-id]-acsmetadata.documentId.json
- /YYYYMMDD/callId/first_8_of_recordingId + '-' + unique guid/[chunk-id]-audiomp3.documentId.mp3
Další kroky
Další informace najdete v následujících článcích:
- Stažení ukázkové aplikace pro záznam hovorů v Javě
- Další informace o záznamu hovoru
- Další informace o automatizaci volání