Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Aktivieren eines Bots zum Annehmen eines eingehenden Anrufs. Die eingehende Anrufanforderung kann eine Einladung eines Teilnehmers an einem Gruppenanruf oder einem Peer-to-Peer-Anruf sein. Wenn eine Einladung zu einem Gruppenanruf eingeht, enthält die Benachrichtigung die Parameter chatInfo und meetingInfo .
Es wird erwartet, dass der Bot den Anruf beantwortet, ablehnt oder umleitet , bevor der Anruf abläuft. Der aktuelle Timeoutwert beträgt 15 Sekunden. Der aktuelle Timeoutwert beträgt 15 Sekunden für reguläre Szenarien und 5 Sekunden für richtlinienbasierte Aufzeichnungsszenarien.
Diese API unterstützt die folgenden PSTN-Szenarien:
- Eingehender Anruf an die PSTN-Nummer des Bots und dann Bot lädt ein weiteres PSTN ein.
- Eingehender Anruf an die PSTN-Nummer des Bots und anschließende Bot-Weiterleitung an ein anderes PSTN.
- Eingehender Anruf an die PSTN-Nummer des Bots und der Bot leitet dann an einen anderen PSTN um.
- Eingehender Aufruf an die instance-ID des Bots und dann Bot lädt ein weiteres PSTN ein.
- Eingehender Aufruf an die instance-ID des Bots und anschließende Bot-Übertragung an ein anderes PSTN.
- Eingehender Aufruf an die instance-ID des Bots und der Bot leitet dann zu einem anderen PSTN um.
- Eingehender Anruf an die instance-ID des Bots aus der geplanten Besprechung und dann Bot-Einladungen PSTN.
- Ausgehender Aufruf von einem Bot (mit instance-ID) an ein PSTN.
- P2P-Anruf zwischen Bot und einem anderen Peer (Teams-Benutzer, PSTN), Bot lädt einen anderen PSTN ein.
- P2P-Anruf zwischen Bot und einem anderen Peer (Teams-Benutzer, PSTN), Bot lädt einen anderen Teams-Benutzer ein.
- Bot: Nehmen Sie an der geplanten Besprechung teil, und laden Sie dann PSTN ein.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ❌ | ❌ | ❌ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
| Berechtigungstyp | Berechtigungen mit den geringsten Berechtigungen | Berechtigungen mit höheren Berechtigungen |
|---|---|---|
| Delegiert (Geschäfts-, Schul- oder Unikonto) | Nicht unterstützt | Nicht unterstützt |
| Delegiert (persönliches Microsoft-Konto) | Nicht unterstützt | Nicht unterstützt |
| Application | Calls.JoinGroupCall.All | Calls.JoinGroupCallAsGuest.All |
Hinweis: Für einen Aufruf, der von der Anwendung gehostete Medien verwendet, benötigen Sie auch die Berechtigung Calls.AccessMedia.All. Sie müssen über mindestens eine der folgenden Berechtigungen verfügen, um sicherzustellen, dass die
sourceBenachrichtigung über eingehende Anrufe entschlüsselt wird: Calls.AccessMedia.All, Calls.Initiate.All, Calls.InitiateGroupCall.All, Calls.JoinGroupCall.All, Calls.JoinGroupCallAsGuest.All. Diessourcesind die Anruferinformationen in der Benachrichtigung über eingehende Anrufe. Ohne mindestens eine dieser Berechtigungen bleiben siesourceverschlüsselt.
HTTP-Anforderung
POST /app/calls/{id}/answer
POST /communications/calls/{id}/answer
Hinweis: Der
/app-Pfad ist veraltet. Verwenden Sie in Zukunft den/communications-Pfad.
Anforderungsheader
| Name | Beschreibung |
|---|---|
| Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung. |
| Content-type | application/json. Erforderlich. |
Anforderungstext
Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.
| Parameter | Typ | Beschreibung |
|---|---|---|
| callbackUri | Zeichenfolge | Ermöglicht Bots, einen bestimmten Rückruf-URI für den gleichzeitigen Anruf bereitzustellen, um spätere Benachrichtigungen zu erhalten. Wenn diese Eigenschaft nicht festgelegt wurde, wird stattdessen der globale Rückruf-URI des Bots verwendet. Dies muss sein https. |
| acceptedModalities | String collection | Die Liste der Modalitäten für die Annahme. Die möglichen Werte sind: audio, video, videoBasedScreenSharing. Erforderlich für das Annehmen eines Anrufs. |
| callOptions | incomingCallOptions | Die Anrufoptionen. |
| mediaConfig | appHostedMediaConfig oder serviceHostedMediaConfig | Die Medienkonfiguration. Erforderlich. |
| participantCapacity | Int | Die Anzahl der Teilnehmer, die die Anwendung für den Anruf verarbeiten kann, für ein richtlinienbasiertes Aufzeichnungsszenario von Teams . |
Antwort
Diese Methode gibt einen 202 Accepted Antwortcode zurück.
Beispiele
Das folgende Beispiel illustriert, wie Sie diese API aufrufen können.
Anforderung
Das folgende Beispiel zeigt die Antwort.
POST https://graph.microsoft.com/beta/communications/calls/{id}/answer
Content-Type: application/json
Content-Length: 211
{
"callbackUri": "callbackUri-value",
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration Blob>"
},
"acceptedModalities": [
"audio"
],
"callOptions": {
"@odata.type": "#microsoft.graph.incomingCallOptions",
"isContentSharingNotificationEnabled": true,
"isDeltaRosterEnabled": true,
"isInteractiveRosterEnabled": true
},
"participantCapacity": 200
}
Antwort
Das folgende Beispiel zeigt die Antwort.
HTTP/1.1 202 Accepted
Beispiel 1: Beantworten eines Peer-to-Peer-VoIP-Anrufs mit vom Dienst gehosteten Medien
Benachrichtigung – eingehend
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "incoming",
"direction": "incoming",
"callRoutes": [
{
"routingType": "lookup",
"original": {
"phone": {
"id": "+14258828080"
}
},
"final": {
"user": {
"id": "29362BD4-CD58-4ED0-A206-0E4A33DBB0B6",
"displayName": "Heidi Steen"
}
}
}
],
"source": {
"identity": {
"user": {
"displayName": "Test User",
"id": "8A34A46B-3D17-4ADC-8DCE-DC4E7D572698"
}
},
"region": "westus",
"languageId": "en-US"
},
"targets": [
{
"identity": {
"application": {
"displayName": "Test BOT",
"id": "8A34A46B-3D17-4ADC-8DCE-DC4E7D572698"
}
},
"languageId": "en-US"
}
],
"requestedModalities": [ "audio" ]
}
}
]
}
Anforderung
POST /communications/calls/57DAB8B1894C409AB240BD8BEAE78896/answer
Content-Type: application/json
{
"callbackUri": "https://bot.contoso.com/api/calls",
"acceptedModalities": [ "audio" ],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088E"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088F"
}
]
}
}
Antwort
HTTP/1.1 202 Accepted
Benachrichtigung – Einrichtung
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "establishing"
}
}
]
}
Hinweis: Anrufaufbau-/eingerichtete Benachrichtigungen können nicht in der richtigen Reihenfolge eintreffen.
Benachrichtigung – eingerichtet
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "established"
}
}
]
}
Hinweis: Anrufaufbau-/eingerichtete Benachrichtigungen können nicht in der richtigen Reihenfolge eintreffen.
Beispiel 2: Beantworten eines VOIP-Anrufs mit von der Anwendung gehosteten Medien
Benachrichtigung – eingehend
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "incoming",
"direction": "incoming",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"user": {
"displayName": "Test User",
"id": "8A34A46B-3D17-4ADC-8DCE-DC4E7D572698"
}
},
"region": "westus",
"languageId": "en-US"
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"application": {
"displayName": "Test BOT",
"id": "8A34A46B-3D17-4ADC-8DCE-DC4E7D572698"
}
},
"region": "westus",
"languageId": "en-US"
}
],
"requestedModalities": [ "audio" ]
}
}
]
}
Anforderung
POST https://graph.microsoft.com/beta/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/answer
Content-Type: application/json
{
"callbackUri": "https://bot.contoso.com/api/calls",
"acceptedModalities": [ "audio" ],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration Blob>"
}
}
Antwort
HTTP/1.1 202 Accepted
Benachrichtigung – Einrichtung
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "establishing"
}
}
]
}
Hinweis: Anrufaufbau-/eingerichtete Benachrichtigungen können nicht in der richtigen Reihenfolge eintreffen.
Benachrichtigung – eingerichtet
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896",
"@odata.etag": "W/\"5445\"",
"state": "established"
}
}
]
}
Hinweis: Anrufaufbau-/eingerichtete Benachrichtigungen können nicht in der richtigen Reihenfolge eintreffen.
Benachrichtigung – Inhaltsfreigabe gestartet
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/421f4c00-4436-4c3a-9d9a-c4924cf98e67/contentsharingsessions/2765eb15-01f8-47c6-b12b-c32111a4a86f"
}
]
}
Benachrichtigung – Inhaltsfreigabe beendet
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/421f4c00-4436-4c3a-9d9a-c4924cf98e67/contentsharingsessions/2765eb15-01f8-47c6-b12b-c32111a4a86f"
}
]
}
Beispiel 3: Annehmen eines richtlinienbasierten Aufzeichnungsanrufs
Im Szenario der richtlinienbasierten Aufzeichnung wird eine Benachrichtigung über eingehende Anrufe an den Bot gesendet, der der Richtlinie zugeordnet ist, bevor ein Teilnehmer unter Richtlinie einem Anruf beitritt. Die Verknüpfungsinformationen finden Sie unter der botData-Eigenschaft . Der Bot kann dann den Anruf annehmen und den Status der Aufzeichnung entsprechend aktualisieren.
Wenn participantCpapacity in der Answer Anforderung für eine richtlinienbasierte Aufzeichnungsbenachrichtigung angegeben ist, wird ein nachfolgendes Teilnehmerbeitrittsereignis, das zur gleichen Richtliniengruppe gehört, als participantJoiningNotification anstelle einer neuen eingehenden Anrufbenachrichtigung gesendet, bis die Anzahl der Teilnehmer, die die aktuelle aufrufende Instance verarbeitet, die in angegeben participantCapacityerreicht hat.
Hier ist ein Beispiel für die Benachrichtigung über eingehende Anrufe, die ein Bot in diesem Fall erhalten würde.
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"created",
"resource":"/app/calls/e71f0300-9c1f-4d99-b5f4-2722e877d497",
"resourceUrl":"/communications/calls/e71f0300-9c1f-4d99-b5f4-2722e877d497",
"resourceData":{
"@odata.type":"#microsoft.graph.call",
"state":"incoming",
"direction":"incoming",
"source":{
"@odata.type":"#microsoft.graph.participantInfo",
"id":"90fad2ce-8989-41a1-8a66-f6636e629a2a",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"8A34A46B-3D17-4ADC-8DCE-DC4E7D572698",
"identityProvider":"AAD"
}
},
"endpointType":"default",
"region":"amer"
},
"targets":[
{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"applicationInstance":{
"@odata.type":"#microsoft.graph.identity",
"id":"832899f8-2ea1-4604-8413-27bd2892079f",
"identityProvider":"AAD"
}
},
"endpointType":"default",
"id":"4520a1a5-5394-5a41-aa12-9ee6fa18cfc8",
"region":null,
"languageId":null
}
],
"meetingInfo":{
"@odata.type":"#microsoft.graph.tokenMeetingInfo",
"token":"join token"
},
"tenantId":"932899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId":"1520a1a5-5394-4a41-aa72-9ee6fa18cfc8",
"callChainId":"05f2f70f-3a9c-47c1-80a9-cc79e91d8cec",
"incomingContext":{
"@odata.type":"#microsoft.graph.incomingContext",
"sourceParticipantId":"30fad2ce-8989-41a1-8a66-f6636e629a2a",
"observedParticipantId":"30fad2ce-8989-41a1-8a66-f6636e629a2a"
},
"id":"e71f0300-9c1f-4d99-b5f4-2722e877d497",
"applicationMetadata":{
"botData":{
"mediaHostedRegion":"USEA",
"user":{
"participationMethod":"callee",
"clientLocation":"US"
},
"otherSideUser":{
"id":"971f0300-9c1f-4d99-b5f4-2722e877d490",
"participantId":"3520a1a5-5394-4a41-aa72-9ee6fa18cfc8",
"tenantId":"1540a1a5-2394-4a41-aa72-9ee6fa18cfc8",
"onBehalfOf":{
"id":"871f0300-9c1f-4d99-b5f4-2722e877d490"
},
"participationMethod":"caller",
"clientLocation":"EUNO"
},
"inviteReasons":[
"PolicyBasedRecording"
],
"policyIdentifier":"Test Policy",
"pairedRecorders":[
{
"id":"471f0300-5c1f-4d99-b5f4-2722e877d490",
"participantId":"371f0300-2c1f-4d99-b5f4-2722e877d490"
}
],
"otherRecorders":[
{
"id":"671f0300-9c1f-4d99-b5f4-2722e877d490",
"participantId":"a71f0300-ec1f-4d99-b5f4-2722e877d490"
}
]
}
}
}
}
]
}