An Azure communication platform for deploying applications across devices and platforms.
Hi @Balar, Nishilkuma
Thank you for reaching us regarding the issue.
At this time, Azure Communication Services (ACS) Call Automation – including webhook delivery and bidirectional media streaming (WSS) – requires publicly reachable endpoints. There is no supported way today to have ACS initiate calls, callbacks, or media streaming into a private‑only (VNet‑internal) Azure Container App with no public ingress.
- Is there an official Azure-supported way to restrict inbound access to a Container App to ACS only at the network level?
No. ACS requires publicly reachable HTTPS/WebSocket endpoints. You can use VNet integration + internal ingress on Container Apps, but ACS cannot reach a fully private endpoint. Network-level restriction to “ACS only” is not supported. - Does ACS Call Automation support connecting to a private endpoint or VNet-integrated backend for media streaming (WSS)? Is Private Link on the roadmap?
No. ACS does not support private endpoints or Private Link for callbacks or bidirectional media streaming (WSS). The callback URI and media Transport URI must be public with a valid HTTPS certificate. No Private Link roadmap is documented. - Is AzureCommunicationServices available as an NSG Service Tag for inbound rules?
It appears in the downloadable IP ranges JSON, but it is not available as a selectable service tag in the Azure Portal NSG rule builder. Do not rely on it for inbound restrictions. - Is there any recommended architecture pattern from Microsoft for securing Container Apps as ACS Call Automation backends (webhooks + WSS)?
Yes, Use internal ingress + VNet integration for the Container App, then front it with Azure Application Gateway (with WAF) or Azure Front Door. Route only your required paths (/api/incomingCall, /api/callbacks/{contextId}, /ws). Keep strong app-level validation (JWT, secrets, HMAC). This is the recommended layered pattern.
Reference:
https://dori-uw-1.kuma-moon.com/en-us/azure/communication-services/how-tos/call-automation/secure-webhook-endpoint?pivots=programming-language-javascript
https://dori-uw-1.kuma-moon.com/en-us/azure/container-apps/waf-app-gateway?tabs=default-domain
https://dori-uw-1.kuma-moon.com/en-us/azure/application-gateway/application-gateway-websocket
Kindly let us know if the above helps or you need further assistance on this issue.
Please "upvote" if the information helped you. This will help us and others in the community as well.