microsoftgraph / microsoftgraph/microsoft-graph-comms-samples

Unable to Call External Users Using Microsoft Graph Call API

Open
#720 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
253
Forks
275
Avg merge
1d 5h
Merged PRs (30d)
1

Description

We aim to initiate calls to external users using the Microsoft Graph Call API under the following scenarios:

Scenario 1: When we know their email address and are aware they are in Teams within a different organization.

Scenario 2: When we already have the UserId and TenantId.

What we can currently achieve:

Making phone calls (PSTN Calls).
Making VOIP calls within our tenant (organization) or to guests of our organization.

We have set up an app with all the necessary permissions.
Created a BOT. Link to BOT creation
Created an AppInstance as a resource account and assigned it to the app.
Assigned a phone number to the AppInstance. Link to phone number assignment

Currently, when attempting to call external users using the Microsoft Graph Call API, we encounter the following error:

{"code":"7505","message":"Request authorization tenant mismatch.","innerError":{"date":"2024-03-27T09:32:32","request-id":"6be56bb2-ca0c-4930-a39d-064982428363","client-request-id":"5f7db483-33fa-2b37-897f-a9b135f46b8c"}}

For the following call under POST (/communications/calls), the body looks as follows:

{
  '@odata.type': '#microsoft.graph.call',
  callbackUri: 'https://' + this.connectionProperties.host + '/microsoftgraph/callnotifications',
  source: {
    '@odata.type': '#microsoft.graph.participantInfo',
    identity: {
      '@odata.type': '#microsoft.graph.identitySet',
      appInstance: {
        '@odata.type': '#microsoft.graph.identity',
        displayName: 'App Instance Name',
        id: "<our AppInstanceID>",
        tenantId: "<our TenantID>"
      }
    },
    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',
          id: "<external UserID>",
          tenantId: "<TenantId of another organization>"
          //or id: <PrincipalName or Email>
        }
      }	
    }
  ],
  requestedModalities: [
    'audio'
  ],
  callOptions: {
    '@odata.type': '#microsoft.graph.outgoingCallOptions',
    hideBotAfterEscalation: true,
    isContentSharingNotificationEnabled: true
  },
  mediaConfig: {
    '@odata.type': '#microsoft.graph.serviceHostedMediaConfig'
  },
  tenantId: "<our TenantID>"
}

Could you please assist us in resolving this issue?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the POST /communications/calls request body and the Microsoft Graph calling-bot and phone-number assignment links mentioned in the issue. Compare the source tenant, target tenant, and top-level tenantId while investigating error 7505. Done means documenting a supported cross-tenant call configuration or confirming the limitation and required alternative.

Written by the indexing model from the issue text.

Assessment

Domain
api, authorization
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.