Contact Sales

All fields are required

Building Smarter Call Flows with SignalWire, WebRTC, and… | SignalWire
Product

Building Smarter Call Flows with SignalWire, WebRTC, and AI

LIVEWire: Mastering Call Flows with SignalWire + WebRTC

If you’ve ever tried building a real-time communications app using raw WebRTC or SIP, you know the challenge: the protocols are powerful, but the tooling is fragmented. You either stitch everything together yourself (painfully), or pay a premium for a bloated CCaaS/UCaaS platform with no room to innovate.

At SignalWire, we think there's a better approach: Programmable Unified Communications (PUC).

PUC gives you the flexibility of raw protocols, but in a fully programmable environment where media, logic, and AI live in the same layer, rather than as bolted on afterthoughts. WebRTC becomes just another addressable resource, and your app becomes the call flow.

That’s the foundation of our platform: Call Fabric. And at our latest LIVEWire event, we showed what happens when you bring WebRTC and AI together in a PUC environment.


Why architecture still matters in 2025

Today’s developers are often stuck choosing between building low-level voice and video systems from scratch, and buying locked-down solutions that hide the call stack and limit flexibility.

Call Fabric (our implementation of the PUC model), a suite of programmable resources. These resources, like Rooms, Subscribers, AI Agents, Phone Numbers, and SIP endpoints are scriptable, composable, and addressable via SignalWire Markup Language (SWML).

If HTTP made the web programmable, PUC does the same for telecom.

Even with great APIs, infrastructure choices still show up where users notice most: latency. When you're working with voice and video, milliseconds matter because they shape the flow of the conversation.

What many platforms don’t tell you is that a lot of latency is self-inflicted, especially in systems that chain together various services, use third-party media relays, or rely on bolted-together infrastructure.

Most legacy CPaaS vendors bounce WebRTC media through multiple hops:

  • Their TURN/STUN layer

  • Their signaling layer

  • Their processing layer

  • Their bridge layer

  • Then finally to the destination

Every hop adds 100-200ms and those delays add up fast.

SignalWire avoids all that. Here’s how:

Single-layer media routing

SignalWire runs media through a single-layer router and only anchors media when it’s actually needed (for example, for PSTN bridging, transcription, or recording). If your app allows peer-to-peer media, we’ll route it directly with no anchors.

Geographically distributed edge nodes

We deploy geographically distributed edge nodes to keep both signaling and media paths close to users. If you're embedding WebRTC into a global app, our infrastructure ensures that proximity, not platform logic, determines the route.

Your media doesn't backhaul through a fixed region or shared MCU. It stays near the user.

Built in TURN/STUN (But only when needed)

SignalWire offers built in TURN/STUN services. But unlike other vendors, you don’t have to preconfigure or deploy them yourself. We use them automatically only when peer-to-peer connections can’t be negotiated, avoiding unnecessary relays unless absolutely required.

No middleware bloat

Our signaling server is SignalWire. There’s no third-party middleware, and no extra layer to debug or optimize. Everything from call logic to AI agent invocation is handled inside the platform stack using SWML.

Telephony-grade foundation

SignalWire is built by the creators of FreeSWITCH, the same open-source platform used by telcos for high-throughput VoIP. But instead of giving you raw FreeSWITCH, we abstract it into programmable resources. You get performance and control, without the decades of telecom engineering experience usually required.

WebRTC as part of the stack

WebRTC brings direct, browser-based audio and video to the table, but it’s not a complete solution. It gives you media transport, raw WebRTC lacks all the higher-order features you need to build usable systems:

  • Call routing

  • Authentication

  • PSTN interoperability

  • AI and bot integration

  • Signaling

That’s why SignalWire treats WebRTC as a native, programmable resource. When you use our platform, a WebRTC user is just another address in your application’s topology. Call flows become address-based logic: you route calls to user123@yourdomain.signalwire.com, whether it’s a subscriber, AI bot, or live agent.

Demo 1: AI meets Click-to-Call with The LexiCall Librarian

To demonstrate WebRTC use in the SignalWire environment, we brought in Devon White, Developer Experience Specialist. He showed off LexiCall, an AI-powered librarian that can answer questions via Wikipedia or web search.

The experience starts with a click-to-call button in a browser, using WebRTC to connect directly to an AI Agent. Built entirely with SignalWire resources and SWML scripts, LexiCall both responds and adapts by

And it can even redirect users at the end of a call to surveys or follow-up pages based on in-call events.

Demo 2: Context-aware transfers from AI to live agent

In the second demo, Devon walked through a multi-phase call flow that highlights how programmable infrastructure handles dynamic, real-world scenarios:

  1. A user calls into an AI receptionist via browser

  2. The AI gathers caller context (such as “not a member? Here’s a signup form”)

  3. Once context is collected, the call transfers to a live agent

  4. The context travels with the call, and the agent sees it before answering

This showcased what programmable infrastructure looks like when done right. Using Subscribers, AI Agents, and SWML, Devon demonstrated WebRTC calls initiated via browser, dynamic context capture, and in-call scripting and routing that resulted in seamless AI-to-human transitions.

You could extend this same pattern for tech support, sales routing, telehealth intake, and more.

AI is native to the telecom stack

What makes this all work is tight integration with SWAIG and Datasphere, our versions of an AI Tool gateway and retrieval system that feeds LLMs real data from your chosen documents.

You can also fetch post-call metadata to get full call visibility: every input, output, function call, and transcription. It’s perfect for debugging or fine-tuning your agents.

LIVEWire Q&A session

As always, the LIVEWire delivered value not just in the demos, but in the live Q&A.

  • Can I use my own STT or TTS providers?
  • Can I add whisper tones or menu options before bridging?
    • Absolutely, with confirm methods in SWML.

  • Can I get real-time transcription visible to live agents?
  • Do I have to learn SWML in order to build AI applications on SignalWire?
    • Learning SWML is no longer necessary. You can control SWML with Python using the new Agents SDK.

TL;DR: WebRTC alone isn’t enough

WebRTC gives you transport, but not infrastructure. With SignalWire, you turn it into part of a larger programmable system where every endpoint is addressable, every behavior is scriptable, and every agent (human or AI) is reachable.

Sign up for a free SignalWire account today to find out what you can build, and join our community of likeminded developers on Discord.