Visual reference · SIP
SIP Call Flows
& Ladder Diagrams
Understand successful setup, progress, cancellation, hold, transfer and teardown message by message.
Direction matters. The examples are simplified end-to-end ladders; proxies and SBCs may add hops, headers, authentication and provisional responses.
Successful call
Caller → Callee
INVITE + SDP offer →← 100 Trying← 180 Ringing← 200 OK + SDP answerACK →⇄ RTP / SRTPBYE →← 200 OKACK completes the three-way INVITE handshake. The BYE is a new in-dialog transaction and its 200 OK is not followed by ACK.
Early media and PRACK
Reliable provisional response
INVITE + Supported: 100rel →← 183 Session Progress + SDP + Require: 100rel + RSeqPRACK + RAck →← 200 OK (PRACK)← 200 OK (INVITE)ACK →A 183 response may carry SDP for announcements or ringback before answer. PRACK applies when reliable provisional responses are negotiated; RSeq identifies the reliable provisional response and RAck acknowledges it.
CANCEL versus BYE
Cancel before answer
INVITE →← 180 RingingCANCEL →← 200 OK (CANCEL)← 487 Request TerminatedACK →End after answer
INVITE →← 200 OKACK →BYE →← 200 OKCANCEL targets a pending request. BYE ends an established dialog. A late 200 OK to INVITE must still be acknowledged. If the caller no longer wants the session, it may then terminate it with BYE; alternatively, it may continue the accepted session.
Hold and resume
Mid-dialog offer/answer
re-INVITE + SDP (sendonly/inactive) →← 200 OK + SDPACK →re-INVITE + SDP (sendrecv) →← 200 OK + SDPACK →Transfer with REFER
Simplified transfer
REFER + Refer-To →← 200 OK (REFER)← NOTIFY [sipfrag: SIP/2.0 100 Trying]200 OK (NOTIFY) →← NOTIFY [sipfrag: SIP/2.0 200 OK]200 OK (NOTIFY) →REFER asks the recipient to issue another request. NOTIFY reports the resulting status using a message/sipfrag body. Exact transfer behaviour depends on supported extensions and policy.
Standards: SIP, PRACK, REFER and current REFER behaviour.
