Phone Numbers

View as MarkdownOpen in Claude

Phone Numbers

Purchase and configure phone numbers to receive calls for your agents.

Purchasing Numbers

  1. Go to Phone Numbers in dashboard
  2. Click “Buy a New Phone Number”
  3. Search by area code or location
  4. Select a number and purchase

Number Types

TypeDescriptionUse Case
LocalStandard local numbersGeneral business use
Toll-Free800/888/877/866 numbersCustomer service
Short Code5-6 digit numbersSMS campaigns

Number Features

Each number can support:

FeatureDescription
VoiceInbound/outbound calls
SMSText messaging
MMSPicture messaging
FaxFax transmission

Managing Numbers

View your numbers in Phone Numbers section. Each number shows:

FieldExample
Number+1 (555) 123-4567
TypeLocal
CapabilitiesVoice, SMS
StatusActive
Voice Handlerhttps://your-server.com/agent

Available Actions:

  • Edit Settings
  • View Logs
  • Release Number

Number Settings

Configure each number:

Voice Settings:

  • Accept Incoming: Enable/disable
  • Voice URL: Your agent’s SWML endpoint
  • Fallback URL: Backup if primary fails

SMS Settings:

  • Accept Incoming: Enable/disable
  • Message URL: Webhook for SMS

SIP Endpoints

Alternative to phone numbers - use SIP for testing.

SIP Address Format: sip:username@your-space.signalwire.com

Use with:

  • Software phones (Zoiper, Linphone)
  • SIP-enabled devices
  • Testing without PSTN charges

Number Porting

Bring existing numbers to SignalWire:

  1. Go to Phone Numbers > Porting Request
  2. Submit porting request
  3. Provide current carrier info
  4. Wait for port completion (~1 week in most cases)

Costs

Phone Number Costs:

  • Monthly rental fee per number
  • Varies by number type and country

Voice Usage:

  • Per-minute charges for calls
  • Inbound vs outbound rates differ
  • See Voice Pricing

AI Agent Usage:

  • Per-minute AI processing costs
  • Includes STT, TTS, and LLM usage
  • See AI Agent Pricing

Questions? Contact sales@signalwire.com for custom pricing and volume discounts.

Multiple Numbers

You can have multiple numbers pointing to:

  • Same agent (multiple entry points)
  • Different agents (department routing)
  • Different configurations per number
1## Agent can check which number was called
2def my_handler(self, args, raw_data):
3 called_number = raw_data.get("called_id_num")
4
5 if called_number == "+15551234567":
6 return SwaigFunctionResult("Sales line")
7 else:
8 return SwaigFunctionResult("Support line")