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
Record<string, unknown>Required

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.

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

1import { SWMLService } from '@signalwire/sdk';
2
3const body = { call: { to: 'sip:sales@example.sip.signalwire.com' } };
4const username = SWMLService.extractSipUsername(body);
5// "sales"

Extract from TEL URI

1import { SWMLService } from '@signalwire/sdk';
2
3const body = { call: { to: 'tel:+15551234567' } };
4const number = SWMLService.extractSipUsername(body);
5// "+15551234567"