A cosa serve il metodo ACK
Il metodo ACK – che ricordiamo far parte del documento RFC3261 – è utilizzato per confermare la risposta finale al metodo INVITE (clicca qui se ti sei perso l’articolo a riguardo) ed è sempre inviato da chi richiede la sessione.
Se durante l’INVITE non si definisce un SDP, viene effettuata un’offerta insieme alla risposta “200 OK” e confermata nella risposta di conferma ACK:

Nel flusso che segue, invece, notiamo che l’ACK viene sempre inviato da parte dello UAC (User Agent che manda le richieste) a seguito di una o più risposte provenienti dallo UAS (User Agent che risponde alle richieste).

Com’è composto?

Proprio come il metodo INVITE, nella prima riga è contenuto il nome del metodo; mentre le righe che seguono sono una lista di campi di intestazione uguali a quelli contenuti nell’INVITE, proprio per confermare la richiesta iniziale.
Possiamo quindi vedere che i campi Via, To e From sono uguali all’INVITE e che fa riferimento allo stesso Call-ID della sessione generata precedentemente