Call flow examples#
Successful outbound call setup differs according to the trunk’s authentication method. Credentials & IP-Based trunks validate the source IP address and use a SIP Digest challenge before call routing continues. IP-Only trunks identify and authenticate the trunk from the source IP address without a Digest challenge.
Each diagram follows the signaling sequence from the originating SIP endpoint, through the DIDWW outbound trunk, to the destination network. Expand a numbered stage below a diagram to view representative SIP request and response lines.
Note
The diagrams and SIP messages are simplified examples. The IP addresses, telephone numbers, credentials, and Digest values are illustrative only. Each example includes only the message lines needed to explain the flow and omits unrelated headers and SDP bodies. For the complete SIP Digest exchange and authentication rules, see Authentication flow.
Credentials & IP-Based trunk#
The originating SIP endpoint first sends an INVITE without credentials.
DIDWW challenges the request, and the endpoint acknowledges the challenge
before retrying the INVITE with an Authorization header. After DIDWW
accepts the request, call setup continues.
%%{init: {
"theme": "base",
"themeVariables": {
"fontSize": "14px",
"actorBkg": "#e0f2fe",
"actorBorder": "#38bdf8",
"actorTextColor": "#1f2d3d",
"actorLineColor": "#38bdf8",
"signalColor": "#0066cc",
"signalTextColor": "#1f2d3d",
"noteBkgColor": "#fef3c7",
"noteBorderColor": "#facc15",
"noteTextColor": "#1f2d3d",
"labelBoxBkgColor": "#ccfbf1",
"labelBoxBorderColor": "#2dd4bf",
"labelTextColor": "#1f2d3d",
"loopTextColor": "#1f2d3d",
"sequenceNumberColor": "#ffffff"
}
}}%%
sequenceDiagram
autonumber
participant ORIGIN as Originating SIP endpoint
participant DIDWW as DIDWW outbound trunk
participant PSTN as Destination network (PSTN)
ORIGIN->>DIDWW: INVITE without Authorization
DIDWW-->>ORIGIN: 100 Trying
DIDWW-->>ORIGIN: 401 Unauthorized with WWW-Authenticate
ORIGIN->>DIDWW: ACK
ORIGIN->>DIDWW: INVITE with Authorization
DIDWW-->>ORIGIN: 100 Trying
DIDWW->>PSTN: Route call
PSTN-->>DIDWW: 18x provisional response
DIDWW-->>ORIGIN: 18x provisional response
PSTN-->>DIDWW: 200 OK
DIDWW-->>ORIGIN: 200 OK with SDP
ORIGIN->>DIDWW: ACK
Note over ORIGIN,DIDWW: RTP media follows the negotiated path
ORIGIN->>DIDWW: BYE
DIDWW->>PSTN: BYE
PSTN-->>DIDWW: 200 OK
DIDWW-->>ORIGIN: 200 OK
Expand a stage to view its representative SIP messages.
1. Initial INVITE
The originating SIP endpoint sends the first INVITE without an
Authorization header:
INVITE sip:12025550199@out.didww.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK-example-1;rport
From: <sip:12025550100@sbc.example.com>;tag=example-from-tag
To: <sip:12025550199@out.didww.com>
Call-ID: example-call-id@sbc.example.com
CSeq: 102 INVITE
Contact: <sip:12025550100@192.0.2.10:5060>
Content-Type: application/sdp
DIDWW checks the source IP address against the trunk’s Allowed SIP IP addresses before continuing with SIP Digest authentication.
2. Authentication challenge and ACK
DIDWW responds with 401 Unauthorized and provides the realm, nonce,
and quality-of-protection value in WWW-Authenticate. DIDWW may first
send 100 Trying while it processes the initial INVITE:
SIP/2.0 401 Unauthorized
From: <sip:12025550100@sbc.example.com>;tag=example-from-tag
To: <sip:12025550199@out.didww.com>;tag=example-to-tag
Call-ID: example-call-id@sbc.example.com
CSeq: 102 INVITE
WWW-Authenticate: Digest realm="out.didww.com", qop="auth",
nonce="example-nonce"
Content-Length: 0
The originating SIP endpoint acknowledges the final response to the first transaction:
ACK sip:12025550199@out.didww.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK-example-1;rport
From: <sip:12025550100@sbc.example.com>;tag=example-from-tag
To: <sip:12025550199@out.didww.com>;tag=example-to-tag
Call-ID: example-call-id@sbc.example.com
CSeq: 102 ACK
Content-Length: 0
3. Authenticated INVITE
The originating SIP endpoint calculates the digest response using the
trunk’s SIP username and password, then sends a new INVITE with an
Authorization header. The new transaction uses a new branch value and
increments the CSeq number:
INVITE sip:12025550199@out.didww.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK-example-2;rport
From: <sip:12025550100@sbc.example.com>;tag=example-from-tag
To: <sip:12025550199@out.didww.com>
Call-ID: example-call-id@sbc.example.com
CSeq: 103 INVITE
Contact: <sip:12025550100@192.0.2.10:5060>
Authorization: Digest username="example-username", realm="out.didww.com",
nonce="example-nonce", uri="sip:12025550199@out.didww.com",
response="00000000000000000000000000000000", qop=auth,
cnonce="example-cnonce", nc=00000001
Content-Type: application/sdp
The Digest values above are syntactically valid placeholders, not working credentials. The originating SIP endpoint must calculate the actual response from the challenge and the trunk’s credentials.
4. Call establishment
After DIDWW validates the source IP address and digest credentials, it
accepts the transaction and routes the call. The provisional and final
responses use the same Call-ID and CSeq as the authenticated
INVITE:
SIP/2.0 100 Trying
Call-ID: example-call-id@sbc.example.com
CSeq: 103 INVITE
SIP/2.0 180 Ringing
Call-ID: example-call-id@sbc.example.com
CSeq: 103 INVITE
SIP/2.0 200 OK
Call-ID: example-call-id@sbc.example.com
CSeq: 103 INVITE
Content-Type: application/sdp
The originating SIP endpoint confirms the established dialog with an
ACK. RTP media then follows the path negotiated in the SDP offer and
answer:
ACK sip:12025550199@out.didww.com SIP/2.0
Call-ID: example-call-id@sbc.example.com
CSeq: 103 ACK
After 100 Trying, the originating SIP endpoint waits for another
provisional or final response. Depending on the destination network, it
may receive 180 Ringing, 183 Session Progress, another
provisional response, or a final response without an additional
provisional response.
5. Call termination
Either endpoint can end the call by sending BYE. The receiving
endpoint confirms the request with 200 OK:
BYE sip:12025550199@out.didww.com SIP/2.0
Call-ID: example-call-id@sbc.example.com
CSeq: 104 BYE
SIP/2.0 200 OK
Call-ID: example-call-id@sbc.example.com
CSeq: 104 BYE
IP-Only trunk#
For an IP-Only trunk, DIDWW identifies and authenticates the trunk from
the source IP address. The originating SIP endpoint sends the initial
INVITE without an Authorization header, and DIDWW does not issue a
SIP Digest challenge.
Note
IP-Only authentication is not available for self-service selection. To request it, contact DIDWW Customer Support.
%%{init: {
"theme": "base",
"themeVariables": {
"fontSize": "14px",
"actorBkg": "#e0f2fe",
"actorBorder": "#38bdf8",
"actorTextColor": "#1f2d3d",
"actorLineColor": "#38bdf8",
"signalColor": "#0066cc",
"signalTextColor": "#1f2d3d",
"noteBkgColor": "#fef3c7",
"noteBorderColor": "#facc15",
"noteTextColor": "#1f2d3d",
"labelBoxBkgColor": "#ccfbf1",
"labelBoxBorderColor": "#2dd4bf",
"labelTextColor": "#1f2d3d",
"loopTextColor": "#1f2d3d",
"sequenceNumberColor": "#ffffff"
}
}}%%
sequenceDiagram
autonumber
participant ORIGIN as Originating SIP endpoint
participant DIDWW as DIDWW outbound trunk
participant PSTN as Destination network (PSTN)
ORIGIN->>DIDWW: INVITE without Authorization
DIDWW->>DIDWW: Match the source IP to an IP-Only trunk
DIDWW-->>ORIGIN: 100 Trying
DIDWW->>PSTN: Route call
PSTN-->>DIDWW: 18x provisional response
DIDWW-->>ORIGIN: 18x provisional response
PSTN-->>DIDWW: 200 OK
DIDWW-->>ORIGIN: 200 OK with SDP
ORIGIN->>DIDWW: ACK
Note over ORIGIN,DIDWW: RTP media follows the negotiated path
ORIGIN->>DIDWW: BYE
DIDWW->>PSTN: BYE
PSTN-->>DIDWW: 200 OK
DIDWW-->>ORIGIN: 200 OK
Expand a stage to view its representative SIP messages.
1. Initial INVITE
The originating SIP endpoint sends an INVITE from an IP address
configured for the trunk. No Authorization header is required:
INVITE sip:12025550198@out.didww.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.20:5060;branch=z9hG4bK-ip-only;rport
From: <sip:12025550101@sbc.example.com>;tag=ip-only-from-tag
To: <sip:12025550198@out.didww.com>
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 201 INVITE
Contact: <sip:12025550101@192.0.2.20:5060>
Content-Type: application/sdp
2. Source-IP validation and call establishment
After DIDWW matches 192.0.2.20 to the IP-Only trunk, it accepts the
transaction without a 401 Unauthorized response or authenticated
INVITE retry. Call setup then continues with the normal provisional
and final responses:
SIP/2.0 100 Trying
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 201 INVITE
SIP/2.0 180 Ringing
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 201 INVITE
SIP/2.0 200 OK
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 201 INVITE
Content-Type: application/sdp
The originating SIP endpoint confirms the established dialog with an
ACK. RTP media then follows the path negotiated in the SDP offer and
answer:
ACK sip:12025550198@out.didww.com SIP/2.0
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 201 ACK
After 100 Trying, the originating SIP endpoint waits for another
provisional or final response. It does not send another request until a
response requires one, such as the ACK sent after 200 OK.
3. Call termination
Call termination is the same for both authentication methods. Either
endpoint can send BYE, and the receiving endpoint confirms it with
200 OK:
BYE sip:12025550198@out.didww.com SIP/2.0
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 202 BYE
SIP/2.0 200 OK
Call-ID: ip-only-call-id@sbc.example.com
CSeq: 202 BYE