For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
      • AgentServer
        • getAgent
        • getAgents
        • getApp
        • register
        • registerGlobalRoutingCallback
        • run
        • serveStaticFiles
        • setupSipRouting
        • unregister
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
      • SkillManager
      • SkillRegistry
      • Skills
      • SwaigFunction
      • SwmlBuilder
      • SWMLService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • ChatResource
      • Compat
      • Datasphere
      • Fabric
      • ImportedNumbersResource
      • Logs
      • LookupResource
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSubResource
      • Queues
      • Recordings
      • Registry
      • RestClient
      • RestError
      • Short Codes
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Parameters
  • Returns
  • registerSipUsername
  • Parameters
  • Returns
  • Examples
  • SIP routing with auto-mapping
  • Manual username registration
AgentsAgentServer

setupSipRouting

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

unregister

Next
Built with

Enable SIP-based routing across all registered agents. When a SIP call arrives, the server extracts the username from the SIP address and routes the request to the matching agent.

With autoMap enabled, the server automatically creates username-to-route mappings from each agent’s name and route path. You can add explicit mappings with registerSipUsername().

Call this method after registering agents. Agents registered after setupSipRouting() also receive SIP routing automatically.

Parameters

route
stringDefaults to /sip

The URL path where SIP routing requests are handled. Each registered agent receives a routing callback at this path.

autoMap
booleanDefaults to true

Automatically generate SIP username mappings from agent names and route paths. For example, an agent named "sales-agent" at route "/sales" gets two mappings:

  • "salesagent" (agent name, lowercase alphanumeric and underscores only)
  • "sales" (route path without leading slash)

Returns

void

Calling setupSipRouting() more than once logs a warning and returns early. SIP routing can only be configured once per server.


registerSipUsername

Create an explicit mapping from a SIP username to an agent route. The username is stored lowercase for case-insensitive matching. Routes are normalized: leading / is added if missing and trailing slashes are stripped.

SIP routing must be enabled via setupSipRouting() before calling this method. If routing is not enabled, a warning is logged and the call is a no-op.

Parameters

username
stringRequired

The SIP username to map (e.g., "sales-team"). Matched case-insensitively.

route
stringRequired

The target agent route (e.g., "/sales"). A warning is logged if the route does not correspond to a registered agent.

Returns

void

Examples

SIP routing with auto-mapping

1import { AgentBase, AgentServer } from '@signalwire/sdk';
2
3const sales = new AgentBase({ name: 'sales', route: '/sales' });
4sales.setPromptText('You are a sales assistant.');
5const support = new AgentBase({ name: 'support', route: '/support' });
6support.setPromptText('You are a support assistant.');
7
8const server = new AgentServer({ port: 3000 });
9server.register(sales);
10server.register(support);
11
12server.setupSipRouting('/sip', true);
13server.registerSipUsername('help-desk', '/support');
14
15await server.run();

With this configuration, SIP calls are routed as follows:

SIP AddressResolves To
sip:sales@example.com/sales (auto-mapped from route)
sip:salesagent@example.com/sales (auto-mapped from agent name)
sip:help-desk@example.com/support (manual mapping)

Manual username registration

1import { AgentBase, AgentServer } from '@signalwire/sdk';
2
3const sales = new AgentBase({ name: 'sales', route: '/sales' });
4sales.setPromptText('You are a sales assistant.');
5
6const server = new AgentServer({ port: 3000 });
7server.register(sales);
8server.setupSipRouting('/sip');
9server.registerSipUsername('sales-team', '/sales');
10server.registerSipUsername('tech-support', '/support');
11server.registerSipUsername('accounts', '/billing');
12await server.run();