call : recordResponse

Espace de noms: microsoft.graph

Enregistre une courte réponse audio de l’appelant. Un bot peut l’utiliser pour capturer une réponse vocale d’un appelant une fois qu’il est invité à fournir une réponse.

Pour plus d’informations sur la gestion des opérations, consultez commsOperation

Note: Cela est pris en charge uniquement pour les appels lancés avec serviceHostedMediaConfig.

Cette action n’est pas destinée à enregistrer l’intégralité de l’appel. La durée maximale de l’enregistrement est de 2 minutes. L’enregistrement n’est pas enregistré définitivement par la plateforme de communications cloud et est ignoré peu de temps après la fin de l’appel. Le bot doit télécharger l’enregistrement rapidement une fois l’opération d’enregistrement terminée à l’aide de la valeur recordingLocation indiquée dans la notification terminée.

Note: Les médias collectés ne peuvent pas être conservés. Assurez-vous que vous êtes conforme aux lois et réglementations de votre région en ce qui concerne l’enregistrement des appels. Pour plus d’informations, veuillez consulter un conseiller juridique.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Non prise en charge. Non prise en charge.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Calls.AccessMedia.All Non disponible.

Requête HTTP

POST /communications/calls/{id}/recordResponse

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.

Paramètre Type Description
Invites collection mediaPrompt Invites à lire. La taille maximale de la collection mediaPrompt prise en charge est de 1.
bargeInAllowed Valeur booléenne Si la valeur est true, la requête recordResponse est envoyée à d’autres demandes d’enregistrement/playprompt en file d’attente/en cours de traitement. Valeur par défaut = false.
initialSilenceTimeoutInSeconds Int32 Silence initial maximal (silence de l’utilisateur) autorisé à partir du moment où nous commençons l’opération de réponse d’enregistrement avant d’expirer et d’échouer l’opération. Si nous lons une invite, cette minuterie démarre une fois l’invite terminée. Valeur par défaut = 5 secondes, Min = 1 seconde, Max = 120 secondes
maxSilenceTimeoutInSeconds Int32 Durée maximale de silence (pause) autorisée après qu’un utilisateur a commencé à parler. Valeur par défaut = 5 secondes, Min = 1 seconde, Max = 120 secondes.
maxRecordDurationInSeconds Int32 Durée maximale de l’opération recordResponse avant l’arrêt de l’enregistrement. Valeur par défaut = 5 secondes, Min = 1 seconde, Max = 120 secondes.
playBeep Valeur booléenne Si la valeur est true, lit un bip pour indiquer à l’utilisateur qu’il peut commencer à enregistrer son message. Valeur par défaut = true.
stopTones String collection Arrêter les tonalités spécifiées pour terminer l’enregistrement.
Clientcontext Chaîne Chaîne de contexte client unique. La limite maximale est de 256 caractères.

Réponse

Cette méthode retourne un 200 OK code de réponse et un en-tête Location avec un URI à l’objet recordOperation créé pour cette requête.

Exemple

L’exemple ci-après montre comment appeler cette API.

Exemple 1 : Enregistre une réponse audio courte de l’appelant

Demande

L’exemple suivant illustre la demande.

POST https://graph.microsoft.com/v1.0/communications/calls/{id}/recordResponse
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", "*" ]
}
Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 200 OK
Content-Type: application/json
Location: 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 - opération terminée
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.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>"
      }
    }
  ]
}

Exemple 2 : Récupération du fichier d’enregistrement

Note: Vous ne pouvez PAS enregistrer ou conserver du contenu multimédia à partir d’appels ou de réunions auxquels votre application accède, ni les données dérivées de ce contenu multimédia. Assurez-vous que vous êtes conforme aux lois et réglementations de votre domaine en matière de protection des données et de confidentialité des communications. Pour plus d’informations, consultez les Conditions d’utilisation et contactez votre conseiller juridique.

Demande
GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad
Authorization: Bearer <recordingAccessToken>
Réponse
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Date: Thu, 17 Jan 2019 01:46:37 GMT
Content-Type: application/octet-stream

(application/octet-stream of size 160696 bytes)