Enregistrement des appels : démarrage rapide de la fonctionnalité Apporter votre propre stockage Azure
Ce démarrage rapide vous permet de commencer à utiliser Apporter votre propre stockage pour l’enregistrement des appels. Pour commencer à utiliser la fonctionnalité Apporter votre propre stockage Azure, veillez à vous familiariser avec les API d’enregistrement des appels.
Prérequis : configuration d’attributions de rôles d’identité managée et de contrôle d’accès en fonction du rôle RBAC
1. Activer l’identité managée affectée par le système pour Azure Communication Services
- Ouvrez votre ressource Azure Communication Services. Accédez à Identité à gauche.
- Une identité managée affectée par le système activée, puis cliquez sur Enregistrer.
- Une fois terminé, vous pouvez voir l’ID du principal d’objet de l’identité nouvellement créée.
- Après la création correcte de l’identité, cliquez sur Attributions de rôles Azure pour commencer à ajouter des attributions de rôles.
2. Ajoutez une attribution de rôle
- Cliquez sur « Ajouter une attribution de rôle »
- Dans la page « Ajouter une attribution de rôle », sélectionnez les valeurs suivantes
- Étendue : Stockage
- Abonnement : choisissez votre abonnement
- Ressource : Choisissez votre compte de stockage
- Rôle : Azure Communication Services a besoin de « Contributeur aux données blob de stockage » pour pouvoir écrire dans votre compte de stockage.
- Cliquez sur « Save » (Enregistrer).
- Une fois terminé, vous voyez l’attribution de rôle qui vient d’être ajoutée dans la fenêtre « Attribution de rôle Azure ».
Démarrer la session d’enregistrement avec le stockage externe spécifié
Utilisez l’ID d’appel du serveur reçu lors du lancement de l’appel.
Utilisation du stockage Blob Azure pour le stockage externe
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);
Utilisation du stockage Blob Azure pour le stockage externe
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<serverCallId>"))
.setExternalStorage(new BlobStorage("<Insert Container / Blob Uri>"));
Response<StartCallRecordingResult> response = callAutomationClient.getCallRecording()
.startRecordingWithResponse(recordingOptions, null);
Notification en cas d’exportation réussie
Utilisez un webhook Azure Event Grid, ou une autre action déclenchée, pour avertir vos services lorsque le média enregistré est prêt et qu’il a été exporté vers l’emplacement de stockage externe.
Reportez-vous à cet exemple de schéma d’événement.
{
"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
}
Structure de dossier pour l’enregistrement d’appel
Les enregistrements sont stockés au format suivant tel qu’illustré dans le diagramme.
- /YYYYMMDD/callId/first_8_of_recordingId + '-' + guid/[chunk-id]-acsmetadata.documentId.json unique
- /YYYYMMDD/callId/first_8_of_recordingId + '-' + guid/[chunk-id]-audiomp3.documentId.mp3 unique
Étapes suivantes
Pour plus d’informations, consultez les articles suivants :
- Téléchargez notre exemple d'application d'enregistrement d'appels Java
- En savoir plus sur l’enregistrement d’appel
- En savoir plus sur l’automatisation des appels