customer engagement
37 TopicsGeneral Availability of Teams Phone extensibility
General Availability of Teams Phone Extensibility Powered by Azure Communication Services (ACS) Organizations often struggle with fragmented workflows between UCaaS (e.g., Microsoft Teams) and CCaaS platforms. This limits the potential of generative AI to unify customer interactions and streamline operations. Teams Phone Extensibility (TPE) powered by Azure Communication Services bridges this gap - enabling seamless integration between Teams Phone and CCaaS systems. Key Benefits Unified Telephony: Use Teams Phone for both UCaaS and CCaaS without separate systems. Conversational AI: Integrate AI tools for voice input, greetings, and sentiment analysis. Automated Meeting Summaries: AI captures key decisions and action items in real time, reducing manual notetaking and improving team alignment. Human-Like Communication: AI auto-detects spoken languages to enable natural, seamless conversations without manual selection. Sentiment Analysis: AI tracks emotional tone in real time, helping supervisors support both customers and agents during sensitive interactions. PII Redaction: AI masks sensitive personal data in real time to ensure compliance and build user trust. Extended UCaaS Features: Emergency calling, dial plan policies, and more. Agent Notification Handling: Choose between Teams client or CCaaS app for alerts. Cost Efficiency: Leverage existing Teams Phone plans without extra ACS numbers. Global Reach: Supports Teams Calling Plans, Direct Routing, and Operator Connect. Core Features Provisioning: Connect ACS deployments with Teams tenants for seamless setup. Advanced Call Routing & Controls: Manage calls, add participants, transfer mid-call. Convenience Recording: Customizable call recording for CCaaS scenarios. On-Behalf-Of (OBO) Calling: Apps can initiate/manage calls via Teams Resource Accounts. Call Automation & SDKs: Build intelligent call flows and custom CCaaS clients. Emergency Calling Support: Agents can dial emergency services with location data. Billing Model: Charges apply for ACS SDK usage; Teams licenses required for agents. Telemetry & Diagnostics: Monitor and debug call quality via Azure portal tools. Resources to Get Started https://aka.ms/TPe-Overview https://aka.ms/TPe-FAQ https://aka.ms/TPe-Tutorials https://aka.ms/TPe-SupportBuilding an AI Receptionist: A Hands-On Demo with Azure Communication Services and OpenAI
Ever missed an appointment because of a rigid SMS system? What if you could text a change and get an immediate, natural response that understands your intent and confirms a new slot quickly? In this post, we'll show you how to build an AI receptionist that does just that, using Azure Communication Services and Azure OpenAI. We'll guide you through a hands-on demo that uses a simulated but realistic calendar for reliable confirmations and rescheduling, and show you how to make it production-ready. A natural text thread with the scheduling agent Watch the Walkthrough Prefer a walkthrough? Watch the video demo to see the app in action with live code explanations. This demo is ideal for anyone who wants to explore conversational AI with minimal setup -- whether you're a developer, product manager, or just curious about integrating Azure services. What Actually Happens Under the Hood Here’s the simple set of moving parts behind the “AI receptionist” feel. First a quick look at each piece, then the exact path a message takes. Core pieces we’re using for this demo: Azure Communication Services: Provides the real phone number, receives incoming text messages, and sends replies. Azure Event Grid: Immediately forwards each new message event to a public URL (the webhook) your app exposes. FastAPI: Hosts that webhook (an HTTP endpoint) and keeps simple in‑memory conversation and calendar data. Azure OpenAI: Generates the receptionist’s reply using the running conversation plus a small snapshot of available appointment times. Simulated calendar: Thirty upcoming business days with realistic fullness so the system can offer believable open slots. Then the message moves through this path: You send a text message to the demo phone number (handled by Azure Communication Services). Azure Communication Services raises a “message received” event. Azure Event Grid delivers that event as an HTTP POST to the FastAPI webhook (a regular URL). The webhook quickly returns “OK” and kicks off a background function (process_sms in main.py) so the user is never kept waiting. If this is your first message, it creates a mock appointment for “tomorrow” and sends a reminder; otherwise it adds your new message to the conversation history. It selects a few upcoming open slots from the simulated calendar, adds them to the system prompt, asks Azure OpenAI for a receptionist‑style reply, and receives the response. The reply goes back through Azure Communication Services, and the conversation state stays in memory. That’s the loop. An event arrives, flows through a thin path, and a reply goes out. No constant checking (polling) or scheduled scripts needed. Demo vs Production In the demo you start the conversation by texting the number. In a production rollout, you usually send an automated reminder (for example 24 hours before) and let the patient reply to confirm or change. From there the path is straightforward: swap the simulated calendar for a real scheduling API, persist conversation and appointment state, add authentication and signed webhook validation, and layer in logging and compliance. The event flow itself staysthe same. The Calendar Trick We prebuild the next 30 business days (weekdays only), 09:00–17:00 in 30-minute slots, mark about 80 percent as “booked,” and keep the rest “available.” On each turn we pull a small handful of near-term open times and add them to the system prompt. That gives the model concrete, bounded choices and prevents it from inventing odd times like “3:10 AM” or “Saturday 7 PM.” A single snapshot replaces custom slot logic while still feeling live. The FastAPI routes for getting calendar logic Prompt Strategy The system prompt frames a single role: a friendly receptionist limited to scheduling (no medical advice, within business hours, 30-minute increments). Each user message refreshes the availability lines so the model always sees current openings. The rules: only offer specific times when rescheduling, stay concise, and confirm final details. This balance keeps replies natural while keeping time suggestions controlled. Where to Take It Next To evolve the demo into a dependable production service you layer durability, richer scheduling logic, safety, and observability onto the same event path - no rewrite required. Productization Persist conversations and appointments (database + real scheduling/calendar API) Authentication, signed webhook validation, rate limiting Structured logging, tracing, latency and token metrics Scheduling intelligence Function / tool calls for explicit slot selection Real calendar integration (Outlook, scheduling API, electronic health record system) Time zones, appointment types, user preferences (language, time windows) Safety & context Moderation / compliance filters Retrieval for policies, preparation instructions, service types Insights & analytics Analytics (reminder → confirmation rate, response latency, fallback counts) Getting It Running (You’ll Spend Minutes, Not Hours) This setup is intentionally light. The only potentially slow step is acquiring a phone number in Azure Communication Services (see the official quickstart). Full step-by-step instructions (environment variables, dev tunnel, Event Grid subscription) live in the demo repository README. The high-level overview is: Clone the repository and copy .env.example to .env Add Azure Communication Services connection string + phone number and Azure OpenAI endpoint/key/model. Install dependencies and start the app on port 8000. Expose port 8000 with a dev tunnel and point an Event Grid SMSReceived subscription to /api/sms/webhook. Text your Azure Communication Services number and observe inbound event and reply in the terminal. Screenshot of a terminal log with inbound event + “SMS sent to ACS number" Closing You now have an event‑driven SMS conversation that feels like a live receptionist using only a phone number, a webhook, a lightweight availability snapshot, and a model prompt. Clone the repository, run the demo, and try a reschedule from your own phone. Extend it and make it your own - whether that means integrating a real scheduling API, adding persistence, or incorporating compliance features. We’d love to see what you build.10 Things You Might Not Know You Could Do with Azure Communication Services
Azure Communication Services gives developers the building blocks for voice, video, chat, SMS, and more. But the real magic happens when you start combining those capabilities with other Azure services to solve real-world problems. This blog isn’t a feature list or a product pitch. It’s a collection of creative, practical scenarios that show what’s possible with Azure Communication Services today. Each one is based on real questions, real demos, and real developer experiences. Some are simple. Some are surprisingly powerful. All of them are designed to spark ideas. We’ve included links to sample code, documentation, and visuals to help you dive deeper. And we’ll keep this post updated as new scenarios emerge, so if you’ve built something cool, let us know! Build a Voice Assistant That Understands Users—and Follows Through 🔎 Quick Look What it does: Create a voice-first assistant that can understand, respond, and follow up using natural language. Why it matters: Offers a more intelligent, flexible alternative to traditional IVRs. What you'll need: Azure Communication Services for voice, Azure OpenAI, and backend logic to handle actions. Most voice agents are limited to scripted menus or keyword matching. But with Azure Communication Services and Azure OpenAI, you can build a voice experience that actually understands what users are saying and responds with meaningful action. In this demo, a user calls a virtual assistant looking for dinner inspiration. Instead of navigating a rigid menu, they just talk naturally. The assistant interprets the request, asks follow-up questions, and sends a personalized recipe link via SMS—all powered by Azure Communication Services for both the voice and messaging workflows. This kind of voice-first interaction is ideal for customer support, concierge services, or any scenario where users want to speak naturally and get something done. Watch the video below to see the full experience in action or explore the demo yourself here. Send Responsive Messages in Real-Time 🔎 Quick Look What it does: Trigger personalized messages based on real-time user behavior (like missed appointments or failed logins). Why it matters: Helps you move beyond static reminders to more timely, relevant communication. What you’ll need: Azure Communication Services, Azure Event Grid, Azure OpenAI, and an event source like a Logic App or backend service. Most messaging systems are built around schedules: send a reminder at 9 AM, a follow-up two days later, and so on. But what if your messages could respond to what your users are doing right now? With Azure Communication Services, you can build event-driven workflows that trigger messages based on real-time behavior. A customer misses an appointment. A user completes a transaction. A login attempt fails. Using Azure Event Grid, you can detect these events, generate a tailored message with Azure OpenAI, and send it instantly via SMS, email, or WhatsApp using Azure Communication Servies. This approach helps teams move beyond static, one-size-fits-all messaging. It enables timely, relevant communication that’s easier to maintain and scale - without manually scripting every variation. Learn more and get started: Azure Communication Services as an Event Grid source Handle SMS events with Event Grid Push notifications overview Use Event Grid to send calling push notifications Let Users Schedule Appointments by Text – In Their Own Words 🔎 Quick Look What it does: Enable natural language scheduling over SMS. No apps, menus, or portals required. Why it matters: Makes scheduling faster and more user-friendly, especially for service-based businesses. What you’ll need: Azure Communication Services for SMS, Azure OpenAI to interpret intent, and a backend or Logic App to manage availability and confirmations. Coordinating appointments over email or phone is slow and manual. Even traditional SMS-based schedulers often rely on rigid decision trees that break when users type something unexpected. This demo takes a smarter approach. By combining Azure Communication Services with Azure OpenAI, it lets users book, confirm, or reschedule appointments through natural, conversational SMS - no app, no portal, no menus. Just text like you normally would: “Hey, can I move my appointment to next Tuesday?” “Do you have anything earlier in the day?” Behind the scenes, Azure Communication Services handles the messaging layer, while OpenAI interprets the user’s intent and routes it to backend logic that manages availability and confirmations. It’s a lightweight, flexible solution that’s ideal for clinics, service providers, or any business that wants to streamline scheduling—without sacrificing user experience. Try the SMS scheduling demo. Everything you need to get started is in the README. Reach Customers on WhatsApp – Right Alongside SMS & Email 🔎 Quick Look What it does: Send messages across WhatsApp, SMS, and email from a single workflow. Why it matters: Increases engagement by meeting users where they are. What you’ll need: Azure Communication Services with Advanced Messaging SDK, verified sender setup for each channel Your customers are already on WhatsApp. Now your app can be too, without rearchitecting your entire messaging stack. Azure Communication Services lets you send and receive WhatsApp messages using the same platform you already use for SMS, email, and chat. That means you can reuse your existing workflows, backend logic, and delivery infrastructure - just with a new channel that meets your users where they are. Whether it’s appointment reminders, shipping updates, or live customer support, WhatsApp becomes just another part of your communication toolkit. You can trigger messages using Azure Event Grid, automate replies with Azure Bot Framework, and manage everything through the Advanced Messaging SDK. Want to see it in action? This quickstart guide walks you through registering your WhatsApp Business Account, connecting it to Azure Communication Services, and sending both text and media messages. > Channels selected from the blade menu. Learn more: Overview of Advanced Messaging for WhatsApp Send text and media WhatsApp messages (Quickstart) Publish an agent to WhatsApp using Copilot Studio Let Customers Join a Teams Meeting- Without a Teams Account 🔎 Quick Look What it does: Embed a browser-based Teams meeting experience into your app or site. Why it matters: Makes it easy for customers to join secure meetings without downloading Teams or signing in. What you’ll need: Azure Communication Services with Teams interop, a Teams meeting link, and a web app or portal. Not every customer wants to download an app or create a Microsoft account just to join a meeting. With Azure Communication Services, you can embed a fully branded, browser-based meeting experience into your app or website that connects directly to a Microsoft Teams meeting - no Teams account required. This is especially useful for industries like healthcare, legal, or financial services, where external participants need to join secure consultations or appointments without friction. You control the UI, the branding, and the flow, while Azure Communication Services handles the real-time voice and video connection to Teams. You can see how this works in the interop-quickstart demo, which shows how to create a Teams meeting, generate a join link, and embed the experience in a custom app. Handle Teams Calls Inside Your CRM—No App Switch Required 🔎 Quick Look What it does: Let agents make and receive Teams calls directly inside Dynamics 365 or a custom contact center UI. Why it matters: Reduces context switching and improves agent efficiency. What you’ll need: Teams Phone Extensibility, Azure Communication Services Call Automation, Dynamics 365 or another CCaaS. Most contact center agents juggle multiple tools - CRM, phone, notes, AI assistants - just to handle a single call. But what if they could do it all in one place? With Teams Phone Extensibility, powered by Azure Communication Services, agents can make and receive Teams calls directly inside Dynamics 365 or any custom contact center app. No need to open the Teams client. Here’s what’s possible: Answer calls in a custom agent desktop, routed through Teams Phone. Trigger AI workflows mid-call—like summarizing the conversation with Azure OpenAI or escalating to a supervisor. Initiate outbound calls from bots or workflows using ACS’s Call Automation APIs. Record and analyze calls with full control over logic and storage. It’s a surprising way to bring AI, voice, and CRM together, without rebuilding your contact center from scratch. Embed Secure Video Visits to Your Healthcare App–Fast 🔎 Quick Look What it does: Add HIPAA-compliant video calling with identity integration. Why it matters: Enables secure, branded telehealth or consultation experiences. What you’ll need: Azure Communication Services for video, Azure AD B2C, and a secure frontend. Telehealth is here to stay. But building a secure, compliant video experience from scratch can be a heavy lift. Azure Communication Services makes it easier. With built-in support for HIPAA, GDPR, and SOC 2, encrypted media transport, and identity integration via Azure AD B2C, Azure Communication Services lets you embed video calling directly into your app—without compromising on privacy or user experience. The Sample Builder shows how to combine video, chat, and SMS into a seamless patient-provider experience. It’s ready to deploy, customize, and scale. Learn more: Azure Communication Services HIPAA compliance overview Quickstart - Add video calling to your app - An Azure Communication Services quickstart | Microsoft Learn Combine AI and Human Support in a Single Chat Experience 🔎 Quick Look What it does: Start with an AI assistant and escalate to a human agent with full context. Why it matters: Scales support while preserving the human touch when needed. What you’ll need: Azure Communication Services for chat, Azure OpenAI, bot framework, and agent handoff logic. Most customer service chats start with automation—but they shouldn’t get stuck there. With Azure Communication Services, you can build a chat experience that begins with an AI assistant and hands off to a human agent when it makes sense. This demo shows how it works: a customer starts chatting through a web widget. An AI assistant, powered by Azure OpenAI, handles common questions and tasks. If the conversation gets complex or the user asks for help, the chat transitions smoothly to a live agent—no context lost. Agents can even generate AI-powered summaries to get up to speed quickly before jumping in. It’s a practical way to scale support without sacrificing the human touch. . On the left, a dialog box displays the user experience, while on the right, the agent's view shows the conversation summary and includes a button to take over the automated chat. Build a voice-first, AI virtual assistant in Under a Week 🔎 Quick Look What it does: Launch a branded voice assistant quickly using Zammo.ai and ACS. Why it matters: Speeds up deployment of voice experiences across channels. What you’ll need: Zammo.ai, Azure Communication Services for voice, and a publishing channel (e.g., Alexa, web). When Montgomery County, Maryland needed to support COVID-19 vaccine registration, they didn’t have months to build a solution. In just six business days, they launched a voice-first virtual assistant that handled 100% of inbound calls: automating appointment scheduling, supporting English and Spanish, and deflecting thousands of calls from live agents. They partnered with Zammo.ai to build the experience, all without writing custom code. Where Azure Communication Services fits in: Azure Communication Services powered the voice infrastructure, enabling a scalable, multilingual experience that saved time, reduced hold times by 90%, and helped the county serve residents more equitably. Don’t take our word for it, learn more about how it came together here. Know What You’ll Pay, Before You Ship 🔎 Quick Look What it does: Estimate costs and usage before you build. Why it matters: Helps you plan and budget more effectively. What you’ll need: Azure Communication Services pricing calculator, usage estimator, and billing dashboard. One of the first questions developers ask when building with Azure Communication Services is: “How much is this going to cost me?” And the answer is: it depends, but in a good way. Azure Communication Services uses a flexible, pay-as-you-go pricing model. You’re only billed for what you use - no upfront commitments, no recurring subscription fees. That makes it easy to prototype, test, and scale without overcommitting. Each communication channel (SMS, email, voice/video calling, and WhatsApp) has its own pricing structure based on usage volume, geography, and delivery method. For example: SMS to U.S. numbers is priced differently than international messages. Voice calls vary depending on whether you’re using VoIP, PSTN, or Teams interop. WhatsApp pricing may involve partner-based rates through Messaging Connect. There are a few exceptions to the pay-as-you-go model. For instance, leasing a dedicated phone number incurs a monthly fee. But overall, the model is transparent and developer-friendly. To help you estimate costs and plan ahead, here are some helpful resources: Azure portal pricing calculator: Azure Communication Services pricing | Microsoft Azure Azure Communication Services Pricing Overview: Azure Communication Services pricing | Microsoft Azure What Will You Build Next? Azure Communication Services gives you the flexibility to build the communication experience your users actually want - whether that’s a quick SMS, a secure video call, or a voice assistant that gets things done. And when you combine ACS with other Azure services like OpenAI, Event Grid, and Bot Framework, the possibilities expand even further. We’ll keep this post updated as new scenarios and demos emerge. If you’ve built something interesting with ACS, we’d love to hear about it—and maybe even feature it in a future post. Check out our official documentation to get started today!Messaging Connect: Global SMS Coverage Now Available in Azure Communication Services
Messaging Connect is now in public preview—Messaging Connect is a new partner-based model for Azure Communication Services that enables global SMS coverage in over 190 countries—starting with Infobip. It simplifies compliant delivery, removes provisioning complexity, and helps developers reach users or Agents reach humans, worldwide using the Azure Communication Service SMS API they already know.Identities with Custom ID: A Simpler, Smarter Way to Manage Communication Users
In today's multi-modal communication landscape, both humans and AI agents can interact across multiple sessions—via chat, voice, or other communication channels. Managing those user sessions securely and consistently has been a challenge when using short-lived, ephemeral identities. Azure Communication Services (ACS) now solves that with Identities with Custom IDs. This new feature allows developers to associate ACS-generated identities with custom application-defined identifiers (like emails or usernames). These custom identifiers make it easy to recognize and reuse an ACS user identity across multiple sessions — enabling smoother experiences, stronger data consistency, and more intelligent engagement across the entire customer journey. 💡 With Custom IDs, developers can now unlock deeper intelligence across customer journeys — from onboarding to support to re-engagement — all powered by consistent identity data. Imagine a telehealth platform where patients log in using their email addresses. Previously, developers had to build and maintain a custom mapping layer to associate those emails with ACS identities. Now, with Custom IDs, that mapping is handled automatically—developers can use the email (or any custom identifier) directly using the customId attribute when creating an Identity, and ACS ensures it consistently maps to the same ACS-generated identity across sessions. How Identity Management is Simplified with Custom IDs: The diagram compares two approaches to identity management in Azure Communication Services: Traditional Identity Flow (Left Diagram): Authentication Initiation – The customer starts the process by logging into the Woodgrove Client App. Token Retrieval – The client app authenticates the user and retrieves a secure token from the Identity and Access Management system (IAM). Identity Mapping – The client app sends an identifier to a back-end identity mapping service, which maps such identifier to an ACS identity. ACS Token Retrieval – The client app obtains an ACS authentication token from the IAM for the mapped ACS identity. Start communication – The client app uses the ACS token to start communication through the different services (chat, calling, etc.) This traditional flow requires the app to manage ACS identity creation and short-lived identifiers for each session. Custom ID Flow with Durable Identity (Right Diagram): Authentication Initiation – The customer starts the process by logging into the Woodgrove Client App. Token Retrieval – The client app authenticates the user and retrieves a secure token from the Identity and Access Management system (IAM). ACS Token creation with custom Id – The client app creates an authentication token using the custom Id and gets an access token for a consistent ACS identity. Start communication – The client app uses the ACS token to start communication through the different services (chat, calling, etc.) This flow eliminates the need to manage ACS identity mapping or short-lived identifiers for each session. Example Code: How Custom ID Works //Authenticate the client var client = new CommunicationIdentityClient(connectionString); // Alphanumeric custom ID string customId = "alice@contoso.com"; // Create Access Tokens with using an Identity with Custom Id var userAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat }, customId: customId); var user = userAndTokenResponse.Value.User; Console.WriteLine($"\nUser ID: {user.Id}"); // Create another token with the same customId and validate that the same user is returned var userAndTokenResponse2 = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.Chat }, customId: customId); var user2 = userAndTokenResponse2.Value.User; Console.WriteLine($"\nUser ID (second call): {user2.Id}"); // Validate they are the same Debug.Assert(user.Id == user2.Id); This confirms that custom IDs map consistently to the same durable ACS identity. 🔄 Repeated calls with alice@contoso.com return the same ACS user ID — demonstrating the reliability of Identities with Custom ID. 🔐 Custom IDs are handled securely and are never exposed beyond your own app’s context, ensuring that identity data remains protected and private. 📌 Explore the sample code and documentation to get started: Identity model, JS SDK, .NET SDK, QuickStart.Lockheed Martin & Librestream boost mission readiness with secure video collaboration platform
The following is a public press release from Lockheed Martin & Librestream announcing the launch of their secure video collaboration platform. In an effort to continue ensuring armed forces are ready for any mission, Lockheed Martin and Librestream have partnered with Microsoft to revolutionize defense sustainment with the introduction of Onsight NOW, an advanced remote collaboration platform. Onsight NOW enables seamless communication, enhances teamwork and boosts productivity through its advanced features, including chat, annotations and multi-user calling capabilities. The tool operates on Microsoft's Azure Government Cloud, which provides a secure and reliable method for defense operations teams to collaborate in real-time, enabling them to share live video feeds, annotate critical information, and capture vital information – all while maintaining the highest levels of security and compliance. Azure Government services provide a strong and secure foundation for cloud computing that meets the high standards of defense agencies. This includes being certified for FedRAMP, which is a strict set of federal security guidelines. “Lockheed Martin’s implementation of Onsight NOW on Azure Government is a testament to its unwavering commitment to pioneering secure, cutting-edge solutions in defense sustainment. By leveraging Onsight NOW, Lockheed Martin is not only advancing operational efficiency but also setting a new benchmark for secure, interoperable video collaboration across the defense sector,” said Dan Flynn, Managing Director, Global Defense at Librestream. Onsight NOW on Azure Government is installed securely within Lockheed Martin’s own cloud environment, which ensures sensitive information is protected and handled correctly. This permits both Lockheed Martin and external partners to securely collaborate in real time. “Aligned with 1LMX – our mission-driven business and digital transformation program – Onsight NOW will ultimately deliver the speed, agility and insights our customers need to be ready to address growing security threats across the world,” says Drew Robbins, Vice President of Sustainment Operations at Lockheed Martin. “By facilitating timely maintenance, enhancing collaboration, reducing costs and ensuring compliance, Onsight NOW will ultimately improve readiness for critical missions, ensuring air dominance for America and its allies.” “We are thrilled to partner with Lockheed Martin and Librestream to launch Onsight NOW for Azure GOV,” said Bob Serr, VP of Engineering at Azure Communication Services. “This collaboration exemplifies our commitment to providing secure and innovative solutions that empower defense agencies to maintain mission-critical assets with the highest standards of security and compliance.” Learn more about Lockheed Martin and Librestream on their website or LinkedIn.Public Preview of Teams Phone extensibility for CCaaS ISV solution developers
At Enterprise Connect in March, we introduced Teams Phone extensibility for Dynamics 365 Contact Center and contact center as a service (CCaaS) ISV solutions to help organizations extend their telephony investment with Teams Phone into the contact center. On June 2nd 2025, we are pleased to announce that ISV developers can now access Teams Phone extensibility in public preview for their CCaaS solutions. Background With generative AI, Contact Center as a Service (CCaaS) providers can easily advise human agents so they’re responsive to customer needs, can automate workflows and ultimately improve the overall customer experience. However, workflows are often divided between Unified Communications as a Service (UCaaS) providers like Microsoft Teams and CCaaS systems. This division limits generative AI's potential to streamline operations and deliver a consolidated view of data. Today, organizations want integrated, customizable solutions from their CCaaS providers that unify telephony infrastructure for a complete view of customer interactions and robust data handling. Teams Phone extensibility benefits for CCaaS developers Teams Phone extensibility, which is powered by Azure Communication Services (ACS), enables CCaaS vendors to integrate seamlessly with Teams Phone and deliver several benefits to their customers and end-users, including: Consolidated Telephony for UCaaS and CCaaS: Simplified setup with no need to configure and administer separate phone systems. Customers can use their Teams phone telephony investment for contact center deployments. Conversational AI Integration: Developers can use Call Automation APIs to use AI-powered tools, play personalized greeting messages, and recognize conversational voice inputs. Extend UCaaS Capabilities to CCaaS: Take advantage of Teams Phone enterprise features, including emergency calling and dial plan policies. Agent Notification handling: Enable data segregation between CCaaS persona and UCaaS persona with the choice of ringing either the Teams standard client or a CCaaS application. Cost Efficiency: Enable ISVs to build cost-effective solutions using existing Teams Phone plans, without adding Azure Communication Services numbers or Direct Routing. Broader Geographic Availability: Integration with Teams Calling Plans, Direct Routing, and Operator Connect provides wider telephony options. Key Features Provisioning for Seamless Integration: Empower CCaaS providers to connect their ACS deployments with customers' Teams tenants, enabling the use of Teams telephony features for a cohesive and efficient communication experience. Call Routing and Mid-Call Controls: Advanced call routing capabilities for efficient call management and escalation to agents. Mid-call controls enable adding participants, redirecting calls, and transferring calls seamlessly. Convenience Recording: Integrate call recording capabilities into Microsoft Teams for CCaaS scenarios, enabling customized recording processes controlled by CCaaS admins. For more information, see Call Recording overview. Conversational AI Integration: Developers can use Call Automation APIs to leverage AI-powered tools, play personalized greeting messages, recognize conversational voice inputs, and use sentiment analysis to improve customer service. Get started today with this Call Automation OpenAI sample. On-Behalf-Of (OBO) calling enables applications to initiate and manage voice calls on behalf of a Teams Resource Account, enabling seamless integration with enterprise workflows Leverage Call Automation: Azure Communication Services Call Automation APIs provide call control and enable CCaaS providers to build server-based and intelligent call flows. Leverage Client SDK: Azure Communication Services Client SDK provide the means for a CCaaS provider to develop a custom client for CCaaS persona workflows In this release, we are adding the following new features: Emergency Calling: Powered by Azure Communication Services Calling SDK, we bring enhanced emergency calling support for agents who can dial emergency services, provide their static location, and receive callbacks from public safety answering points with Teams Phone service numbers. Billing: The Teams Phone extensibility business model charges CCaaS vendors for using Azure Communication Services SDKs, including Calling SDK, VoIP consumption, Audio Insights, and Call Recording, while end users must use Teams Calling Plans and enable necessary Teams licenses for agents and resource accounts. More details on Azure Communication Services pricing can be found here. Telemetry: Developers and CCaaS providers can access calling details and logging tools as part of the Teams Phone extensibility. Telemetry enables developers and system admins to monitor call use and debug call quality from the Azure portal either. They can do this by analyzing the Call Summary and Call Diagnostic Logs with a clear Team Phone Extensibility identifier or using the Call Diagnostic Center. We want your feedback We are eager to hear your feedback on the performance, reliability, and overall user experience. Your insights on any missing functionalities or additional scenarios that should be considered are invaluable. Your feedback helps us refine and enhance the feature before general release, ensuring it meets the needs of our customers. We look forward to hearing your thoughts! Get started today Developers can join the Azure Communication Services Technology Adoption Program (TAP) here: Azure Communication Services Technology Adoption Program Registration. We look forward to seeing how partners and customers like you leverage these new capabilities to improve your contact center operations. Concept: https://aka.ms/TPe-Overview FAQ: https://aka.ms/TPe-FAQ Tutorials: https://aka.ms/TPe-Tutorials Support: https://aka.ms/ACS-Support1.7KViews0likes0CommentsMoving Email Traffic from Exchange to Azure Communication Services
This article describes the important steps and considerations for transitioning from Exchange Online or other on-premises solutions to the Azure Communication Services email platform. It is also relevant for customers migrating from other mail solutions, whether on-premises or hybrid, to Azure Communication Services.Customer Support Chat Demo with Azure Communication Services and Azure OpenAI
You know the drill. You’re stuck in a support chat, typing “agent” like it’s a secret password. The bot doesn’t get it. You repeat yourself. You wonder if anyone is actually listening. We built this demo to show how easy it can be to fix that experience—with the right tools. This is a working example of how Azure Communication Services and Azure OpenAI can come together to create a customer support chat that’s fast, helpful, and human when it needs to be. The Goal: Show, Don’t Just Tell The goal was to create a lightweight, modular customer support experience that feels modern and responsive—without requiring a massive engineering lift. The demo includes: A Customer Chat Widget where users can send messages and get responses instantly. An Agent Portal where support agents can monitor conversations, take over when needed, and get up to speed quickly. A Bot Service that uses Azure OpenAI to generate responses and manage the conversation flow. A Summary Service that creates quick recaps of conversations, so agents don’t have to scroll through every message. And at the center of it all, Azure Communication Services, which handles all the real-time messaging, notifications, and chat thread management. The result is a full customer support flow that feels modern, responsive, and human-friendly. What Happens When a Customer Sends a Message Here’s the flow, step by step: The customer types a message in the chat widget and hits send. This message is sent to Azure Communication Services, which handles real-time delivery. The bot service picks it up, adds it to the conversation history, and sends it to Azure OpenAI. Azure OpenAI returns a response, which the bot sends back through Azure Communication Services to the customer. The message appears in both the customer’s chat and the agent’s dashboard. If needed, the agent can click “Take Over” to jump in and continue the conversation directly. At any point, the agent can click “Summarize” to get a quick recap of the conversation so far, powered by Azure OpenAI. It’s a clean loop, and it’s built entirely on services that are already part of the Azure ecosystem. The diagram below provides further detail and visual clarity on the demo flow. Azure Communication Services at the Core We used Azure Communication Services because it gave us everything we needed for real-time communication—chat threads, participant management, typing indicators, message delivery, and more. It’s reliable, scalable, and easy to integrate into both the frontend and backend. No custom socket servers. No polling hacks. Just real-time messaging that works. Why OpenAI Made It Better The AI assistant isn’t just there to answer questions—it’s there to make the whole experience smoother. It understands context, keeps track of the conversation, and knows when to step aside. We used Azure OpenAI to: Generate responses based on a system prompt and full conversation history. Create summaries that help agents get up to speed instantly. Keep the tone consistent and helpful across the entire interaction. Built for handoff, not just automation One of the most important parts of this demo is the agent handoff. We designed it so that the bot knows when to stop talking and let a human take over. When the agent clicks “Take Over,” the bot steps back, and the agent picks up the thread—no awkward transitions, no lost context. And because the summary service is always running in the background, the agent doesn’t have to scroll through the entire chat to figure out what’s going on. They get a quick, AI-generated recap that brings them up to speed in seconds. What this demo proves This demo was a focused build to prove a point: you can create a smart, real-time customer support experience using ACS and Azure OpenAI without a massive engineering lift. We wanted to show: How easy it is to wire up Azure Communication Services for real-time messaging. How OpenAI can enhance—not replace—the human support experience. How a little structure (like summaries and handoff logic) goes a long way. Try it yourself! The full demo is available now. You can clone the repo, run it locally, and see how Azure Communication Services and Azure OpenAI work together in a real-world customer support scenario. Once you have the required Azure resources, getting this demo running is simple: Clone the repository Add your credentials to a .env file Run npm start Here’s what your .env file should look like: That’s it. No scaffolding. No boilerplate. Just a working customer support experience you can run locally in minutes. The GitHub repo includes everything you need to get started, including how to generate tokens, configure your environment, and run the app. We’d love to hear what you build with it. Or better yet, fork it and show us.Create next-gen voice agents with Azure AI's Voice Live API and Azure Communication Services
Today at Microsoft Build, we’re excited to announce the General Availability of bidirectional audio streaming for Azure Communication Services Call Automation SDK. Unveiling the power of speech-to-speech AI through Azure Communication Services! As previously seen at Microsoft Ignite in November 2024 the Call Automation bidirectional streaming APIs already work with services like Azure OpenAI to build conversational voice agents through speech to speech integrations. Now with General Availability release of Call Automation bidirectional streaming API and Azure AI Speech Services Voice Live API (Preview), creating voice agents has never been easier. Imagine AI agents that deliver seamless, low-latency, and naturally fluent conversations, transforming the way businesses and customers interact. Bidirectional Streaming APIs allow customers to stream audio from ongoing calls to their webserver in near real-time, where their voice enabled Large Language Models (LLMs) can ingest the audio to reason over and provide voice responses to stream back into the call. In this release we have added support for extra security by adding JSON Web Token (JWT) based authentication for the websocket connection allowing developers to make sure they’re creating secure solutions. As industries like customer service, education, HR, gaming, and public services see a surge in demand for generative AI voice chatbots, businesses are seeking real-time, natural-sounding voice interactions with the latest and greatest GenAI models. Integrating Azure Communication Services with the new Voice Live API from Azure AI Speech Services provides a low-latency interface that facilitates streaming speech input and output with Azure AI Speech’s advanced audio and voice capabilities. It supports multiple languages, diverse voices, and customization, and can even integrate with avatars for enhanced engagement. On the server side, powerful language models interpret the caller's queries and stream human-like responses back in real time, ensuring fluid and engaging conversations. By integrating these two technologies customers can create new innovative solutions for: Multilingual agents Develop virtual customer service representatives capable of of having conversations with end customers in their preferred language, allowing customers creating solutions for multilingual regions to create one solution to serve multiple languages and regions. Noise suppression and echo cancellation For AI voice agents to be effective they need clear audio to understand what the user is requesting, in order to improve AI efficiency, you can use out of the box noise suppression and echo cancellation built into the Voice Live API to help provide your AI agent the best quality audio to be able to clearly understand the end users requests and assist them. Support for branded voices Build voice agents that stay on brand with custom voices that represent your brand in any interaction with the customer, use Azure AI Speech services to create custom voice models that represent your brand and provide familiarity for your customers. How to Integrate Azure Communication Services with Azure AI Speech Service Voice Live API Language support With the integration to Voice Live API, you can now create solutions for over 150+ locales for speech input and output with 600+ realistic voices out of the box. I if these voices don’t suit your needs, customers can take this one step further and create custom speech models for their brand. How to start bidirectional streaming var mediaStreamingOptions = new MediaStreamingOptions( new Uri(websocketUri), MediaStreamingContent.Audio, MediaStreamingAudioChannel.Mixed, startMediaStreaming: true ) { EnableBidirectional = true, AudioFormat = AudioFormat.Pcm24KMono }; How to connect to Voice Live API (Preview) string GetSessionUpdate() { var jsonObject = new { type = "session.update", session = new { turn_detection = new { type = "azure_semantic_vad", threshold = 0.3, prefix_padding_ms = 200, silence_duration_ms = 200, remove_filler_words = false }, input_audio_noise_reduction = new { type = "azure_deep_noise_suppression" }, input_audio_echo_cancellation = new { type = "server_echo_cancellation" }, voice = new { name = "en-US-Aria:DragonHDLatestNeural", type = "azure-standard", temperature = 0.8 } } }; Next Steps The SDK and documentation along will be available in the next few weeks following this announcement, allowing you to build your own solutions using Azure Communication Services and Azure AI Voice Live API. You can download our latest sample from GitHub to try this for yourself. To learn more about the Voice Live API and all its different capabilities, see Azure AI Blog.