SIP - Campi intestazione richiesta e risposta

Accettare

Il campo di intestazione Accetta viene utilizzato per indicare i tipi di supporto Internet accettabili del messaggio nel corpo del messaggio.

  • Il campo dell'intestazione descrive i tipi di media utilizzando il tipo / sottotipo di formato comunemente usato in Internet.

  • Se non è presente, il formato del corpo del messaggio presunto accettabile è application/sdp.

  • Un elenco di tipi di media può avere preferenze impostate usando q parametri di valore.

Accetta codifica

Il campo dell'intestazione Accept-Encoding viene utilizzato per specificare schemi di codifica del corpo del messaggio accettabili.

  • La codifica può essere utilizzata per garantire che un messaggio SIP con un corpo del messaggio grande si adatti a un singolo datagramma UDP.

  • L'uso di qi parametri di valore possono impostare le preferenze. Se nessuno degli schemi elencati è accettabile per l'UAC, viene restituita una risposta 406 Non accettabile. Se non è inclusa, la codifica presunta saràtext/plain.

Per

Toindica il destinatario finale della richiesta. Qualsiasi risposta generata da un UA conterrà questo campo di intestazione con l'aggiunta di un tag. È un'intestazione obbligatoria.

  • Qualsiasi risposta generata da un proxy deve avere un tag aggiunto al file To campo di intestazione.

  • Il To L'URI del campo di intestazione non viene mai utilizzato per il routing.

A partire dal

FromIl campo di intestazione indica il mittente della richiesta. È uno dei due indirizzi utilizzati per identificare una finestra di dialogo.

  • UN From Il campo di intestazione può contenere un tag utilizzato per identificare una particolare chiamata.

  • Può contenere un nome visualizzato, nel qual caso l'URI è racchiuso tra <>.

  • È un'intestazione obbligatoria.

Call-ID

Il campo dell'intestazione Call-ID è obbligatorio in tutte le richieste e risposte SIP. Viene utilizzato per identificare in modo univoco una chiamata tra due programmi utente.

  • Un Call-ID deve essere univoco in tutte le chiamate.

  • Tutte le registrazioni per un agente utente dovrebbero utilizzare lo stesso ID di chiamata.

  • Un Call-ID viene sempre creato da un agente utente e non viene mai modificato da un server.

  • È un identificatore crittograficamente casuale.

attraverso

Via viene utilizzato per registrare il percorso SIP preso da una richiesta che aiuta a reindirizzare una risposta al mittente.

  • Un UA che genera una richiesta registra il proprio indirizzo in un campo di intestazione Via.

  • Un proxy che inoltra la richiesta aggiunge un campo di intestazione Via contenente il proprio indirizzo all'inizio dell'elenco dei campi di intestazione Via.

  • Un proxy o un UA che genera una risposta a una richiesta copia tutti i campi dell'intestazione Via dalla richiesta in ordine nella risposta, quindi invia la risposta all'indirizzo specificato nel campo dell'intestazione Via superiore.

  • Un proxy che riceve una risposta controlla il campo dell'intestazione Via superiore e corrisponde al proprio indirizzo.

  • Se non corrisponde, la risposta è stata scartata.

  • Il campo di intestazione Via superiore viene quindi rimosso e la risposta inoltrata all'indirizzo specificato nel campo di intestazione Via successivo.

  • I campi di intestazione tramite contengono il nome del protocollo, il numero di versione e il trasporto (SIP / 2.0 / UDP, SIP / 2.0 / TCP, ecc.) E possono contenere numeri di porta e parametri come ricevuti, rport, branch, maddr, e ttl.

  • UN received il tag viene aggiunto a un campo di intestazione Via se un UA o un proxy riceve la richiesta da un indirizzo diverso da quello specificato nel campo di intestazione Via superiore.

  • Un parametro di filiale viene aggiunto ai campi di intestazione Via da UA e proxy, che viene calcolato come una funzione hash dell'URI di richiesta e del numero A, Da, ID chiamata e CSeq.

CSeq

Il campo di intestazione CSeq è un campo di intestazione obbligatorio in ogni richiesta. Contiene un numero decimale che aumenta per ogni richiesta.

  • Di solito, aumenta di 1 per ogni nuova richiesta, ad eccezione di CANCEL e ACK richieste, che utilizzano il numero CSeq della richiesta INVITE a cui si riferisce.

  • Il conteggio CSeq viene utilizzato dagli UAS per determinare le richieste fuori sequenza o per distinguere tra una nuova richiesta (diverso CSeq) o una ritrasmissione (stesso CSeq).

  • Il campo dell'intestazione CSeq viene utilizzato dagli UAC per abbinare una risposta alla richiesta a cui fa riferimento.

  • Ad esempio, un controllo dell'account utente che invia una richiesta INVITE, quindi una richiesta ANNULLA può dire con il metodo nel CSeq di una risposta 200 OK se si tratta di una risposta all'invito o alla richiesta di annullamento.

Contatto

Il campo dell'intestazione del contatto viene utilizzato per comunicare all'altro utente l'indirizzo del mittente della richiesta. Una volta ricevuto un campo di intestazione del contatto, l'URI può essere memorizzato nella cache e utilizzato per instradare richieste future all'interno di una finestra di dialogo.

Ad esempio, un campo di intestazione del contatto in una risposta 200 OK a un INVITO può consentire al messaggio di ACK di conferma e a tutte le richieste future durante questa chiamata di ignorare i proxy e passare direttamente alla parte chiamata.

Record-Route

Il campo di intestazione Record-Route viene utilizzato per forzare l'instradamento attraverso un proxy per tutte le richieste successive in una sessione (dialogo) tra due UA.

Normalmente, la presenza di un campo di intestazione Contatto consente agli UA di inviare messaggi bypassando direttamente la catena proxy utilizzata nella richiesta iniziale.

  • Un proxy che inserisce il proprio indirizzo in un campo di intestazione Record-Route sovrascrive questo e forza le richieste future a includere un campo di intestazione Route contenente l'indirizzo del proxy che forza l'inclusione di questo proxy.

  • Un proxy che desidera implementare ciò inserisce il campo di intestazione contenente il proprio URI o aggiunge il proprio URI a un campo di intestazione Record-Route già presente.

  • L'URI è costruito in modo che l'URI si risolva nuovamente nel server proxy. L'UAS copia il campo di intestazione Record-Route nella risposta 200 OK alla richiesta.

  • Il campo di intestazione viene inoltrato invariato dai proxy all'UAC. L'UAC memorizza quindi l'elenco proxy Record-Route più un campo di intestazione del contatto se presente nel 200 OK da utilizzare in un campo di intestazione Route in tutte le richieste successive.

Organizzazione

Il campo dell'intestazione dell'organizzazione viene utilizzato per indicare l'organizzazione a cui appartiene il mittente del messaggio.

  • Può anche essere inserito dai proxy quando un messaggio viene passato da un'organizzazione all'altra.

  • Come tutti i campi di intestazione SIP, può essere utilizzato dai proxy per prendere decisioni di instradamento e dagli UA per prendere decisioni di screening delle chiamate.

Riprova dopo

Viene utilizzato per indicare quando una risorsa o un servizio potrebbe essere nuovamente disponibile.

  • Nelle risposte 503 Servizio non disponibile, indica quando il server sarà disponibile.

  • Nelle risposte 404 Not Found, 600 Busy Everywhere e 603 Rifiuta, indica quando l'UA chiamato potrebbe essere nuovamente disponibile.

  • Contiene il periodo di tempo in "sec".

Soggetto

Il campo di intestazione Oggetto facoltativo viene utilizzato per indicare l'oggetto della sessione multimediale.

Il contenuto del campo dell'intestazione può anche essere visualizzato durante l'avviso per aiutare l'utente a decidere se accettare la chiamata.

Example:
Subject: How are you?

Supportato

Il campo di intestazione Supportato viene utilizzato per elencare una o più opzioni implementate da un UA o un server.

  • Di solito è incluso nelle risposte alle richieste OPTIONS.

  • Se non sono implementate opzioni, il campo dell'intestazione non viene incluso.

  • Se un controllo dell'account utente elenca un'opzione in un campo di intestazione Supportato, i proxy o gli UAS possono utilizzare l'opzione durante la chiamata.

  • Se l'opzione deve essere utilizzata o supportata, viene utilizzato il campo di intestazione Richiedi.

Example:
Supported: rel100

Scade

Il campo di intestazione Expires viene utilizzato per indicare l'intervallo di tempo in cui la richiesta o il contenuto del messaggio sono validi.

  • Quando è presente in una richiesta INVITE, il campo di intestazione imposta un limite di tempo per il completamento della richiesta INVITE.

  • Cioè, l'UAC deve ricevere una risposta finale (non 1xx) entro il periodo di tempo o la richiesta INVITE viene automaticamente annullata con una risposta 408 Timeout richiesta.

  • Una volta stabilita la sessione, il valore del campo di intestazione Expires nell'INVITO originale non ha effetto: a questo scopo è necessario utilizzare il campo di intestazione Session-Expires.

  • Se presente in una richiesta REGISTRAZIONE, il campo di intestazione imposta il limite di tempo sugli URI nei campi di intestazione del contatto che non contengono un expires parametro.

  • Expires viene utilizzato anche nelle richieste SUBSCRIBE per indicare la durata dell'abbonamento.

Example:
Expires: 30

User-Agent

Questo campo di intestazione viene utilizzato per trasmettere informazioni sull'UA che ha originato la richiesta.