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