Registrazione delle chiamate: Guida introduttiva all'archiviazione di Azure personalizzata
Questa guida introduttiva illustra come usare Bring your own Azure Storage for Call Recording. Per iniziare a usare la funzionalità Bring your own Archiviazione di Azure, assicurarsi di avere familiarità con le API di registrazione delle chiamate.
Prerequisito: Configurazione delle assegnazioni di ruolo di Controllo di accesso basate su ruoli e identità gestite
1. Abilitare l'identità gestita assegnata dal sistema per Servizi di comunicazione di Azure
- Aprire la risorsa Servizi di comunicazione di Azure. Passare a Identity (Identità) a sinistra.
- Abilitata identità gestita assegnata dal sistema e fare clic su Salva.
- Al termine, è possibile visualizzare l'ID entità oggetto dell'identità appena creata.
- Dopo aver creato l'identità, fare clic su Assegnazioni di ruolo di Azure per iniziare ad aggiungere assegnazioni di ruolo.
2. Aggiungere un'assegnazione di ruolo
- Fare clic su "Aggiungi assegnazione di ruolo"
- Nel pannello "Aggiungi assegnazione di ruolo" selezionare i valori seguenti
- Ambito: Storage
- Sottoscrizione: scegliere la sottoscrizione in uso
- Risorsa: scegliere l'account di archiviazione
- Ruolo: Servizi di comunicazione di Azure deve poter scrivere nell'account di archiviazione"Archiviazione Collaboratore dati BLOB.
- Fare clic su "Salva".
- Al termine, l'assegnazione di ruolo appena aggiunta viene visualizzata nella finestra "Assegnazione di ruolo di Azure".
Avviare la sessione di registrazione con l'archiviazione esterna specificata
Usare l'ID chiamata server ricevuto durante l'avvio della chiamata.
Uso dell'archiviazione BLOB di Azure per l'archiviazione esterna
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);
Uso dell'archiviazione BLOB di Azure per l'archiviazione esterna
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Notifica relativa all'esportazione riuscita
Usare un web hook Griglia di eventi di Azure o un'altra azione attivata per notificare ai servizi quando il supporto registrato è pronto ed esportato nel percorso di archiviazione esterno.
Fare riferimento a questo esempio dello schema di eventi.
{
"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
}
Struttura di cartelle per la registrazione delle chiamate
Le registrazioni vengono archiviate nel formato seguente, come illustrato nel diagramma.
- /AAAAMMGG/callId/first_8_of_recordingId + '-' + guid univoco/[chunk-id]-acsmetadata.documentId.json
- /AAAAMMGG/callId/first_8_of_recordingId + '-' + guid univoco/[chunk-id]-audiomp3.documentId.mp3
Passaggi successivi
Per altre informazioni, vedere gli articoli seguenti:
- Scaricare l'app di esempio di registrazione delle chiamate Java
- Altre informazioni sulla registrazione delle chiamate
- Altre informazioni sull'automazione delle chiamate