# Flusso di chiamata SIP: da INVITE a BYE

> Una chiamata SIP di base è un handshake a tre vie INVITE/200/ACK seguito dai media e da un BYE. Il chiamante invia INVITE (con un'offerta SDP); il chiamato risponde 100 Trying, 180 Ringing, poi 200 OK (con la risposta SDP); il chiamante invia ACK; fluiscono i media RTP; e una delle parti termina la chiamata con BYE, cui si risponde con 200 OK.

- URL canonico: https://www.broadnet.me/it/reference/sip-call-flow
- Lingua: it
- Ultimo aggiornamento: 2026-07-18
- Editore: BroadNet (https://www.broadnet.me)

Una chiamata SIP completa passo per passo: INVITE con offerta SDP, 100 Trying, 180 Ringing, 200 OK con risposta SDP, l'ACK a tre vie, i media RTP e l'abbattimento BYE/200 OK — più come CANCEL annulla una chiamata in squillo.

## Instaurazione della chiamata

La chiamata inizia con lo UAC del chiamante che invia un INVITE verso il chiamato, trasportando un'offerta SDP che descrive i media desiderati. Man mano che la richiesta attraversa i proxy, ciascuno può restituire 100 Trying per fermare le ritrasmissioni. Quando il telefono del chiamato inizia a squillare, torna indietro un 180 Ringing — è ciò che produce il ringback. Se serve early media (annunci di rete, ringback dalla rete remota), un 183 Session Progress con SDP può aprire il percorso media prima della risposta.

## Risposta e handshake a tre vie

Quando il chiamato risponde, il suo UAS restituisce un 200 OK che trasporta la risposta SDP che finalizza la negoziazione dei media. Il chiamante conferma con un ACK — il terzo segmento dell'handshake INVITE — e il dialogo è ora pienamente instaurato, identificato da Call-ID più entrambi i tag. Lo scambio INVITE/200/ACK a tre vie, anziché una semplice richiesta/risposta, è ciò che rende affidabile l'instaurazione della chiamata SIP anche su UDP con perdite.

*Una chiamata SIP completa*

```text
Alice (UAC)                         Bob (UAS)
   │  INVITE (SDP offer)   ─────────▶ │
   │ ◀───────── 100 Trying           │
   │ ◀───────── 180 Ringing          │   (Bob's phone rings)
   │ ◀───────── 200 OK (SDP answer)  │   (Bob answers)
   │  ACK                  ─────────▶ │
   │ ◀═══════ RTP media (both ways) ═▶ │   (the conversation)
   │  BYE                  ─────────▶ │   (Alice hangs up)
   │ ◀───────── 200 OK               │
```

## Media e modifiche a chiamata in corso

Una volta che l'ACK completa l'instaurazione, i media RTP fluiscono direttamente tra gli endpoint (o tramite un media relay) sulle porte negoziate dall'SDP, indipendentemente dal percorso di segnalazione. Le modifiche a chiamata in corso si effettuano con un re-INVITE o un UPDATE che trasporta un nuovo SDP — è così che si realizzano hold (a=sendonly), ripresa (a=sendrecv), rinegoziazione dei codec e aggiunta del video, tutto all'interno del dialogo esistente senza abbattere la chiamata.

## Terminare la chiamata — BYE

Una delle parti termina una chiamata instaurata inviando BYE, cui l'altra risponde con 200 OK; il dialogo è poi chiuso e i media si arrestano. BYE è una richiesta all'interno del dialogo, quindi trasporta il Call-ID, il tag From, il tag To instaurati e il CSeq successivo. Poiché è una normale transazione, un BYE perso viene ritrasmesso finché non è riscontrato, così entrambi i lati convergono sulla chiamata terminata.

## Annullare una chiamata in corso — CANCEL

Se il chiamante rinuncia prima che il chiamato risponda — la chiamata è ancora in squillo — lo UAC invia CANCEL, non BYE, perché non è ancora arrivata alcuna risposta finale. Il chiamato smette di squillare e restituisce 487 Request Terminated per l'INVITE originale, che il chiamante riscontra con ACK. CANCEL è valido solo in questa finestra pre-risposta; una volta ricevuto un 200 OK, la chiamata è instaurata e BYE è il modo per terminarla.

*Terminare vs annullare una chiamata*

| Situazione | Metodo | Risultato |
|---|---|---|
| Chiamata risposta, ora riaggancia | BYE | 200 OK; dialogo chiuso |
| Squilla ancora, il chiamante riattacca | CANCEL | 487 Request Terminated sull'INVITE |
| Il chiamato rifiuta mentre squilla | (risposta) 486/603 | Busy Here / Decline; il chiamante invia ACK |

## Domande frequenti

### Qual è il flusso di chiamata SIP di base?

INVITE (con offerta SDP) → 100 Trying → 180 Ringing → 200 OK (con risposta SDP) → ACK, poi fluiscono i media RTP, e la chiamata termina con BYE → 200 OK. L'handshake a tre vie INVITE/200/ACK instaura il dialogo; BYE lo abbatte.

### Perché SIP usa un handshake a tre vie per l'INVITE?

L'ACK conferma che il chiamante ha ricevuto il 200 OK finale, rendendo affidabile l'instaurazione della chiamata anche su UDP con perdite. Poiché un 200 OK a un INVITE viene ritrasmesso finché non è riscontrato con ACK, lo scambio a tre vie garantisce che entrambi i lati concordino che la chiamata è attiva prima di fidarsi dei media.

### Come metto in hold una chiamata SIP?

Inviate un re-INVITE (o UPDATE) all'interno del dialogo instaurato che trasporti un nuovo SDP con direzione dei media impostata su a=sendonly (e a=sendrecv per riprendere). Il dialogo e la chiamata restano attivi; cambia solo la direzione dei media, che è anche il modo in cui si eroga la musica di attesa.

### Quando invio CANCEL invece di BYE?

Inviate CANCEL quando la chiamata è ancora in squillo e non è arrivata alcuna risposta finale — annulla l'INVITE in sospeso e produce un 487. Inviate BYE solo dopo che la chiamata è instaurata (è stato ricevuto un 200 OK). Usare quello sbagliato lascia i due lati non sincronizzati.

### I media seguono lo stesso percorso dei messaggi SIP?

Di solito no. La segnalazione SIP può attraversare diversi proxy, ma i media RTP fluiscono su porte negoziate separatamente, di norma direttamente tra gli endpoint o attraverso un media relay o SBC dedicato — ed è per questo che la segnalazione può riuscire mentre i media (audio) falliscono indipendentemente.

## Fonti

- [IETF RFC 3261 — SIP (call flows)](https://datatracker.ietf.org/doc/html/rfc3261)
- [IETF RFC 3665 — SIP Basic Call Flow Examples](https://datatracker.ietf.org/doc/html/rfc3665)

## Correlati

- [Metodi e richieste SIP](https://www.broadnet.me/it/reference/sip-methods-and-requests)
- [Codici di risposta SIP](https://www.broadnet.me/it/reference/sip-response-codes)
- [SDP: Session Description Protocol](https://www.broadnet.me/it/reference/sdp-session-description-protocol)
- [RTP e SRTP: il flusso media](https://www.broadnet.me/it/reference/rtp-and-srtp-media)
- [Voce programmabile (prodotto)](https://www.broadnet.me/it/products/voice)
