Anruf: Datensatzcall: record

Wichtig

APIs unter der /beta Version in Microsoft Graph können Änderungen unterworfen werden.APIs under the /beta version in Microsoft Graph are subject to change. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt.Use of these APIs in production applications is not supported.

Aufzeichnen eines kurzen Audioclips aus dem Anruf.Record a short audio clip from the call. Dies ist hilfreich, wenn der bot eine Sprachantwort des Anrufers nach einer Eingabeaufforderung erfassen möchte.This is useful if the bot wants to capture a voice response from the caller following a prompt.

Hinweis

Die Record-Aktion wird nur für Aufrufe unterstützt, die mit serviceHostedMediaConfiginitiiert werden.The record action is supported only for calls that are initiated with serviceHostedMediaConfig. Durch diese Aktion wird nicht der gesamte Anruf aufgezeichnet.This action does not record the entire call. Die maximale Länge der Aufzeichnung beträgt 5 Minuten.The maximum length of the recording is 5 minutes. Die Aufzeichnung wird von der Cloud-Kommunikationsplattform nicht permamently bestehen gespeichert und wird kurz nach Beendigung des Anrufs verworfen.The recording is not saved permamently by the Cloud Communications Platform and is discarded shortly after the call ends. Der bot muss die Aufzeichnung nach Abschluss des Aufzeichnungsvorgangs prompt herunterladen (unter Verwendung des recordingLocation -Werts, der in der ausgefüllten Benachrichtigung angegeben ist).The bot must download the recording promptly (using the recordingLocation value given in the completed notification) after the recording operation finishes.

BerechtigungenPermissions

Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie im Artikel zum Thema Berechtigungen.One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

BerechtigungstypPermission type Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)Permissions (from least to most privileged)
Delegiert (Geschäfts-, Schul- oder Unikonto)Delegated (work or school account) Nicht unterstütztNot Supported
Delegiert (persönliches Microsoft-Konto)Delegated (personal Microsoft account) Nicht unterstütztNot Supported
AnwendungApplication Calls.AccessMedia.AllCalls.AccessMedia.All

HTTP-AnforderungHTTP request

POST /app/calls/{id}/record

AnforderungsheaderRequest headers

NameName BeschreibungDescription
AuthorizationAuthorization Bearer {token}. Erforderlich.Bearer {token}. Required.

AnforderungstextRequest body

Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.In the request body, provide a JSON object with the following parameters.

ParameterParameter TypType BeschreibungDescription
Ansagenprompts mediaPrompt -SammlungmediaPrompt collection Sammlung von Ansagen zur Wiedergabe (falls vorhanden) vor Beginn der Aufzeichnung.Collection of prompts to play (if any) before recording starts. Kunden können "playPrompt"-Aktion separat angeben oder als Teil von "Record" angeben – meistens werden alle Datensätze durch eine Eingabeaufforderung vorangestellt.Customers can choose to specify "playPrompt" action separately or specify as part of "record" - mostly all records are preceeded by a prompt. Die aktuelle Unterstützung ist nur für eine einzelne Eingabeaufforderung als Teil der Auflistung.Current support is only for a single prompt as part of the collection.
bargeInAllowedbargeInAllowed BooleschBoolean Wenn true, wird diese Daten Satz Anforderung in andere vorhandene in der Warteschlange befindlichen/aktuell-Verarbeitung von Record/playprompt-Anforderungen gebarg.If true, this record request will barge into other existing queued-up/currently-processing record/playprompt requests. Default = false.Default = false.
initialSilenceTimeoutInSecondsinitialSilenceTimeoutInSeconds Int32Int32 Maximale anfängliche Stille (Benutzer Stille) zulässig ab dem Zeitpunkt, zu dem der Daten Satz Vorgang gestartet wird, bevor ein Timeout auftritt und der Vorgang fehlschlägt.Maximum initial silence (user silence) allowed from the time we start the record operation before we timeout and fail the operation. Wenn eine Eingabeaufforderung wiedergegeben wird, wird dieser Zeitgeber gestartet, nachdem die Eingabeaufforderung abgeschlossen wurde.If we are playing a prompt, then this timer starts after prompt finishes. Standard = 5 Sekunden, min = 1 Sekunde, Max = 300 SekundenDefault = 5 seconds, Min = 1 second, Max = 300 seconds
maxSilenceTimeoutInSecondsmaxSilenceTimeoutInSeconds Int32Int32 Maximale Ruhe (Pause) Zeit, die nach dem Start eines Benutzers zulässig ist.Maximum silence (pause) time allowed after a user has started speaking. Standard = 5 Sekunden, min = 1 Sekunde, Max = 300 Sekunden.Default = 5 seconds, Min = 1 second, Max = 300 seconds.
maxRecordDurationInSecondsmaxRecordDurationInSeconds Int32Int32 Maximale Dauer für einen Daten Satz Vorgang vor dem Beenden der Aufzeichnung.Max duration for a record operation before stopping recording. Standard = 5 Sekunden, min = 1 Sekunde, Max = 300 Sekunden.Default = 5 seconds, Min = 1 second, Max = 300 seconds.
playBeepplayBeep BooleschBoolean Bei true wird ein Signalton wiedergegeben, um dem Benutzer mitzuteilen, dass er mit der Aufzeichnung seiner Nachricht beginnen kann.If true, plays a beep to indicate to the user that they can start recording their message. Default = true.Default = true.
stopTonesstopTones String collectionString collection Endtöne werden für das Ende der Aufzeichnung angegeben.Stop tones specified to end recording.
clientContextclientContext StringString Eindeutige Client Kontextzeichenfolge.Unique Client Context string. Kann maximal 256 Zeichen aufweisen.Can have a maximum of 256 characters.

AntwortResponse

Diese Methode gibt einen 200 OK Antwortcode und einen Location-Header mit einem URI an das für diese Anforderung erstellte recordOperation zurück.This method returns a 200 OK response code and a Location header with a URI to the recordOperation created for this request.

BeispielExample

Das folgende Beispiel illustriert, wie Sie diese API aufrufen können.The following example shows how to call this API.

AnforderungRequest

Das folgende Beispiel zeigt die Antwort.The following example shows the request.

POST https://graph.microsoft.com/beta/app/calls/{id}/record
Content-Type: application/json
Content-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", "*" ]
}
AntwortResponse

Das folgende Beispiel zeigt die Antwort.The following example shows the response.

Hinweis: Das hier gezeigte Antwortobjekt wurde möglicherweise zur besseren Lesbarkeit gekürzt. Ein tatsächlicher Aufruf gibt alle Eigenschaften zurück.Note: The response object shown here might be shortened for readability. All the properties will be returned from an actual call.

HTTP/1.1 200 OK
Location: https://graph.microsoft.com/beta/app/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/0fe0623f-d628-42ed-b4bd-8ac290072cc5

{
  "@odata.type": "#microsoft.graph.recordOperation",
  "status": "running",
  "createdDateTime": "2018-09-06T15:58:41Z",
  "lastActionDateTime": "2018-09-06T15:58:41Z",
  "completionReason": null,
  "resultInfo": null,
  "recordingLocation": null,
  "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c"
}

Benachrichtigung – Vorgang abgeschlossenNotification - operation completed
POST https://bot.contoso.com/api/calls
Authorization: Bearer <TOKEN>
Content-Type: application/json
{
  "value": [
    {
      "changeType": "deleted",
      "resource": "/app/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
      "resourceData": {
        "@odata.type": "#microsoft.graph.recordOperation",
        "@odata.id": "/app/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
        "@odata.etag": "W/\"54451\"",
        "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
        "status": "completed",
        "recordingLocation": "https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad",
        "recordingAccessToken": "<access-token>",
        "completionReason": "stopToneDetected"
      }
    }
  ]
}
Get Recording File – AnforderungGet recording file - Request

Im folgenden Beispiel wird die Anforderung zum Abrufen des Inhalts der Aufzeichnung veranschaulicht.The following example shows the request to get the content of the recording.

GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad
Authorization: Bearer <recordingAccessToken>
Get Recording File – AntwortGet recording file - Response

Nachfolgend sehen Sie ein Beispiel der Antwort.Here is an example of the response.

GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad
Transfer-Encoding: chunked
Date: Thu, 17 Jan 2019 01:46:37 GMT
Content-Type: application/octet-stream

(application/octet-stream of size 160696 bytes)