Contact Sales

All fields are required

Understanding Subscribers in SignalWire’s Call Fabric | SignalWire
Product

Understanding Subscribers in SignalWire’s Call Fabric

Create applications with authenticated users

Building communication apps can feel like endless months of wiring together a backend with SIP, WebRTC, databases, and authentication systems, or getting a CPaaS vendor to do half of that for you (and locking you into their way of thinking).

SignalWire takes a different approach to building with the Programmable Unified Communications (PUC) model. It’s the middle ground between raw infrastructure and expensive off-the-shelf tools.

Call Fabric, SignalWire’s implementation of PUC, gives developers the core building blocks to create applications with resources like Scripts, Rooms, AI Agents, and Subscribers. This resource-based model treats communication elements like web resources, each with clear addresses and standard interaction patterns.

In this model, a room for video conferencing lives at a URL. A subscriber for call routing has an address. A script for call logic can be updated in real-time. This familiarity accelerates development and reduces the learning curve for teams already building web applications.

While Rooms create scalable audio/video conferencing and Scripts define call logic and real-time event handling, Subscribers can be added for authenticated user accounts and routing. Each component works independently but integrates seamlessly with the others.

This post breaks down what Subscribers are, how to use them, and how they fit into your SignalWire-powered apps.

What is a Subscriber?

A Subscriber is simply an internal account-holder in a SignalWire application. In addition to generating a login for users, it’s a programmable identity tied directly into the Call Fabric infrastructure.

Subscribers always use the private context by default, though public Aliases can be added. Additionally, they can receive or initiate calls, messages, and other forms of interaction.

When you create a Subscriber, you’re creating a secure, authenticated object that represents a human who can:

  • Make or receive voice/video calls,

  • Be assigned to Rooms (like conferences or private sessions),

  • Interact with AI Agents,

  • Access your apps with login tokens,

  • And carry context like name, timezone, company, etc.

You can think of a Subscriber as a lightweight identity that lives directly in your communication layer. They create structure and identity to the users of your app as the humans inside your system: agents, employees, reps, internal users, etc.

You don’t have to maintain separate user records in a database and then stitch that together with SIP endpoints or call logic. SignalWire handles that as part of the platform.

How to use Subscribers in an app

If you were, for example, building a browser-based support platform, live agents would need to be able to log in, take calls from customers, and join support sessions via video or voice. You want to:

  • Authenticate agents securely,

  • Allow them to take calls routed from an AI Agent or IVR,

  • Assign them to Rooms for escalations or conferencing,

  • Use context (like region or job title) to help the system route things efficiently.

This is where Subscribers come in.

Creating a Subscriber

You can create a subscriber with the Call Fabric UI, or with the REST API.

When using the API, SignalWire returns a unique ID that you can use to associate this user with other resources. You then have a user object that’s fully integrated into your app’s communication stack, ready to be assigned to calls, Rooms, or logic flows.

To create a subscriber within the dashboard, simply create a new resource and fill out the fields for Subscriber. This includes information like their name, display name, password, timezone, country, and region. These details can be used to make routing smarter, for example

  • Routing calls based on timezone, so no one gets paged at 3AM.

  • Prioritizing senior agents for VIP customers.

  • Using region to match language or compliance requirements.

Your AI Agent or SignalWire Markup Language (SWML) script can access all of that directly from the Subscriber object.

Once created, you can connect the subscriber to an address. This can be a phone number, SIP address, or alias. Additionally, you can configure and manage SIP endpoints like softphones and desktop IP phones.

Generating tokens for access

To allow the Subscriber to authenticate into your app or use a client (like mobile or web), you can generate a token.

This gives you a JSON Web Token (JWT) and refresh token, which your app can use for authenticated sessions. From here, the user can join Rooms, trigger SWML logic, or talk to AI Agents.

How Subscribers interact with other Resources

Route Calls or Sessions to Subscribers

Your AI Agent answers incoming calls. It detects the caller is asking about billing. You look up available Subscribers with job title Billing Support, and transfer the call to Jane’s Room. Or, you create a dynamic Room and add Jane in real time.

If you need to assign a phone number to a Subscriber so they can receive inbound calls from the PSTN, you can bind an Address (like a number or SIP URI) to their Subscriber ID, enabling a full phone-line experience from within your app.

SWML Scripts

Within a SWML document, you can use a Subscriber’s metadata to drive logic. For example, timezone or location.

This means that with just a few lines of markup, you can build a geo-aware IVR experience.

Rooms

A Subscriber is usually someone on your side of the app, a known user with a login. They can access protected resources like Rooms, AI Agent sessions, or internal dashboards, and can be given permissions, metadata, and context that can drive routing decisions.

Subscribers can be assigned to Rooms for use cases like secure conferencing,
private telehealth consults, or live support escalation. A Room can be configured to only allow verified Subscribers in. This way, your Rooms aren’t just open links; they’re part of an authenticated experience.

Use cases

Team collaboration platform

You’re building a business chat + video tool for remote teams. Each user is a Subscriber. Their data feeds into:

  • A directory for search and status,

  • Rooms for persistent team huddles,

  • AI Agents that help summarize conversations or schedule meetings,

  • Secure SIP endpoints for desk phone integration.

With a single Subscriber API call, you’ve onboarded a user into an entire communications environment.

Call center app with AI frontend and live agents

You’re building a modern contact center app. It starts with an AI agent that answers calls, handles simple requests (FAQs, password resets), and only escalates complex issues to a live agent. In this scenario:

  • Every live agent is a Subscriber.

  • Agents log into a web or desktop app using their Subscriber credentials.

  • When escalation happens, the system picks an available Subscriber (agent) and connects the caller into that agent’s Room.

In this case, real-time routing logic is based on Subscriber attributes like job title, language, or timezone.

UCaaS softphone app with login-based access

You’re developing a business VoIP/UCaaS tool. Users log into a browser or desktop app and make calls using SIP/WebRTC. For this app:

  • Each logged-in user is a Subscriber.

  • The app uses the /tokens endpoint to authenticate users.

  • SIP credentials or WebRTC sessions are tied to the authenticated Subscriber.

  • Calls are placed via Addresses assigned to Subscribers.

No need to build your own user identity service. Call history, presence, and voicemail can all be tied to a Subscriber profile. You can route calls differently depending on the Subscriber (managers get call recording, support agents don’t).

Telehealth app with secure doctor/patient rooms

You’re building a HIPAA-compliant telehealth platform. Patients use one interface; doctors use another. Secure, authenticated Rooms must be created per appointment.

  • Doctors are Subscribers with authentication.

  • When a patient requests a consult, the backend creates a Room and invites the correct doctor.

  • The doctor joins via a secure, token-authenticated session.

Doctors can have persistent identity and communication endpoints. Metadata helps match patients with available providers automatically. Subscriber profiles streamline scheduling and access control.

Key fields

Here’s a breakdown of some important Subscriber fields and how they work:

All of this data is optional, but the more you provide, the richer your interactions can be.

Add Subscribers to your communications apps

Subscribers are one of the most important parts of the Call Fabric resource model. They bring real users into the world of programmable communications without forcing you to manage another auth system, database, or identity service.

Use Subscribers to turn your customers from numbers into a simple but powerful object you can use to intelligently dial and route communications. They reduce points of failure, improve security, and let you focus on designing the experience, not maintaining infrastructure.

Whether you're building a scheduling assistant, a virtual classroom, or an AI-powered contact center, Subscribers give you a secure, scalable way to bring people into the app.

If you’re ready to explore what programmable identity can do in a modern communication platform, create a SignalWire account and try it yourself.