Skip to navigation

extractSipUsername

View as MarkdownOpen in Claude

Static utility method that extracts the username portion from the call.to field of a parsed request body. Handles three input formats:

  • sip:username@domain (or sips:...) — strips the scheme and @domain suffix, returning the username
  • tel:+1234567890 — strips the tel: scheme, returning the phone number
  • Plain string — returned as-is

Commonly paired with registerRoutingCallback() to route SIP traffic based on the dialed user.

Parameters

requestBody
SwmlRequestDataRequired

The parsed JSON body from an incoming request. Expected to contain a call.to field with a SIP URI, TEL URI, or phone number string. When present, call must include call_id, project_id, and space_id, as in a real request.

Returns

string | null — The extracted username or phone number, or null if the call.to field is missing or cannot be parsed.

Examples

Extract from SIP URI

import { SWMLService } from '@signalwire/sdk';
const body = {
call: {
call_id: 'call-123',
project_id: 'project-123',
space_id: 'space-123',
to: 'sip:sales@example.sip.signalwire.com',
},
};
const username = SWMLService.extractSipUsername(body);
// "sales"

Extract from TEL URI

import { SWMLService } from '@signalwire/sdk';
const body = {
call: {
call_id: 'call-123',
project_id: 'project-123',
space_id: 'space-123',
to: 'tel:+15551234567',
},
};
const number = SWMLService.extractSipUsername(body);
// "+15551234567"