Протокол SIP (Session Initiation Protocol) является протоколом прикладного уровня, разработанным рабочей группой по управлению многоточечными сеансами мультимедиа-связи (MMUSIC) организации IETF (Рекомендация RFC 2543). Он позволяет организовать сеанс связи между пользователями, обеспечивая его установление, модификацию и завершение.
При организации мультимедийного сеанса используется два основных метода для нахождения и информирования заинтересованных участников:
уведомление о сеансе с использованием разных средств - электронной почты, групп новостей, Web-страниц или специального протокола SAP (Session Announcement Protocol);
приглашение к участию в сеансе с помощью протокола SIP.
Для установления сеансов одноадресного вещания, которое характерно для IP-телефонии, основным протоколом установления соединений является протокол SIP. Протокол SIP работает по схеме клиент-сервер (рисунок 4.6): клиент запрашивает определенный тип сервиса, а сервер обрабатывает его запрос и обеспечивает предоставление сервиса. Согласно протоколу SIP, пользовательская система может не только формировать, но и принимать запросы. Это означает, что она должна быть оснащена и клиентской (клиент агента пользователя - UAC) и серверной (сервер агента пользователя - UAS) частями.
Рисунок 4.6 - Схема сигнализации по протоколу SIP
Обработка вызовов осуществляется сервером SIP, который может работать в режиме непосредственного установления связи или в режиме переадресации. В обоих режимах сервер принимает запросы на определение местоположения нужного пользователя, но если в первом режиме он сам доводит вызов до адресата, то во втором - возвращает адрес конечного пункта запрашивающему клиенту.
В протоколе SIP определены два вида сигнальных сообщений - запрос и ответ. Они имеют текстовый формат (кодировка символов согласно RFC 2279) и базируются на протоколе HTTP (синтаксис и семантика определены в RFC 2068). В запросе указываются процедуры, вызываемые для выполнения требуемых операций, а в ответе – результаты их выполнения. Определены шесть процедур:
INVITE - приглашает пользователя принять участие в сеансе связи (служит для установления нового соединения; может содержать параметры для согласования);
BYE - завершает соединение между двумя пользователями;
OPTIONS - используется для передачи информации о поддерживаемых характеристиках (эта передача может осуществляться напрямую между двумя агентами пользователей или через сервер SIP);
АСК - используется для подтверждения получения сообщения или для положительного ответа на команду INVITE;
CANCEL - прекращает поиск пользователя;
REGISTER - передает информацию о местоположении пользователя на сервер SIP, который может транслировать ее на сервер адресов (Location Server).
Оба протокола (SAP и SIP) используют механизм SDP (Session Description Protocol) для описания характеристик сеанса: время проведения, требуемые ресурсы и т.д. (Рекомендация RFC 2327). Протокол SDP используется исключительно для текстового описания сеанса и не имеет ни транспортных механизмов, ни средств согласования требуемых для сеанса параметров. Эти функции должны выполнять протоколы, применяемые для передачи информации SDP.
Сообщения-ответы могут содержать шесть типов возможных результатов:
запрос в процессе выполнения (1хх);
успешный запрос (2хх);
переадресация (3хх);
неправильный запрос (4хх);
отказ сервера (5хх);
глобальный отказ (6хх).
Используемая в SIP адресация основана на унифицированном указателе ресурсов SIP URL, в котором может быть записано имя домена (user@domain) или IP-адрес (user@IPadress) пользователя. Цель использования подобного формата - интеграция SIP-услуг с существующими службами Интернет. Сервер имен доменов (DNS) преобразует доменные имена в IP-адреса конечной точки (рисунок 4.7). Вся маршрутизация и передача мультимедийных потоков выполняется нижележащей IP-сетью. Таким образом, услуги SIP хорошо интегрируются в традиционную модель Web-коммуникаций с сервером DNS, обеспечивающим преобразование доменного имени в сетевой адрес.
Рисунок 4.7 - Возможный сценарий установления и завершения сеанса связи по
протоколу SIP
Протокол SIP обеспечивает определение адреса пользователя и установление соединения с ним. Кроме этого, он служит основой для применения других протоколов, реализующих функции защиты, аутентификации, описания канала мультимедийной связи и т.д.