Описание протокола sip
Протокол инициирования сеансов – Session Initiation Protocol (SIP) предназначается для организации, модификации и завершения сеансов связи. Структура сообщений SIP не зависит от того, какие протоколы нижних уровней используются в сети, однако предпочтение отдается технологии маршрутизации пакетов IP и протоколу UDP.
Основным функциональным элементом, реализующим функции управления соединением, является терминал. В данной работе терминалами являются IP-телефонные аппараты, персональные компьютеры с программными телефонными аппаратами и шлюз IP-телефонии. Другие элементы сети – SIP-proxy, Registrar, Redirect server - отвечают за маршрутизацию вызовов.
SIP-proxy (англ. proxy – представитель) представляет интересы абонента в сети. Он принимает запросы, обрабатывает их и, в зависимости от типа запроса, выполняет определенные действия. Это может быть поиск и вызов абонента, маршрутизация запроса, предоставление услуг и т.д.
Протоколом SIP предусматривается взаимодействие элементов сети посредством запросов и ответов. С помощью запросов клиент сообщает о текущем местоположении, приглашает абонентов принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т.д. Назначение наиболее часто используемых запросов приведено в таблице 2.
Таблица 2
Запрос |
Назначение запроса |
INVITE |
Приглашает абонента к сеансу связи. |
ACK |
Подтверждает прием окончательного ответа на запрос INVIT |
BYE |
Завершает сеанс связи. Может быть передан любой из сторон, участвующих в сеансе |
CANCEL |
Отменяет обработку запроса |
REGISTER |
Переносит адресную информацию от терминала к Registrar |
NOTIFY |
Запрашивает подключение (отключение) дополнительной услуги |
NOTIFY |
Передает уведомление о статусе дополнительной услуги |
OPTIONS |
Запрашивает информацию о функциональных возможностях терминала |
Запросы и ответы содержат поля, несущие важные сведения об устанавливаемых соединениях. Одни из них обязательны для включения в сообщения данного типа, другие используются только в том случае, когда возникает потребность передать специфическую информацию. Наиболее часто используются следующие поля
Поле То – определяет SIP-адрес пункта назначения;
Поле From – идентифицирует отправителя запроса, по структуре оно аналогично полю То;
Поле Call_ID – уникальный идентификатор сеанса связи, подобный метке соединения в сигнализации DSS1. Значение идентификатору присваивает сторона, которая инициирует вызов. Заголовок Call_ID состоит из буквенно-числового индекса и имени рабочей станции, которая присвоила значение этому идентификатору.
Поле Via служит для того, чтобы избежать ситуации, в которой запрос пойдет по замкнутому пути, а также для тех случаев, когда необходимо, чтобы запросы и ответы обязательно проходили по одному и тому же маршруту. Когда запрос проходит через несколько SIP-proxy, каждый из них добавляет поле Via со своим адресом. Таким образом, в запросе указывается весь пройденный путь.
Поля To и From в запросе REGISTER имеют смысл, несколько отличный от указанного:
Поле То содержит адрес, который необходимо сохранить или модифицировать на сервере – этот адрес будет использоваться другими абонентами для вызова регистрируемого;
Поле From содержит адрес инициатора регистрации. Зарегистрировать пользователя может либо он сам, либо другое лицо, например, секретарь может зарегистрировать своего начальника.
