call: answer
名前空間: microsoft.graph
ボットが着信呼び出しに応答するを 有効にする。 着信呼び出し要求には、グループ通話の参加者からの招待またはピアツーピア通話を指定できます。 グループ通話への招待を受け取った場合、通知には chatInfo パラメーターと meetingInfo パラメーターが含 まれます。
ボットは、通話がアウトする前に、通話に応答、拒否、またはリダイレクトする必要があります。現在のタイムアウト値は、通常のシナリオでは 15 秒、ポリシー ベースの記録シナリオでは 5 秒です。
アクセス許可
ピアツーピア通話に応答するためのアクセス許可は不要です。 グループ呼び出しに参加するには、次のいずれかのアクセス許可が必要です。 アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
| アクセス許可の種類 | アクセス許可 (特権の小さいものから大きいものへ) |
|---|---|
| 委任 (職場または学校のアカウント) | サポート対象外 |
| 委任 (個人用 Microsoft アカウント) | サポート対象外 |
| アプリケーション | Calls.JoinGroupCalls.All または Calls.JoinGroupCallsasGuest.All |
注: アプリケーションホスト型メディアを使用する呼び出しの場合は、Call.AccessMedia.All アクセス許可も必要です。
source着信呼び出し通知で、Call.AccessMedia.All、Call.Initiate.All、Call.InitiateGroupCall.All、Call.JoinGroupCall.All、Calls.JoinGroupCallAsGuest.All の暗号化が解除されるのを確認するには、少なくとも 1 つのアクセス許可が必要です。 はsource、着信呼び出し通知の発信者情報です。 これらのアクセス許可を少なくとも 1 つ使用しない場合、暗号化sourceされたままです。
HTTP 要求
POST /communications/calls/{id}/answer
要求ヘッダー
| 名前 | 説明 |
|---|---|
| Authorization | ベアラー {token}。必須。 |
| Content-type | application/json. Required. |
要求本文
要求本文で、次のパラメーターを含む JSON オブジェクトを指定します。
| パラメーター | 型 | 説明 |
|---|---|---|
| callbackUri | String | ボットは、同時呼び出しが後で通知を受け取る特定のコールバック URI を提供できます。 このプロパティが設定されていない場合、代わりにボットのグローバル コールバック URI が使用されます。 これは、 である必要があります https。 |
| acceptedModalities | String collection | モダリティを受け入れるの一覧。 可能な値は audio、video、videoBasedScreenSharing です。 通話に応答するために必要です。 |
| mediaConfig | appHostedMediaConfig または serviceHostedMediaConfig | メディア構成。 (必須) |
| participantCapacity | Int | ポリシー ベースの記録シナリオで、アプリケーションが呼び出しに対して処理Teams参加者の数。 |
応答
このメソッドは、応答コードを 202 Accepted 返します。
例
次の例は、この API を呼び出す方法を示しています。
要求
次の例は要求を示しています。
POST https://graph.microsoft.com/v1.0/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"
],
"participantCapacity": 200
}
この BLOB は、メディア SDK から生成されるメディア セッションのシリアル化された構成です。
応答
以下は、応答の例です。
HTTP/1.1 202 Accepted
例 1: サービスホスト型メディアを使用してピアツーピア VoIP 通話に応答する
通知 - 受信
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": {
"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"
}
}
}
],
"requestedModalities": [ "audio" ]
}
}
]
}
要求
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"
}
]
}
}
応答
HTTP/1.1 202 Accepted
通知 - 確立
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"
}
}
]
}
通知 - 確立
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"
}
}
]
}
例 2: アプリケーションホスト型メディアを使用して VOIP 呼び出しに応答する
通知 - 受信
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"
}
}
}
],
"requestedModalities": [ "audio" ]
}
}
]
}
要求
POST /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>"
}
}
応答
HTTP/1.1 202 Accepted
通知 - 確立
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"
}
}
]
}
通知 - 確立
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"
}
}
]
}
例 3: ポリシー ベースの録音通話に応答する
ポリシーベース の記録シナリオでは、ポリシーの参加者が通話に参加する前に、着信呼び出し通知がポリシーに関連付けられたボットに送信されます。 結合情報は botData プロパティの下にあります 。 その後、ボットは通話に応答し、記録の 状態を適切に更新できます 。
Answerポリシー participantCapacity ベースの記録通知の要求で指定すると、現在の呼び出しインスタンスが処理する参加者の数がで指定された数に達するまで、同じポリシー グループに属する後続の参加者参加イベントは、新しい着信通知ではなく、参加者JoiningNotificationparticipantCapacityとして送信されます。
この場合、ボットが受信する着信呼び出し通知の例を次に示します。
{
"@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"
}
]
}
}
}
}
]
}
フィードバック
フィードバックの送信と表示