appel : sendDtmfTones
Article
01/10/2024
4 contributeurs
Commentaires
Dans cet article
Espace de noms: microsoft.graph
Envoyer des tonalités DTMF dans un appel.
Pour plus d’informations sur la gestion des opérations, consultez commsOperation
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.Initiate.All
Calls.AccessMedia.All
Note: Les autorisations sont vérifiées lors de la création d’un appel ; aucune autorisation supplémentaire case activée n’est effectuée lors de l’appel de cette API. Calls.AccessMedia.All est nécessaire uniquement pour les appels qui utilisent un média hébergé par l’application.
Requête HTTP
POST /app/calls/{id}/sendDtmfTones
POST /communications/calls/{id}/sendDtmfTones
Remarque : le chemin d’accès /app
est obsolète. À l’avenir, utilisez le chemin d’accès /communications
.
Corps de la demande
Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.
Paramètre
Type
Description
Tons
Collection ToneInfo
Tonalités à envoyer.
delayBetweenTonesMs
Int32
Délai en millisecondes entre les tonalités.
Clientcontext
Chaîne
Chaîne de contexte client unique. Peut avoir un maximum de 256 caractères.
Réponse
Si elle réussit, cette méthode renvoie un 200 OK
code de réponse et un objet sendDtmfTonesOperation dans le corps de la réponse.
Exemples
L’exemple suivant montre comment envoyer des tonalités DTMF dans un appel.
Demande
L’exemple suivant illustre une demande.
POST https://graph.microsoft.com/v1.0/communications/calls/481f3600-983e-4276-9b59-c1b30ec8d125/microsoft.graph.sendDtmfTones
Content-Type: application/json
Content-Length: 166
{
"tones": [
"tone1",
"tone2",
"tone3",
"tone4",
"tone5",
"tone6",
"tone7",
"tone8",
"tone9",
"tone0",
"star",
"pound"
],
"delayBetweenTonesMs": 1000,
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Communications.Calls.Item.SendDtmfTones;
using Microsoft.Graph.Models;
var requestBody = new SendDtmfTonesPostRequestBody
{
Tones = new List<Tone?>
{
Tone.Tone1,
Tone.Tone2,
Tone.Tone3,
Tone.Tone4,
Tone.Tone5,
Tone.Tone6,
Tone.Tone7,
Tone.Tone8,
Tone.Tone9,
Tone.Tone0,
Tone.Star,
Tone.Pound,
},
DelayBetweenTonesMs = 1000,
ClientContext = "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Communications.Calls["{call-id}"].SendDtmfTones.PostAsync(requestBody);
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc communications calls send-dtmf-tones post --call-id {call-id} --body '{\
"tones": [\
"tone1",\
"tone2",\
"tone3",\
"tone4",\
"tone5",\
"tone6",\
"tone7",\
"tone8",\
"tone9",\
"tone0",\
"star",\
"pound"\
],\
"delayBetweenTonesMs": 1000,\
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53"\
}\
'
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphcommunications "github.com/microsoftgraph/msgraph-sdk-go/communications"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphcommunications.NewSendDtmfTonesPostRequestBody()
tones := []graphmodels.Toneable {
tone := graphmodels.TONE1_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE2_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE3_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE4_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE5_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE6_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE7_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE8_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE9_TONE
requestBody.SetTone(&tone)
tone := graphmodels.TONE0_TONE
requestBody.SetTone(&tone)
tone := graphmodels.STAR_TONE
requestBody.SetTone(&tone)
tone := graphmodels.POUND_TONE
requestBody.SetTone(&tone)
}
requestBody.SetTones(tones)
delayBetweenTonesMs := int32(1000)
requestBody.SetDelayBetweenTonesMs(&delayBetweenTonesMs)
clientContext := "e0be71f1-a14f-4cec-b65a-e7aba5db7c53"
requestBody.SetClientContext(&clientContext)
sendDtmfTones, err := graphClient.Communications().Calls().ByCallId("call-id").SendDtmfTones().Post(context.Background(), requestBody, nil)
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.communications.calls.item.senddtmftones.SendDtmfTonesPostRequestBody sendDtmfTonesPostRequestBody = new com.microsoft.graph.communications.calls.item.senddtmftones.SendDtmfTonesPostRequestBody();
LinkedList<Tone> tones = new LinkedList<Tone>();
tones.add(Tone.Tone1);
tones.add(Tone.Tone2);
tones.add(Tone.Tone3);
tones.add(Tone.Tone4);
tones.add(Tone.Tone5);
tones.add(Tone.Tone6);
tones.add(Tone.Tone7);
tones.add(Tone.Tone8);
tones.add(Tone.Tone9);
tones.add(Tone.Tone0);
tones.add(Tone.Star);
tones.add(Tone.Pound);
sendDtmfTonesPostRequestBody.setTones(tones);
sendDtmfTonesPostRequestBody.setDelayBetweenTonesMs(1000);
sendDtmfTonesPostRequestBody.setClientContext("e0be71f1-a14f-4cec-b65a-e7aba5db7c53");
var result = graphClient.communications().calls().byCallId("{call-id}").sendDtmfTones().post(sendDtmfTonesPostRequestBody);
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
const options = {
authProvider,
};
const client = Client.init(options);
const sendDtmfTonesOperation = {
tones: [
'tone1',
'tone2',
'tone3',
'tone4',
'tone5',
'tone6',
'tone7',
'tone8',
'tone9',
'tone0',
'star',
'pound'
],
delayBetweenTonesMs: 1000,
clientContext: 'e0be71f1-a14f-4cec-b65a-e7aba5db7c53'
};
await client.api('/communications/calls/481f3600-983e-4276-9b59-c1b30ec8d125/microsoft.graph.sendDtmfTones')
.post(sendDtmfTonesOperation);
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\SendDtmfTonesPostRequestBody;
use Microsoft\Graph\Generated\Models\Tone;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new SendDtmfTonesPostRequestBody();
$requestBody->setTones([new Tone('tone1'),new Tone('tone2'),new Tone('tone3'),new Tone('tone4'),new Tone('tone5'),new Tone('tone6'),new Tone('tone7'),new Tone('tone8'),new Tone('tone9'),new Tone('tone0'),new Tone('star'),new Tone('pound'), ]);
$requestBody->setDelayBetweenTonesMs(1000);
$requestBody->setClientContext('e0be71f1-a14f-4cec-b65a-e7aba5db7c53');
$result = $graphServiceClient->communications()->calls()->byCallId('call-id')->sendDtmfTones()->post($requestBody)->wait();
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
from msgraph import GraphServiceClient
from msgraph.generated.communications.calls.item.send_dtmf_tones.send_dtmf_tones_post_request_body import SendDtmfTonesPostRequestBody
from msgraph.generated.models.tone import Tone
graph_client = GraphServiceClient(credentials, scopes)
request_body = SendDtmfTonesPostRequestBody(
tones = [
Tone.Tone1,
Tone.Tone2,
Tone.Tone3,
Tone.Tone4,
Tone.Tone5,
Tone.Tone6,
Tone.Tone7,
Tone.Tone8,
Tone.Tone9,
Tone.Tone0,
Tone.Star,
Tone.Pound,
],
delay_between_tones_ms = 1000,
client_context = "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
)
result = await graph_client.communications.calls.by_call_id('call-id').send_dtmf_tones.post(request_body)
Pour plus d’informations sur la façon d'ajouter le Kit de développement logiciel (SDK) à votre projet et créer une instance authProvider , consultez la documentation du Kit de développement logiciel (SDK) .
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/v1.0/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/d36fe651-9f50-484d-bd4b-1e6415eae448
{
"@odata.type": "#microsoft.graph.sendDtmfTonesOperation",
"status": "running",
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
"id": "d36fe651-9f50-484d-bd4b-1e6415eae448"
}
Notification - opération terminée
Cas réussi
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/481f3600-983e-4276-9b59-c1b30ec8d125/operations/d36fe651-9f50-484d-bd4b-1e6415eae448",
"resourceData": {
"@odata.type": "#microsoft.graph.sendDtmfTonesOperation",
"status": "completed",
"completionReason": "completedSuccessfully",
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
"id": "d36fe651-9f50-484d-bd4b-1e6415eae448"
}
}
]
}
Cas d’erreur 1
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/481f3600-983e-4276-9b59-c1b30ec8d125/operations/d36fe651-9f50-484d-bd4b-1e6415eae448",
"resourceData": {
"@odata.type": "#microsoft.graph.sendDtmfTonesOperation",
"status": "completed",
"completionReason": "mediaOperationCanceled",
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
"id": "d36fe651-9f50-484d-bd4b-1e6415eae448"
}
}
]
}
Cas d’erreur 2
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/481f3600-983e-4276-9b59-c1b30ec8d125/operations/d36fe651-9f50-484d-bd4b-1e6415eae448",
"resourceData": {
"@odata.type": "#microsoft.graph.sendDtmfTonesOperation",
"status": "completed",
"completionReason": "unknown",
"clientContext": "e0be71f1-a14f-4cec-b65a-e7aba5db7c53",
"id": "d36fe651-9f50-484d-bd4b-1e6415eae448"
}
}
]
}