An Azure service that stores unstructured data in the cloud as blobs.
If the recording files and metadata are already being written to the Blob container, the export is succeeding. For Bring Your Own Storage, the supported notification path for completed export is Azure Event Grid. The documentation states that when a recording is ready for retrieval, ACS publishes the Microsoft.Communication.RecordingFileStatusUpdated event, and for external storage it recommends using an Azure Event Grid webhook or other triggered action to notify services when the media is ready and exported.
What this means for this scenario:
-
RecordingStateCallbackUriis used for recording state change callbacks such as start state changes. - File-ready and export notifications are delivered through Azure Event Grid, including
Microsoft.Communication.RecordingFileStatusUpdated. - With Bring Your Own Storage, a successful Blob write does not mean the file-ready notification will arrive on the same recording state callback endpoint unless Azure Event Grid is configured to send it there.
Checks to make:
- Verify that an Azure Event Grid subscription exists for the ACS resource.
- The event to look for is
Microsoft.Communication.RecordingFileStatusUpdated. - Expected result: Event Grid should be configured to post to the webhook endpoint that handles file status notifications.
- The event to look for is
- Separate start-state handling from file-status handling.
- If the application receives the start callback, that confirms the recording state callback URL is working for start events.
- It does not confirm that Event Grid is configured for recording file status events.
- Check for export failure notifications.
- For Bring Your Own Storage, export can fail because of configuration issues or service outages.
- In that case, the failure notification includes a download URL, and recordings can still be downloaded within 24 hours.
- Account for timing.
- The
Microsoft.Communication.RecordingFileStatusUpdatedevent is published when the recording is ready for retrieval, typically a few minutes after recording completes. - Recordings in ACS temporary storage are available for 24 hours.
- The
- Correlate by
serverCallIdif behavior looks inconsistent.- In rare HADR scenarios, one recording session can produce multiple files sharing the same
recordingIdandchunkId, andStopCallRecordingcan return404 Recording not foundeven though files are delivered. - Applications should correlate recordings using
serverCallIdrather than assuming a one-to-one mapping between call, recording ID, chunk ID, and output file.
- In rare HADR scenarios, one recording session can produce multiple files sharing the same
For an ASP.NET Core MVC app, the practical next step is to confirm that the endpoint receiving the start callback is not being assumed to also receive Event Grid notifications unless an Event Grid subscription explicitly targets it.