Troubleshoot SMS and voice with your own telecom provider
In brief
The article now explains how to trace Choose Your Own Telephony Provider requests through Microsoft Entra audit and sign-in logs, Function App logs, and the telecom provider portal.
What Entra admins need to know
Administrators can identify where delivery or integration failures occur and route issues to Microsoft Support, their Azure team, or their telecom provider. No action is required.
This editorial summary was generated by AI from the documentation changes. Verify important details in the full Microsoft Learn article.
Documentation change
The comparison below shows only the changed extract. Use the full-page view for complete context.
Troubleshoot MFA voice call and SMS problems
This article explains how to investigate and resolve problems with voice call or SMS sign-in methods for multifactor authentication (MFA). It explains how telecom delivery works behind the scenes, what Microsoft can and can't see, and what to expect during an investigation.
Move to modern, phishing-resistant authentication
How global telecom delivery works
Microsoft works with primary telecom providers that have global reach. These providers rely on their own networks of suppliers, who control the routes for SMS and voice calls through local end-carrier networks. This supply chain represents thousands of individual carriers and routes around the globe.with your own telecom provider
Microsoft maintains robust processesUse this article to help ensure successful delivery of everytrace SMS and voice MFA request. However, oncerequests end to end with Choose Your Own Telephony Provider (CYOT), find where a request leavesstopped, and contact the right team to resolve it: Microsoft network, delivery is delegated to externalsupport, your Azure team, or your telecom providers.provider.
How a CYOT request flows
Each request passes through four stages, and each stage is recorded in its own logs:
| Stage | What happens | Where to look |
|---|---|---|
1. Microsoft Entra sends the
| Microsoft Entra requires an SMS or voice
| Microsoft Entra audit logs |
| 2. Your endpoint processes it | Your Function App receives the
| Function App logs |
| 3. Your provider delivers it | Your provider sends the SMS message or voice call to the user's phone. | Your provider |
| 4. The user signs in | The user enters the code, and Microsoft Entra completes authentication. | Microsoft Entra sign-in logs |
Find the request enters external telecom networks where Microsoft doesn't have direct visibility. Problems that occur beyond this point require collaboration with the provider to investigate.What can go wrong after delivery to the provider
After the request reaches an external telecom provider, two types of problems can occur.
The call or message is dropped or blocked
The provider should confirm this issue to Microsoft. Common causes include:
Device-level configuration.Even when all steps to send the message are correct, the device itself could refuse the call or route it to voicemail. Microsoft automatically retries these failures across different providers.Carrier-level blocking.The carrier might block the call or message due to international automated fraud detection systems.Regional availability issues.In rare cases, the message is dropped due to availability issuesina specific country. Microsoft and its providers have robust retry and reroute mechanisms for these scenarios and post automated outage communications when the impact is broadly reported.
The call or message is altered by a downstream carrier
Because the provider already confirmed delivery, Microsoft can only see a successful delivery per its specification. When message content is altered:
The customer should provide evidence that the message received on their device didn't appear with the expected branding or channel.Microsoft collaborates with the provider to understand the end-carrier behavior taken on behalf of the request.The provider will likely correct the route for the affected country code or phone number to avoid carriers that aren't honoring the original message contract.
What to expect during an investigationaudit logs
Due to the complexity of global telecom routing and limited visibility beyond the provider, telecom delivery investigations involve coordination across multiple companies and stakeholders.
Timeline
Investigations into downstream customer-reported delivery issues can take 4–6 weeks. The provider checks their logs and, if no issue is found locally, queries downstream partners who might use additional providers.
Root cause analysis (RCA) policy
Microsoft doesn't publish RCAs for issues that originate with external telecom providers. Carriers often don't share root cause details with Microsoft due to international visibility and competitive agreements.
Help with the investigation
To help Microsoft Support investigate provider-related issues:
Submit a Correlation ID and timestampfor the sign-ins that need investigation. You can find these values in the sign-in logs. The Correlation ID returns all Request IDs associated with the sign-in.To view the sign-in logs from the Microsoft Entra admin center:- Sign in to the Microsoft Entra admin center as at least a
Reports ReaderReports Reader. - Go to Entra ID > Monitoring & health > Audit logs, and select the Directory tab.
- Set the Date range, and add these filters: Service: Azure MFA and Category: Authentication.
BrowseLeave Activity set to All so you see both successful and failed requests.
:::image type="content" source="media/troubleshoot-voice-call-sms/audit-logs.png" alt-text="Screenshot of Audit logs filtered by Service Azure MFA and Category Authentication, showing CyotDeliverySucceeded and CyotDeliveryFailed activities." lightbox="media/troubleshoot-voice-call-sms/audit-logs.png":::
Select the request to open Audit Log Details, and note these values:
Field What it tells you Activity Type CyotDeliverySucceededmeans your endpoint accepted the request.CyotDeliveryFailedmeans it didn't complete.DeliveryMethod Cyotfor a live request through your provider.CyotEvaluationfor an evaluation request.Channel SmsorVoice.AuthenticationMethod The method used, such as OneWaySmsorOneWayVoiceMobileOtp.Correlation ID The identifier to share with support. FailureReason Why a failed request didn't complete. :::image type="content" source="media/troubleshoot-voice-call-sms/audit-log-details.png" alt-text="Screenshot of Audit Log Details for CyotDeliverySucceeded with DeliveryMethod Cyot and Channel Voice." lightbox="media/troubleshoot-voice-call-sms/audit-log-details.png":::
Check sign-in logs
Use sign-in logs to confirm whether the user completed authentication.
- Go to Entra ID > Monitoring & health > Sign-in logs.
- Find the sign-in by user and time, and open it.
- On Authentication Details, review the method, whether the step succeeded, and the result detail.
:::image type=Sign-in logs show the method as Text message or Voice. To confirm that the request was sent through your provider, use audit logs.Check Function App logs
Use your Function App logs to see how your endpoint processed the request and what it returned to Microsoft Entra.
In the Azure portal, open the Function App created by setup.
Go to Monitoring > Application Insights, and open the linked Application Insights resource.
Select Logs, and run the following query for the time of the attempt:
AppRequests | where TimeGenerated > ago(1h) | where Url has "content/api/SendOtp"source="media/troubleshoot-voice-call-sms/sign-in-log-correlation-id.png" alt-text="Screenshot| project TimeGenerated, ResultCode, Success, DurationMs, OperationId | order by TimeGenerated desc
ResultCodeshows what your Function App returned to Microsoft Entra. To see your provider's response for the same request, queryAppTraceswith itsOperationId.Identify who can help
Use what you see in audit logs to find the right contact.
What you see What to check Contact No CYOT activity in audit logs Confirm the date range and filters, that showstheDateuser is included in SMS or voice targeting, andCorrelation ID fieldsthat a new phone challenge was required.Microsoft support Only CyotEvaluationactivityThe profile is inEvaluation. Switch to Production to route traffic through your provider. No support needed CyotDeliveryFailedwithEndpointClientErrorYour endpoint rejected the request. Check your Function App logs and authentication settings. Your Azure team CyotDeliveryFailedwithEndpointServerErrorYour endpoint returned an error or didn't respond in time. Check your Function App logs and your provider's status. Your Azure team CyotDeliveryFailedwithNonceMismatchYour endpoint's response didn't match what Microsoft Entra expects. Compare any customizations with the CYOT sample. Your Azure team CyotDeliverySucceeded, but the user didn't receive the codeYour endpoint accepted the request. Check your provider's delivery records. Your telecom provider The user received the code, but sign-in failed Check the sign-in logs for an expired, reused, or incorrect code. Microsoft support Delivery blocked to certain countries/regions, fraud blocks, or unexpected charges Review your provider's fraud, destination, and spending controls. Your telecom provider Contact support
Contact Covers How to reach Microsoft support Authentication method policy, Microsoft Entra authentication, and the request to your endpoint Get support for Microsoft Entra Your Azure team Your Function App, its configuration, and Azure resources Internal. For Azure platform issues, contact Azure support. Your telecom provider Provider account, delivery, fraud controls, and usage charges Support details in the Microsoft Entra admin center." lightbox="media/troubleshoot-voice-call-sms/sign-in-log-correlation-id.png":::provider's Microsoft Security Store listingInformation to include
- Tenant ID, channel (SMS or voice), and the UTC time of the attempt.
The audit log
ID,Provide fresh samples.End carriers often requireCorrelationIDs from the last 48–72 hours. Older requests may not propagate to the final end carrier in time for investigation. You may be asked to provide multiple samples.DeliveryMethod, andFailureReason.
s transaction ID, if available.Provide evidence of altered messages.If the message you received didnYour provider't appear with the expected branding or channel, share a screenshot or description of what you received.- Any recent configuration changes.
Related content
Voice call authentication method in Microsoft Entra IDConfigure and enable users for SMS-based authentication using Microsoft Entra ID\ No newline at end of file
- Set up SMS and voice with your own telecom provider by using APIs.
- Plan for resiliency and high availability with your own telecom provider.
- Prevent telephony fraud when using your own telecom provider.
- Audit logs in Microsoft Entra ID.
- Monitor Microsoft Entra sign-ins.
- CYOT sign-in monitoring.
- CYOT setup troubleshooting.
- Integrate Microsoft Entra logs with Azure Monitor.
- Analyze Microsoft Entra activity logs with Log Analytics.
- Sign in to the Microsoft Entra admin center as at least a
@@ -1,95 +1,164 @@ ----title: Troubleshoot MFA voice call and SMS problems-description: Learn how to troubleshoot voice call and SMS problems with MFA, understand telecom delivery, and help Microsoft Support investigate delivery issues.+title: Troubleshoot SMS and voice with your own telecom provider+description: Trace CYOT SMS and voice requests with audit logs, sign-in logs, and Function App logs to identify issues and contact the right support team. ms.topic: how-to-ms.date: 04/09/2026+ms.date: 10/30/2026+ai-usage: ai-assisted ms.custom: msecd-doc-authoring-1012 ms.reviewer: xueca-# Customer intent: As an authentication administrator, I want to troubleshoot voice call and SMS problems with multifactor authentication (MFA) for Microsoft Entra ID.+# Customer intent: As an authentication administrator, I want to identify and resolve CYOT authentication, integration, and telecom delivery issues. ----# Troubleshoot MFA voice call and SMS problems -This article explains how to investigate and resolve problems with voice call or SMS sign-in methods for multifactor authentication (MFA). It explains how telecom delivery works behind the scenes, what Microsoft can and can't see, and what to expect during an investigation.+# Troubleshoot SMS and voice with your own telecom provider -## Move to modern, phishing-resistant authentication+<a id="troubleshoot-mfa-voice-call-and-sms-problems"></a>+<a id="monitor-and-troubleshoot-your-own-telephony-provider"></a>+<a id="monitor-and-troubleshoot-sms-and-voice-with-your-own-telecom-provider"></a> -> [!IMPORTANT]-> Microsoft is committed to helping organizations adopt modern, phishing-resistant authentication methods. While telecom-based MFA provides an important layer of security, methods like passkeys, certificate-based authentication, and Windows Hello for Business offer stronger protection against interception and social engineering attacks.->-> These methods also avoid the delivery variability inherent in global telecom networks. Microsoft recommends transitioning to these more secure alternatives:->-> - [Passkeys (FIDO2)](concept-authentication-passwordless.md#fido2-security-keys)-> - [Windows Hello for Business](/windows/security/identity-protection/hello-for-business/)-> - [Certificate-based authentication](concept-certificate-based-authentication.md)+Use this article to trace SMS and voice requests end to end with Choose Your Own Telephony Provider (CYOT), find where a request stopped, and contact the right team to resolve it: Microsoft support, your Azure team, or your telecom provider. -## How global telecom delivery works+<a id="trace-the-request"></a>+<a id="how-global-telecom-delivery-works"></a>+<a id="the-journey-of-an-sms-or-voice-mfa-request"></a>+<a id="understand-what-to-monitor"></a> -Microsoft works with primary telecom providers that have global reach. These providers rely on their own networks of suppliers, who control the routes for SMS and voice calls through local end-carrier networks. This supply chain represents thousands of individual carriers and routes around the globe.+## How a CYOT request flows -Microsoft maintains robust processes to help ensure successful delivery of every SMS and voice MFA request. However, once a request leaves the Microsoft network, delivery is delegated to external telecom providers.+Each request passes through four stages, and each stage is recorded in its own logs: -These providers often share the same end routes and carriers in a given destination country but might operate under different contractual agreements or traffic priorities. As a result, routing a request through a different provider doesn't always resolve the issue — the new request might follow the same downstream path and encounter the same obstacle.+| Stage | What happens | Where to look |+|---|---|---|+| 1. Microsoft Entra sends the request | Microsoft Entra requires an SMS or voice code and sends the request to your endpoint. | Microsoft Entra audit logs |+| 2. Your endpoint processes it | Your Function App receives the request and sends it to your telecom provider. | Function App logs |+| 3. Your provider delivers it | Your provider sends the SMS message or voice call to the user's phone. | Your provider's portal |+| 4. The user signs in | The user enters the code, and Microsoft Entra completes authentication. | Microsoft Entra sign-in logs | -## The journey of an SMS or voice MFA request+## Find the request in audit logs -When you sign in and an SMS or voice MFA challenge is triggered, Microsoft can confirm the following steps given a Correlation ID and timestamp:+1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com) as at least a Reports Reader.+1. Go to **Entra ID** > **Monitoring & health** > **Audit logs**, and select the **Directory** tab.+1. Set the **Date range**, and add these filters: **Service: Azure MFA** and **Category: Authentication**.+1. Leave **Activity** set to **All** so you see both successful and failed requests. -1. **Request received.** Microsoft Entra generates the MFA request and constructs the payload for the SMS or voice request with the expected Microsoft or company branding.-1. **Provider selected.** Microsoft sends the request to one of multiple external third-party telecom providers matching your country code.-1. **Channel matched.** The request is routed through the correct channel (SMS or voice) per your configuration, selection, and policy requirements.-1. **Delivery confirmed.** The provider confirms receipt of the telecom request and marks it as successfully delivered with no alterations.+:::image type="content" source="media/troubleshoot-voice-call-sms/audit-logs.png" alt-text="Screenshot of Audit logs filtered by Service Azure MFA and Category Authentication, showing CyotDeliverySucceeded and CyotDeliveryFailed activities." lightbox="media/troubleshoot-voice-call-sms/audit-logs.png"::: -After the provider confirms delivery, the request enters external telecom networks where Microsoft doesn't have direct visibility. Problems that occur beyond this point require collaboration with the provider to investigate.+Select the request to open **Audit Log Details**, and note these values: -## What can go wrong after delivery to the provider+| Field | What it tells you |+|---|---|+| Activity Type | `CyotDeliverySucceeded` means your endpoint accepted the request. `CyotDeliveryFailed` means it didn't complete. |+| DeliveryMethod | `Cyot` for a live request through your provider. `CyotEvaluation` for an evaluation request. |+| Channel | `Sms` or `Voice`. |+| AuthenticationMethod | The method used, such as `OneWaySms` or `OneWayVoiceMobileOtp`. |+| Correlation ID | The identifier to share with support. |+| FailureReason | Why a failed request didn't complete. | -After the request reaches an external telecom provider, two types of problems can occur.+:::image type="content" source="media/troubleshoot-voice-call-sms/audit-log-details.png" alt-text="Screenshot of Audit Log Details for CyotDeliverySucceeded with DeliveryMethod Cyot and Channel Voice." lightbox="media/troubleshoot-voice-call-sms/audit-log-details.png"::: -### The call or message is dropped or blocked+<a id="monitor-microsoft-entra-authentication"></a> -The provider should confirm this issue to Microsoft. Common causes include:+## Check sign-in logs -- **Device-level configuration.** Even when all steps to send the message are correct, the device itself could refuse the call or route it to voicemail. Microsoft automatically retries these failures across different providers.-- **Carrier-level blocking.** The carrier might block the call or message due to international automated fraud detection systems.-- **Regional availability issues.** In rare cases, the message is dropped due to availability issues in a specific country. Microsoft and its providers have robust retry and reroute mechanisms for these scenarios and post automated outage communications when the impact is broadly reported.+Use sign-in logs to confirm whether the user completed authentication. -### The call or message is altered by a downstream carrier+1. Go to **Entra ID** > **Monitoring & health** > **Sign-in logs**.+1. Find the sign-in by user and time, and open it.+1. On **Authentication Details**, review the method, whether the step succeeded, and the result detail. -Because the provider already confirmed delivery, Microsoft can only see a successful delivery per its specification. When message content is altered:+Sign-in logs show the method as **Text message** or **Voice**. To confirm that the request was sent through your provider, use audit logs. -- The customer should provide evidence that the message received on their device didn't appear with the expected branding or channel.-- Microsoft collaborates with the provider to understand the end-carrier behavior taken on behalf of the request.-- The provider will likely correct the route for the affected country code or phone number to avoid carriers that aren't honoring the original message contract.+<a id="monitor-and-notify-operators"></a>+<a id="monitor-the-azure-function"></a> -## What to expect during an investigation+## Check Function App logs -Due to the complexity of global telecom routing and limited visibility beyond the provider, telecom delivery investigations involve coordination across multiple companies and stakeholders.+Use your Function App logs to see how your endpoint processed the request and what it returned to Microsoft Entra. -### Timeline+1. In the Azure portal, open the Function App created by setup.+1. Go to **Monitoring** > **Application Insights**, and open the linked Application Insights resource.+1. Select **Logs**, and run the following query for the time of the attempt: -Investigations into downstream customer-reported delivery issues can take 4–6 weeks. The provider checks their logs and, if no issue is found locally, queries downstream partners who might use additional providers.+ ```kusto+ AppRequests+ | where TimeGenerated > ago(1h)+ | where Url has "/api/SendOtp"+ | project TimeGenerated, ResultCode, Success, DurationMs, OperationId+ | order by TimeGenerated desc+ ``` -### Root cause analysis (RCA) policy+`ResultCode` shows what your Function App returned to Microsoft Entra. To see your provider's response for the same request, query `AppTraces` with its `OperationId`. -Microsoft doesn't publish RCAs for issues that originate with external telecom providers. Carriers often don't share root cause details with Microsoft due to international visibility and competitive agreements.+<a id="diagnose-a-symptom"></a>+<a id="troubleshoot-by-symptom"></a>+<a id="sms-or-voice-isnt-available"></a>+<a id="the-azure-function-isnt-receiving-requests"></a>+<a id="the-endpoint-returns-401-or-403"></a>+<a id="the-request-times-out"></a>+<a id="what-can-go-wrong-after-delivery-to-the-provider"></a>+<a id="the-call-or-message-is-dropped-or-blocked"></a>+<a id="the-call-or-message-is-altered-by-a-downstream-carrier"></a>+<a id="the-provider-accepted-the-request-but-the-message-wasnt-received"></a>+<a id="the-user-receives-the-code-but-authentication-fails"></a>+<a id="troubleshoot-evaluation-mode"></a>+<a id="troubleshoot-during-gradual-rollout"></a> -## Help with the investigation+## Identify who can help -To help Microsoft Support investigate provider-related issues:+Use what you see in audit logs to find the right contact. -- **Submit a Correlation ID and timestamp** for the sign-ins that need investigation. You can find these values in the [sign-in logs](~/identity/monitoring-health/concept-sign-ins.md). The Correlation ID returns all Request IDs associated with the sign-in.+| What you see | What to check | Contact |+|---|---|---|+| No CYOT activity in audit logs | Confirm the date range and filters, that the user is included in SMS or voice targeting, and that a new phone challenge was required. | Microsoft support |+| Only `CyotEvaluation` activity | The profile is in **Evaluation**. Switch to **Production** to route traffic through your provider. | No support needed |+| `CyotDeliveryFailed` with `EndpointClientError` | Your endpoint rejected the request. Check your Function App logs and authentication settings. | Your Azure team |+| `CyotDeliveryFailed` with `EndpointServerError` | Your endpoint returned an error or didn't respond in time. Check your Function App logs and your provider's status. | Your Azure team |+| `CyotDeliveryFailed` with `NonceMismatch` | Your endpoint's response didn't match what Microsoft Entra expects. Compare any customizations with the CYOT sample. | Your Azure team |+| `CyotDeliverySucceeded`, but the user didn't receive the code | Your endpoint accepted the request. Check your provider's delivery records. | Your telecom provider |+| The user received the code, but sign-in failed | Check the sign-in logs for an expired, reused, or incorrect code. | Microsoft support |+| Delivery blocked to certain countries/regions, fraud blocks, or unexpected charges | Review your provider's fraud, destination, and spending controls. | Your telecom provider | - To view the sign-in logs from the Microsoft Entra admin center:+> [!TIP]+> When a request times out, check your provider's records before you try again. Your provider might have already accepted the original request. - 1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com) as at least a [Reports Reader](../role-based-access-control/permissions-reference.md#reports-reader).- 1. Browse to **Entra ID** > **Monitoring & health** > **Sign-in logs**.+<a id="get-help"></a>+<a id="determine-where-to-get-help"></a> - :::image type="content" source="media/troubleshoot-voice-call-sms/sign-in-log-correlation-id.png" alt-text="Screenshot that shows the Date and Correlation ID fields in the sign-in logs in the Microsoft Entra admin center." lightbox="media/troubleshoot-voice-call-sms/sign-in-log-correlation-id.png":::+## Contact support -- **Provide fresh samples.** End carriers often require Correlation IDs from the last 48–72 hours. Older requests may not propagate to the final end carrier in time for investigation. You may be asked to provide multiple samples.-- **Provide evidence of altered messages.** If the message you received didn't appear with the expected branding or channel, share a screenshot or description of what you received.+| Contact | Covers | How to reach |+|---|---|---|+| Microsoft support | Authentication method policy, Microsoft Entra authentication, and the request to your endpoint | [Get support for Microsoft Entra](/entra/fundamentals/how-to-get-support) |+| Your Azure team | Your Function App, its configuration, and Azure resources | Internal. For Azure platform issues, contact Azure support. |+| Your telecom provider | Provider account, delivery, fraud controls, and usage charges | Support details in the provider's [Microsoft Security Store](https://securitystore.microsoft.com/) listing |++<a id="what-to-expect-during-an-investigation"></a>+<a id="timeline"></a>+<a id="root-cause-analysis-rca-policy"></a>+<a id="help-with-the-investigation"></a>+<a id="collect-information-before-contacting-support"></a>+<a id="dont-include"></a>++### Information to include++- Tenant ID, channel (SMS or voice), and the UTC time of the attempt.+- The audit log **Correlation ID**, `DeliveryMethod`, and `FailureReason`.+- Your provider's transaction ID, if available.+- Any recent configuration changes.++<a id="move-to-modern-phishing-resistant-authentication"></a>+<a id="send-sign-in-logs-to-azure-monitor"></a> ## Related content -- [Voice call authentication method in Microsoft Entra ID](concept-authentication-phone-options.md)-- [Configure and enable users for SMS-based authentication using Microsoft Entra ID](howto-authentication-sms-signin.md)\ No newline at end of file+- [Set up SMS and voice with your own telecom provider by using APIs](how-to-set-up-sms-voice-api.md).+- [Plan for resiliency and high availability with your own telecom provider](choose-your-own-telephony-reliability.md).+- [Prevent telephony fraud when using your own telecom provider](choose-your-own-telephony-fraud-costs.md).+- [Audit logs in Microsoft Entra ID](/entra/identity/monitoring-health/concept-audit-logs).+- [Monitor Microsoft Entra sign-ins](/entra/identity/monitoring-health/concept-sign-ins).+- [CYOT sign-in monitoring][sample-sign-in-monitoring].+- [CYOT setup troubleshooting][sample-troubleshooting].+- [Integrate Microsoft Entra logs with Azure Monitor](/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs).+- [Analyze Microsoft Entra activity logs with Log Analytics](/entra/identity/monitoring-health/howto-analyze-activity-logs-log-analytics).++[sample-sign-in-monitoring]: https://github.com/Azure-Samples/ExternalPhoneProvider-AzureFunction-Sample/blob/epp-packages-193-1/docs/SIGN-IN-MONITORING.md+[sample-troubleshooting]: https://github.com/Azure-Samples/ExternalPhoneProvider-AzureFunction-Sample/blob/epp-packages-193-1/setup/docs/Troubleshooting.md 