Головна | Продукція Новини | Контакти | Підтримка | Рішення | FAQ | Форум | Продажі

Будущее реального времени
С новым протоколом SIP связывают будущее IP-телефонии.

Игорь Масленников

IP против телефонии
    В настоящее время IP-телефония строится на протоколе H.323, однако эксперты во всем мире связывают ее будущее не с ним, а с новым протоколом под названием SIP. SIP, опубликованный как RFC 2543, еще не принят в качестве стандарта, но все уверены, что это произойдет в самом ближайшем будущем. Уже сейчас его поддержку обеспечивает масса производителей программного обеспечения и аппаратуры. Корпорация Microsoft встроила SIP в свою новейшую ОС Windows XP: на этом протоколе работает система обмена сообщения Windows Messenger, а серверные версии XP будут включать сервер SIP (SIP Proxy). Интенсивно внедряют SIP и крупные провайдеры, такие, как Level 3, Worldcom, Telia, а 3GPP-консорциум -- ассоциация разработчиков мобильных сетей третьего поколения -- в ноябре прошлого года определил, что именно SIP станет голосовым протоколом в этих сетях. (О том, что мобильные сети третьего, четвертого и последующих поколений будут IP-сетями, известно уже довно.) Что касается нашей страны, то в ряде фирм (в том числе и в "Комптеке", где я работаю) SIP поддерживается во внутренних IP-телефонных сетях, а компании "Тарио Трейдинг" удалось даже организовать использование SIP в коммерческой сети TarioNet, обеспечивающей междугородную и международную IP-телефонную связь через интернет.
    Почему же специалисты прохладно относятся к H.323 и полны энтузиазма по поводу SIP? Дело в том, что при создании этих двух протоколов применялись противоположные подходы: авторы H.323 создавали телефонный протокол для IP-сетей, а авторы SIP -- IP-протокол для телефонии (в действительности функции SIP шире, о чем мы поговорим ниже). И когда интернет-сообщество получило возможность сравнить их, обнаружилось, что второй подход намного удачнее и перспективнее первого. Это уже совершенно ясно, хотя разработка SIP началась совсем недавно и реализации его пока в основном экспериментальные.
    Создатели H.323 (а его разрабатывал Международный союз электросвязи -- International Telecommunications Union, ITU) взяли за основу своего протокола сигнализацию ISDN (Q.931) и в результате перенесли в IP-телефонию все проблемы телефонии обычной. Поскольку набор рекомендаций H.323 сам по себе не гарантирует совместимости, устройства, выпущенные разными производителями, часто были неспособны работать вместе. Технология оказалась весьма сложной для разработчиков, проектировщиков и служб эксплуатации: достаточно упомянуть, что сообщения, которыми обмениваются узлы IP-телефонной сети, работающей по протоколу H.323, имеют двоичную форму и для их интерпретации необходима специальная программа анализа (ISDN parser).

 

    Протокол SIP родился в недрах IETF (Internet Engineering Task Force) -- организации, занимающейся утверждением стандартов интернета и вообще стандартов, имеющих отношение к протоколам TCP/IP. Здесь за основу были взяты протоколы, применяемые в самых популярных на сегодняшний день IP-сервисах, такие, как HTTP (Web) и SMTP (электронная почта). Идейно SIP основан на том же подходе, что HTTP: запрос -- ответ (request -- reply). Все сообщения SIP текстовые, и их можно читать глазами, а коды возврата -- такие же, как в HTTP, поэтому некоторые из них покажутся хорошо знакомыми не только сетевым администраторам, но и многим "продвинутым" пользователям интернета (404 -- абонент не найден, 200 -- OK).
   
Существенно, что SIP, хотя и может использоваться в IP-телефонии, не является протоколом для передачи голосовых данных -- он вообще не привязан к передаче данных какого-то определенного вида. Название SIP расшифровывается как Session Initiation Protocol -- протокол инициирования сеанса. Это означает, что SIP обеспечивает инициирование, контроль и ликвидацию сеансов обмена информацией, а в качестве самой передаваемой информации может выступать что угодно: и речь (как в случае IP-телефонии), и музыка, и видео, и, например, текст (протокол позволяет организовывать сеансы коллективной работы над документами, какие поддерживаются в MS Exchange или Lotus Notes).
    Тип данных определяется отдельным протоколом SDP (Session Description Protocol -- протокол описания сеанса), который работает в паре с SIP и обладает замечательной способностью менять параметры сеанса по ходу обмена данными. Простейший пример: два собеседника разговаривают по IP-телефону, и один хочет показать другому фотографию -- SDP позволит сделать это в рамках того же SIP-сеанса. Более того, в принципе ничто не мешает перейти по ходу дела на другой терминал (например, если разговор происходит по мобильному телефону, вы можете перейти на компьютер или на телефон с дисплеем и там просмотреть фотографию).

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

Клиент и серверы SIP

    Поскольку SIP-сеть -- система клиент-серверная, т. е. основанная на обмене запросами и ответами, в ее функционировании принимают участие SIP-клиент и великое множество различных SIP-серверов. Впрочем, следует сразу же оговориться, что реализация клиента в чистом виде была бы непрактичной (нормальный телефон должен как минимум уметь отвечать на звонки), так что все имеющиеся реализации SIP-клиентов в действительности включают и определенный набор серверных функций.
    Для того чтобы стало возможным общение в простейшем варианте, достаточно двух клиентов. Обмен звонками между ними схематично показан на рис. 1: первый пользователь снимает трубку и набирает номер, SIP-клиент генерирует сигнал INVITE (приглашение), у второго пользователя звонит телефон, его SIP-клиент выдает сообщение 180 (Ringing, звонок), затем пользователь берет трубку, SIP-клиент выдает сообщение 200 (OK), первый SIP-клиент посылает второму сигнал ACK (подтверждение) -- и далее начинается передача голосового потока по протоколу RTP (Real-time Transport Protocol). Когда разговор окончен и один из пользователей вешает трубку, SIP-клиент посылает сигнал BYE. Вот и все.

Но такая схема абсолютно неэффективна, когда клиентов в сети не два, а два миллиарда. SIP-сетям с большим числом пользователей необходима инфраструктура, и ее создают различные серверы SIP. Сервер регистрации (registrar) занимается учетом и авторизацией пользователей, сервер локализации (allocation) ищет их и определяет их местонахождение, сервер переадресации (redirect) переводит звонки абонентам туда, где они фактически находятся в данный момент, -- если меня, например, нет в Москве, потому что я уехал в Америку, сервер переведет звонок на мой американский номер.
   
Наиболее сложные функции ложатся на прокси-сервер (SIP Proxy), обеспечивающий взаимодействие внутренней (например, учрежденческой) IP-телефонной сети с внешним миром, -- именно он определяет все политики, правила общения и т. д. Существуют и другие серверы SIP (например, сервер конференций), но они менее важны.
    На рис. 2 показано, как может работать SIP в сети предприятия. Пользователь Алиса приходит на свое рабочее место в компании Example, включает в корпоративную сеть ноутбук и активизирует имеющийся на нем программный телефон, который автоматически регистрируется на сервере регистрации. Тот, в свою очередь, запрашивает информацию о пользователе в корпоративной базе данных и сообщает о том, как с ним контактировать, серверу локализации. (Оба сервера могут интегрироваться с различными базами данных, службами каталогов типа LDAP или MS Active Directory и т. д.) Теперь, когда кто-нибудь позвонит Алисе, прокси-сервер, запросив сервер локализации, установит связь с ее рабочим местом.

Адреса и телефоны
    Адресация SIP логическая, того же типа, что URL в HTTP. И самое естественное -- использовать в качестве адреса SIP адрес электронной почты. Именно такие адреса показаны на рис. 2: почтовый адрес Алисы -- alice@example.ru, и ей можно звонить на адрес sip:alice@example.ru. Адрес допускает разнообразные параметры: можно, например, указать обычный городской телефонный номер, добавочный телефон, параметры модемного соединения и т. д.
    Следует отметить, что SIP поддерживает функции messaging и presence. Первая обеспечивает обмен в реальном времени короткими сообщениями (как ICQ на ПК или SMS в сетях GSM), вторая позволяет определять состояние абонента, т. е. на месте ли он, не занят ли и т. д. (в ICQ тоже есть такая возможность). Благодаря этим двум функциям SIP позволяет реагировать на события, а также рассылать сообщения "по событию".
    Тем самым с помощью SIP вы можете сколь угодно тонко управлять доступом других абонентов к своему номеру, -- например, настроить свое SIP-окружение так, чтобы ваша мама всегда имела возможность до вас дозвониться, а для других родственников и знакомых существовали ограничения. При этом мама будет всегда звонить по одному и тому же номеру, а откликаться будут, в зависимости от того, где вы находитесь, мобильный телефон, персональный компьютер, ноутбук или, скажем, PDA. Если же коллега по работе позвонит вам среди ночи, он не дозвонится, но вы будете знать, что он звонил.

IP-интеграция
   
Итак, SIP-адреса используют адреса e-mail, для всех операций со звонками используются URL, а сообщения SIP являются мультимедийными и, более того, объектными. Кроме того, SIP поддерживает специальный довольно мощный язык CPL (Call Processing Language -- язык обработки звонков) на основе XML, предназначенный для написания телефонных скриптов, позволяющий указать, кто кому когда и зачем звонит, что делать, если трубку не берут или берут не там, и т. д. В силу всего этого в рамках SIP легко строить самые разнообразные сервисы.
   
Подобные сервисы могут создавать три группы людей: производители SIP-оборудования, сервис-провайдеры и сами конечные пользователи. Язык CPL несложен, так что, видимо, многие будут способны реализовать вполне изощренную схему работы автоответчика: скажем, если позвонивший набирает цифру 1, он переключается на домашний телефон абонента, если 2 -- на сотовый, если 3 -- на телефон его родителей и т. д. А почему бы не написать скрипт, который, когда раздастся звонок, показывал бы вам лицо (фотографию) звонящего? Телефон ресторана мог бы, скажем, сразу выдавать на дисплей сегодняшнее меню, -- короче говоря, возможности здесь ограничены только фантазией пользователя.
   
Поскольку все современные ERP-, CRM- и т. п. системы работают по протоколу IP, SIP без особых проблем интегрируется с ними (в отличие от H.323, которому его телефонная природа мешает взаимодействовать с большинством приложений).

О мобильности SIP

   
Достоинством SIP часто называют мобильность, причем этот термин имеет несколько смыслов. Во-первых, под мобильностью можно подразумевать независимость от производителя оборудования: действительно, решения от разных производителей практически всегда оказываются совместимы друг с другом (с H.323 положение, увы, намного хуже).
   
Второе понимание -- это мобильность самого абонента: благодаря системе серверов локализации и переадресации вам всегда можно звонить на один и тот же номер (адрес), а SIP самостоятельно разыщет вас там, где вы находитесь. Кроме того, звонки на один и тот же адрес можно принимать разными клиентами -- теми, которые у вас в данный момент под рукой или которыми вы больше любите пользоваться.
   
И наконец, используемые вами сервисы тоже сохраняются независимо от того, где вы находитесь и каким клиентом пользуетесь, -- конечно, в пределах разумного (понятно, что если телефон не имеет экрана, на нем не удастся показать изображение).

Протокол будущего
   
Наиболее важные особенности SIP -- это, во-первых, изначальная мультимедийность (впрочем, H.323 -- тоже мультимедийный протокол, хотя и, если можно так выразиться, в меньшей степени), во-вторых, клиент-серверный характер, благодаря которому функциональность SIP определяется количеством и качеством серверов, имеющихся в сети, и, наконец, в-третьих, событийность, т. е. возможность реагировать на события. IP-телефония в ее нынешнем состоянии, возможно, и не нуждается в протоколе с такими свойствами, но путь развития уводит ее от чисто телефонных задач к более широким. Именно на это ее "нетелефонное" будущее и нацелен SIP, который тоже не является чисто телефонным, а представляет собой протокол для любых IP-коммуникаций реального времени.
   
Эти коммуникации, интегрированные с существующими IP-сервисами, будут включать множество различных сервисов и возможностей для всех участников рынка: и для производителей оборудования и ПО, и для операторов, и для конечных пользователей.

Источник: http://www.setevoi.ru