Post
SIP methods and call flow: INVITE, ACK, BYE, and CANCEL
SIP methods are requests that create, change, or end sessions. The most useful troubleshooting skill is knowing which request should appear next and which response proves that a transaction progressed.
| Method | Purpose |
|---|---|
| REGISTER | Associates a user agent with a contact address |
| INVITE | Starts a call or changes session parameters |
| ACK | Confirms a final response to an INVITE |
| BYE | Ends an established dialog |
| CANCEL | Stops an INVITE transaction that has not completed |
| OPTIONS | Tests capabilities or reachability |
| REFER | Requests a transfer or referral |
| PRACK | Reliably acknowledges provisional responses when required |
Basic call sequence
INVITE -> 100 Trying -> 180 Ringing -> 200 OK -> ACK -> RTP -> BYE -> 200 OK
If the caller hangs up before answer, a CANCEL normally stops the pending INVITE. If a call is already established, BYE ends the dialog instead.
Troubleshooting value
Missing ACK, repeated INVITEs, late BYEs, or a re-INVITE without a usable SDP offer can identify the failing boundary. Always correlate the Call-ID, tags, and CSeq values when following a dialog.
Related: SIP headers and SIP response codes.