Skip to content

Latest commit

 

History

History
241 lines (195 loc) · 9.46 KB

File metadata and controls

241 lines (195 loc) · 9.46 KB
titledescriptionauthorms.localizationpriorityms.subservicedoc_typems.date
call: recordResponse
Records a short audio response from the caller. This is useful if the bot wishes to capture a voice response from the caller following a prompt.
rahulva-msft
medium
cloud-communications
apiPageType
04/04/2024

call: recordResponse

Namespace: microsoft.graph

Records a short audio response from the caller. A bot can utilize this to capture a voice response from a caller after they are prompted for a response.

For further information on how to handle operations, please review commsOperation

Note: This is only supported for calls which are initiated with serviceHostedMediaConfig.

This action is not intended to record the entire call. The maximum length of recording is 2 minutes. The recording is not saved permanently by the Cloud Communications Platform and is discarded shortly after the call ends. The bot must download the recording promptly after the recording operation finishes by using the recordingLocation value that's given in the completed notification.

Note: Any media collected may not be persisted. Make sure you are compliant with the laws and regulations of your area when it comes to call recording. Please consult with a legal counsel for more information.

[!INCLUDE national-cloud-support]

Permissions

Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.

[!INCLUDE permissions-table]

HTTP request

POST /communications/calls/{id}/recordResponse

Request headers

NameDescription
AuthorizationBearer {token}. Required. Learn more about authentication and authorization.

Request body

In the request body, provide a JSON object with the following parameters.

ParameterTypeDescription
promptsmediaPrompt collectionThe prompts to be played. The maximum supported mediaPrompt collection size is 1.
bargeInAllowedBooleanIf true, the recordResponse request will barge into other existing queued-up/currently-processing record/playprompt requests. Default = false.
initialSilenceTimeoutInSecondsInt32Maximum initial silence (user silence) allowed from the time we start the record response operation before we timeout and fail the operation. If we are playing a prompt, then this timer starts after prompt finishes. Default = 5 seconds, Min = 1 second, Max = 120 seconds
maxSilenceTimeoutInSecondsInt32Maximum silence (pause) time allowed after a user has started speaking. Default = 5 seconds, Min = 1 second, Max = 120 seconds.
maxRecordDurationInSecondsInt32Max duration for the recordResponse operation before stopping recording. Default = 5 seconds, Min = 1 second, Max = 120 seconds.
playBeepBooleanIf true, plays a beep to indicate to the user that they can start recording their message. Default = true.
stopTonesString collectionStop tones specified to end recording.
clientContextStringUnique Client Context string. Max limit is 256 chars.

Response

This method returns a 200 OK response code and a Location header with a URI to the recordOperation created for this request.

Example

The following example shows how to call this API.

Example 1: Records a short audio response from the caller

Request

The following example shows the request.

POST https://graph.microsoft.com/v1.0/communications/calls/{id}/recordResponseContent-Type: application/jsonContent-Length: 394 { "bargeInAllowed": true, "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c", "prompts": [ { "@odata.type": "#microsoft.graph.mediaPrompt", "mediaInfo": { "uri": "https://cdn.contoso.com/beep.wav", "resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088E" } } ], "maxRecordDurationInSeconds": 10, "initialSilenceTimeoutInSeconds": 5, "maxSilenceTimeoutInSeconds": 2, "playBeep": true, "stopTones": [ "#", "1", "*" ] }

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]

[!INCLUDE sample-code] [!INCLUDE sdk-documentation]


Response

The following example shows the response.

Note: The response object shown here might be shortened for readability.

HTTP/1.1 200 OKContent-Type: application/jsonLocation: https://graph.microsoft.com/v1.0/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/0fe0623f-d628-42ed-b4bd-8ac290072cc5 { "@odata.type": "#microsoft.graph.recordOperation", "id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5", "status": "running", "resultInfo": null, "recordingLocation": null, "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c" }
Notification - operation completed
POST https://bot.contoso.com/api/callsContent-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.recordOperation", "@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5", "@odata.etag": "W/\"54451\"", "id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5", "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c", "status": "completed", "resultInfo": { "@odata.type": "#microsoft.graph.resultInfo", "code": 200, "subcode": 8515, "message": "Action completed, max record duration reached." }, "recordingLocation": "https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad", "recordingAccessToken": "<access-token>" } } ] }

Example 2: Retrieving the recording file

Note: You may NOT record or otherwise persist media content from calls or meetings that your application accesses, or data derived from that media content. Make sure you are compliant with the laws and regulations of your area regarding data protection and confidentiality of communications. Please see the Terms of Use and consult with your legal counsel for more information.

Request
GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6adAuthorization: Bearer <recordingAccessToken>
Response
HTTP/1.1 200 OKTransfer-Encoding: chunkedDate: Thu, 17 Jan 2019 01:46:37 GMTContent-Type: application/octet-stream(application/octet-stream of size 160696 bytes)
close