Real-time Access to Teams Phone System Calls via Graph API (/communications/calls) – Configuration Issues

Albert 0 Reputation points
2025-09-16T08:41:02.5033333+00:00

Hello everyone,

We are currently working on an interface for one of our ERP customers to integrate phone calls from the Teams phone system into a third-party system (ERP system). It is intended to replace an existing CTI interface.

The main purpose of the interface is to display the caller's customer data directly in the ERP system when a customer calls. Therefore, real-time data is required.

Our starting point:

We have registered an app in Azure (with all required API permissions, including CallEvents.Read.All, CallRecords.Read.All, Calls.AccessMedia.All, Calls.Initiate.All, Calls.InitiateGroupCall.All, Calls.JoinGroupCall.All, Chat.ReadBasic.All, TeamsTelephoneNumber.Read.All, User.Read, User.Read.All), and admin consent has been granted.

We have also created a bot and linked it to Teams (Calling) so that it can forward data to our webhook. The webhook is publicly accessible and works for test requests.

The problem:

When creating a webhook subscription to the resource /communications/calls via the Microsoft Graph API (https://graph.microsoft.com/v1.0/subscriptions), we receive the following error:

{

    "error": {

        "code": "ExtensionError",

        "message": "AADSTS500011: The resource principal named https://pma.plat.skype.com:6448 was not found in the tenant named 48976860-xxxx-xxxx-xxxx-xxxxxxxxxxxx. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant. Trace ID: <PII removed> Correlation ID: <PII removed> Timestamp: 2025-09-15 11:18:48Z",

        "innerError": {

            "date": "2025-09-15T11:18:48",

            "request-id": "66079482-f98a-4fcc-b701-1b9dcdff23c5",

            "client-request-id": "66079482-f98a-4fcc-b701-1b9dcdff23c5"

        }

    }

}

 

Other call endpoints from the Graph API also fail, even though they should be supported according to the documentation.

The Call Records API works, but only provides historical data (2-3 hours delay), which is unusable for our use case.

The bot appears to be able to monitor calls that are directly addressed to it or where it has been actively added. However, we need access to all calls from the Teams phone system.

Our question:

Is it generally possible (e.g., using the Graph API or a bot) to read all incoming and outgoing calls from the Teams phone system in real time?

If so, what steps or configurations are necessary to correctly configure access to the /communications/calls resource?

We would be very grateful for any assistance or experience.

Best regards

Microsoft Teams | Development
Microsoft Teams | Development

Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs

0 comments No comments

2 answers

Sort by: Most helpful
  1. Prasad-MSFT 10,541 Reputation points Microsoft External Staff Moderator
    2025-09-16T09:38:42.58+00:00

    Change notifications / subscriptions do not support /communications/calls endpoint. These are the only supported ones: https://learn.microsoft.com/en-us/graph/change-notifications-overview#supported-resources

    Also, it is not possible to read all incoming and outgoing calls from the Teams phone system in real time using graph API or bot.

    Thanks, 

    Prasad Das

    ************************************************************************* 

    If the response is helpful, please click on "upvote" button. Your feedback is important to us. Please rate us:🤩 Excellent 🙂 Good 😐 Average 🙁 Needs Improvement 😠 Poor

    Click here to escalate.

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments

  2. Kudos-Ng 15,050 Reputation points Microsoft External Staff Moderator
    2025-09-16T10:28:25.6633333+00:00

    Hi Albert

    Thank you for posting your question in the Microsoft Q&A forum.  

    Please understand that our forum is a public platform, and we will modify your question to cover your organization domain name in the description. Please notice to hide these personal or organization information next time you post error or some information to protect personal data.

    Based on the detailed description and the error message you provided, I’ve done some research and would like to share a few insights that may help clarify the situation: 

    The error message: 

    "The resource principal named https://pma.plat.skype.com:6448 was not found in the tenant..." 

    is documented by Microsoft in this article: 

    Error AADSTS500011 - Resource Principal Not Found | Microsoft Learn 

    While the article lists several scenarios to check, in your case, I believe the issue is not directly related to those scenarios, but rather to the fact that you're trying to register a webhook subscription to the /communications/calls endpoint. 

    According to Microsoft’s documentation: 

    Set up notifications for changes in resource data - Microsoft Graph | Microsoft Learn 

    There is no support for /communications/calls resource in webhook subscriptions. 

    The callRecords is supported, but as you mentioned, it provides delayed historical data (typically 2–3 hours), and unfortunately does not meet your real-time requirements. 

    Regarding your question: Is it possible to read all incoming/outgoing Teams phone calls in real time? 

    Based on further research and community discussions, the short answer is: 

    No, it is currently not possible to access all incoming and outgoing calls from the Teams phone system in real time using Microsoft Graph API or a bot—at least not for the purpose of displaying customer data in an ERP system at the moment a call arrives. 

    The bot framework can monitor calls only if the bot is directly involved (e.g., added to the call or meeting), but it cannot passively observe all calls across the tenant. 

    I understand this may be a limitation for your integration goals, and I hope Microsoft will expand support for real-time call data in future updates. If you have any further questions, please feel free to share. 


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".         

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.