BroadNet
SIP / VoIPRisposte

Codici di risposta SIP (1xx-6xx)

Aggiornato il 4 min di letturaBasato su standard
Risposta diretta

Le risposte SIP sono codici a tre cifre in sei classi, che ricalcano HTTP: 1xx provvisorio (richiesta ricevuta, in elaborazione), 2xx successo, 3xx redirezione, 4xx fallimento del client/della richiesta, 5xx fallimento del server e 6xx global failure (la richiesta fallisce ovunque). La prima cifra fissa la classe; il codice completo identifica l'esito specifico.

§01

Le sei classi di risposta

Ogni risposta SIP trasporta un codice di stato la cui cifra iniziale ne definisce la classe, esattamente come in HTTP. Le risposte provvisorie (1xx) sono interim — la richiesta procede ma senza esito finale. 2xx è successo. 3xx reindirizza il chiamante altrove. 4xx significa che la richiesta è fallita ed è di solito colpa del chiamante o della richiesta. 5xx significa che un server non è riuscito a soddisfare una richiesta apparentemente valida. 6xx è un fallimento globale definitivo — la richiesta fallirà in ogni posizione, quindi i proxy dovrebbero smettere di provare alternative.

Classi di risposta SIP
ClasseSignificato
1xxProvvisorio — ricevuto, ancora in fase di elaborazione (non definitivo)
2xxOperazione riuscita: la richiesta è andata a buon fine
3xxReindirizzamento: prova un'altra posizione
4xxErrore client/richiesta: non può essere soddisfatta così come inviata
5xxErrore del server: il server non è riuscito a soddisfare una richiesta valida
6xxErrore globale — fallisce ovunque; interrompere il forking
§02

Codici provvisori e di successo

Il flusso iniziale della chiamata è guidato da 1xx e 2xx. 100 Trying comunica al salto a monte che la richiesta è stata ricevuta e ferma le ritrasmissioni. 180 Ringing indica che il telefono del chiamato sta squillando. 183 Session Progress trasporta early media (ringback o annunci) prima che la chiamata sia risposta. 200 OK è il successo definitivo — per un INVITE significa che la chiamata è stata risposta e trasporta la risposta SDP, e deve essere confermato con ACK.

Codici 1xx e 2xx principali
CodiceMotivoSignificato
100TryingRichiesta ricevuta; interrompe la ritrasmissione a monte
180RingingIl chiamato sta ricevendo l'avviso di chiamata
181Call Is Being ForwardedLa richiesta viene reindirizzata
182QueuedChiamato temporaneamente non disponibile; chiamata in coda
183Session ProgressEarly media (ringback/annuncio) disponibile
200OKSuccesso — per INVITE, la chiamata ha ricevuto risposta
§03

Fallimenti del client (4xx) — quelli che dovrete diagnosticare

I codici 4xx dominano la risoluzione dei problemi nel mondo reale. 401/407 richiedono autenticazione (rispettivamente da un UAS/registrar o da un proxy). 403 Forbidden e 404 Not Found sono autoesplicativi. 408 Request Timeout significa nessuna risposta in tempo. 486 Busy Here è il chiamato occupato; 480 Temporarily Unavailable è il chiamato irraggiungibile. 487 Request Terminated è la risposta a un INVITE che è stato annullato con CANCEL. 488 Not Acceptable Here segnala di solito un fallimento della negoziazione SDP/codec.

Codici 4xx frequenti
CodiceMotivoCausa tipica
400Bad RequestMessaggio malformato
401 / 407Unauthorized / Proxy Auth RequiredChallenge di autenticazione (UAS/proxy)
403ForbiddenAutenticato ma non autorizzato
404Not FoundUtente sconosciuto / Request-URI non valido
408Request TimeoutNessuna risposta entro il tempo limite
480Temporarily UnavailableRegistrato ma al momento non raggiungibile
486Busy HereIl chiamato è occupato
487Request TerminatedINVITE è stato CANCELled
488Not Acceptable HereLa negoziazione del media/codec (SDP) non è riuscita
§04

Fallimenti del server (5xx) e globali (6xx)

I codici 5xx e 6xx segnalano fallimenti al di là della richiesta stessa. 500 Server Internal Error e 503 Service Unavailable indicano un problema del server o a valle; 504 Server Time-out è un timeout di gateway. La classe 6xx è categorica: 600 Busy Everywhere, 603 Decline (il chiamato ha rifiutato attivamente), 604 Does Not Exist Anywhere e 606 Not Acceptable. Poiché 6xx significa che la richiesta fallisce in ogni possibile posizione, un forking proxy smette di provare altri branch — a differenza di un 4xx, specifico di un solo target.

Codici 5xx e 6xx principali
CodiceMotivoSignificato
500Server Internal ErrorIl server ha riscontrato un errore imprevisto
503Service UnavailableServer temporaneamente sovraccarico/non disponibile
504Server Time-outNessuna risposta tempestiva da un server a valle
600Busy EverywhereChiamato occupato in tutte le posizioni
603DeclineIl chiamato ha rifiutato esplicitamente la chiamata
604Does Not Exist AnywhereL'utente non esiste da nessuna parte
606Not AcceptableParametri di sessione inaccettabili ovunque
FAQ

Domande frequenti

Cosa significa SIP 200 OK?

200 OK è la risposta di successo. Per un INVITE significa che la chiamata è stata risposta e trasporta la risposta SDP che completa la negoziazione dei media; il chiamante deve confermarlo con un ACK. Per altre richieste conferma semplicemente che l'operazione è riuscita.

Qual è la differenza tra 486 Busy Here e 600 Busy Everywhere?

486 Busy Here significa che lo specifico endpoint contattato è occupato, quindi un forking proxy può ancora provare altre posizioni. 600 Busy Everywhere è un fallimento globale (6xx) che indica che il chiamato è occupato in tutte le posizioni, quindi i proxy dovrebbero smettere di forkare e restituire il fallimento.

Perché ricevo SIP 488 Not Acceptable Here?

488 significa quasi sempre che la negoziazione dei media è fallita — l'offerta e la risposta SDP non condividono alcun codec comune, o non è stato possibile concordare un parametro media necessario (ad esempio una crypto suite SRTP). Verificate che entrambi i lati supportino un codec e un trasporto comuni.

Cosa significa 407 Proxy Authentication Required?

Un proxy sta richiedendo le credenziali per la richiesta. Il client dovrebbe reinviare la richiesta con un header Proxy-Authorization calcolato dalla challenge. È la controparte lato proxy di 401 Unauthorized, che proviene dallo UAS o dal registrar.

A cosa serve la risposta SIP 100 Trying?

100 Trying è una risposta provvisoria che comunica al salto a monte che la richiesta è stata ricevuta ed è in elaborazione, il che ferma la ritrasmissione della richiesta da parte del mittente. È salto per salto e non viaggia mai end-to-end come 180 o 200.

Riferimenti

Specifiche della fonte

Gli standard pubblicati su cui si basa questa pagina. Si apre in una nuova scheda.

BNGestito dal team di ingegneri BroadNet·Servizi di messaggistica di livello carrier dal 2003
Mettilo sul filo

Realizzato con un vero binding SMPP e un'API REST.

Richiedi l'accesso di prova con chiavi di test reali: invia prima al tuo numero verificato, poi passa alla produzione in oltre 200 paesi una volta approvata l'identità del mittente e i percorsi.