Namespace: microsoft.graph
Criar chamada permite que seu bot crie uma nova chamada de saída ponto a ponto ou em grupo, ou ingresse em uma reunião existente. Você precisa registrar o bot de chamada e passar pela lista de permissões necessárias.
Essa API é compatível com os seguintes cenários PSTN:
- Chamada de entrada para o número PSTN do bot e, em seguida, o bot convida outro PSTN.
- Chamada de entrada para o número PSTN do bot e, em seguida, transferência do bot para outra PSTN.
- Chamada de entrada para o número PSTN do bot e, em seguida, o bot redireciona para outra PSTN.
- Chamada de entrada para o identificador de instância do bot e, em seguida, o bot convida outro PSTN.
- Chamada de entrada para o identificador de instância do bot e, em seguida, transferência do bot para outro PSTN.
- Chamada de entrada para o identificador de instância do bot e, em seguida, o bot redireciona para outro PSTN.
- Chamada de entrada para o identificador de instância do bot da Reunião agendada e, em seguida, o bot convida PSTN.
- Chamada de saída do bot (com identificador de instância) para uma PSTN.
- Chamada P2P entre bot e outro par (usuário do Teams, PSTN), o bot convida outro PSTN.
- Chamada P2P entre bot e outro par (usuário do Teams, PSTN), o bot convida outro usuário do Teams.
- O bot ingressa na reunião agendada e convida PSTN.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global |
Governo dos EUA L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
❌ |
Permissões
Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
Sem suporte. |
Sem suporte. |
| Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
| Application |
Calls.JoinGroupCalls.Chat |
Calls.Initiate.All, Calls.InitiateGroupCall.All, Calls.JoinGroupCall.All, Calls.JoinGroupCallAsGuest.All |
Observação
- Para uma chamada com mídia hospedada pelo aplicativo, você precisa da permissão Calls.AccessMedia.All, além de uma das permissões listadas na tabela anterior.
- As chamadas.JoinGroupCalls. A permissão de Chat usa o consentimento específico do recurso.
As soluções de interoperabilidade de vídeo em nuvem certificadas para o Microsoft Teams têm permissão para chamar essa API para ingressar em reuniões para as quais têm links de ingresso em reuniões, semelhante aos usuários externos ingressando por meio de um navegador.
Solicitação HTTP
POST /communications/calls
| Nome |
Descrição |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-type |
application/json. Obrigatório. |
Corpo da solicitação
No corpo da solicitação, forneça uma representação JSON de um objeto de chamada .
Resposta
Se for bem-sucedido, esse método retornará um código de 201 Created resposta e um objeto de chamada no corpo da resposta.
Exemplos
Observação: Essa chamada precisa da permissão Calls.Initiate.All.
Solicitação
O exemplo a seguir mostra uma solicitação que faz uma chamada ponto a ponto entre o bot e o usuário especificado. Neste exemplo, o serviço hospeda a mídia. Os valores de token de autorização, URL de retorno de chamada, ID do aplicativo, nome do aplicativo, ID do usuário, nome do usuário e ID do locatário devem ser substituídos por valores reais para fazer o exemplo funcionar.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
}
}
],
"requestedModalities": [
"audio"
],
"callOptions": {
"@odata.type": "#microsoft.graph.outgoingCallOptions",
"isContentSharingNotificationEnabled": true,
"isDeltaRosterEnabled": true
},
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "John",
Id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8",
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
CallOptions = new OutgoingCallOptions
{
OdataType = "#microsoft.graph.outgoingCallOptions",
IsContentSharingNotificationEnabled = true,
IsDeltaRosterEnabled = true,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
},
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "John"
user.SetDisplayName(&displayName)
id := "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
callOptions := graphmodels.NewOutgoingCallOptions()
isContentSharingNotificationEnabled := true
callOptions.SetIsContentSharingNotificationEnabled(&isContentSharingNotificationEnabled)
isDeltaRosterEnabled := true
callOptions.SetIsDeltaRosterEnabled(&isDeltaRosterEnabled)
requestBody.SetCallOptions(callOptions)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
requestBody.SetMediaConfig(mediaConfig)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setDisplayName("John");
user.setId("112f7296-5fa4-42ca-bae8-6a692b15d4b8");
identity.setUser(user);
invitationParticipantInfo.setIdentity(identity);
targets.add(invitationParticipantInfo);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
OutgoingCallOptions callOptions = new OutgoingCallOptions();
callOptions.setOdataType("#microsoft.graph.outgoingCallOptions");
callOptions.setIsContentSharingNotificationEnabled(true);
callOptions.setIsDeltaRosterEnabled(true);
call.setCallOptions(callOptions);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
call.setMediaConfig(mediaConfig);
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'John',
id: '112f7296-5fa4-42ca-bae8-6a692b15d4b8'
}
}
}
],
requestedModalities: [
'audio'
],
callOptions: {
'@odata.type': '#microsoft.graph.outgoingCallOptions',
isContentSharingNotificationEnabled: true,
isDeltaRosterEnabled: true
},
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig'
}
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\OutgoingCallOptions;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo1IdentityUser = new Identity();
$targetsInvitationParticipantInfo1IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo1IdentityUser->setDisplayName('John');
$targetsInvitationParticipantInfo1IdentityUser->setId('112f7296-5fa4-42ca-bae8-6a692b15d4b8');
$targetsInvitationParticipantInfo1Identity->setUser($targetsInvitationParticipantInfo1IdentityUser);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$callOptions = new OutgoingCallOptions();
$callOptions->setOdataType('#microsoft.graph.outgoingCallOptions');
$callOptions->setIsContentSharingNotificationEnabled(true);
$callOptions->setIsDeltaRosterEnabled(true);
$requestBody->setCallOptions($callOptions);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$requestBody->setMediaConfig($mediaConfig);
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "John"
id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
}
}
)
requestedModalities = @(
"audio"
)
callOptions = @{
"@odata.type" = "#microsoft.graph.outgoingCallOptions"
isContentSharingNotificationEnabled = $true
isDeltaRosterEnabled = $true
}
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
}
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.outgoing_call_options import OutgoingCallOptions
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "John",
id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8",
),
),
),
],
requested_modalities = [
Modality.Audio,
],
call_options = OutgoingCallOptions(
odata_type = "#microsoft.graph.outgoingCallOptions",
is_content_sharing_notification_enabled = True,
is_delta_roster_enabled = True,
),
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
),
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2e1a0b00-2db4-4022-9570-243709c565ab
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"countryCode": null,
"endpointType": null,
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
},
"endpointType": null,
"replacesCallId": null,
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"myParticipantId": "499ff390-7a72-40e8-83a0-8fac6295ae7e",
"id": "2e1a0b00-2db4-4022-9570-243709c565ab",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"subject": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"resultInfo": null,
"answeredBy": null,
"chatInfo": null,
"meetingInfo": null,
"transcription": null,
"callOptions": {
"@odata.type": "#microsoft.graph.outgoingCallOptions",
"isContentSharingNotificationEnabled": true,
"isDeltaRosterEnabled": true
},
"toneInfo": null
}
Notificação – estabelecendo
POST https://bot.contoso.com/callback
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/2e1a0b00-2db4-4022-9570-243709c565ab",
"callbackUri": "https://bot.contoso.com/callback",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"id": "2e1a0b00-2db4-4022-9570-243709c565ab"
}
}
]
}
Observação: As notificações de estabelecimento/estabelecidas de chamadas podem chegar fora de ordem.
Notificação - estabelecida
POST https://bot.contoso.com/callback
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/2e1a0b00-b3c5-4b0f-99b3-c133bc1e6116",
"callbackUri": "https://bot.contoso.com/callback",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "established",
"direction": "outgoing",
"id": "2e1a0b00-b3c5-4b0f-99b3-c133bc1e6116"
}
}
]
}
Observação: As notificações de estabelecimento/estabelecidas de chamadas podem chegar fora de ordem.
Notificação - compartilhamento de conteúdo iniciado
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",
"resourceData": [
{
"@odata.type": "#microsoft.graph.contentSharingSession",
"id": "F7D9EF30FF0A9BD3F64B274387FB8FF8E96B6CFBA8F87F8305A74DE99AF007BC"
}
]
}
]
}
Notificação - compartilhamento de conteúdo atualizado
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/421f4c00-4436-4c3a-9d9a-c4924cf98e67/contentsharingsessions",
"resourceData": [
{
"@odata.type": "#microsoft.graph.contentSharingSession",
"id": "F7D9EF30FF0A9BD3F64B274387FB8FF8E96B6CFBA8F87F8305A74DE99AF007BC"
}
]
}
]
}
Notificação - compartilhamento de conteúdo encerrado
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",
"resourceData": [
{
"@odata.type": "#microsoft.graph.contentSharingSession",
"id": "F7D9EF30FF0A9BD3F64B274387FB8FF8E96B6CFBA8F87F8305A74DE99AF007BC"
}
]
}
]
}
Observação: este exemplo precisa das permissões Calls.Initiate.All e Calls.AccessMedia.All.
Solicitação
O exemplo a seguir mostra uma solicitação que faz uma chamada ponto a ponto entre o bot e o usuário especificado. Neste exemplo, a mídia é hospedada localmente pelo aplicativo. Os valores de token de autorização, URL de retorno de chamada, ID do aplicativo, nome do aplicativo, ID do usuário, nome do usuário e ID do locatário devem ser substituídos por valores reais para fazer o exemplo funcionar.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
Source = new ParticipantInfo
{
OdataType = "#microsoft.graph.participantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
Application = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "Calling Bot",
Id = "2891555a-92ff-42e6-80fa-6e1300c6b5c6",
},
},
Region = null,
LanguageId = null,
},
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "John",
Id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8",
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new AppHostedMediaConfig
{
OdataType = "#microsoft.graph.appHostedMediaConfig",
Blob = "<Media Session Configuration>",
},
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
source := graphmodels.NewParticipantInfo()
identity := graphmodels.NewIdentitySet()
application := graphmodels.NewIdentity()
displayName := "Calling Bot"
application.SetDisplayName(&displayName)
id := "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
application.SetId(&id)
identity.SetApplication(application)
source.SetIdentity(identity)
region := null
source.SetRegion(®ion)
languageId := null
source.SetLanguageId(&languageId)
requestBody.SetSource(source)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "John"
user.SetDisplayName(&displayName)
id := "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewAppHostedMediaConfig()
blob := "<Media Session Configuration>"
mediaConfig.SetBlob(&blob)
requestBody.SetMediaConfig(mediaConfig)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
ParticipantInfo source = new ParticipantInfo();
source.setOdataType("#microsoft.graph.participantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
Identity application = new Identity();
application.setOdataType("#microsoft.graph.identity");
application.setDisplayName("Calling Bot");
application.setId("2891555a-92ff-42e6-80fa-6e1300c6b5c6");
identity.setApplication(application);
source.setIdentity(identity);
source.setRegion(null);
source.setLanguageId(null);
call.setSource(source);
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity1 = new IdentitySet();
identity1.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setDisplayName("John");
user.setId("112f7296-5fa4-42ca-bae8-6a692b15d4b8");
identity1.setUser(user);
invitationParticipantInfo.setIdentity(identity1);
targets.add(invitationParticipantInfo);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
AppHostedMediaConfig mediaConfig = new AppHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.appHostedMediaConfig");
mediaConfig.setBlob("<Media Session Configuration>");
call.setMediaConfig(mediaConfig);
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
source: {
'@odata.type': '#microsoft.graph.participantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
application: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'Calling Bot',
id: '2891555a-92ff-42e6-80fa-6e1300c6b5c6'
}
},
region: null,
languageId: null
},
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'John',
id: '112f7296-5fa4-42ca-bae8-6a692b15d4b8'
}
}
}
],
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.appHostedMediaConfig',
blob: '<Media Session Configuration>'
}
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\ParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\AppHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$source = new ParticipantInfo();
$source->setOdataType('#microsoft.graph.participantInfo');
$sourceIdentity = new IdentitySet();
$sourceIdentity->setOdataType('#microsoft.graph.identitySet');
$sourceIdentityApplication = new Identity();
$sourceIdentityApplication->setOdataType('#microsoft.graph.identity');
$sourceIdentityApplication->setDisplayName('Calling Bot');
$sourceIdentityApplication->setId('2891555a-92ff-42e6-80fa-6e1300c6b5c6');
$sourceIdentity->setApplication($sourceIdentityApplication);
$source->setIdentity($sourceIdentity);
$source->setRegion(null);
$source->setLanguageId(null);
$requestBody->setSource($source);
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo1IdentityUser = new Identity();
$targetsInvitationParticipantInfo1IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo1IdentityUser->setDisplayName('John');
$targetsInvitationParticipantInfo1IdentityUser->setId('112f7296-5fa4-42ca-bae8-6a692b15d4b8');
$targetsInvitationParticipantInfo1Identity->setUser($targetsInvitationParticipantInfo1IdentityUser);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$mediaConfig = new AppHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.appHostedMediaConfig');
$mediaConfig->setBlob('<Media Session Configuration>');
$requestBody->setMediaConfig($mediaConfig);
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
source = @{
"@odata.type" = "#microsoft.graph.participantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
application = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "Calling Bot"
id = "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
}
region = $null
languageId = $null
}
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "John"
id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
}
}
)
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.appHostedMediaConfig"
blob = "<Media Session Configuration>"
}
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.participant_info import ParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.app_hosted_media_config import AppHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
source = ParticipantInfo(
odata_type = "#microsoft.graph.participantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
application = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "Calling Bot",
id = "2891555a-92ff-42e6-80fa-6e1300c6b5c6",
),
),
region = None,
language_id = None,
),
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "John",
id = "112f7296-5fa4-42ca-bae8-6a692b15d4b8",
),
),
),
],
requested_modalities = [
Modality.Audio,
],
media_config = AppHostedMediaConfig(
odata_type = "#microsoft.graph.appHostedMediaConfig",
blob = "<Media Session Configuration>",
),
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Observação: Para chamadas ponto a ponto, as notificações esperadas são apenas para alterações de estado de chamada.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2e1a0b00-2db4-4022-9570-243709c565ab
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>",
},
"myParticipantId": "499ff390-7a72-40e8-83a0-8fac6295ae7e",
"id": "2e1a0b00-2db4-4022-9570-243709c565ab",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"subject": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"resultInfo": null,
"answeredBy": null,
"chatInfo": null,
"meetingInfo": null,
"transcription": null,
"toneInfo": null
}
Isso suporta até 5 usuários VoIP. O exemplo mostra como criar uma chamada em grupo com dois usuários VoIP.
Observação: Esta chamada de exemplo precisa da Calls.InitiateGroupCalls.All permissão. A chamada em grupo criada não dá suporte a chat ou gravação.
Solicitação
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"direction": "outgoing",
"subject": "Create a group call with service hosted media",
"callbackUri": "https://bot.contoso.com/callback",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "TestBot",
"id": "dd3885da-f9ab-486b-bfae-85de3d445555"
}
}
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user1",
"id": "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user2",
"id": "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"removeFromDefaultAudioGroup": false
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
Direction = CallDirection.Outgoing,
Subject = "Create a group call with service hosted media",
CallbackUri = "https://bot.contoso.com/callback",
Source = new ParticipantInfo
{
OdataType = "#microsoft.graph.participantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
Application = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "TestBot",
Id = "dd3885da-f9ab-486b-bfae-85de3d445555",
},
},
},
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "user1",
Id = "98da8a1a-1b87-452c-a713-65d3f10b5555",
},
},
},
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "user2",
Id = "bf5aae9a-d11d-47a8-93b1-782504c95555",
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
AdditionalData = new Dictionary<string, object>
{
{
"removeFromDefaultAudioGroup" , false
},
},
},
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
direction := graphmodels.OUTGOING_CALLDIRECTION
requestBody.SetDirection(&direction)
subject := "Create a group call with service hosted media"
requestBody.SetSubject(&subject)
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
source := graphmodels.NewParticipantInfo()
identity := graphmodels.NewIdentitySet()
application := graphmodels.NewIdentity()
displayName := "TestBot"
application.SetDisplayName(&displayName)
id := "dd3885da-f9ab-486b-bfae-85de3d445555"
application.SetId(&id)
identity.SetApplication(application)
source.SetIdentity(identity)
requestBody.SetSource(source)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "user1"
user.SetDisplayName(&displayName)
id := "98da8a1a-1b87-452c-a713-65d3f10b5555"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo.SetIdentity(identity)
invitationParticipantInfo1 := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "user2"
user.SetDisplayName(&displayName)
id := "bf5aae9a-d11d-47a8-93b1-782504c95555"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo1.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
invitationParticipantInfo1,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
additionalData := map[string]interface{}{
removeFromDefaultAudioGroup := false
mediaConfig.SetRemoveFromDefaultAudioGroup(&removeFromDefaultAudioGroup)
}
mediaConfig.SetAdditionalData(additionalData)
requestBody.SetMediaConfig(mediaConfig)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setDirection(CallDirection.Outgoing);
call.setSubject("Create a group call with service hosted media");
call.setCallbackUri("https://bot.contoso.com/callback");
ParticipantInfo source = new ParticipantInfo();
source.setOdataType("#microsoft.graph.participantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
Identity application = new Identity();
application.setOdataType("#microsoft.graph.identity");
application.setDisplayName("TestBot");
application.setId("dd3885da-f9ab-486b-bfae-85de3d445555");
identity.setApplication(application);
source.setIdentity(identity);
call.setSource(source);
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity1 = new IdentitySet();
identity1.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setDisplayName("user1");
user.setId("98da8a1a-1b87-452c-a713-65d3f10b5555");
identity1.setUser(user);
invitationParticipantInfo.setIdentity(identity1);
targets.add(invitationParticipantInfo);
InvitationParticipantInfo invitationParticipantInfo1 = new InvitationParticipantInfo();
invitationParticipantInfo1.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity2 = new IdentitySet();
identity2.setOdataType("#microsoft.graph.identitySet");
Identity user1 = new Identity();
user1.setOdataType("#microsoft.graph.identity");
user1.setDisplayName("user2");
user1.setId("bf5aae9a-d11d-47a8-93b1-782504c95555");
identity2.setUser(user1);
invitationParticipantInfo1.setIdentity(identity2);
targets.add(invitationParticipantInfo1);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("removeFromDefaultAudioGroup", false);
mediaConfig.setAdditionalData(additionalData);
call.setMediaConfig(mediaConfig);
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
direction: 'outgoing',
subject: 'Create a group call with service hosted media',
callbackUri: 'https://bot.contoso.com/callback',
source: {
'@odata.type': '#microsoft.graph.participantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
application: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'TestBot',
id: 'dd3885da-f9ab-486b-bfae-85de3d445555'
}
}
},
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'user1',
id: '98da8a1a-1b87-452c-a713-65d3f10b5555'
}
}
},
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'user2',
id: 'bf5aae9a-d11d-47a8-93b1-782504c95555'
}
}
}
],
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig',
removeFromDefaultAudioGroup: false
}
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\CallDirection;
use Microsoft\Graph\Generated\Models\ParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setDirection(new CallDirection('outgoing'));
$requestBody->setSubject('Create a group call with service hosted media');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$source = new ParticipantInfo();
$source->setOdataType('#microsoft.graph.participantInfo');
$sourceIdentity = new IdentitySet();
$sourceIdentity->setOdataType('#microsoft.graph.identitySet');
$sourceIdentityApplication = new Identity();
$sourceIdentityApplication->setOdataType('#microsoft.graph.identity');
$sourceIdentityApplication->setDisplayName('TestBot');
$sourceIdentityApplication->setId('dd3885da-f9ab-486b-bfae-85de3d445555');
$sourceIdentity->setApplication($sourceIdentityApplication);
$source->setIdentity($sourceIdentity);
$requestBody->setSource($source);
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo1IdentityUser = new Identity();
$targetsInvitationParticipantInfo1IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo1IdentityUser->setDisplayName('user1');
$targetsInvitationParticipantInfo1IdentityUser->setId('98da8a1a-1b87-452c-a713-65d3f10b5555');
$targetsInvitationParticipantInfo1Identity->setUser($targetsInvitationParticipantInfo1IdentityUser);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$targetsInvitationParticipantInfo2 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo2->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo2Identity = new IdentitySet();
$targetsInvitationParticipantInfo2Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo2IdentityUser = new Identity();
$targetsInvitationParticipantInfo2IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo2IdentityUser->setDisplayName('user2');
$targetsInvitationParticipantInfo2IdentityUser->setId('bf5aae9a-d11d-47a8-93b1-782504c95555');
$targetsInvitationParticipantInfo2Identity->setUser($targetsInvitationParticipantInfo2IdentityUser);
$targetsInvitationParticipantInfo2->setIdentity($targetsInvitationParticipantInfo2Identity);
$targetsArray []= $targetsInvitationParticipantInfo2;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$additionalData = [
'removeFromDefaultAudioGroup' => false,
];
$mediaConfig->setAdditionalData($additionalData);
$requestBody->setMediaConfig($mediaConfig);
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
direction = "outgoing"
subject = "Create a group call with service hosted media"
callbackUri = "https://bot.contoso.com/callback"
source = @{
"@odata.type" = "#microsoft.graph.participantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
application = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "TestBot"
id = "dd3885da-f9ab-486b-bfae-85de3d445555"
}
}
}
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "user1"
id = "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
}
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "user2"
id = "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
)
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
removeFromDefaultAudioGroup = $false
}
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.call_direction import CallDirection
from msgraph.generated.models.participant_info import ParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
direction = CallDirection.Outgoing,
subject = "Create a group call with service hosted media",
callback_uri = "https://bot.contoso.com/callback",
source = ParticipantInfo(
odata_type = "#microsoft.graph.participantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
application = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "TestBot",
id = "dd3885da-f9ab-486b-bfae-85de3d445555",
),
),
),
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "user1",
id = "98da8a1a-1b87-452c-a713-65d3f10b5555",
),
),
),
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "user2",
id = "bf5aae9a-d11d-47a8-93b1-782504c95555",
),
),
),
],
requested_modalities = [
Modality.Audio,
],
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
additional_data = {
"remove_from_default_audio_group" : False,
}
),
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"subject": "Create a group call with service hosted media",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d17646-3110-40b1-bae6-e9ac6c3f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "TestBot",
"id": "dd3885da-f9ab-486b-bfae-85de3d445555"
}
},
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user1",
"id": "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user2",
"id": "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
},
"routingPolicies": [],
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"myParticipantId": "c9a65b85-a223-44ae-8cdb-29395458323f",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
}
Isso suporta até 5 usuários VoIP. O exemplo mostra como criar uma chamada em grupo com dois usuários VoIP.
Observação: Esta chamada de exemplo precisa da Calls.InitiateGroupCalls.All permissão. A chamada em grupo criada não dá suporte a chat ou gravação.
Solicitação
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"direction": "outgoing",
"subject": "Create a group call with application hosted media",
"callbackUri": "https://bot.contoso.com/callback",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "TestBot",
"id": "dd3885da-f9ab-486b-bfae-85de3d445555"
}
}
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user1",
"id": "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user2",
"id": "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"removeFromDefaultAudioGroup": false
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
Direction = CallDirection.Outgoing,
Subject = "Create a group call with application hosted media",
CallbackUri = "https://bot.contoso.com/callback",
Source = new ParticipantInfo
{
OdataType = "#microsoft.graph.participantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
Application = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "TestBot",
Id = "dd3885da-f9ab-486b-bfae-85de3d445555",
},
},
},
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "user1",
Id = "98da8a1a-1b87-452c-a713-65d3f10b5555",
},
},
},
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "user2",
Id = "bf5aae9a-d11d-47a8-93b1-782504c95555",
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new AppHostedMediaConfig
{
OdataType = "#microsoft.graph.appHostedMediaConfig",
AdditionalData = new Dictionary<string, object>
{
{
"removeFromDefaultAudioGroup" , false
},
},
},
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
direction := graphmodels.OUTGOING_CALLDIRECTION
requestBody.SetDirection(&direction)
subject := "Create a group call with application hosted media"
requestBody.SetSubject(&subject)
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
source := graphmodels.NewParticipantInfo()
identity := graphmodels.NewIdentitySet()
application := graphmodels.NewIdentity()
displayName := "TestBot"
application.SetDisplayName(&displayName)
id := "dd3885da-f9ab-486b-bfae-85de3d445555"
application.SetId(&id)
identity.SetApplication(application)
source.SetIdentity(identity)
requestBody.SetSource(source)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "user1"
user.SetDisplayName(&displayName)
id := "98da8a1a-1b87-452c-a713-65d3f10b5555"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo.SetIdentity(identity)
invitationParticipantInfo1 := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
displayName := "user2"
user.SetDisplayName(&displayName)
id := "bf5aae9a-d11d-47a8-93b1-782504c95555"
user.SetId(&id)
identity.SetUser(user)
invitationParticipantInfo1.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
invitationParticipantInfo1,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewAppHostedMediaConfig()
additionalData := map[string]interface{}{
removeFromDefaultAudioGroup := false
mediaConfig.SetRemoveFromDefaultAudioGroup(&removeFromDefaultAudioGroup)
}
mediaConfig.SetAdditionalData(additionalData)
requestBody.SetMediaConfig(mediaConfig)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setDirection(CallDirection.Outgoing);
call.setSubject("Create a group call with application hosted media");
call.setCallbackUri("https://bot.contoso.com/callback");
ParticipantInfo source = new ParticipantInfo();
source.setOdataType("#microsoft.graph.participantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
Identity application = new Identity();
application.setOdataType("#microsoft.graph.identity");
application.setDisplayName("TestBot");
application.setId("dd3885da-f9ab-486b-bfae-85de3d445555");
identity.setApplication(application);
source.setIdentity(identity);
call.setSource(source);
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity1 = new IdentitySet();
identity1.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setDisplayName("user1");
user.setId("98da8a1a-1b87-452c-a713-65d3f10b5555");
identity1.setUser(user);
invitationParticipantInfo.setIdentity(identity1);
targets.add(invitationParticipantInfo);
InvitationParticipantInfo invitationParticipantInfo1 = new InvitationParticipantInfo();
invitationParticipantInfo1.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity2 = new IdentitySet();
identity2.setOdataType("#microsoft.graph.identitySet");
Identity user1 = new Identity();
user1.setOdataType("#microsoft.graph.identity");
user1.setDisplayName("user2");
user1.setId("bf5aae9a-d11d-47a8-93b1-782504c95555");
identity2.setUser(user1);
invitationParticipantInfo1.setIdentity(identity2);
targets.add(invitationParticipantInfo1);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
AppHostedMediaConfig mediaConfig = new AppHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.appHostedMediaConfig");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("removeFromDefaultAudioGroup", false);
mediaConfig.setAdditionalData(additionalData);
call.setMediaConfig(mediaConfig);
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
direction: 'outgoing',
subject: 'Create a group call with application hosted media',
callbackUri: 'https://bot.contoso.com/callback',
source: {
'@odata.type': '#microsoft.graph.participantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
application: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'TestBot',
id: 'dd3885da-f9ab-486b-bfae-85de3d445555'
}
}
},
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'user1',
id: '98da8a1a-1b87-452c-a713-65d3f10b5555'
}
}
},
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'user2',
id: 'bf5aae9a-d11d-47a8-93b1-782504c95555'
}
}
}
],
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.appHostedMediaConfig',
removeFromDefaultAudioGroup: false
}
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\CallDirection;
use Microsoft\Graph\Generated\Models\ParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\AppHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setDirection(new CallDirection('outgoing'));
$requestBody->setSubject('Create a group call with application hosted media');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$source = new ParticipantInfo();
$source->setOdataType('#microsoft.graph.participantInfo');
$sourceIdentity = new IdentitySet();
$sourceIdentity->setOdataType('#microsoft.graph.identitySet');
$sourceIdentityApplication = new Identity();
$sourceIdentityApplication->setOdataType('#microsoft.graph.identity');
$sourceIdentityApplication->setDisplayName('TestBot');
$sourceIdentityApplication->setId('dd3885da-f9ab-486b-bfae-85de3d445555');
$sourceIdentity->setApplication($sourceIdentityApplication);
$source->setIdentity($sourceIdentity);
$requestBody->setSource($source);
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo1IdentityUser = new Identity();
$targetsInvitationParticipantInfo1IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo1IdentityUser->setDisplayName('user1');
$targetsInvitationParticipantInfo1IdentityUser->setId('98da8a1a-1b87-452c-a713-65d3f10b5555');
$targetsInvitationParticipantInfo1Identity->setUser($targetsInvitationParticipantInfo1IdentityUser);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$targetsInvitationParticipantInfo2 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo2->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo2Identity = new IdentitySet();
$targetsInvitationParticipantInfo2Identity->setOdataType('#microsoft.graph.identitySet');
$targetsInvitationParticipantInfo2IdentityUser = new Identity();
$targetsInvitationParticipantInfo2IdentityUser->setOdataType('#microsoft.graph.identity');
$targetsInvitationParticipantInfo2IdentityUser->setDisplayName('user2');
$targetsInvitationParticipantInfo2IdentityUser->setId('bf5aae9a-d11d-47a8-93b1-782504c95555');
$targetsInvitationParticipantInfo2Identity->setUser($targetsInvitationParticipantInfo2IdentityUser);
$targetsInvitationParticipantInfo2->setIdentity($targetsInvitationParticipantInfo2Identity);
$targetsArray []= $targetsInvitationParticipantInfo2;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$mediaConfig = new AppHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.appHostedMediaConfig');
$additionalData = [
'removeFromDefaultAudioGroup' => false,
];
$mediaConfig->setAdditionalData($additionalData);
$requestBody->setMediaConfig($mediaConfig);
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
direction = "outgoing"
subject = "Create a group call with application hosted media"
callbackUri = "https://bot.contoso.com/callback"
source = @{
"@odata.type" = "#microsoft.graph.participantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
application = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "TestBot"
id = "dd3885da-f9ab-486b-bfae-85de3d445555"
}
}
}
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "user1"
id = "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
}
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "user2"
id = "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
)
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.appHostedMediaConfig"
removeFromDefaultAudioGroup = $false
}
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.call_direction import CallDirection
from msgraph.generated.models.participant_info import ParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.app_hosted_media_config import AppHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
direction = CallDirection.Outgoing,
subject = "Create a group call with application hosted media",
callback_uri = "https://bot.contoso.com/callback",
source = ParticipantInfo(
odata_type = "#microsoft.graph.participantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
application = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "TestBot",
id = "dd3885da-f9ab-486b-bfae-85de3d445555",
),
),
),
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "user1",
id = "98da8a1a-1b87-452c-a713-65d3f10b5555",
),
),
),
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
display_name = "user2",
id = "bf5aae9a-d11d-47a8-93b1-782504c95555",
),
),
),
],
requested_modalities = [
Modality.Audio,
],
media_config = AppHostedMediaConfig(
odata_type = "#microsoft.graph.appHostedMediaConfig",
additional_data = {
"remove_from_default_audio_group" : False,
}
),
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"subject": "Create a group call with app hosted media",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "TestBot",
"id": "dd3885da-f9ab-486b-bfae-85de3d445555"
}
},
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user1",
"id": "98da8a1a-1b87-452c-a713-65d3f10b5555"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "user2",
"id": "bf5aae9a-d11d-47a8-93b1-782504c95555"
}
}
}
],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>",
"removeFromDefaultAudioGroup": false
},
"routingPolicies": [],
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"myParticipantId": "c9a65b85-a223-44ae-8cdb-29395458323f",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
}
Para participar da reunião agendada, você precisa obter a ID do thread, a ID da mensagem, a ID do organizador e a ID do locatário no qual a reunião está agendada.
Você pode obter essas informações usando a API Get onlineMeeting .
Os valores de token de autorização, URL de retorno de chamada, ID do aplicativo, nome do aplicativo, ID do usuário, nome do usuário e ID do locatário devem ser substituídos juntamente com os detalhes obtidos na API Get onlineMeeting por valores reais para fazer o exemplo funcionar.
Observação: Este exemplo precisa da Calls.JoinGroupCalls.All permissão.
Solicitação
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0"
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"displayName": "Bob",
"tenantId":"86dc81db-c112-4228-9222-63f3esaa1edb"
}
},
"allowConversationWithoutHost": true
},
"tenantId":"86dc81db-c112-4228-9222-63f3esaa1edb"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
PreFetchMedia = new List<MediaInfo>
{
new MediaInfo
{
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "f8971b04-b53e-418c-9222-c82ce681a582",
},
new MediaInfo
{
Uri = "https://cdn.contoso.com/cool.wav",
ResourceId = "86dc814b-c172-4428-9112-60f8ecae1edb",
},
},
},
ChatInfo = new ChatInfo
{
OdataType = "#microsoft.graph.chatInfo",
ThreadId = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
MessageId = "0",
},
MeetingInfo = new OrganizerMeetingInfo
{
OdataType = "#microsoft.graph.organizerMeetingInfo",
Organizer = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
Id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
DisplayName = "Bob",
AdditionalData = new Dictionary<string, object>
{
{
"tenantId" , "86dc81db-c112-4228-9222-63f3esaa1edb"
},
},
},
},
AdditionalData = new Dictionary<string, object>
{
{
"allowConversationWithoutHost" , true
},
},
},
TenantId = "86dc81db-c112-4228-9222-63f3esaa1edb",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
mediaInfo := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/beep.wav"
mediaInfo.SetUri(&uri)
resourceId := "f8971b04-b53e-418c-9222-c82ce681a582"
mediaInfo.SetResourceId(&resourceId)
mediaInfo1 := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/cool.wav"
mediaInfo1.SetUri(&uri)
resourceId := "86dc814b-c172-4428-9112-60f8ecae1edb"
mediaInfo1.SetResourceId(&resourceId)
preFetchMedia := []graphmodels.MediaInfoable {
mediaInfo,
mediaInfo1,
}
mediaConfig.SetPreFetchMedia(preFetchMedia)
requestBody.SetMediaConfig(mediaConfig)
chatInfo := graphmodels.NewChatInfo()
threadId := "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2"
chatInfo.SetThreadId(&threadId)
messageId := "0"
chatInfo.SetMessageId(&messageId)
requestBody.SetChatInfo(chatInfo)
meetingInfo := graphmodels.NewOrganizerMeetingInfo()
organizer := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
id := "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96"
user.SetId(&id)
displayName := "Bob"
user.SetDisplayName(&displayName)
additionalData := map[string]interface{}{
"tenantId" : "86dc81db-c112-4228-9222-63f3esaa1edb",
}
user.SetAdditionalData(additionalData)
organizer.SetUser(user)
meetingInfo.SetOrganizer(organizer)
additionalData := map[string]interface{}{
allowConversationWithoutHost := true
meetingInfo.SetAllowConversationWithoutHost(&allowConversationWithoutHost)
}
meetingInfo.SetAdditionalData(additionalData)
requestBody.SetMeetingInfo(meetingInfo)
tenantId := "86dc81db-c112-4228-9222-63f3esaa1edb"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
LinkedList<MediaInfo> preFetchMedia = new LinkedList<MediaInfo>();
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.setUri("https://cdn.contoso.com/beep.wav");
mediaInfo.setResourceId("f8971b04-b53e-418c-9222-c82ce681a582");
preFetchMedia.add(mediaInfo);
MediaInfo mediaInfo1 = new MediaInfo();
mediaInfo1.setUri("https://cdn.contoso.com/cool.wav");
mediaInfo1.setResourceId("86dc814b-c172-4428-9112-60f8ecae1edb");
preFetchMedia.add(mediaInfo1);
mediaConfig.setPreFetchMedia(preFetchMedia);
call.setMediaConfig(mediaConfig);
ChatInfo chatInfo = new ChatInfo();
chatInfo.setOdataType("#microsoft.graph.chatInfo");
chatInfo.setThreadId("19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2");
chatInfo.setMessageId("0");
call.setChatInfo(chatInfo);
OrganizerMeetingInfo meetingInfo = new OrganizerMeetingInfo();
meetingInfo.setOdataType("#microsoft.graph.organizerMeetingInfo");
IdentitySet organizer = new IdentitySet();
organizer.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setId("5810cede-f3cc-42eb-b2c1-e9bd5d53ec96");
user.setDisplayName("Bob");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("tenantId", "86dc81db-c112-4228-9222-63f3esaa1edb");
user.setAdditionalData(additionalData);
organizer.setUser(user);
meetingInfo.setOrganizer(organizer);
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("allowConversationWithoutHost", true);
meetingInfo.setAdditionalData(additionalData1);
call.setMeetingInfo(meetingInfo);
call.setTenantId("86dc81db-c112-4228-9222-63f3esaa1edb");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig',
preFetchMedia: [
{
uri: 'https://cdn.contoso.com/beep.wav',
resourceId: 'f8971b04-b53e-418c-9222-c82ce681a582'
},
{
uri: 'https://cdn.contoso.com/cool.wav',
resourceId: '86dc814b-c172-4428-9112-60f8ecae1edb'
}
],
},
chatInfo: {
'@odata.type': '#microsoft.graph.chatInfo',
threadId: '19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2',
messageId: '0'
},
meetingInfo: {
'@odata.type': '#microsoft.graph.organizerMeetingInfo',
organizer: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
id: '5810cede-f3cc-42eb-b2c1-e9bd5d53ec96',
displayName: 'Bob',
tenantId: '86dc81db-c112-4228-9222-63f3esaa1edb'
}
},
allowConversationWithoutHost: true
},
tenantId: '86dc81db-c112-4228-9222-63f3esaa1edb'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
use Microsoft\Graph\Generated\Models\MediaInfo;
use Microsoft\Graph\Generated\Models\ChatInfo;
use Microsoft\Graph\Generated\Models\OrganizerMeetingInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$requestBody->setRequestedModalities([new Modality('audio'), ]);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$preFetchMediaMediaInfo1 = new MediaInfo();
$preFetchMediaMediaInfo1->setUri('https://cdn.contoso.com/beep.wav');
$preFetchMediaMediaInfo1->setResourceId('f8971b04-b53e-418c-9222-c82ce681a582');
$preFetchMediaArray []= $preFetchMediaMediaInfo1;
$preFetchMediaMediaInfo2 = new MediaInfo();
$preFetchMediaMediaInfo2->setUri('https://cdn.contoso.com/cool.wav');
$preFetchMediaMediaInfo2->setResourceId('86dc814b-c172-4428-9112-60f8ecae1edb');
$preFetchMediaArray []= $preFetchMediaMediaInfo2;
$mediaConfig->setPreFetchMedia($preFetchMediaArray);
$requestBody->setMediaConfig($mediaConfig);
$chatInfo = new ChatInfo();
$chatInfo->setOdataType('#microsoft.graph.chatInfo');
$chatInfo->setThreadId('19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2');
$chatInfo->setMessageId('0');
$requestBody->setChatInfo($chatInfo);
$meetingInfo = new OrganizerMeetingInfo();
$meetingInfo->setOdataType('#microsoft.graph.organizerMeetingInfo');
$meetingInfoOrganizer = new IdentitySet();
$meetingInfoOrganizer->setOdataType('#microsoft.graph.identitySet');
$meetingInfoOrganizerUser = new Identity();
$meetingInfoOrganizerUser->setOdataType('#microsoft.graph.identity');
$meetingInfoOrganizerUser->setId('5810cede-f3cc-42eb-b2c1-e9bd5d53ec96');
$meetingInfoOrganizerUser->setDisplayName('Bob');
$additionalData = [
'tenantId' => '86dc81db-c112-4228-9222-63f3esaa1edb',
];
$meetingInfoOrganizerUser->setAdditionalData($additionalData);
$meetingInfoOrganizer->setUser($meetingInfoOrganizerUser);
$meetingInfo->setOrganizer($meetingInfoOrganizer);
$additionalData = [
'allowConversationWithoutHost' => true,
];
$meetingInfo->setAdditionalData($additionalData);
$requestBody->setMeetingInfo($meetingInfo);
$requestBody->setTenantId('86dc81db-c112-4228-9222-63f3esaa1edb');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
preFetchMedia = @(
@{
uri = "https://cdn.contoso.com/beep.wav"
resourceId = "f8971b04-b53e-418c-9222-c82ce681a582"
}
@{
uri = "https://cdn.contoso.com/cool.wav"
resourceId = "86dc814b-c172-4428-9112-60f8ecae1edb"
}
)
}
chatInfo = @{
"@odata.type" = "#microsoft.graph.chatInfo"
threadId = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2"
messageId = "0"
}
meetingInfo = @{
"@odata.type" = "#microsoft.graph.organizerMeetingInfo"
organizer = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96"
displayName = "Bob"
tenantId = "86dc81db-c112-4228-9222-63f3esaa1edb"
}
}
allowConversationWithoutHost = $true
}
tenantId = "86dc81db-c112-4228-9222-63f3esaa1edb"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
from msgraph.generated.models.media_info import MediaInfo
from msgraph.generated.models.chat_info import ChatInfo
from msgraph.generated.models.organizer_meeting_info import OrganizerMeetingInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
requested_modalities = [
Modality.Audio,
],
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
pre_fetch_media = [
MediaInfo(
uri = "https://cdn.contoso.com/beep.wav",
resource_id = "f8971b04-b53e-418c-9222-c82ce681a582",
),
MediaInfo(
uri = "https://cdn.contoso.com/cool.wav",
resource_id = "86dc814b-c172-4428-9112-60f8ecae1edb",
),
],
),
chat_info = ChatInfo(
odata_type = "#microsoft.graph.chatInfo",
thread_id = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
message_id = "0",
),
meeting_info = OrganizerMeetingInfo(
odata_type = "#microsoft.graph.organizerMeetingInfo",
organizer = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
display_name = "Bob",
additional_data = {
"tenant_id" : "86dc81db-c112-4228-9222-63f3esaa1edb",
}
),
),
additional_data = {
"allow_conversation_without_host" : True,
}
),
tenant_id = "86dc81db-c112-4228-9222-63f3esaa1edb",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0",
"replyChainMessageId": null
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"displayName": "Bob"
}
},
"allowConversationWithoutHost": true
},
"transcription": null,
"myParticipantId": "05491616-385f-44a8-9974-18cc5f9933c1",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"ringingTimeoutInSeconds": null,
"mediaState": null,
"subject": null,
"resultInfo": null,
"answeredBy": null,
"toneInfo": null
}
Notificação – estabelecendo
POST https://bot.contoso.com/callback
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92",
"callbackUri": "https://bot.contoso.com/callback",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0"
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"displayName": "Bob"
}
},
"allowConversationWithoutHost": true
},
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92"
}
}
]
}
Observação: As notificações de estabelecimento/estabelecidas de chamadas podem chegar fora de ordem.
Notificação - estabelecida
POST https://bot.contoso.com/callback
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92",
"callbackUri": "https://bot.contoso.com/callback",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "established",
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0"
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"displayName": "Bob"
}
},
"allowConversationWithoutHost": true
},
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92"
}
}
]
}
Observação: As notificações de estabelecimento/estabelecidas de chamadas podem chegar fora de ordem.
Notificação - lista de participantes
POST https://bot.contoso.com/callback
Content-Type: application/json
Escala delta desabilitada (padrão)
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resourceUrl": "/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92/participants",
"callbackUri": "https://bot.contoso.com/callback",
"resourceData": [
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
},
"languageId": "en-US"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "1",
"direction": "sendReceive",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "video",
"sourceId": "2",
"direction": "receiveOnly",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "videoBasedScreenSharing",
"sourceId": "8",
"direction": "receiveOnly",
"serverMuted": false
}
],
"isMuted": true,
"isInLobby": false,
"id": "0d7664b6-6432-43ed-8d27-d9e7adec188c"
},
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
}
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "10",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"id": "05491616-385f-44a8-9974-18cc5f9933c1"
}
]
}
]
}
Escala delta habilitada
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resource": "/app/calls/421f7700-f4ad-4ea9-a3fc-c1d2195675ad/participants",
"resourceUrl": "/communications/calls/421f7700-f4ad-4ea9-a3fc-c1d2195675ad/participants",
"resourceData": [
{
"@odata.type": "#microsoft.graph.deltaParticipants",
"participants": [
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "John",
"id": "112f7296-5fa4-42ca-bae8-6a692b15d4b8"
}
},
"languageId": "en-US"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "1",
"direction": "sendReceive",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "video",
"sourceId": "2",
"direction": "receiveOnly",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "videoBasedScreenSharing",
"sourceId": "8",
"direction": "receiveOnly",
"serverMuted": false
}
],
"isMuted": true,
"isInLobby": false,
"id": "0d7664b6-6432-43ed-8d27-d9e7adec188c",
"rosterSequenceNumber": 1
},
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
}
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "10",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"id": "05491616-385f-44a8-9974-18cc5f9933c1",
"rosterSequenceNumber": 1,
"removedState": {
"reason": "Removed from roster"
}
}
],
"sequenceNumber": 1
}
]
}
]
}
Observação: Para cenários de ingresso em reuniões, além das notificações de estado da chamada, recebemos notificações de escala.
Atualize a configuração de mídia com o appHostedMediaConfig , conforme mostrado no exemplo a seguir.
Solicitação
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig"
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0"
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"displayName": "Bob"
}
},
"allowConversationWithoutHost": true
},
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
Direction = CallDirection.Outgoing,
CallbackUri = "https://bot.contoso.com/callback",
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new AppHostedMediaConfig
{
OdataType = "#microsoft.graph.appHostedMediaConfig",
},
ChatInfo = new ChatInfo
{
OdataType = "#microsoft.graph.chatInfo",
ThreadId = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
MessageId = "0",
},
MeetingInfo = new OrganizerMeetingInfo
{
OdataType = "#microsoft.graph.organizerMeetingInfo",
Organizer = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
User = new Identity
{
OdataType = "#microsoft.graph.identity",
Id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
DisplayName = "Bob",
AdditionalData = new Dictionary<string, object>
{
{
"tenantId" , "aa67bd4c-8475-432d-bd41-39f255720e0a"
},
},
},
},
AdditionalData = new Dictionary<string, object>
{
{
"allowConversationWithoutHost" , true
},
},
},
TenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
direction := graphmodels.OUTGOING_CALLDIRECTION
requestBody.SetDirection(&direction)
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewAppHostedMediaConfig()
requestBody.SetMediaConfig(mediaConfig)
chatInfo := graphmodels.NewChatInfo()
threadId := "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2"
chatInfo.SetThreadId(&threadId)
messageId := "0"
chatInfo.SetMessageId(&messageId)
requestBody.SetChatInfo(chatInfo)
meetingInfo := graphmodels.NewOrganizerMeetingInfo()
organizer := graphmodels.NewIdentitySet()
user := graphmodels.NewIdentity()
id := "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96"
user.SetId(&id)
displayName := "Bob"
user.SetDisplayName(&displayName)
additionalData := map[string]interface{}{
"tenantId" : "aa67bd4c-8475-432d-bd41-39f255720e0a",
}
user.SetAdditionalData(additionalData)
organizer.SetUser(user)
meetingInfo.SetOrganizer(organizer)
additionalData := map[string]interface{}{
allowConversationWithoutHost := true
meetingInfo.SetAllowConversationWithoutHost(&allowConversationWithoutHost)
}
meetingInfo.SetAdditionalData(additionalData)
requestBody.SetMeetingInfo(meetingInfo)
tenantId := "aa67bd4c-8475-432d-bd41-39f255720e0a"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setDirection(CallDirection.Outgoing);
call.setCallbackUri("https://bot.contoso.com/callback");
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
AppHostedMediaConfig mediaConfig = new AppHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.appHostedMediaConfig");
call.setMediaConfig(mediaConfig);
ChatInfo chatInfo = new ChatInfo();
chatInfo.setOdataType("#microsoft.graph.chatInfo");
chatInfo.setThreadId("19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2");
chatInfo.setMessageId("0");
call.setChatInfo(chatInfo);
OrganizerMeetingInfo meetingInfo = new OrganizerMeetingInfo();
meetingInfo.setOdataType("#microsoft.graph.organizerMeetingInfo");
IdentitySet organizer = new IdentitySet();
organizer.setOdataType("#microsoft.graph.identitySet");
Identity user = new Identity();
user.setOdataType("#microsoft.graph.identity");
user.setId("5810cede-f3cc-42eb-b2c1-e9bd5d53ec96");
user.setDisplayName("Bob");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("tenantId", "aa67bd4c-8475-432d-bd41-39f255720e0a");
user.setAdditionalData(additionalData);
organizer.setUser(user);
meetingInfo.setOrganizer(organizer);
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("allowConversationWithoutHost", true);
meetingInfo.setAdditionalData(additionalData1);
call.setMeetingInfo(meetingInfo);
call.setTenantId("aa67bd4c-8475-432d-bd41-39f255720e0a");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
direction: 'outgoing',
callbackUri: 'https://bot.contoso.com/callback',
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.appHostedMediaConfig'
},
chatInfo: {
'@odata.type': '#microsoft.graph.chatInfo',
threadId: '19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2',
messageId: '0'
},
meetingInfo: {
'@odata.type': '#microsoft.graph.organizerMeetingInfo',
organizer: {
'@odata.type': '#microsoft.graph.identitySet',
user: {
'@odata.type': '#microsoft.graph.identity',
id: '5810cede-f3cc-42eb-b2c1-e9bd5d53ec96',
tenantId: 'aa67bd4c-8475-432d-bd41-39f255720e0a',
displayName: 'Bob'
}
},
allowConversationWithoutHost: true
},
tenantId: 'aa67bd4c-8475-432d-bd41-39f255720e0a'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\CallDirection;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\AppHostedMediaConfig;
use Microsoft\Graph\Generated\Models\ChatInfo;
use Microsoft\Graph\Generated\Models\OrganizerMeetingInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setDirection(new CallDirection('outgoing'));
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$requestBody->setRequestedModalities([new Modality('audio'), ]);
$mediaConfig = new AppHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.appHostedMediaConfig');
$requestBody->setMediaConfig($mediaConfig);
$chatInfo = new ChatInfo();
$chatInfo->setOdataType('#microsoft.graph.chatInfo');
$chatInfo->setThreadId('19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2');
$chatInfo->setMessageId('0');
$requestBody->setChatInfo($chatInfo);
$meetingInfo = new OrganizerMeetingInfo();
$meetingInfo->setOdataType('#microsoft.graph.organizerMeetingInfo');
$meetingInfoOrganizer = new IdentitySet();
$meetingInfoOrganizer->setOdataType('#microsoft.graph.identitySet');
$meetingInfoOrganizerUser = new Identity();
$meetingInfoOrganizerUser->setOdataType('#microsoft.graph.identity');
$meetingInfoOrganizerUser->setId('5810cede-f3cc-42eb-b2c1-e9bd5d53ec96');
$meetingInfoOrganizerUser->setDisplayName('Bob');
$additionalData = [
'tenantId' => 'aa67bd4c-8475-432d-bd41-39f255720e0a',
];
$meetingInfoOrganizerUser->setAdditionalData($additionalData);
$meetingInfoOrganizer->setUser($meetingInfoOrganizerUser);
$meetingInfo->setOrganizer($meetingInfoOrganizer);
$additionalData = [
'allowConversationWithoutHost' => true,
];
$meetingInfo->setAdditionalData($additionalData);
$requestBody->setMeetingInfo($meetingInfo);
$requestBody->setTenantId('aa67bd4c-8475-432d-bd41-39f255720e0a');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
direction = "outgoing"
callbackUri = "https://bot.contoso.com/callback"
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.appHostedMediaConfig"
}
chatInfo = @{
"@odata.type" = "#microsoft.graph.chatInfo"
threadId = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2"
messageId = "0"
}
meetingInfo = @{
"@odata.type" = "#microsoft.graph.organizerMeetingInfo"
organizer = @{
"@odata.type" = "#microsoft.graph.identitySet"
user = @{
"@odata.type" = "#microsoft.graph.identity"
id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96"
tenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a"
displayName = "Bob"
}
}
allowConversationWithoutHost = $true
}
tenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.call_direction import CallDirection
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.app_hosted_media_config import AppHostedMediaConfig
from msgraph.generated.models.chat_info import ChatInfo
from msgraph.generated.models.organizer_meeting_info import OrganizerMeetingInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
direction = CallDirection.Outgoing,
callback_uri = "https://bot.contoso.com/callback",
requested_modalities = [
Modality.Audio,
],
media_config = AppHostedMediaConfig(
odata_type = "#microsoft.graph.appHostedMediaConfig",
),
chat_info = ChatInfo(
odata_type = "#microsoft.graph.chatInfo",
thread_id = "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
message_id = "0",
),
meeting_info = OrganizerMeetingInfo(
odata_type = "#microsoft.graph.organizerMeetingInfo",
organizer = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
user = Identity(
odata_type = "#microsoft.graph.identity",
id = "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
display_name = "Bob",
additional_data = {
"tenant_id" : "aa67bd4c-8475-432d-bd41-39f255720e0a",
}
),
),
additional_data = {
"allow_conversation_without_host" : True,
}
),
tenant_id = "aa67bd4c-8475-432d-bd41-39f255720e0a",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>",
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNWY2NmNkYTFm@thread.v2",
"messageId": "0",
"replyChainMessageId": null
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.organizerMeetingInfo",
"organizer": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "5810cede-f3cc-42eb-b2c1-e9bd5d53ec96",
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"displayName": "Bob"
}
},
"allowConversationWithoutHost": true
},
"transcription": null,
"routingPolicies": [],
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"myParticipantId": "05491616-385f-44a8-9974-18cc5f9933c1",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"terminationReason": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"subject": null,
"resultInfo": null,
"answeredBy": null,
"meetingCapability": null,
"toneInfo": null
}
Exemplo 7: Ingressar em uma reunião agendada com joinMeetingId e senha
O exemplo a seguir mostra um exemplo que requer um joinMeetingId e uma senha para ingressar em uma reunião existente. Você pode recuperar essas propriedades na API Get onlineMeeting .
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
]
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.joinMeetingIdMeetingInfo",
"joinMeetingId": "1234567",
"passcode": "psw123"
},
"tenantId": "86dc81db-c112-4228-9222-63f3esaa1edb"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
PreFetchMedia = new List<MediaInfo>
{
new MediaInfo
{
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "f8971b04-b53e-418c-9222-c82ce681a582",
},
new MediaInfo
{
Uri = "https://cdn.contoso.com/cool.wav",
ResourceId = "86dc814b-c172-4428-9112-60f8ecae1edb",
},
},
},
MeetingInfo = new JoinMeetingIdMeetingInfo
{
OdataType = "#microsoft.graph.joinMeetingIdMeetingInfo",
JoinMeetingId = "1234567",
Passcode = "psw123",
},
TenantId = "86dc81db-c112-4228-9222-63f3esaa1edb",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
mediaInfo := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/beep.wav"
mediaInfo.SetUri(&uri)
resourceId := "f8971b04-b53e-418c-9222-c82ce681a582"
mediaInfo.SetResourceId(&resourceId)
mediaInfo1 := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/cool.wav"
mediaInfo1.SetUri(&uri)
resourceId := "86dc814b-c172-4428-9112-60f8ecae1edb"
mediaInfo1.SetResourceId(&resourceId)
preFetchMedia := []graphmodels.MediaInfoable {
mediaInfo,
mediaInfo1,
}
mediaConfig.SetPreFetchMedia(preFetchMedia)
requestBody.SetMediaConfig(mediaConfig)
meetingInfo := graphmodels.NewJoinMeetingIdMeetingInfo()
joinMeetingId := "1234567"
meetingInfo.SetJoinMeetingId(&joinMeetingId)
passcode := "psw123"
meetingInfo.SetPasscode(&passcode)
requestBody.SetMeetingInfo(meetingInfo)
tenantId := "86dc81db-c112-4228-9222-63f3esaa1edb"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
LinkedList<MediaInfo> preFetchMedia = new LinkedList<MediaInfo>();
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.setUri("https://cdn.contoso.com/beep.wav");
mediaInfo.setResourceId("f8971b04-b53e-418c-9222-c82ce681a582");
preFetchMedia.add(mediaInfo);
MediaInfo mediaInfo1 = new MediaInfo();
mediaInfo1.setUri("https://cdn.contoso.com/cool.wav");
mediaInfo1.setResourceId("86dc814b-c172-4428-9112-60f8ecae1edb");
preFetchMedia.add(mediaInfo1);
mediaConfig.setPreFetchMedia(preFetchMedia);
call.setMediaConfig(mediaConfig);
JoinMeetingIdMeetingInfo meetingInfo = new JoinMeetingIdMeetingInfo();
meetingInfo.setOdataType("#microsoft.graph.joinMeetingIdMeetingInfo");
meetingInfo.setJoinMeetingId("1234567");
meetingInfo.setPasscode("psw123");
call.setMeetingInfo(meetingInfo);
call.setTenantId("86dc81db-c112-4228-9222-63f3esaa1edb");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig',
preFetchMedia: [
{
uri: 'https://cdn.contoso.com/beep.wav',
resourceId: 'f8971b04-b53e-418c-9222-c82ce681a582'
},
{
uri: 'https://cdn.contoso.com/cool.wav',
resourceId: '86dc814b-c172-4428-9112-60f8ecae1edb'
}
]
},
meetingInfo: {
'@odata.type': '#microsoft.graph.joinMeetingIdMeetingInfo',
joinMeetingId: '1234567',
passcode: 'psw123'
},
tenantId: '86dc81db-c112-4228-9222-63f3esaa1edb'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
use Microsoft\Graph\Generated\Models\MediaInfo;
use Microsoft\Graph\Generated\Models\JoinMeetingIdMeetingInfo;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$requestBody->setRequestedModalities([new Modality('audio'), ]);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$preFetchMediaMediaInfo1 = new MediaInfo();
$preFetchMediaMediaInfo1->setUri('https://cdn.contoso.com/beep.wav');
$preFetchMediaMediaInfo1->setResourceId('f8971b04-b53e-418c-9222-c82ce681a582');
$preFetchMediaArray []= $preFetchMediaMediaInfo1;
$preFetchMediaMediaInfo2 = new MediaInfo();
$preFetchMediaMediaInfo2->setUri('https://cdn.contoso.com/cool.wav');
$preFetchMediaMediaInfo2->setResourceId('86dc814b-c172-4428-9112-60f8ecae1edb');
$preFetchMediaArray []= $preFetchMediaMediaInfo2;
$mediaConfig->setPreFetchMedia($preFetchMediaArray);
$requestBody->setMediaConfig($mediaConfig);
$meetingInfo = new JoinMeetingIdMeetingInfo();
$meetingInfo->setOdataType('#microsoft.graph.joinMeetingIdMeetingInfo');
$meetingInfo->setJoinMeetingId('1234567');
$meetingInfo->setPasscode('psw123');
$requestBody->setMeetingInfo($meetingInfo);
$requestBody->setTenantId('86dc81db-c112-4228-9222-63f3esaa1edb');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
preFetchMedia = @(
@{
uri = "https://cdn.contoso.com/beep.wav"
resourceId = "f8971b04-b53e-418c-9222-c82ce681a582"
}
@{
uri = "https://cdn.contoso.com/cool.wav"
resourceId = "86dc814b-c172-4428-9112-60f8ecae1edb"
}
)
}
meetingInfo = @{
"@odata.type" = "#microsoft.graph.joinMeetingIdMeetingInfo"
joinMeetingId = "1234567"
passcode = "psw123"
}
tenantId = "86dc81db-c112-4228-9222-63f3esaa1edb"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
from msgraph.generated.models.media_info import MediaInfo
from msgraph.generated.models.join_meeting_id_meeting_info import JoinMeetingIdMeetingInfo
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
requested_modalities = [
Modality.Audio,
],
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
pre_fetch_media = [
MediaInfo(
uri = "https://cdn.contoso.com/beep.wav",
resource_id = "f8971b04-b53e-418c-9222-c82ce681a582",
),
MediaInfo(
uri = "https://cdn.contoso.com/cool.wav",
resource_id = "86dc814b-c172-4428-9112-60f8ecae1edb",
),
],
),
meeting_info = JoinMeetingIdMeetingInfo(
odata_type = "#microsoft.graph.joinMeetingIdMeetingInfo",
join_meeting_id = "1234567",
passcode = "psw123",
),
tenant_id = "86dc81db-c112-4228-9222-63f3esaa1edb",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNNkYTFm@thread.v2",
"messageId": "0",
"replyChainMessageId": null
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.joinMeetingIdMeetingInfo",
"joinMeetingId": "1234567",
"passcode": "psw123"
},
"transcription": null,
"routingPolicies": [],
"tenantId": "86dc81db-c112-4228-9222-63f3esaa1edb",
"myParticipantId": "05491616-385f-44a8-9974-18cc5f9933c1",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"terminationReason": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"subject": null,
"resultInfo": null,
"answeredBy": null,
"meetingCapability": null,
"toneInfo": null
}
Exemplo 8: Ingressar em uma reunião agendada com joinMeetingId
Veja a seguir um exemplo que requer um joinMeetingId , mas não requer uma senha para ingressar em uma reunião existente. Você pode recuperar a propriedade joinMeetingId da API Get onlineMeeting .
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
]
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.joinMeetingIdMeetingInfo",
"joinMeetingId": "1234567",
"passcode": null
},
"tenantId": "86dc81db-c112-4228-9222-63f3esaa1edb"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
PreFetchMedia = new List<MediaInfo>
{
new MediaInfo
{
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "f8971b04-b53e-418c-9222-c82ce681a582",
},
new MediaInfo
{
Uri = "https://cdn.contoso.com/cool.wav",
ResourceId = "86dc814b-c172-4428-9112-60f8ecae1edb",
},
},
},
MeetingInfo = new JoinMeetingIdMeetingInfo
{
OdataType = "#microsoft.graph.joinMeetingIdMeetingInfo",
JoinMeetingId = "1234567",
Passcode = null,
},
TenantId = "86dc81db-c112-4228-9222-63f3esaa1edb",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
mediaInfo := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/beep.wav"
mediaInfo.SetUri(&uri)
resourceId := "f8971b04-b53e-418c-9222-c82ce681a582"
mediaInfo.SetResourceId(&resourceId)
mediaInfo1 := graphmodels.NewMediaInfo()
uri := "https://cdn.contoso.com/cool.wav"
mediaInfo1.SetUri(&uri)
resourceId := "86dc814b-c172-4428-9112-60f8ecae1edb"
mediaInfo1.SetResourceId(&resourceId)
preFetchMedia := []graphmodels.MediaInfoable {
mediaInfo,
mediaInfo1,
}
mediaConfig.SetPreFetchMedia(preFetchMedia)
requestBody.SetMediaConfig(mediaConfig)
meetingInfo := graphmodels.NewJoinMeetingIdMeetingInfo()
joinMeetingId := "1234567"
meetingInfo.SetJoinMeetingId(&joinMeetingId)
passcode := null
meetingInfo.SetPasscode(&passcode)
requestBody.SetMeetingInfo(meetingInfo)
tenantId := "86dc81db-c112-4228-9222-63f3esaa1edb"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
LinkedList<MediaInfo> preFetchMedia = new LinkedList<MediaInfo>();
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.setUri("https://cdn.contoso.com/beep.wav");
mediaInfo.setResourceId("f8971b04-b53e-418c-9222-c82ce681a582");
preFetchMedia.add(mediaInfo);
MediaInfo mediaInfo1 = new MediaInfo();
mediaInfo1.setUri("https://cdn.contoso.com/cool.wav");
mediaInfo1.setResourceId("86dc814b-c172-4428-9112-60f8ecae1edb");
preFetchMedia.add(mediaInfo1);
mediaConfig.setPreFetchMedia(preFetchMedia);
call.setMediaConfig(mediaConfig);
JoinMeetingIdMeetingInfo meetingInfo = new JoinMeetingIdMeetingInfo();
meetingInfo.setOdataType("#microsoft.graph.joinMeetingIdMeetingInfo");
meetingInfo.setJoinMeetingId("1234567");
meetingInfo.setPasscode(null);
call.setMeetingInfo(meetingInfo);
call.setTenantId("86dc81db-c112-4228-9222-63f3esaa1edb");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig',
preFetchMedia: [
{
uri: 'https://cdn.contoso.com/beep.wav',
resourceId: 'f8971b04-b53e-418c-9222-c82ce681a582'
},
{
uri: 'https://cdn.contoso.com/cool.wav',
resourceId: '86dc814b-c172-4428-9112-60f8ecae1edb'
}
]
},
meetingInfo: {
'@odata.type': '#microsoft.graph.joinMeetingIdMeetingInfo',
joinMeetingId: '1234567',
passcode: null
},
tenantId: '86dc81db-c112-4228-9222-63f3esaa1edb'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
use Microsoft\Graph\Generated\Models\MediaInfo;
use Microsoft\Graph\Generated\Models\JoinMeetingIdMeetingInfo;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$requestBody->setRequestedModalities([new Modality('audio'), ]);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$preFetchMediaMediaInfo1 = new MediaInfo();
$preFetchMediaMediaInfo1->setUri('https://cdn.contoso.com/beep.wav');
$preFetchMediaMediaInfo1->setResourceId('f8971b04-b53e-418c-9222-c82ce681a582');
$preFetchMediaArray []= $preFetchMediaMediaInfo1;
$preFetchMediaMediaInfo2 = new MediaInfo();
$preFetchMediaMediaInfo2->setUri('https://cdn.contoso.com/cool.wav');
$preFetchMediaMediaInfo2->setResourceId('86dc814b-c172-4428-9112-60f8ecae1edb');
$preFetchMediaArray []= $preFetchMediaMediaInfo2;
$mediaConfig->setPreFetchMedia($preFetchMediaArray);
$requestBody->setMediaConfig($mediaConfig);
$meetingInfo = new JoinMeetingIdMeetingInfo();
$meetingInfo->setOdataType('#microsoft.graph.joinMeetingIdMeetingInfo');
$meetingInfo->setJoinMeetingId('1234567');
$meetingInfo->setPasscode(null);
$requestBody->setMeetingInfo($meetingInfo);
$requestBody->setTenantId('86dc81db-c112-4228-9222-63f3esaa1edb');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
preFetchMedia = @(
@{
uri = "https://cdn.contoso.com/beep.wav"
resourceId = "f8971b04-b53e-418c-9222-c82ce681a582"
}
@{
uri = "https://cdn.contoso.com/cool.wav"
resourceId = "86dc814b-c172-4428-9112-60f8ecae1edb"
}
)
}
meetingInfo = @{
"@odata.type" = "#microsoft.graph.joinMeetingIdMeetingInfo"
joinMeetingId = "1234567"
passcode = $null
}
tenantId = "86dc81db-c112-4228-9222-63f3esaa1edb"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
from msgraph.generated.models.media_info import MediaInfo
from msgraph.generated.models.join_meeting_id_meeting_info import JoinMeetingIdMeetingInfo
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
requested_modalities = [
Modality.Audio,
],
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
pre_fetch_media = [
MediaInfo(
uri = "https://cdn.contoso.com/beep.wav",
resource_id = "f8971b04-b53e-418c-9222-c82ce681a582",
),
MediaInfo(
uri = "https://cdn.contoso.com/cool.wav",
resource_id = "86dc814b-c172-4428-9112-60f8ecae1edb",
),
],
),
meeting_info = JoinMeetingIdMeetingInfo(
odata_type = "#microsoft.graph.joinMeetingIdMeetingInfo",
join_meeting_id = "1234567",
passcode = None,
),
tenant_id = "86dc81db-c112-4228-9222-63f3esaa1edb",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2f1a1100-b174-40a0-aba7-0b405e01ed92
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "2891555a-92ff-42e6-80fa-6e1300c6b5c6"
}
},
"region": null,
"languageId": null
},
"targets": [],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"chatInfo": {
"@odata.type": "#microsoft.graph.chatInfo",
"threadId": "19:meeting_Win6Ydo4wsMijFjZS00ZGVjLTk5MGUtOTRjNNkYTFm@thread.v2",
"messageId": "0",
"replyChainMessageId": null
},
"meetingInfo": {
"@odata.type": "#microsoft.graph.joinMeetingIdMeetingInfo",
"joinMeetingId": "1234567",
"passcode": null
},
"transcription": null,
"routingPolicies": [],
"tenantId": "86dc81db-c112-4228-9222-63f3esaa1edb",
"myParticipantId": "05491616-385f-44a8-9974-18cc5f9933c1",
"id": "2f1a1100-b174-40a0-aba7-0b405e01ed92",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"terminationReason": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"subject": null,
"resultInfo": null,
"answeredBy": null,
"meetingCapability": null,
"toneInfo": null
}
Observação: Essa chamada requer a permissão Calls.Initiate.All.
Essa chamada requer uma instância de aplicativo com um número PSTN atribuído. Para obter detalhes, consulte Atribuir um número de telefone ao bot.
Solicitação
O exemplo a seguir mostra a solicitação para fazer uma chamada ponto a ponto entre o bot e um número PSTN. Neste exemplo, a mídia é hospedada pelo serviço. Os valores de token de autorização, URL de retorno de chamada, ID da instância do aplicativo, nome de exibição da instância do aplicativo, ID do telefone e ID do locatário devem ser substituídos por valores reais para fazer o exemplo funcionar.
Observação: A ID da instância do aplicativo é a ID do objeto da instância do aplicativo. A ID do aplicativo à qual a instância do aplicativo está vinculada deve corresponder à do token de autorização. ID de telefone é o número de telefone no formato E.164.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "3d913abb-aec0-4964-8fa6-3c6850c4f278"
},
},
"countryCode": null,
"endpointType": null,
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig"
},
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
Source = new ParticipantInfo
{
OdataType = "#microsoft.graph.participantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
AdditionalData = new Dictionary<string, object>
{
{
"applicationInstance" , new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "Calling Bot",
Id = "3d913abb-aec0-4964-8fa6-3c6850c4f278",
}
},
},
},
CountryCode = null,
EndpointType = null,
Region = null,
LanguageId = null,
},
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
AdditionalData = new Dictionary<string, object>
{
{
"phone" , new Identity
{
OdataType = "#microsoft.graph.identity",
Id = "+12345678901",
}
},
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new ServiceHostedMediaConfig
{
OdataType = "#microsoft.graph.serviceHostedMediaConfig",
},
TenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
source := graphmodels.NewParticipantInfo()
identity := graphmodels.NewIdentitySet()
additionalData := map[string]interface{}{
applicationInstance := graphmodels.NewIdentity()
displayName := "Calling Bot"
applicationInstance.SetDisplayName(&displayName)
id := "3d913abb-aec0-4964-8fa6-3c6850c4f278"
applicationInstance.SetId(&id)
identity.SetApplicationInstance(applicationInstance)
}
identity.SetAdditionalData(additionalData)
source.SetIdentity(identity)
countryCode := null
source.SetCountryCode(&countryCode)
endpointType := null
source.SetEndpointType(&endpointType)
region := null
source.SetRegion(®ion)
languageId := null
source.SetLanguageId(&languageId)
requestBody.SetSource(source)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
additionalData := map[string]interface{}{
phone := graphmodels.NewIdentity()
id := "+12345678901"
phone.SetId(&id)
identity.SetPhone(phone)
}
identity.SetAdditionalData(additionalData)
invitationParticipantInfo.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewServiceHostedMediaConfig()
requestBody.SetMediaConfig(mediaConfig)
tenantId := "aa67bd4c-8475-432d-bd41-39f255720e0a"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
ParticipantInfo source = new ParticipantInfo();
source.setOdataType("#microsoft.graph.participantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
Identity applicationInstance = new Identity();
applicationInstance.setOdataType("#microsoft.graph.identity");
applicationInstance.setDisplayName("Calling Bot");
applicationInstance.setId("3d913abb-aec0-4964-8fa6-3c6850c4f278");
additionalData.put("applicationInstance", applicationInstance);
identity.setAdditionalData(additionalData);
source.setIdentity(identity);
source.setCountryCode(null);
source.setEndpointType(null);
source.setRegion(null);
source.setLanguageId(null);
call.setSource(source);
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity1 = new IdentitySet();
identity1.setOdataType("#microsoft.graph.identitySet");
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
Identity phone = new Identity();
phone.setOdataType("#microsoft.graph.identity");
phone.setId("+12345678901");
additionalData1.put("phone", phone);
identity1.setAdditionalData(additionalData1);
invitationParticipantInfo.setIdentity(identity1);
targets.add(invitationParticipantInfo);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
ServiceHostedMediaConfig mediaConfig = new ServiceHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.serviceHostedMediaConfig");
call.setMediaConfig(mediaConfig);
call.setTenantId("aa67bd4c-8475-432d-bd41-39f255720e0a");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
source: {
'@odata.type': '#microsoft.graph.participantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
applicationInstance: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'Calling Bot',
id: '3d913abb-aec0-4964-8fa6-3c6850c4f278'
},
},
countryCode: null,
endpointType: null,
region: null,
languageId: null
},
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
phone: {
'@odata.type': '#microsoft.graph.identity',
id: '+12345678901'
}
}
}
],
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.serviceHostedMediaConfig'
},
tenantId: 'aa67bd4c-8475-432d-bd41-39f255720e0a'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\ParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\ServiceHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$source = new ParticipantInfo();
$source->setOdataType('#microsoft.graph.participantInfo');
$sourceIdentity = new IdentitySet();
$sourceIdentity->setOdataType('#microsoft.graph.identitySet');
$additionalData = [
'applicationInstance' => [
'@odata.type' => '#microsoft.graph.identity',
'displayName' => 'Calling Bot',
'id' => '3d913abb-aec0-4964-8fa6-3c6850c4f278',
],
];
$sourceIdentity->setAdditionalData($additionalData);
$source->setIdentity($sourceIdentity);
$source->setCountryCode(null);
$source->setEndpointType(null);
$source->setRegion(null);
$source->setLanguageId(null);
$requestBody->setSource($source);
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$additionalData = [
'phone' => [
'@odata.type' => '#microsoft.graph.identity',
'id' => '+12345678901',
],
];
$targetsInvitationParticipantInfo1Identity->setAdditionalData($additionalData);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$mediaConfig = new ServiceHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.serviceHostedMediaConfig');
$requestBody->setMediaConfig($mediaConfig);
$requestBody->setTenantId('aa67bd4c-8475-432d-bd41-39f255720e0a');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
source = @{
"@odata.type" = "#microsoft.graph.participantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
applicationInstance = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "Calling Bot"
id = "3d913abb-aec0-4964-8fa6-3c6850c4f278"
}
}
countryCode = $null
endpointType = $null
region = $null
languageId = $null
}
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
phone = @{
"@odata.type" = "#microsoft.graph.identity"
id = "+12345678901"
}
}
}
)
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.serviceHostedMediaConfig"
}
tenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.participant_info import ParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.service_hosted_media_config import ServiceHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
source = ParticipantInfo(
odata_type = "#microsoft.graph.participantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
additional_data = {
"application_instance" : {
"@odata_type" : "#microsoft.graph.identity",
"display_name" : "Calling Bot",
"id" : "3d913abb-aec0-4964-8fa6-3c6850c4f278",
},
}
),
country_code = None,
endpoint_type = None,
region = None,
language_id = None,
),
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
additional_data = {
"phone" : {
"@odata_type" : "#microsoft.graph.identity",
"id" : "+12345678901",
},
}
),
),
],
requested_modalities = [
Modality.Audio,
],
media_config = ServiceHostedMediaConfig(
odata_type = "#microsoft.graph.serviceHostedMediaConfig",
),
tenant_id = "aa67bd4c-8475-432d-bd41-39f255720e0a",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2e1a0b00-2db4-4022-9570-243709c565ab
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "3d913abb-aec0-4964-8fa6-3c6850c4f278"
},
},
"countryCode": null,
"endpointType": null,
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
},
"endpointType": null,
"region": null,
"replacesCallId": null,
"languageId": null
}
],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.serviceHostedMediaConfig",
"preFetchMedia": [
{
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "f8971b04-b53e-418c-9222-c82ce681a582"
},
{
"uri": "https://cdn.contoso.com/cool.wav",
"resourceId": "86dc814b-c172-4428-9112-60f8ecae1edb"
}
],
},
"routingPolicies": [],
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"myParticipantId": "499ff390-7a72-40e8-83a0-8fac6295ae7e",
"id": "2e1a0b00-2db4-4022-9570-243709c565ab",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"subject": null,
"terminationReason": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"resultInfo": null,
"answeredBy": null,
"chatInfo": null,
"meetingInfo": null,
"transcription": null,
"meetingCapability": null,
"toneInfo": null
}
Observação: este exemplo requer as permissões Calls.Initiate.All e Calls.AccessMedia.All.
Essa chamada requer uma instância de aplicativo com um número PSTN atribuído. Para obter detalhes, consulte Atribuir um número de telefone ao bot.
Solicitação
O exemplo a seguir mostra uma solicitação para fazer uma chamada ponto a ponto entre o bot e um número PSTN. Neste exemplo, a mídia é hospedada localmente pelo aplicativo. Os valores de token de autorização, URL de retorno de chamada, ID da instância do aplicativo, nome de exibição da instância do aplicativo, ID do telefone e ID do locatário devem ser substituídos por valores reais para fazer o exemplo funcionar.
Observação: A ID da instância do aplicativo é a ID do objeto da instância do aplicativo. A ID do aplicativo à qual a instância do aplicativo está vinculada deve corresponder à do token de autorização. ID de telefone é o número de telefone no formato E.164.
POST https://graph.microsoft.com/v1.0/communications/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"callbackUri": "https://bot.contoso.com/callback",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "3d913abb-aec0-4964-8fa6-3c6850c4f278"
},
},
"countryCode": null,
"endpointType": null,
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
],
"requestedModalities": [
"audio"
],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>"
},
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Call
{
OdataType = "#microsoft.graph.call",
CallbackUri = "https://bot.contoso.com/callback",
Source = new ParticipantInfo
{
OdataType = "#microsoft.graph.participantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
AdditionalData = new Dictionary<string, object>
{
{
"applicationInstance" , new Identity
{
OdataType = "#microsoft.graph.identity",
DisplayName = "Calling Bot",
Id = "3d913abb-aec0-4964-8fa6-3c6850c4f278",
}
},
},
},
CountryCode = null,
EndpointType = null,
Region = null,
LanguageId = null,
},
Targets = new List<InvitationParticipantInfo>
{
new InvitationParticipantInfo
{
OdataType = "#microsoft.graph.invitationParticipantInfo",
Identity = new IdentitySet
{
OdataType = "#microsoft.graph.identitySet",
AdditionalData = new Dictionary<string, object>
{
{
"phone" , new Identity
{
OdataType = "#microsoft.graph.identity",
Id = "+12345678901",
}
},
},
},
},
},
RequestedModalities = new List<Modality?>
{
Modality.Audio,
},
MediaConfig = new AppHostedMediaConfig
{
OdataType = "#microsoft.graph.appHostedMediaConfig",
Blob = "<Media Session Configuration>",
},
TenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a",
};
// 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.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCall()
callbackUri := "https://bot.contoso.com/callback"
requestBody.SetCallbackUri(&callbackUri)
source := graphmodels.NewParticipantInfo()
identity := graphmodels.NewIdentitySet()
additionalData := map[string]interface{}{
applicationInstance := graphmodels.NewIdentity()
displayName := "Calling Bot"
applicationInstance.SetDisplayName(&displayName)
id := "3d913abb-aec0-4964-8fa6-3c6850c4f278"
applicationInstance.SetId(&id)
identity.SetApplicationInstance(applicationInstance)
}
identity.SetAdditionalData(additionalData)
source.SetIdentity(identity)
countryCode := null
source.SetCountryCode(&countryCode)
endpointType := null
source.SetEndpointType(&endpointType)
region := null
source.SetRegion(®ion)
languageId := null
source.SetLanguageId(&languageId)
requestBody.SetSource(source)
invitationParticipantInfo := graphmodels.NewInvitationParticipantInfo()
identity := graphmodels.NewIdentitySet()
additionalData := map[string]interface{}{
phone := graphmodels.NewIdentity()
id := "+12345678901"
phone.SetId(&id)
identity.SetPhone(phone)
}
identity.SetAdditionalData(additionalData)
invitationParticipantInfo.SetIdentity(identity)
targets := []graphmodels.InvitationParticipantInfoable {
invitationParticipantInfo,
}
requestBody.SetTargets(targets)
requestedModalities := []graphmodels.Modalityable {
modality := graphmodels.AUDIO_MODALITY
requestBody.SetModality(&modality)
}
requestBody.SetRequestedModalities(requestedModalities)
mediaConfig := graphmodels.NewAppHostedMediaConfig()
blob := "<Media Session Configuration>"
mediaConfig.SetBlob(&blob)
requestBody.SetMediaConfig(mediaConfig)
tenantId := "aa67bd4c-8475-432d-bd41-39f255720e0a"
requestBody.SetTenantId(&tenantId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calls, err := graphClient.Communications().Calls().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Call call = new Call();
call.setOdataType("#microsoft.graph.call");
call.setCallbackUri("https://bot.contoso.com/callback");
ParticipantInfo source = new ParticipantInfo();
source.setOdataType("#microsoft.graph.participantInfo");
IdentitySet identity = new IdentitySet();
identity.setOdataType("#microsoft.graph.identitySet");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
Identity applicationInstance = new Identity();
applicationInstance.setOdataType("#microsoft.graph.identity");
applicationInstance.setDisplayName("Calling Bot");
applicationInstance.setId("3d913abb-aec0-4964-8fa6-3c6850c4f278");
additionalData.put("applicationInstance", applicationInstance);
identity.setAdditionalData(additionalData);
source.setIdentity(identity);
source.setCountryCode(null);
source.setEndpointType(null);
source.setRegion(null);
source.setLanguageId(null);
call.setSource(source);
LinkedList<InvitationParticipantInfo> targets = new LinkedList<InvitationParticipantInfo>();
InvitationParticipantInfo invitationParticipantInfo = new InvitationParticipantInfo();
invitationParticipantInfo.setOdataType("#microsoft.graph.invitationParticipantInfo");
IdentitySet identity1 = new IdentitySet();
identity1.setOdataType("#microsoft.graph.identitySet");
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
Identity phone = new Identity();
phone.setOdataType("#microsoft.graph.identity");
phone.setId("+12345678901");
additionalData1.put("phone", phone);
identity1.setAdditionalData(additionalData1);
invitationParticipantInfo.setIdentity(identity1);
targets.add(invitationParticipantInfo);
call.setTargets(targets);
LinkedList<Modality> requestedModalities = new LinkedList<Modality>();
requestedModalities.add(Modality.Audio);
call.setRequestedModalities(requestedModalities);
AppHostedMediaConfig mediaConfig = new AppHostedMediaConfig();
mediaConfig.setOdataType("#microsoft.graph.appHostedMediaConfig");
mediaConfig.setBlob("<Media Session Configuration>");
call.setMediaConfig(mediaConfig);
call.setTenantId("aa67bd4c-8475-432d-bd41-39f255720e0a");
Call result = graphClient.communications().calls().post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const call = {
'@odata.type': '#microsoft.graph.call',
callbackUri: 'https://bot.contoso.com/callback',
source: {
'@odata.type': '#microsoft.graph.participantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
applicationInstance: {
'@odata.type': '#microsoft.graph.identity',
displayName: 'Calling Bot',
id: '3d913abb-aec0-4964-8fa6-3c6850c4f278'
},
},
countryCode: null,
endpointType: null,
region: null,
languageId: null
},
targets: [
{
'@odata.type': '#microsoft.graph.invitationParticipantInfo',
identity: {
'@odata.type': '#microsoft.graph.identitySet',
phone: {
'@odata.type': '#microsoft.graph.identity',
id: '+12345678901'
}
}
}
],
requestedModalities: [
'audio'
],
mediaConfig: {
'@odata.type': '#microsoft.graph.appHostedMediaConfig',
blob: '<Media Session Configuration>'
},
tenantId: 'aa67bd4c-8475-432d-bd41-39f255720e0a'
};
await client.api('/communications/calls')
.post(call);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Call;
use Microsoft\Graph\Generated\Models\ParticipantInfo;
use Microsoft\Graph\Generated\Models\IdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
use Microsoft\Graph\Generated\Models\InvitationParticipantInfo;
use Microsoft\Graph\Generated\Models\Modality;
use Microsoft\Graph\Generated\Models\AppHostedMediaConfig;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Call();
$requestBody->setOdataType('#microsoft.graph.call');
$requestBody->setCallbackUri('https://bot.contoso.com/callback');
$source = new ParticipantInfo();
$source->setOdataType('#microsoft.graph.participantInfo');
$sourceIdentity = new IdentitySet();
$sourceIdentity->setOdataType('#microsoft.graph.identitySet');
$additionalData = [
'applicationInstance' => [
'@odata.type' => '#microsoft.graph.identity',
'displayName' => 'Calling Bot',
'id' => '3d913abb-aec0-4964-8fa6-3c6850c4f278',
],
];
$sourceIdentity->setAdditionalData($additionalData);
$source->setIdentity($sourceIdentity);
$source->setCountryCode(null);
$source->setEndpointType(null);
$source->setRegion(null);
$source->setLanguageId(null);
$requestBody->setSource($source);
$targetsInvitationParticipantInfo1 = new InvitationParticipantInfo();
$targetsInvitationParticipantInfo1->setOdataType('#microsoft.graph.invitationParticipantInfo');
$targetsInvitationParticipantInfo1Identity = new IdentitySet();
$targetsInvitationParticipantInfo1Identity->setOdataType('#microsoft.graph.identitySet');
$additionalData = [
'phone' => [
'@odata.type' => '#microsoft.graph.identity',
'id' => '+12345678901',
],
];
$targetsInvitationParticipantInfo1Identity->setAdditionalData($additionalData);
$targetsInvitationParticipantInfo1->setIdentity($targetsInvitationParticipantInfo1Identity);
$targetsArray []= $targetsInvitationParticipantInfo1;
$requestBody->setTargets($targetsArray);
$requestBody->setRequestedModalities([new Modality('audio'),]);
$mediaConfig = new AppHostedMediaConfig();
$mediaConfig->setOdataType('#microsoft.graph.appHostedMediaConfig');
$mediaConfig->setBlob('<Media Session Configuration>');
$requestBody->setMediaConfig($mediaConfig);
$requestBody->setTenantId('aa67bd4c-8475-432d-bd41-39f255720e0a');
$result = $graphServiceClient->communications()->calls()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
"@odata.type" = "#microsoft.graph.call"
callbackUri = "https://bot.contoso.com/callback"
source = @{
"@odata.type" = "#microsoft.graph.participantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
applicationInstance = @{
"@odata.type" = "#microsoft.graph.identity"
displayName = "Calling Bot"
id = "3d913abb-aec0-4964-8fa6-3c6850c4f278"
}
}
countryCode = $null
endpointType = $null
region = $null
languageId = $null
}
targets = @(
@{
"@odata.type" = "#microsoft.graph.invitationParticipantInfo"
identity = @{
"@odata.type" = "#microsoft.graph.identitySet"
phone = @{
"@odata.type" = "#microsoft.graph.identity"
id = "+12345678901"
}
}
}
)
requestedModalities = @(
"audio"
)
mediaConfig = @{
"@odata.type" = "#microsoft.graph.appHostedMediaConfig"
blob = "<Media Session Configuration>"
}
tenantId = "aa67bd4c-8475-432d-bd41-39f255720e0a"
}
New-MgCommunicationCall -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.call import Call
from msgraph.generated.models.participant_info import ParticipantInfo
from msgraph.generated.models.identity_set import IdentitySet
from msgraph.generated.models.identity import Identity
from msgraph.generated.models.invitation_participant_info import InvitationParticipantInfo
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.app_hosted_media_config import AppHostedMediaConfig
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Call(
odata_type = "#microsoft.graph.call",
callback_uri = "https://bot.contoso.com/callback",
source = ParticipantInfo(
odata_type = "#microsoft.graph.participantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
additional_data = {
"application_instance" : {
"@odata_type" : "#microsoft.graph.identity",
"display_name" : "Calling Bot",
"id" : "3d913abb-aec0-4964-8fa6-3c6850c4f278",
},
}
),
country_code = None,
endpoint_type = None,
region = None,
language_id = None,
),
targets = [
InvitationParticipantInfo(
odata_type = "#microsoft.graph.invitationParticipantInfo",
identity = IdentitySet(
odata_type = "#microsoft.graph.identitySet",
additional_data = {
"phone" : {
"@odata_type" : "#microsoft.graph.identity",
"id" : "+12345678901",
},
}
),
),
],
requested_modalities = [
Modality.Audio,
],
media_config = AppHostedMediaConfig(
odata_type = "#microsoft.graph.appHostedMediaConfig",
blob = "<Media Session Configuration>",
),
tenant_id = "aa67bd4c-8475-432d-bd41-39f255720e0a",
)
result = await graph_client.communications.calls.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/communications/calls/2e1a0b00-2db4-4022-9570-243709c565ab
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.call",
"state": "establishing",
"direction": "outgoing",
"callbackUri": "https://bot.contoso.com/callback",
"callChainId": "d8217646-3110-40b1-bae6-e9ac6c3a9f74",
"callRoutes": [],
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "Calling Bot",
"id": "3d913abb-aec0-4964-8fa6-3c6850c4f278"
},
},
"countryCode": null,
"endpointType": null,
"region": null,
"languageId": null
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
},
"endpointType": null,
"region": null,
"replacesCallId": null,
"languageId": null
}
],
"requestedModalities": [
"audio"
],
"activeModalities": [],
"mediaConfig": {
"@odata.type": "#microsoft.graph.appHostedMediaConfig",
"blob": "<Media Session Configuration>",
},
"routingPolicies": [],
"tenantId": "aa67bd4c-8475-432d-bd41-39f255720e0a",
"myParticipantId": "499ff390-7a72-40e8-83a0-8fac6295ae7e",
"id": "2e1a0b00-2db4-4022-9570-243709c565ab",
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#app/calls/$entity",
"subject": null,
"terminationReason": null,
"ringingTimeoutInSeconds": null,
"mediaState": null,
"resultInfo": null,
"answeredBy": null,
"chatInfo": null,
"meetingInfo": null,
"transcription": null,
"meetingCapability": null,
"toneInfo": null
}