Update the application's recording status associated with a call. This requires the use of the Teams policy-based recording solution.
Additional Restriction: You may NOT use the Media Access API to record or otherwise persist media content from calls or meetings that your application accesses, or data derived from that media content ("record" or "recording"), without first calling the updateRecordingStatus API to indicate that recording has begun, and receiving a success reply from that API. If your application begins recording any meeting, it must end the recording prior to calling the updateRecordingStatus API to indicate that the recording has ended.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Permission type
Permissions (from least to most privileged)
Delegated (work or school account)
Not Supported
Delegated (personal Microsoft account)
Not Supported
Application
Calls.JoinGroupCalls.All, Calls.AccessMedia.All
HTTP request
POST /communications/calls/{id}/updateRecordingStatus
Request headers
Name
Description
Authorization
Bearer {token}. Required.
Content-type
application/json. Required.
Request body
In the request body, provide a JSON object with the following parameters.
Parameter
Type
Description
clientContext
String
Unique client context string. Max limit is 256 chars.
status
String
The recording status. Possible values are: notRecording, recording, or failed.
Response
This method returns a 200 OK response code and a Location header with a URI to the updateRecordingStatusOperation object created for this request.
// Code snippets are only available for the latest version. Current version is 5.x
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new Microsoft.Graph.Communications.Calls.Item.UpdateRecordingStatus.UpdateRecordingStatusPostRequestBody
{
ClientContext = "clientContext-value",
Status = RecordingStatus.NotRecording | RecordingStatus.Recording | RecordingStatus.Failed,
};
var result = await graphClient.Communications.Calls["{call-id}"].UpdateRecordingStatus.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc communications calls update-recording-status post --call-id {call-id} --body '{\
"clientContext": "clientContext-value",\
"status": "notRecording | recording | failed"\
}\
'
<?php
// THIS SNIPPET IS A PREVIEW VERSION OF THE SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UpdateRecordingStatusPostRequestBody();
$requestBody->setClientContext('clientContext-value');
$requestBody->setStatus(new RecordingStatus('notRecording | recording | failed'));
$result = $graphServiceClient->communications()->calls()->byCallId('call-id')->updateRecordingStatus()->post($requestBody)->wait();
# THE PYTHON SDK IS IN PREVIEW. FOR NON-PRODUCTION USE ONLY
graph_client = GraphServiceClient(request_adapter)
request_body = UpdateRecordingStatusPostRequestBody(
client_context = "clientContext-value",
status = RecordingStatus.NotRecording | RecordingStatus.Recording | RecordingStatus.Failed,
)
result = await graph_client.communications.calls.by_call_id('call-id').update_recording_status.post(body = request_body)