An Azure communication platform for deploying applications across devices and platforms.
Hello Me to You,
Welcome to the Microsoft Q&A and thank you for posting your questions here.
I understand that you would like to know if Azure Communication Services check availability of specific vanity 712 phone numbers.
For you to be able to check user availability before initiating or routing communication through Azure Communication Services. Understand this that Azure Communication Services does not expose Microsoft Teams or Microsoft 365 user presence/availability APIs. Base on ACS designed, Teams user presence is exposed through Microsoft Graph Presence APIs, not ACS. - https://learn.microsoft.com/en-us/azure/communication-services/overview, https://learn.microsoft.com/en-us/graph/api/resources/presence?view=graph-rest-1.0 This is not an Azure platform defect. It is a product-boundary issue and does not require Azure Support. As a solution architect and base on your scenario, what you can do is to:
- Use Microsoft Graph Presence API to check the target Microsoft 365/Teams user’s availability.
- Use the Microsoft Entra user object ID, not the ACS communication user ID.
- Evaluate the returned
availabilityandactivity. - Proceed with ACS calling, chat, SMS, email, or routing only after the presence decision is made.
- Use Azure Support only if the validated Graph implementation fails with service-side errors after permissions, consent, user ID, and throttling have been confirmed.
Therefore:
- For a single user, call:
GET https://graph.microsoft.com/v1.0/users/{user-id}/presence Authorization: Bearer {access_token} - For multiple users, call:
POST https://graph.microsoft.com/v1.0/communications/getPresencesByUserId Authorization: Bearer {access_token} Content-Type: application/json { "ids": [ "fa8bf3dc-eca7-46b7-bad1-db199b62afc3", "66825e03-7ef5-42da-9069-724602c31f6b" ] } - Use the response to decide the ACS action:
{ "id": "66825e03-7ef5-42da-9069-724602c31f6b", "availability": "DoNotDisturb", "activity": "Presenting" }
If the user is Available, proceed with the ACS interaction. If the user is Busy, DoNotDisturb, Away, Offline, or PresenceUnknown, route to another agent, queue the request, send a notification, or schedule a callback based on your business rule. Microsoft Graph documents the presence object as containing the user’s availability and activity, and the get presence endpoint returns that object when the request is authorized. - https://learn.microsoft.com/en-us/graph/api/presence-get?view=graph-rest-1.0, https://learn.microsoft.com/en-us/graph/api/resources/presence?view=graph-rest-1.0
NB-FOR CLARIFICATION:
ACS can be used to call public numbers, but ACS cannot reliably pre-check real-time availability of those public numbers before calling. For Teams users, use Graph Presence. For public PSTN numbers, use ACS PSTN calling and evaluate the call outcome.
I hope this is helpful. Please! Do not hesitate to let me know if you have any other questions, steps or clarifications.
Please do not close the thread by upvoting and accepting the answer if any part of it is helpful.