Как определить соединение по 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), создает проблемы с безопасностью, т.к. эта информация может быть использована любым, кто ее увидит.
Обратите внимание, что поле пароля - просто расширяет пользовательскую информацию в URI. В описании реализации нет специального поля, которое было бы предназначено для пароля, и это поле МОЖЕТ просто рассматриваться как одно поле "user:password".
- host: Имя хоста, предоставляющего SIP ресурсы. Это поле может содержать как полное доменное имя или цифровой IPv4 или IPv6 IP адрес. РЕКОМЕНДУЕТСЯ использовать полное доменное имя везде, где это возможно.
- port: Номер порта, используемый для отправки запроса.
Замечание: SIP URI: username@hostname:5060 - это не то же самое, что Username@hostname. Если задано поле номера порта, используется функция DNS - gethostbyname для получения адреса хоста. Если же номер порта не задан, тогда значение hostname будет получено с помощью SRV,:::::" class="wiki wiki_page">DNS SRV. Значение hostname может указывать на один или несколько SIP прокси серверов.
Ссылки по теме:
- TEL: Формирование URI для определения телефонных вызовов.
Вернуться к описанию SIP