SIP - Прокси и маршрутизация
Как мы знаем, прокси-сервер может быть как без состояния, так и с отслеживанием состояния. В этой главе мы подробнее обсудим прокси-серверы и маршрутизацию SIP.
Прокси-сервер без сохранения состояния
Прокси-сервер без сохранения состояния просто пересылает полученное сообщение. Этот тип сервера не хранит никакой информации о вызове или транзакции.
- Прокси-серверы без сохранения состояния забывают о запросе SIP после его перенаправления.
- Транзакция будет быстрой через прокси без сохранения состояния.
Прокси-сервер с отслеживанием состояния
Прокси-сервер с отслеживанием состояния отслеживает каждый полученный запрос и ответ. При необходимости он может использовать сохраненную информацию в будущем. Он может повторно передать запрос, если не получит ответа от другой стороны.
Прокси-серверы с отслеживанием состояния запоминают запрос после того, как он был перенаправлен, поэтому они могут использовать его для предварительной маршрутизации. Прокси-серверы с отслеживанием состояния поддерживают состояние транзакции . Транзакция подразумевает состояние транзакции,notсостояние вызова .
Транзакция с прокси-серверами с отслеживанием состояния выполняется не так быстро, как без отслеживания состояния.
Прокси-серверы с отслеживанием состояния могут при необходимости выполнять ответвление и повторную передачу (например: переадресация вызова занята).
Через и Рекорд-маршрут
Запись-Маршрут
Заголовок Record-Route вставляется в запросы прокси-серверами, которые хотели быть на пути последующих запросов для того же идентификатора вызова. Затем он используется пользовательским агентом для маршрутизации последующих запросов.
Через
Заголовки Via вставляются серверами в запросы для обнаружения петель и помогают ответам найти путь обратно к клиенту. Это полезно только для ответов, которые достигают места назначения.
UA сам генерирует и добавляет свой собственный адрес в поле заголовка Via при отправке запроса.
Прокси-сервер, пересылающий запрос, добавляет поле заголовка Via, содержащее его собственный адрес, в начало списка полей заголовка Via.
Прокси-сервер или UA, генерирующий ответ на запрос, копирует все поля заголовка Via из запроса по порядку в ответ, а затем отправляет ответ на адрес, указанный в верхнем поле заголовка Via.
Прокси-сервер, получающий ответ, проверяет верхнее поле заголовка Via и сопоставляет его собственный адрес. Если он не совпадает, ответ был отклонен.
Затем верхнее поле заголовка Via удаляется, а ответ пересылается на адрес, указанный в следующем поле заголовка Via.
Поля заголовка Via содержат имя протокола, номер версии и транспорт (SIP / 2.0 / UDP, SIP / 2.0 / TCP и т. Д.) И содержат номера портов и параметры, такие как полученный, rport, ветвь.
Полученный тег добавляется в поле заголовка Via, если UA или прокси-сервер получает запрос с адреса, отличного от адреса, указанного в верхнем поле заголовка Via.
UA и прокси-серверы добавляют параметр ветвления в поля заголовка Via, который вычисляется как хэш-функция Request-URI, а также номера To, From, Call-ID и CSeq.