Как определить соединение по SIP протоколу, с использованием URL


Выдержка из SIP RFC 3261:



В протоколе SIP или SIPS URI определяет коммуникационный ресурс. Как и все URI, URI для протокола SIP и SIPS, могут публиковаться на web страницах, в email сообщениях, или в бумажной литературе. URI содержит достаточную информацию для создания и проведения сеанса с коммуникационным ресурсом, который в нем указан.



"Префиксы" - "sip:" и "sips:" используются согласно указаний в RFC 2396 - Uniform Resource Identifiers (URI): Основной синтаксис.

Тут используется форма, аналогичная описанию URL "mailto", которая позволяет определить заголовки SIP запроса и тела SIP сообщения. Так же, этот формат дает возможность определить: заголовок, тип медиаданных, и степень срочности сеанса, которая инициируется при использовании URI с web страницы или из email сообщения. Полная форма определения SIP URI в этом случае будет такой:

sip:user:password@host:port;uri-parameters?headers

Форма для SIPS URI будет аналогичной, только вместо префикса протокола "sip" следует использовать - "sips". Означенные выше поля ссылки, и некоторые другие поля, которые можно тут использовать, имеют следующее назначение:

  • user: Однозначно идентифицирует ресурс на адресуемом хосте. Термин "хост" в этом контексте, часто означает домен. Информация о пользователе (часть "userinfo") всего URI, состоит из имени пользователя, пароля, и символа @, который отделяет это поле от имени хоста. Компонент с "информацией о пользователе" - это необязательная часть URI и МОЖЕТ отсутствовать, когда хосту назначения не важно это поле или когда он сам уже является самостоятельным ресурсом, определенным в URI. Если в SIP или SIPS URI присутствует символ @, тогда пользовательская информация НЕ ДОЛЖНА быть пустой.

Если адресуемый хост может обработать телефонный номер, например, это шлюз между Интернетом и телефонной сетью, то поле номера вызываемого телефона, определенное согласно RFC 2806, МОЖЕТ использоваться в поле пользовательской информации. Существуют специальные правила для кодирования телефонного номера абонента, при использовании его в SIP и SIPS URI, которое описано в секции 19.1.2.

  • password: пароль для пользователя. Синтаксис для SIP и SIPS URI позволяет использовать это поле, но его использование НЕ РЕКОМЕНДУЕТСЯ, потому как, использование авторизационной информации в открытом виде (например, в URIs), создает проблемы с безопасностью, т.к. эта информация может быть использована любым, кто ее увидит.
Например, использование PIN кода в этом поле, делает его доступным всем.

Обратите внимание, что поле пароля - просто расширяет пользовательскую информацию в URI. В описании реализации нет специального поля, которое было бы предназначено для пароля, и это поле МОЖЕТ просто рассматриваться как одно поле "user:password".

  • host: Имя хоста, предоставляющего SIP ресурсы. Это поле может содержать как полное доменное имя или цифровой IPv4 или IPv6 IP адрес. РЕКОМЕНДУЕТСЯ использовать полное доменное имя везде, где это возможно.

  • port: Номер порта, используемый для отправки запроса.


Замечание: SIP URI: username@hostname:5060 - это не то же самое, что Username@hostname. Если задано поле номера порта, используется функция DNS - gethostbyname для получения адреса хоста. Если же номер порта не задан, тогда значение hostname будет получено с помощью DNS SRV. Значение hostname может указывать на один или несколько SIP прокси серверов.


Ссылки по теме:

  • TEL: Формирование URI для определения телефонных вызовов.


Вернуться к описанию SIP