call: playPrompt
Article
03/02/2023
3 minutes to read
7 contributors
Feedback
In this article
Namespace: microsoft.graph
Play a prompt in the call.
For more information about how to handle operations, see commsOperation
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.Initiate.All, Calls.AccessMedia.All
Note: Permissions are checked when the call is created; no additional permission check is made when calling this API. Calls.AccessMedia.All is only necessary for calls that use app-hosted media.
HTTP request
POST /communications/calls/{id}/playPrompt
Name
Description
Authorization
Bearer {token}. Required.
Request body
In the request body, provide a JSON object with the following parameters.
Parameter
Type
Description
prompts
MediaPrompt collection
The prompts to be played. The maximum supported MediaPrompt collection size is 20.
clientContext
String
Unique client context string. Can have a maximum of 256 characters.
Response
If successful, this method returns a 200 OK
response code and a playPromptOperation object in the response body.
Example
The following example shows how to call this API.
Request
The following example shows the request.
POST https://graph.microsoft.com/v1.0/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/playPrompt
Content-Type: application/json
Content-Length: 166
{
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"prompts": [
{
"@odata.type": "#microsoft.graph.mediaPrompt",
"mediaInfo": {
"@odata.type": "#microsoft.graph.mediaInfo",
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088E"
}
}
]
}
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new Microsoft.Graph.Communications.Calls.Item.PlayPrompt.PlayPromptPostRequestBody
{
ClientContext = "d45324c1-fcb5-430a-902c-f20af696537c",
Prompts = new List<Prompt>
{
new Prompt
{
OdataType = "#microsoft.graph.mediaPrompt",
AdditionalData = new Dictionary<string, object>
{
{
"mediaInfo" , new
{
OdataType = "#microsoft.graph.mediaInfo",
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E",
}
},
},
},
},
};
var result = await graphClient.Communications.Calls["{call-id}"].PlayPrompt.PostAsync(requestBody);
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 playPromptOperation = {
clientContext: 'd45324c1-fcb5-430a-902c-f20af696537c',
prompts: [
{
'@odata.type': '#microsoft.graph.mediaPrompt',
mediaInfo: {
'@odata.type': '#microsoft.graph.mediaInfo',
uri: 'https://cdn.contoso.com/beep.wav',
resourceId: '1D6DE2D4-CD51-4309-8DAA-70768651088E'
}
}
]
};
await client.api('/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/playPrompt')
.post(playPromptOperation);
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();
String clientContext = "d45324c1-fcb5-430a-902c-f20af696537c";
LinkedList<Prompt> promptsList = new LinkedList<Prompt>();
MediaPrompt prompts = new MediaPrompt();
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.uri = "https://cdn.contoso.com/beep.wav";
mediaInfo.resourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E";
prompts.mediaInfo = mediaInfo;
promptsList.add(prompts);
graphClient.communications().calls("57dab8b1-894c-409a-b240-bd8beae78896")
.playPrompt(CallPlayPromptParameterSet
.newBuilder()
.withPrompts(promptsList)
.withClientContext(clientContext)
.build())
.buildRequest()
.post();
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphmodels.NewPlayPromptPostRequestBody()
clientContext := "d45324c1-fcb5-430a-902c-f20af696537c"
requestBody.SetClientContext(&clientContext)
prompt := graphmodels.NewPrompt()
additionalData := map[string]interface{}{
mediaInfo := graphmodels.New()
uri := "https://cdn.contoso.com/beep.wav"
mediaInfo.SetUri(&uri)
resourceId := "1D6DE2D4-CD51-4309-8DAA-70768651088E"
mediaInfo.SetResourceId(&resourceId)
prompt.SetMediaInfo(mediaInfo)
}
prompt.SetAdditionalData(additionalData)
prompts := []graphmodels.Promptable {
prompt,
}
requestBody.SetPrompts(prompts)
result, err := graphClient.Communications().CallsById("call-id").PlayPrompt().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 .
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
ClientContext = "d45324c1-fcb5-430a-902c-f20af696537c"
Prompts = @(
@{
"@odata.type" = "#microsoft.graph.mediaPrompt"
MediaInfo = @{
"@odata.type" = "#microsoft.graph.mediaInfo"
Uri = "https://cdn.contoso.com/beep.wav"
ResourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E"
}
}
)
}
Invoke-MgPlayCommunicationCallPrompt -CallId $callId -BodyParameter $params
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 FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new PlayPromptPostRequestBody();
$requestBody->setClientContext('d45324c1-fcb5-430a-902c-f20af696537c');
$promptsPrompt1 = new Prompt();
$promptsPrompt1->set@odatatype('#microsoft.graph.mediaPrompt');
$additionalData = [
'mediaInfo' => $promptsPrompt1 = new MediaInfo();
$ promptsPrompt1->set@odatatype('#microsoft.graph.mediaInfo');
$ promptsPrompt1->setUri('https://cdn.contoso.com/beep.wav');
$ promptsPrompt1->setResourceId('1D6DE2D4-CD51-4309-8DAA-70768651088E');
$promptsPrompt1->setMediaInfo($mediaInfo);
];
$promptsPrompt1->setAdditionalData($additionalData);
$promptsArray []= $promptsPrompt1;
$requestBody->setPrompts($promptsArray);
$requestResult = $graphServiceClient->communications()->callsById('call-id')->playPrompt()->post($requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
The following is an example of the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Location: https://graph.microsoft.com/v1.0/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/0fe0623f-d628-42ed-b4bd-8ac290072cc5
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.playPromptOperation",
"id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5",
"status": "running",
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c"
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"resourceData": {
"@odata.type": "#microsoft.graph.playPromptOperation",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"@odata.etag": "W/\"54451\"",
"resultInfo": {
"@odata.type": "#microsoft.graph.resultInfo",
"code": 200,
"subcode": 0,
"message": "Action completed successfully."
},
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"status": "completed"
}
}
]
}