Passa al contenuto principale

11. ALTERNATE-SERVER Mechanism (Meccanismo di server alternativo)

Questa sezione descrive un meccanismo in STUN che consente a un server di reindirizzare un client a un altro server. Questa estensione è opzionale e un utilizzo deve (must) definire se e quando questa estensione viene utilizzata.

Un server che utilizza questa estensione reindirizza un client a un altro server rispondendo a un messaggio di richiesta con un messaggio di risposta di errore con un codice di errore di 300 (Try Alternate). Il server deve (MUST) includere un attributo ALTERNATE-SERVER nella risposta di errore. Il messaggio di risposta di errore può (MAY) essere autenticato; tuttavia, in alcuni casi in cui viene utilizzato ALTERNATE-SERVER, l'autenticazione della risposta potrebbe non essere possibile o pratica.

Un client che utilizza questa estensione gestisce un codice di errore 300 (Try Alternate) come segue. Il client cerca un attributo ALTERNATE-SERVER nella risposta di errore. Se ne viene trovato uno, il client considera la transazione corrente come fallita e riprova la richiesta con il server specificato nell'attributo, utilizzando lo stesso protocollo di trasporto utilizzato per la richiesta precedente. Tale richiesta, se autenticata, deve (MUST) utilizzare le stesse credenziali che il client avrebbe utilizzato con il server a cui la richiesta doveva essere effettuata quando è stata inviata al server che ha eseguito il reindirizzamento. Se il client è stato reindirizzato a un server a cui ha già provato a inviare questa richiesta negli ultimi cinque minuti, deve (MUST) ignorare il reindirizzamento e considerare la transazione come fallita. Ciò impedisce un ping-pong infinito tra i server nel caso di un ciclo di reindirizzamento.