Стандарты на основе протокола SIP

Основным конкурентом протоколов стандарта Н.323 является протокол SIP (Session Initiation Protocol — протокол инициирования сеанса), разработанный интернет-сообществом и стандартизованный IETF в RFC 3261 (ftp://ftp.rfc-editor.org/in-notes/ rfc3261.txt).

SIP является протоколом сигнализации, он ответственен за установление сеанса между абонентами, при этом SIP выполняет функции протоколов Q.931, RAS и Н.245 стандарта Н.323 (точнее — часть из них). Для передачи аудио- и видеоданных в ходе сеанса протокол SIP предполагает использование протокола RTP.

Протокол SIP очень близок по стилю к протоколу HTTP: он имеет похожий набор и синтаксис сообщений, которыми обмениваются стороны в процессе установления сеанса. Как и у протокола HTTP, SIP-сообщения текстовые, они хорошо понятны программистам, имеющим опыт создания веб-приложений. Поэтому системы IP-телефонии, построенные на основе SIP, оказались гораздо ближе к миру Интернета, чем стандарты Н.323, пришедшие «от телеаронистов». Сегодня SIP-телеазония более тесно интегрирована с веб-услугами, чем телефония стандарта Н.323.

Архитектура SIP предусматривает как непосредственное взаимодействие абонентов через IP-сеть, так и более масштабируемые схемы, включающие участие серверов-посредников (прокси-серверов). Основным таким сервером является так называемый прокси-сервер SIP, он выполняет функции, близкие к функциям привратника Н.323. Кроме того, в архитектуре SIP может присутствовать сервер определения местоположения (SIP Location Server).

Работу протокола SIP в архитектуре с серверами обоих типов иллюстрирует рис. 1.

Рис. 1. Взаимодействие абонентов SIP

Адресами абонентов в протоколе SIP являются универсальные идентификаторы URI, используемые во всех веб-службах. На рис. 1 абонент bill@ja.net хочет установить сеанс с абонентом bob@mgu.ru. В домене ja.net установлен прокси-сервер SIP с именем sip1@ja.net, через него проходят все вызовы абонентов этого домена (за счет того, что в IP-телефонах абонентов задан IP-адрес этого прокси-сервера).

Запросом на установление сеанса в протоколе SIP является передача сообщения INVITE с URI вызываемого абонента, поэтому абонент bill@ja.net направляет своему прокси-серверу сообщение INVITE lpb@mgu.ru. Прокси-сервер для выполнения этого запроса обращается к серверу определения местоположения, который возвращает ему ответ о том, что абонент bob@mgu.ru в данный момент зарегистрирован как активный в домене piter.ru с именем bob® piter.ru. Прокси-сервер использует эту информацию для того, чтобы направить сообщение INVITE прокси-серверу домена piter.ru (сервер с именем sip2@piter.ru), указав в нем имя bob@piter.ru. Вызов завершается прокси-сервером sip2@piter.ru, который обнаруживает, что пользователь bob@piter.ru зарегистрировался и работает в настоящее время за компьютером ws12, поэтому вызов INVITE передается на этот компьютер. Далее протокол SIP работает подобно большинству протоколов сигнализации: если пользователь bob@ws12.ru соглашается принять вызов, то он снимает трубку своего SIP-телефона (или щелкает на соответствующем значке своего программного SIP-телефона) и тем самым посылает ответ ОК назад по цепочке. Окончательное установление сеанса фиксируется отправкой сообщения AСК (подтверждение) от вызывающего абонента к вызываемому.

После установления сеанса разговор происходит между телефонами абонентов в рамках протокола RTP.

Существуют также фирменные протоколы IP-телефонии, из которых наиболее известными являются протоколы Skype — очень популярного сервиса интернет-телефонии. Этот сервис к тому же поддерживает такие дополнительные услуги, как видеоконференции, передача мгновенных сообщений, передача файлов между абонентами.