appel : recordResponse

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Enregistrez une courte réponse audio de l’appelant.

Un bot peut utiliser cette API pour capturer une réponse vocale d’un appelant après qu’il ait été invité à répondre.

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

Remarque : Cette API est uniquement prise en charge 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. La plateforme de communications cloud n’enregistre pas l’enregistrement de manière permanente et le jette peu après la fin de l’appel. Le bot doit télécharger l’enregistrement rapidement après la fin de l’opération d’enregistrement à l’aide de la valeur recordingLocation fournie dans la notification terminée.

Remarque : Vous ne pouvez pas enregistrer ou conserver le contenu multimédia des appels ou réunions auxquels votre application accède, ou les données dérivées de ce contenu multimédia. Assurez-vous de respecter les lois et règlements de votre région en matière de protection des données et de confidentialité des communications. Pour plus d’informations, consultez les Conditions d’utilisation et consultez votre conseiller juridique.

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

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet

Autorisations

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

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
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 /app/calls/{id}/recordResponse
POST /communications/calls/{id}/recordResponse

Remarque : le chemin d’accès /app est obsolète. À l’avenir, utilisez le chemin d’accès /communications.

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et les autorisations.
Content-type application/json. Obligatoire.

Corps de la demande

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

Paramètre Type Description
requêtes Collection MediaPrompt Les invites à lire. La taille maximale de collection mediaPrompt prise en charge est de 1.
bargeInAllowed Booléen Si la valeur est true, la demande recordResponse fera irruption dans d’autres demandes d’enregistrement/de lecture/d’enregistrement en cours de traitement. Valeur par défaut = false.
initialSilenceTimeoutInSeconds Int32 Silence initial maximal (silence de l’utilisateur) autorisé à partir du moment où nous démarrons l’opération de réponse d’enregistrement avant d’expirer et d’échouer l’opération. Si nous lisons une invite, ce minuteur démarre une fois l’invite terminée. 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 Booléen Si la valeur est true, émet 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 mettre fin à l’enregistrement.
clientContext String Chaîne de contexte client unique. La limite maximale est de 256 caractères.

Remarque : La durée d’enregistrement maximale est passée de 5 minutes à 2 minutes.

Réponse

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

Exemple

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

Exemple 1 : enregistre une brève réponse audio de l’appelant

Demande

L’exemple suivant illustre la demande.

POST https://graph.microsoft.com/beta/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
Location: https://graph.microsoft.com/beta/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",
  "completionReason": null,
  "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",
        "recordingLocation": "https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad",
        "recordingAccessToken": "<access-token>",
        "completionReason": "stopToneDetected"
      }
    }
  ]
}

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

Remarque : Vous ne pouvez PAS enregistrer ou conserver le contenu multimédia des appels ou réunions auxquels votre application accède, ou les données dérivées de ce contenu multimédia. Assurez-vous de respecter les lois et règlements de votre région en matière de protection des données et de confidentialité des communications. Pour plus d’informations, consultez les Conditions d’utilisation et consultez 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)

Remarque : Vous ne pouvez PAS enregistrer ou conserver le contenu multimédia des appels ou réunions auxquels votre application accède, ou les données dérivées de ce contenu multimédia. Assurez-vous de respecter les lois et règlements de votre région en matière de protection des données et de confidentialité des communications. Pour plus d’informations, consultez les Conditions d’utilisation et consultez votre conseiller juridique.