A student's open lab: learning and sharing, free for everyone.

SIP UniverseFree University

Home / Call flows that operators actually trace / Two different ACK rules

Two different ACK rules

The ACK for a non-2xx is hop by hop inside the INVITE transaction, and the ACK for a 2xx is a new end-to-end transaction.

Learn in 5 minutes

  1. Reuse the INVITE branch only for a non-2xx ACK
  2. Send a 2xx ACK end to end with a new branch
  3. Keep the CSeq number and change the method token to ACK

Visual

Hop-by-hop ACK of a 603 · study drawing · cyphermonkeylabs.com UAProxyPeer INVITE 100 INVITE 603 ACK 603 ACK

SVG HTML PNG

Look at the status code first, then the branch.

Worked example

Whose branch is on the ACK? Inspect both ACKs. Each one repeats the branch of the INVITE on that hop.

  1. Step to the proxy-to-peer ACK.
  2. Read its branch.
  3. Compare it with the caller-to-proxy ACK.

Fault

A proxy generates an ACK toward the caller for a 200 OK and never forwards the caller's ACK. The UAS keeps retransmitting 200 OK.

Only non-2xx ACKs are built by the transaction on each hop. The 2xx ACK belongs to the dialog.

Quiz

The ACK for 603 uses


The ACK for 200 OK uses


The CSeq of either ACK


A proxy that receives the caller's ACK for a 603


The UAS retransmits 200 OK until


RFC 6026 changes


Ecosystem

Glossary, sister systems, and the integration seam for this room.

Workforce management WFM forecasts volume and builds schedules. It consumes contact-center events. It does not parse Via headers. When a forecast is wrong, the SIP symptom is usually queue delay and 480 or carrier congestion, not a broken dialog ID.

Glossary · Ecosystem map · Ports · Troubleshooting

Sources and go deeper