call: changeScreenSharingRole
Article
07/06/2023
6 contributors
Feedback
In this article
Namespace: microsoft.graph
Allow applications to share screen content with the participants of a group call.
Note: This is only supported for group calls that use App-Hosted Media.
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.AccessMedia.All
HTTP request
POST /communications/calls/{id}/changeScreenSharingRole
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
role
String
Possible values are: 'viewer', 'sharer'
Response
If successful, this method returns a 202 Accepted
response code, and all participants will receive a roster update.
Example
Request
The following example shows the request.
POST https://graph.microsoft.com/v1.0/communications/calls/{id}/changeScreenSharingRole
Content-Type: application/json
Content-Length: 24
{
"role": "viewer"
}
// 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.ChangeScreenSharingRole.ChangeScreenSharingRolePostRequestBody
{
Role = ScreenSharingRole.Viewer,
};
await graphClient.Communications.Calls["{call-id}"].ChangeScreenSharingRole.PostAsync(requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc communications calls change-screen-sharing-role post --call-id {call-id} --body '{\
"role": "viewer"\
}\
'
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphcommunications "github.com/microsoftgraph/msgraph-sdk-go/communications"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphcommunications.NewChangeScreenSharingRolePostRequestBody()
role := graphmodels.VIEWER_SCREENSHARINGROLE
requestBody.SetRole(&role)
graphClient.Communications().Calls().ByCallId("call-id").ChangeScreenSharingRole().Post(context.Background(), requestBody, nil)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
ScreenSharingRole role = ScreenSharingRole.VIEWER;
graphClient.communications().calls("{id}")
.changeScreenSharingRole(CallChangeScreenSharingRoleParameterSet
.newBuilder()
.withRole(role)
.build())
.buildRequest()
.post();
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
const options = {
authProvider,
};
const client = Client.init(options);
const changeScreenSharingRole = {
role: 'viewer'
};
await client.api('/communications/calls/{id}/changeScreenSharingRole')
.post(changeScreenSharingRole);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
<?php
// THIS SNIPPET IS A PREVIEW VERSION OF THE SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ChangeScreenSharingRolePostRequestBody();
$requestBody->setRole(new ScreenSharingRole('viewer'));
$graphServiceClient->communications()->calls()->byCallId('call-id')->changeScreenSharingRole()->post($requestBody)->wait();
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
role = "viewer"
}
Rename-MgCommunicationCallScreenSharingRole -CallId $callId -BodyParameter $params
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
# THE PYTHON SDK IS IN PREVIEW. FOR NON-PRODUCTION USE ONLY
graph_client = GraphServiceClient(request_adapter)
request_body = ChangeScreenSharingRolePostRequestBody(
role = ScreenSharingRole.Viewer,
)
await graph_client.communications.calls.by_call_id('call-id').change_screen_sharing_role.post(body = request_body)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
Here is an example of the response.
HTTP/1.1 202 Accepted
Notification - roster updated with participant sending screen sharing video
Note the direction: sendOnly
property on the media stream.
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/participants",
"resourceData": [
{
"@odata.type": "#microsoft.graph.participant",
"id": "2765eb15-01f8-47c6-b12b-c32111a4a86f",
"info": {
"identity": {
"user": {
"displayName": "Bob",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96"
}
},
"region": "westus",
"languageId": "en-US"
},
"mediaStreams": [
{
"mediaType": "videoBasedScreenSharing",
"label": "applicationsharing-video",
"sourceId": "1",
"direction": "sendOnly"
}
],
"isMuted": false,
"isInLobby": false
}
]
}
]
}