ESC
Type to search...

Calls.JoinGroupCall.All

Export JSON
Export CSV
Copy URL
Print
Application Read All Resources

Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined with the privileges of a directory user to meetings in your organization.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

Join group calls and meetings as an app

Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. The app will be joined with the privileges of a directory user to meetings in your organization.

Properties

Microsoft Graph v1.0 mapped-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
callbackUri String The callback URL on which callbacks are delivered. Must be an HTTPS URL.
callChainId StringNullable A unique identifier for all the participant calls in a conference or a unique identifier for two participant calls in a P2P call. This identifier must be copied over from Microsoft.Graph.Call.CallChainId.
callOptions outgoingCallOptions Contains the optional features for the call.
callRoutes callRoute collection The routing information on how the call was retargeted. Read-only.
chatInfo chatInfo The chat information. Required information for joining a meeting.
direction callDirection The direction of the call. The possible values are incoming or outgoing. Read-only.
id String The unique identifier for the call. Read-only.
incomingContext incomingContext Call context associated with an incoming call.
mediaConfig appHostedMediaConfig or serviceHostedMediaConfig The media configuration. Required.
mediaState callMediaState Read-only. The call media state.
meetingInfo organizerMeetingInfo, tokenMeetingInfo, or joinMeetingIdMeetingInfo The meeting information. Required information for meeting scenarios.
myParticipantId StringNullable Read-only.
requestedModalities modality collection The list of requested modalities. The possible values are: unknown, audio, video, videoBasedScreenSharing, data.
resultInfo resultInfo The result information. For example, the result can hold termination reason. Read-only.
source participantInfo The originator of the call.

Showing 15 of 25 properties.

JSON Representation

Microsoft Graph v1.0 mapped-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "callbackUri": "String",
  "callChainId": "String",
  "callOptions": {"@odata.type": "#microsoft.graph.outgoingCallOptions"},
  "chatInfo": {"@odata.type": "#microsoft.graph.chatInfo"},
  "contentSharingSessions": [{ "@odata.type": "microsoft.graph.contentSharingSession" }],
  "direction": "String",
  "id": "String (identifier)",
  "mediaConfig": {"@odata.type": "#microsoft.graph.mediaConfig"},
  "mediaState": {"@odata.type": "#microsoft.graph.callMediaState"},
  "meetingInfo": {"@odata.type": "#microsoft.graph.meetingInfo"},
  "myParticipantId": "String",
  "requestedModalities": ["String"],
  "resultInfo": {"@odata.type": "#microsoft.graph.resultInfo"},
  "source": {"@odata.type": "#microsoft.graph.participantInfo"},
  "state": "String",
  "subject": "String",
  "targets": [{"@odata.type": "#microsoft.graph.invitationParticipantInfo"}],
  "toneInfo": {"@odata.type": "#microsoft.graph.toneInfo"},
  "transcription": {"@odata.type": "#microsoft.graph.callTranscriptionInfo"},
}

Relationships

Microsoft Graph v1.0 mapped-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
contentSharingSessions contentSharingSession collection Read-only. Nullable.
operations commsOperation collection Read-only. Nullable.
participants participant collection Read-only. Nullable.
audioRoutingGroups audioRoutingGroup collection Related audioRoutingGroups data exposed by this resource.
callRoutes callRoute collection The routing information on how the call was retargeted. Read-only.
requestedModalities array The list of requested modalities. The possible values are: unknown, audio, video, videoBasedScreenSharing, data.
targets invitationParticipantInfo collection The targets of the call. Required information for creating peer to peer call.
activeModalities array The list of active modalities. The possible values are: unknown, audio, video, videoBasedScreenSharing, data. Read-only.
routingPolicies array This property is applicable for peer to peer calls only. The possible values are: none, noMissedCall, disableForwardingExceptPhone, disableForwarding, preferSkypeForBusiness, unknownFutureValue.

Graph Methods

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /app/calls/{id}/audioRoutingGroups
GET /app/calls/{id}/audioRoutingGroups/{id}
GET /communications/calls/{id}/audioRoutingGroups
GET /communications/calls/{id}/audioRoutingGroups/{id}
GET /communications/calls/{id}/contentSharingSessions
GET /communications/calls/{id}/contentSharingSessions/{id}
GET /communications/calls/{id}/participants/{id}
POST /app/calls/{id}/addLargeGalleryView
POST /app/calls/{id}/audioRoutingGroups
POST /communications/calls
POST /communications/calls/{id}/addLargeGalleryView
POST /communications/calls/{id}/answer
POST /communications/calls/{id}/audioRoutingGroups
POST /communications/calls/{id}/participants/{id}/mute
POST /communications/calls/{id}/participants/{id}/startHoldMusic
POST /communications/calls/{id}/participants/{id}/stopHoldMusic
POST /communications/calls/{id}/updateRecordingStatus
PATCH /app/calls/{id}/audioRoutingGroups/{id}
PATCH /communications/calls/{id}/audioRoutingGroups/{id}
DELETE /app/calls/{id}/audioRoutingGroups/{id}
DELETE /communications/calls/{id}/audioRoutingGroups/{id}
DELETE /communications/calls/{id}/participants/{id}
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /app/calls/{id}/audioRoutingGroups
GET /app/calls/{id}/audioRoutingGroups/{id}
GET /app/calls/{id}/participants/{id}
GET /communications/calls/{id}/audioRoutingGroups
GET /communications/calls/{id}/audioRoutingGroups/{id}
GET /communications/calls/{id}/contentSharingSessions
GET /communications/calls/{id}/contentSharingSessions/{id}
GET /communications/calls/{id}/participants/{id}
POST /app/calls
POST /app/calls/{id}/addLargeGalleryView
POST /app/calls/{id}/answer
POST /app/calls/{id}/audioRoutingGroups
POST /app/calls/{id}/participants/{id}/mute
POST /app/calls/{id}/participants/muteAll
POST /app/calls/{id}/updateRecordingStatus
POST /communications/calls
POST /communications/calls/{id}/addLargeGalleryView
POST /communications/calls/{id}/answer
POST /communications/calls/{id}/audioRoutingGroups
POST /communications/calls/{id}/microsoft.graph.StartRecording
POST /communications/calls/{id}/microsoft.graph.StartTranscription
POST /communications/calls/{id}/microsoft.graph.StopRecording
POST /communications/calls/{id}/microsoft.graph.StopTranscription
POST /communications/calls/{id}/participants/{id}/mute
POST /communications/calls/{id}/participants/{id}/startHoldMusic
POST /communications/calls/{id}/participants/{id}/stopHoldMusic
POST /communications/calls/{id}/participants/muteAll
POST /communications/calls/{id}/updateRecordingStatus
PATCH /app/calls/{id}/audioRoutingGroups/{id}
PATCH /communications/calls/{id}/audioRoutingGroups/{id}
DELETE /app/calls/{id}/audioRoutingGroups/{id}
DELETE /app/calls/{id}/participants/{id}
DELETE /communications/calls/{id}/audioRoutingGroups/{id}
DELETE /communications/calls/{id}/participants/{id}
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Add-MgCommunicationCallLargeGalleryView /app/calls/{id}/addLargeGalleryView
call: addLargeGalleryView
Get-MgCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups
List audioRoutingGroups
Get-MgCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Get audioRoutingGroup
Get-MgCommunicationCallContentSharingSession /communications/calls/{id}/contentSharingSessions
List contentSharingSessions
Get-MgCommunicationCallContentSharingSession /communications/calls/{id}/contentSharingSessions/{id}
Get contentSharingSession
Get-MgCommunicationCallParticipant /communications/calls/{id}/participants/{id}
Get participant
Invoke-MgAnswerCommunicationCall /communications/calls/{id}/answer
call: answer
Invoke-MgInviteCommunicationCallParticipant /communications/calls/{id}/participants/{id}
Delete participant
Invoke-MgMuteCommunicationCallParticipant /communications/calls/{id}/participants/{id}/mute
participant: mute
New-MgCommunicationCall /communications/calls
Create call
New-MgCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups
Create audioRoutingGroup
Remove-MgCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Delete audioRoutingGroup
Remove-MgCommunicationCallParticipant /communications/calls/{id}/participants/{id}
Delete participant
Update-MgCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Update audioRoutingGroup
Update-MgCommunicationCallRecordingStatus /communications/calls/{id}/updateRecordingStatus
call: updateRecordingStatus
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Add-MgBetaCommunicationCallLargeGalleryView /app/calls/{id}/addLargeGalleryView
call: addLargeGalleryView
Get-MgBetaCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups
List audio routing groups
Get-MgBetaCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Get audio routing group
Get-MgBetaCommunicationCallContentSharingSession /communications/calls/{id}/contentSharingSessions
List contentSharingSessions
Get-MgBetaCommunicationCallContentSharingSession /communications/calls/{id}/contentSharingSessions/{id}
Get contentSharingSession
Get-MgBetaCommunicationCallParticipant /app/calls/{id}/participants/{id}
Get participant
Invoke-MgBetaAnswerCommunicationCall /app/calls/{id}/answer
call: answer
Invoke-MgBetaInviteCommunicationCallParticipant /app/calls/{id}/participants/{id}
Delete participant
Invoke-MgBetaMuteAllCommunicationCallParticipant /app/calls/{id}/participants/muteAll
participant: muteAll
Invoke-MgBetaMuteCommunicationCallParticipant /app/calls/{id}/participants/{id}/mute
participant: mute
New-MgBetaCommunicationCall /app/calls
Create call
New-MgBetaCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups
Create audio routing group
Remove-MgBetaCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Delete audio routing group
Remove-MgBetaCommunicationCallParticipant /app/calls/{id}/participants/{id}
Delete participant
Update-MgBetaCommunicationCallAudioRoutingGroup /app/calls/{id}/audioRoutingGroups/{id}
Update audio routing group
Update-MgBetaCommunicationCallRecordingStatus /app/calls/{id}/updateRecordingStatus
call: updateRecordingStatus

Code Examples

C# / .NET SDK
call: answer
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Communications.Calls.Item.Answer;
using Microsoft.Graph.Models;

var requestBody = new AnswerPostRequestBody
{
	CallbackUri = "callbackUri-value",
	MediaConfig = new AppHostedMediaConfig
	{
		OdataType = "#microsoft.graph.appHostedMediaConfig",
		Blob = "<Media Session Configuration Blob>",
	},
	AcceptedModalities = new List<Modality?>
	{
		Modality.Audio,
	},
	CallOptions = new IncomingCallOptions
	{
		OdataType = "#microsoft.graph.incomingCallOptions",
		IsContentSharingNotificationEnabled = true,
		IsDeltaRosterEnabled = true,
		IsInteractiveRosterEnabled = true,
	},
	ParticipantCapacity = 200,
};

// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Communications.Calls["{call-id}"].Answer.PostAsync(requestBody);
JavaScript
call: answer
const options = {
	authProvider,
};

const client = Client.init(options);

const answer = {
  callbackUri: 'callbackUri-value',
  mediaConfig: {
    '@odata.type': '#microsoft.graph.appHostedMediaConfig',
    blob: '<Media Session Configuration Blob>'
  },
  acceptedModalities: [
    'audio'
  ],
  callOptions: {
    '@odata.type': '#microsoft.graph.incomingCallOptions',
    isContentSharingNotificationEnabled: true,
    isDeltaRosterEnabled: true,
    isInteractiveRosterEnabled: true
  },
  participantCapacity: 200
};

await client.api('/communications/calls/{id}/answer')
	.post(answer);
PowerShell
call: answer
Import-Module Microsoft.Graph.CloudCommunications

$params = @{
	callbackUri = "callbackUri-value"
	mediaConfig = @{
		"@odata.type" = "#microsoft.graph.appHostedMediaConfig"
		blob = "<Media Session Configuration Blob>"
	}
	acceptedModalities = @(
	"audio"
)
callOptions = @{
	"@odata.type" = "#microsoft.graph.incomingCallOptions"
	isContentSharingNotificationEnabled = $true
	isDeltaRosterEnabled = $true
	isInteractiveRosterEnabled = $true
}
participantCapacity = 200
}

Invoke-MgAnswerCommunicationCall -CallId $callId -BodyParameter $params
Python
call: answer
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.communications.calls.item.answer.answer_post_request_body import AnswerPostRequestBody
from msgraph.generated.models.app_hosted_media_config import AppHostedMediaConfig
from msgraph.generated.models.modality import Modality
from msgraph.generated.models.incoming_call_options import IncomingCallOptions
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AnswerPostRequestBody(
	callback_uri = "callbackUri-value",
	media_config = AppHostedMediaConfig(
		odata_type = "#microsoft.graph.appHostedMediaConfig",
		blob = "<Media Session Configuration Blob>",
	),
	accepted_modalities = [
		Modality.Audio,
	],
	call_options = IncomingCallOptions(
		odata_type = "#microsoft.graph.incomingCallOptions",
		is_content_sharing_notification_enabled = True,
		is_delta_roster_enabled = True,
		is_interactive_roster_enabled = True,
	),
	participant_capacity = 200,
)

await graph_client.communications.calls.by_call_id('call-id').answer.post(request_body)

App Registration

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Application permissions and search for Calls.JoinGroupCall.All

4

Grant Admin Consent

Application permissions always require admin consent.