participant: invite
Namespace: microsoft.graph
Invite participants to the active call.
For more information about how to handle operations, see commsOperation.
Note: Inviting multiple participants in one request is only supported for group calls.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Permission type | Permissions (from least to most privileged) |
---|---|
Delegated (work or school account) | Not supported |
Delegated (personal Microsoft account) | Not supported |
Application | Calls.InitiateGroupCalls.All |
HTTP request
POST /communications/calls/{id}/participants/invite
Request headers
Name | Description |
---|---|
Authorization | Bearer {token}. Required. |
Content-type | application/json. Required. |
Request body
In the request body, provide a JSON object with the following parameters.
Parameter | Type | Description |
---|---|---|
participants | invitationParticipantInfo collection | The participants to be invited. |
clientContext | String | Unique Client Context string. Max limit is 256 chars. |
Response
If successful, this method returns a 200 OK
response code and a location header with a URI to the inviteParticipantsOperation created for this request.
The body of the response contains the created inviteParticipantsOperation.
Note: When this API returns a successful response, all participants will receive a roster update.
Examples
The following examples show how to call this API.
Note: The response objects might be shortened for readability. All the properties will be returned from an actual call.
Example 1: Invite one participant to an existing call
Request
POST https://graph.microsoft.com/v1.0/communications/calls/{id}/participants/invite
Content-Type: application/json
{
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "278405a3-f568-4b3e-b684-009193463064",
"displayName": "string"
}
}
}
],
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f"
}
Response
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"id": "eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"status": "Running",
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"resultInfo": null,
"participants": [
{
"endpointType": null,
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "278405a3-f568-4b3e-b684-009193463064",
"displayName": "string"
},
"application": null,
"device": null,
"phone": null
}
}
]
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"deleted",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"resourceData":{
"@odata.type":"#microsoft.graph.inviteParticipantsOperation",
"participants":[
{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"278405a3-f568-4b3e-b684-009193463064",
"displayName": "string"
}
}
}
],
"status":"completed",
"clientContext":"f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"id":"eec3812a-fdc3-4fb4-825c-a06c9f35414e"
}
}
]
}
Notification - roster updated with participant added
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"updated",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceData":[
{
"@odata.type":"#microsoft.graph.participant",
"info":{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"application":{
"@odata.type":"#microsoft.graph.identity",
"id":"278405a3-f568-4b3e-b684-009193463064"
}
},
"endpointType":"default"
},
"mediaStreams":[
{
"@odata.type":"#microsoft.graph.mediaStream",
"mediaType":"audio",
"sourceId":"1",
"direction":"sendReceive",
"serverMuted":false
}
],
"isMuted":false,
"isInLobby":false,
"id":null
}
]
}
]
}
Example 2: Invite multiple participants to an existing group call
Note: The existing group call must have a valid chatInfo. Inviting up to 5 participants is supported.
Request
POST /communications/calls/7531d31f-d10d-44de-802f-c569dbca451c/participants/invite
Content-Type: application/json
{
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "1e126418-44a0-4a94-a6f8-0efe1ad71acb",
"displayName": "string"
}
}
}
],
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"id":"eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"status":"Running",
"clientContext":"f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"resultInfo":null,
"participants":[
{
"endpointType":null,
"replacesCallId":null,
"identity":{
"user":{
"@odata.type": "#microsoft.graph.identity",
"id":"7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
},
"application":null,
"device":null,
"phone":null
}
},
{
"endpointType":null,
"replacesCallId":null,
"identity":{
"user":{
"@odata.type": "#microsoft.graph.identity",
"id":"1e126418-44a0-4a94-a6f8-0efe1ad71acb",
"displayName": "string"
},
"application":null,
"device":null,
"phone":null
}
}
]
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resource": "/communications/calls/7531d31f-d10d-44de-802f-c569dbca451c/operations/participants",
"resourceUrl": "/communications/calls/7531d31f-d10d-44de-802f-c569dbca451c/operations/participants",
"resourceData": {
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user":{
"@odata.type": "#microsoft.graph.identity",
"id":"7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user":{
"@odata.type": "#microsoft.graph.identity",
"id":"1e126418-44a0-4a94-a6f8-0efe1ad71acb",
"displayName": "string"
}
}
}
],
"status": "completed",
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"id": null
}
}
]
}
Notification - roster updated with participants added
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resource": "/app/calls/7531d31f-d10d-44de-802f-c569dbca451c/operations/participants",
"resourceUrl": "/communications/calls/7531d31f-d10d-44de-802f-c569dbca451c/operations/participants",
"resourceData": [
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"id": "7e1b4346-85a6-4bdd-abe3-d11c5d420efe"
}
},
"endpointType": "default"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "1",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"id": null
},
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user":{
"@odata.type": "#microsoft.graph.identity",
"id":"1e126418-44a0-4a94-a6f8-0efe1ad71acb",
"displayName": "string"
}
},
"endpointType": "default"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"sourceId": "3",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"id": null
}
]
}
]
}
Example 3: Invite participants to an existing group call, replacing an existing Peer-to-Peer call
The invite API supports only one participant when replacing an existing peer-to-peer call. When multiple participants are provided in the request body, only the first participant will be read and the rest of the participants will be ignored.
Note: The invite API supports only one participant when
replacesCallId
is provided. For details about usingreplacesCallId
to replace an existing peer-to-peer call, see invitationParticipantInfo.
Request
POST /communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants/invite
Content-Type: application/json
{
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
}
}
}
],
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"id": "278405a3-f568-4b3e-b684-009193463064",
"status": "Running",
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"resultInfo": null,
"participants": [
{
"endpointType": null,
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"identity": {
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "Participant"
},
"application": null,
"device": null,
"phone": null
}
}
]
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"deleted",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/278405a3-f568-4b3e-b684-009193463064",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/278405a3-f568-4b3e-b684-009193463064",
"resourceData":{
"@odata.type":"#microsoft.graph.inviteParticipantsOperation",
"participants":[
{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
}
}
}
],
"status":"completed",
"clientContext":"f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"id":"278405a3-f568-4b3e-b684-009193463064"
}
}
]
}
Notification - roster updated with participant added
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"updated",
"resource":"/communications/calls/a7ebfb2d-871e-419c-87af-27290b22e8db/participants",
"resourceUrl":"/communications/calls/a7ebfb2d-871e-419c-87af-27290b22e8db/participants",
"resourceData":[
{
"@odata.type":"#microsoft.graph.participant",
"info":{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"7e1b4346-85a6-4bdd-abe3-d11c5d420efe",
"displayName": "string"
}
},
"endpointType":"default"
},
"mediaStreams":[
{
"@odata.type":"#microsoft.graph.mediaStream",
"mediaType":"audio",
"sourceId":"1",
"direction":"sendReceive",
"serverMuted":false
}
],
"isMuted":false,
"isInLobby":false,
"id":null
}
]
}
]
}
Note: With a "completed" status, you can expect to receive notifications on how your original peer-to-peer call has been terminated and deleted.
Example 4: Invite one PSTN participant to an existing call
This call requires an application instance with a PSTN number assigned. For details, see Assign a phone number to your bot.
Note: Phone ID is the phone number in E.164 format.
Request
POST /communications/calls/{id}/participants/invite
Content-Type: application/json
Content-Length: 464
{
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
],
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f"
}
Response
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"id": "eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"status": "Running",
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"resultInfo": null,
"participants": [
{
"endpointType": null,
"id": null,
"replacesCallId": null,
"identity": {
"user": null,
"guest": null,
"encrypted": null,
"onPremises": null,
"applicationInstance": null,
"application": null,
"device": null,
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
]
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"deleted",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/eec3812a-fdc3-4fb4-825c-a06c9f35414e",
"resourceData":{
"@odata.type":"#microsoft.graph.inviteParticipantsOperation",
"participants":[
{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
],
"status":"completed",
"clientContext":"f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"id":"eec3812a-fdc3-4fb4-825c-a06c9f35414e"
}
}
]
}
Notification - roster updated with participant added
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"updated",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceData":[
{
"@odata.type":"#microsoft.graph.participant",
"info":{
"@odata.type":"#microsoft.graph.participantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
},
"endpointType":"default"
},
"mediaStreams":[
{
"@odata.type":"#microsoft.graph.mediaStream",
"mediaType":"audio",
"sourceId":"1",
"direction":"sendReceive",
"serverMuted":false
}
],
"isMuted":false,
"isInLobby":false,
"id":null
}
]
}
]
}
Note: With a
completed
status, you can expect to receive notifications about how your original peer-to-peer call has been terminated and deleted.
Example 5: Move one participant from one meeting to another
You can move one participant from one meeting to another if these two meetings have been created by the same application. For more information about how to create an online meeting, see Create onlineMeeting.
Note: The invite API can move only one participate per request. If you provide more than one participant in the request body, the invite API will move only the first one.
Request
The following is an example of a request.
POST /communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants/invite
Content-Type: application/json
{
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"participantId": "7d501bf1-5ee4-4605-ba92-0ae4513c611c",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "682b6c37-0729-4fab-ace6-d730d5d9137e",
"identityProvider": "AAD"
}
}
}
],
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f"
}
Response
The following is an example of the response.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"id": "278405a3-f568-4b3e-b684-009193463064",
"status": "Running",
"clientContext": "f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"resultInfo": null,
"participants": [
{
"endpointType": null,
"id": null,
"replacesCallId": "a7ebfb2d-871e-419c-87af-27290b22e8db",
"participantId": "7d501bf1-5ee4-4605-ba92-0ae4513c611c",
"identity": {
"user": {
"id": "682b6c37-0729-4fab-ace6-d730d5d9137e",
"displayName": "Participant",
"identityProvider": "AAD",
"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
},
"application": null,
"device": null,
"phone": null
}
}
]
}
Notification - operation completed
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"deleted",
"resource":"/app/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/278405a3-f568-4b3e-b684-009193463064",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/operations/278405a3-f568-4b3e-b684-009193463064",
"resourceData":{
"@odata.type":"#microsoft.graph.inviteParticipantsOperation",
"participants":[
{
"@odata.type":"#microsoft.graph.invitationParticipantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"682b6c37-0729-4fab-ace6-d730d5d9137e",
"identityProvider":"AAD",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"
}
}
}
],
"status":"completed",
"clientContext":"f2fa86af-3c51-4bc2-8fc0-475452d9764f",
"id":"278405a3-f568-4b3e-b684-009193463064"
}
}
]
}
Notification - roster updated with participant added
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type":"#microsoft.graph.commsNotifications",
"value":[
{
"@odata.type":"#microsoft.graph.commsNotification",
"changeType":"updated",
"resource":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceUrl":"/communications/calls/ab6233a5-20b7-4c5e-bea2-ce56c9776429/participants",
"resourceData":[
{
"@odata.type":"#microsoft.graph.participant",
"info":{
"@odata.type":"#microsoft.graph.participantInfo",
"identity":{
"@odata.type":"#microsoft.graph.identitySet",
"user":{
"@odata.type":"#microsoft.graph.identity",
"id":"682b6c37-0729-4fab-ace6-d730d5d9137e",
"identityProvider":"AAD",
"tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"
}
},
"endpointType":"default"
},
"mediaStreams":[
{
"@odata.type":"#microsoft.graph.mediaStream",
"mediaType":"audio",
"sourceId":"1",
"direction":"sendReceive",
"serverMuted":false
}
],
"isMuted":false,
"isInLobby":false,
"id":null
}
]
}
]
}
Feedback
Submit and view feedback for