Skip to content

PSTN Usage & Direct Routing Failures (30 days)

The question it answers: How many PSTN minutes did each user and destination use in the last 30 days, and which Direct Routing calls failed?

How many PSTN minutes does each user and destination use - the Calling Plan pool and pay-as-you-go spend - and which Direct Routing calls fail on which SBC with which SIP code.

Where in the appTenant › Teams Voice, Power Platform & Copilot › PSTN Usage & DR Failures
WorkloadTeams and collaboration
KindFindings list · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed).
LicenceTeams Phone with Calling Plans, Operator Connect or Direct Routing.
Report id (API and MCP)tenant.collaboration.pstn-usage
ColumnKeyType
SeveritySeverityStatus
ViewCategoryText
User / destination / SBCSubjectLink
CheckSettingText
Calls / minutes / chargeValueText
FindingFindingText
DetailDetailText
Last callWhenDate
Minutes / failuresNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: Teams Phone with Calling Plans, Operator Connect or Direct Routing.

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
CallRecords.Read.AllMicrosoft GraphRead all call records
Data sources it reads
  • GET /v1.0/communications/callRecords/getPstnCalls(fromDateTime,toDateTime)
  • GET /v1.0/communications/callRecords/getDirectRoutingCalls(fromDateTime,toDateTime)
GET /ir-api/v1/reports/tenant.collaboration.pstn-usage?size=100

An AI assistant reads it with the MCP tool get_report and the id tenant.collaboration.pstn-usage. The client needs the Read grant for Teams and collaboration. See Using the API.