Skip to main content

Getting Started with SignalWire

Whether you're building your first communications app or migrating from another provider, this guide will help you understand SignalWire and get you building quickly.


What is SignalWire?

SignalWire is a programmable unified communications platform that lets you add voice calling, video, messaging, and AI to your applications. We handle the complex telecom infrastructure for you so you have more time to focus on building great experiences for your users.

With SignalWire, you can:

  • Make and receive phone calls programmatically or through your own interfaces
  • Send and receive SMS/MMS messages at scale
  • Build video conferencing directly into your apps
  • Create AI-powered voice agents that handle phone calls autonomously
  • Build IVR systems (phone menus) and call routing logic

Everything runs on SignalWire's cloud infrastructure, so there's no telecom equipment to manage.


Product Offerings

SignalWire provides numerous ways to build, depending on your needs and how you prefer to work.


Your SignalWire Space

When you create a SignalWire account, you get access to your Space - that's your Dashboard where you can quickly:

  • Buy and configure phone numbers
  • Create and manage your applications
  • View call logs and analytics
  • Access your API credentials
  • Set up AI agents, call flows, and more

Think of your Space as your home base for everything SignalWire.


Core Concepts

Before you start building, it helps to understand a few key concepts.

Communication Channels

SignalWire supports the following communication channels:

Most channels can work over different transports depending on how you want to connect:

TransportWhat it isCommon uses
PSTNThe traditional phone networkCalling regular phone numbers, receiving calls from landlines and cell phones
SIPVoice over IP protocolConnecting PBX systems, desk phones, softphones, and VoIP carriers
WebRTCBrowser-based real-time communicationIn-app calling, video conferencing, browser-based contact centers

For example, a voice call could come in via PSTN (someone dialing your number), SIP (from a desk phone), or WebRTC (from your web app) - and SignalWire will handle all three.

Phone Numbers

To make or receive calls and messages through the phone network, you'll need SignalWire phone numbers. You can buy local numbers, toll-free numbers, or short codes directly from your Dashboard.

Each number can be configured to handle incoming calls and messages differently - whether that's forwarding to another number, running a script, connecting to an AI agent, or triggering your own application.

Learn more about Phone Numbers

How to buy, configure, and manage your numbers

We also offer the option of purchasing phone numbers programmatically via our Purchase a Phone Number API Endpoint.

Resources

In SignalWire, a Resource is anything that can handle communications - an AI agent, a script, a SIP connection, or your own application. When a call or message comes in, you tell SignalWire which Resource should handle it.

Common resource types include:

  • SWML Scripts - Simple JSON/YAML instructions hosted in your Dashboard
  • AI Agents - Conversational AI that handles calls autonomously
  • Call Flows - Visual drag-and-drop call routing
  • Relay Applications - Your own server applications connected via WebSocket

Learn more about Resources

Understanding the different resource types

Addresses

Every Resource has an Address. This is a unique identifier that lets you target and interact with it. Think of addresses as the phone number for any resource, but broader in scope.

Addresses can be:

  • Phone numbers - Traditional numbers like +14155551234 for PSTN calls
  • SIP addresses - For VoIP connections like sip:user@domain.com
  • Aliases - Custom names like /support-queue or /main-conference that are easy to remember

A single Resource can have multiple addresses, and you can change them anytime. For example, you might point both a phone number and a custom alias to the same AI agent.

Learn more about Addresses

How addressing works in SignalWire

Subscribers

Subscribers are end users who authenticate with SignalWire to make and receive calls. If you're building a contact center, business phone system, or video conferencing app for example, your users become Subscribers.

SignalWire manages these users for you. You create, update, and delete them through our REST APIs, and each Subscriber gets:

  • Authentication - Secure credentials and tokens for logging in
  • A callable address - They can be reached directly at /private/username
  • Multi-device support - They can answer calls from a browser, mobile app, or desk phone

This means you don't have to build user management, authentication, or device registration yourself - SignalWire handles it.

Learn more about Subscribers

User management and authentication


Ready to Start Building?

Now that you understand the basics, let's figure out the best way for you to build. The right approach depends on what you're creating and how you prefer to work.

What are you trying to build?

You want to build an AI-powered voice agent that handles phone calls.

This is common for:

  • Automated customer service
  • Appointment scheduling and reminders
  • FAQ bots and information lines
  • Lead qualification and surveys
  • Virtual receptionists

Your best options:

Agents SDK - A Python framework for building sophisticated AI voice agents. You get full control over prompts, custom functions (SWAIG) dedicated to AI, customizeable conversation flow, and seamless LLM integration. Best for complex agents that need to perform actions like booking appointments, looking up data, or integrating with your systems.

AI Agent (Dashboard) - Configure an AI agent directly in your Dashboard without writing code. Set up prompts, choose a voice, add functions, and connect it to a phone number. Great for getting started quickly or simpler use cases.

NOTE: Commenting this out as we need to have a discussion on if this should be recommended to users. It's extremely buggy, and I'm pretty sure is out of date.

SWML with AI - Add AI capabilities to your SWML scripts using the ai method. Good when you want AI as part of a larger call flow that includes other logic.

Quick start with Agents SDK:

pip install signalwire-agents
from signalwire_agents import AgentBase

class MyAgent(AgentBase):
def __init__(self):
super().__init__(name="Assistant", route="/agent")
self.prompt_add_section("main", body="You are a helpful assistant for Acme Corp.")

agent = MyAgent()
agent.serve()

Agents SDK Quickstart

Build your first AI voice agent


Next Steps

Once you've chosen your path, here are some resources to help you along the way:

  • Discord Community - Join 8,000+ developers. Great for questions and sharing what you're building.
  • GitHub - Example code, SDKs, and open source tools.
  • API Reference - Detailed documentation for all our APIs.

If you get stuck or have questions, our support team is here to help at support@signalwire.com.

Happy building!