Read the address in parts
A SIP URI identifies a resource using a scheme, an optional user component, a host and optional port and parameters. In sip:alice@example.net, alice is the user and example.net identifies the domain responsible for routing. That domain does not have to be the same as the endpoint's current IP address. A numeric user component does not automatically make an address a public telephone number. Dialplan normalization, domain ownership and trunk policy determine how it is handled. A tel URI has a different syntax and may need translation before a SIP request is routed.
Scheme and transport are not synonyms
The sips scheme expresses secure routing requirements in SIP; it is not a promise that the media is end-to-end encrypted. Transport parameters, DNS selection, certificate identity and the destination's supported transports still matter. Keep signaling protection separate from SRTP media protection. URI parameters are part of the routing information. Do not discard them indiscriminately when copying a Request-URI into a test. Characters requiring escaping and user-versus-host parsing can also change the meaning of an address.
Practical troubleshooting
Compare the dialed string, the Request-URI sent to the PBX and the Request-URI sent to the provider. Record exactly where prefixes, country codes or domains change. An authentication username can differ from the user in the called URI, so substituting one for the other may create a different failure. Use examples with reserved documentation domains when sharing traces. Redact personal numbers consistently while preserving the structure and relevant parameters. For a routing problem, explain what the recipient is expected to own: a local extension, a federated domain or a carrier destination.
Map SIP URI grammar to Asterisk parser selectors
The Asterisk PJSIP_PARSE_URI guide maps display, scheme, user, password, host, port and documented URI parameters without treating a parsed value as identity or route proof.
Keep URI parameters inside the address and header parameters outside
The Asterisk From-parameter guide turns that syntax boundary into a channel-scoped read, write and packet-verification workflow.
Distinguish dialog, request and target URIs in Asterisk
The PJSIP channel-context guide keeps local and remote dialog identity, original inbound Request-URI and current send target as different objects before parsing.
Apply URI roles to SIP MESSAGE explicitly
The Asterisk MessageSend guide shows why the Request-URI chosen by the destination and the logical To and From URIs must be recorded independently.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- IETF RFC 3261 ↗
- IETF RFC 5630 ↗
- IETF RFC 3966 ↗
- Asterisk PJSIP_PARSE_URI function ↗
- Asterisk PJSIP_PARSE_URI_FROM function ↗
- Asterisk PJSIP_HEADER function ↗
- Asterisk FILTER function ↗
- Asterisk important security considerations ↗
- RFC 3261: SIP Session Initiation Protocol ↗
- Asterisk PJSIP_HEADER_PARAM dialplan function ↗
- Asterisk pre-dial handlers ↗
- Asterisk Dial application ↗
- Asterisk CHANNEL dialplan function ↗
- RFC 3261: SIP ↗
- Asterisk PJSIP_ENDPOINT dialplan function ↗
- Asterisk MessageSend dialplan application ↗
- Asterisk MESSAGE dialplan function ↗
- Asterisk MESSAGE_DATA dialplan function ↗
- Asterisk res_pjsip endpoint configuration ↗
- Asterisk 22 PJSIP_ENDPOINT reference ↗
- RFC 3428: SIP MESSAGE method ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.