В SIP, почему поле заголовка контакта ДОЛЖНО присутствовать в запросе приглашения - PullRequest
8 голосов
/ 29 февраля 2012

Обычно поле заголовка контакта в запросе на приглашение не имеет смысла. Например, UAC и UAS находятся в разных локальных сетях. Поле Контакт может быть:

INVITE sip:bob@sipprovider SIP/2.0
Contact: Alice<alice@192.168.1.10>
.....

Поле «Контакт» не используется, хотя мы все еще можем построить диалог. Тогда, почему поле заголовка контакта является обязательным?

Ответы [ 2 ]

9 голосов
/ 02 марта 2012

В заголовке контакта указано , где вы находитесь (или, скорее, там, где находится ваш пользовательский агент), а в заголовке От: кто вы.

Возможно, вынесколько устройств SIP, зарегистрированных на один и тот же адрес записи (URI, который вы указали в заголовке From).

Далее, запросы REGISTER используют заголовки контактов для поддержки службы определения местоположения SIP: они позволяют агенту пользователя обновлять регистратораинформация о местоположении.

(Кроме того, если Алиса вызывает Боба, заголовок Contact должен быть в ответе 2xx, чтобы Алиса могла направить ACK 2xx на Боба. Это указывает на комментарий DarkDust о некоторых искажениях прокси-серверов SIPЗаголовки контактов: если этого не произойдет, вы окажетесь в неудобной ситуации, когда вызов будет установлен только наполовину: Алиса считает, что вызов настроен, потому что она отправила свой ACK, но Боб никогда не получает его. Альтернатива контактамПрокси-сервер использует B2BUA в качестве сетевого шлюза, ему не нужно манипулировать заголовком Contact, потому что заголовокr указывает на саму B2BUA.)

В ответ на комментарии Феникса Луо из-за недостатков использования IP-адресов локальной сети в заголовке контакта RFC 5627 описывает решение - использование глобально маршрутизируемойURI пользовательского агента (GRUU) в заголовке (ах) контакта.

7 голосов
/ 29 февраля 2012

Поле контакта содержит адрес, по которому вызываемый абонент может связаться с вызывающим абонентом для будущих запросов.Например, необходимо, чтобы вызываемый абонент мог отправить вызывающему абоненту сообщение BYE или re-INVITE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...