Для рядового пользователя ПК общение через Сеть обычно сводится к отдельным программам, например «аська» — для переписки, Skype — для звонков через Интернет. А между тем та же голосовая телефония VoIP (Voice over IP, голос поверх протокола IP) — это обобщенное определение для широчайшего ассортимента цифровой голосовой связи. Фактически ее используют и современные сотовые сети, и вполне «традиционные» с виду офисные многоканальные линии. Более того, воспринимаемый большинством пользователей как отдельный «продукт», сервис обмена мгновенными сообщениями (IM) также может да и должен быть компонентом подобных решений.
Комплект из голосовой связи, IM, функций обмена файлами — общая система идентификации, которая служит основой так называемых объединенных коммуникаций, сервиса нового поколения, где ключевую роль играет не тип предоставляемых услуг, а единая учетная запись пользователя, если эти услуги ему доступны. В идеале такой сервис должен предоставлять одному и тому же «аватару» доступ к почте, IM, телефонии, блогам и социальным сетям.
Популярная опасность
Не ждите в нашем обзоре популярного Skype. Он, конечно, доступен на большинстве распространенных платформ, недорогой, быстрый и... закрытый. Выбрав данное решение, мы оказываемся ограниченными единственным поставщиком ПО и услуг. Это частенько бывает скверно даже на уровне обычного «настольного» применения. А перспектив для его применения где-либо помимо ПК, например на произвольном мобильном устройстве или в составе аппаратного IP-телефона, и вовсе практически не остается. Точно также не предвидится и возможностей для внедрения закрытого решения в составе вашей корпоративной сети с использованием удобного вам ПО и без отчислений разработчикам «стандарта». Стало быть, никакого интереса в рамках данной статьи подобная технология не представляет.
Даже если вы не собираетесь строить никаких решений с использованием Skype, а продолжаете лишь общаться с его помощью, то знаете ли вы доподлинно, куда и как обращается закрытый клиент Skype? Лично я понятия не имею, однако весьма отчетливо представляю степень угрозы для безопасности от ПО, «дыры» в котором известны лишь разработчикам да злоумышленникам. Причем последние, как правило, узнают об уязвимостях первыми и вовсе не спешат поделиться полученной информацией с кем-либо еще. Исходные же тексты открытых решений без ограничений доступны тысячам квалифицированных специалистов по всему миру, и найденные уязвимости (а где их нет?) устраняются в них на порядок оперативнее, чем в проприетарных продуктах.
Таким образом, открытые технологии, на базе которых строится инфраструктура современных голосовых сетей, и составят предмет нашего нынешнего обсуждения, а кроме того, естественно, и эволюция систем общения, направленная на интеграцию смежных сервисов и упразднение хаоса в части стандартов.
«Осью», вокруг которой вращается любая сетевая технология, служит протокол — набор спецификаций по методам обеспечения связи между пользователями, их идентификации, а также по типам данных доступных пользователю. (Конкретный пример описан во врезке «Jabber в роли «аськи»).
Из стандартов VoIP, охватывающих запросы как корпоративных, так и домашних пользователей, несложно выделить двух очевидных лидеров и одну «темную лошадку».
Голос + Видео
H.323
Данный протокол стал фактически первым открытым стандартом на голосовую и видеосвязь в Интернете и локальных сетях. Он предполагает разветвленную инфраструктуру узлов, выполняющих различные коммутационные функции. В минимальном виде система на базе протокола H.323 представляет собой некоторое количество клиентов, подключенных к единому серверу конференции. Для связи с сетью другого стандарта можно использовать шлюз, а в сложной системе такой важный ее компонент, как привратник (gatekeeper), который осуществляет обработку всех вызовов в рамках сети. Внутреннюю VoIP-сеть можно соединить с обычными телефонными коммуникациями для осуществления звонков на городские номера.
Впрочем, недостатков у протокола-ветерана также наберется немало. В первую очередь, организация зоны H.323 с ее многочисленными монофункциональными узлами — задача не из легких. Да и сам протокол также весьма запутан и монструозен. Кроме того, неизбежны сложности и при попытке воспользоваться крайне популярным видом VoIP-связи — звонками на городские телефоны (в том числе на междугородние и международные). Проблема заключается в элементарном дефиците доступных предложений подобных услуг в масштабе отдельного пользователя либо небольшого предприятия. Естественно, если вы обратитесь напрямую к крупному провайдеру услуг связи, то получите канал на основе любого протокола, а вот задачу реализации звонков с домашнего ПК или из сети малого офиса будет проще решить иными путями, которые будут представлены ниже.
Фактически единственная ниша, где и поныне сильны позиции H.323, — крупные организации со своими системами VoIP, созданными достаточно давно. Во многом такое положение дел сложилось вследствие использования протокола H.323 в Windows NetMeeting. Существует немалое количество открытых приложений-клиентов, реализующих все возможности H.323. В случае применения Linux или BSD (да и Windows, пожалуй, также) наилучшим выбором станет программа Ekiga, подробно рассмотренная в разделе о протоколе SIP. В случае же использования Mac OS X рекомендуем XMeeting.
SIP
Это второй по возрасту из распространенных протоколов VoIP. При создании SIP были учтены конструктивные недостатки H.323. Сейчас SIP является самым популярным решением, и тому есть немало веских причин.
Главное, естественно, открытость стандарта. Благодаря этому поддержка протокола существует практически для всех современных платформ. Решения на базе SIP можно найти в ассортименте такого гиганта, как CISCO, в настоящее время услуги совершения звонков с помощью данного протокола самые востребованные и недорогие.
Инфраструктура SIP гибко масштабируется — от небольшой сети в организации до полноценной цифровой АТС с шлюзом на обычные городские сети. Именно на базе такой технологии обычно и предоставляют свои услуги операторы цифровой телефонной связи. Таким образом, выбор SIP сейчас обоснован как для организаций, так и для домашних пользователей. Реализованную в рамках инфрасети предприятия голосовую связь легко соединить с другим офисом или подключить к городской телефонной линии, сохранив все возможности традиционной мини-АТС. Домашние же пользователи могут выбрать удобный для себя сервис из широкого списка предлагаемых услуг связи, без привязки к конкретному поставщику с его ПО и протоколами.
Перечень клиентов для различных платформ весьма велик, однако имеет смысл отдать предпочтение кросс-платформенным решениям с открытым исходным кодом. Так, для Windows, Linux, BSD отличным выбором станет уже упоминавшийся выше клиент Ekiga. Перечень возможностей данной программы весьма объемный. Поддерживаются широкий список оборудования для работы со звуком и видео, все существующие кодеки как для голосовой, так и для видеосвязи. Программа позволяет авторизоваться на серверах с использованием LDAP, что весьма актуально для сетей Windows с контроллером домена. Помимо того, поддерживается протокол автоматического обнаружения сервисов Apple Bonjour, доступный на всех целевых платформах. Благодаря Bonjour существенно облегчается взаимодействие с аппаратными SIP-телефонами.
Интерфейс Ekiga, полностью соответствующий требованиям Gnome HIG (Human Interface Guidelines, руководство по созданию эффективного интерфейса), весьма удобен, причем независимо от используемой ОС. Лучшим клиентом для Mac OS X, как и в случае с протоколом H.323, станет программа XMeeting.
Голос + Видео + Текст
Несмотря на все преимущества SIP, нельзя назвать этот протокол «серебряной пулей» в основном из-за недостаточно высокого уровня взаимодействия со смежными технологиями. Здесь речь идет прежде всего об интеграции голосовой связи со службами обмена мгновенными сообщениями. Если совсем недавно Интернет был настоящей свалкой несовместимых между собой сервисов, то теперь основную роль играют такие начинания, как единая система идентификации OpenID, объединение различных сервисов под знаком общего протокола, слияние крупных игроков на рынке интернет-услуг.
На фоне подобных процессов остается все меньше пользователей, желающих иметь телефонию отдельно, IM отдельно, электронную почту отдельно и в довесок еще пару-тройку отдельных блог-сервисов и социальных сетей. Мало кто захочет «перетягивать» все свои контакты, скажем, из ICQ в сеть оператора голосовых услуг. Здесь требуется не только максимальная унификация, но и возможность безболезненной миграции между различными сетями. Что же сейчас мы имеем в данной области?
SIP/SIMPLE
Расширение для SIP, добавляющее функционал IM, носит название SIMPLE. Программы, поддерживающие работу с комбинацией SIP/SIMPLE, существуют для всех платформ. В числе самых лучших из них та же Ekiga. Но в отличие от голосовой связи, где SIP весьма популярен и распространен, поддержка SIMPLE в качестве основного протокола встречается намного реже. Как наиболее известный пример можно привести лишь Windows Live Messеnger. Причина тому весьма проста: к моменту возникновения протокола большая часть «IM-пирога» уже была поделена между участниками рынка.
Однако почему же сейчас, в эпоху интеграции всего и вся, SIP/SIMPLE так медленно отвоевывает себе место под солнцем? А потому, что здесь кроются причины уже технического порядка, в первую очередь сложность в обеспечении прозрачного взаимодействия между различными сетями IM. Пожалуй, именно это качество и станет главным козырем последнего участника нашего обзора.
XMPP/Jingle
Протокол системы мгновенного общения Jabber XMPP завоевал всеобщую любовь уже довольно давно. Однако настоящий пик его развития пришелся на последние годы, когда крупнейшие игроки на рынке интернет-сервисов — Google и LiveJournal — стали выбирать XMPP в качестве протокола IM. Основными причинами оказанного ими предпочтения была открытость протокола, а также большая гибкость и даже «изящество» его реализации. Система шлюзов помогает легко подключать клиентов Jabber к другой сети (скажем, к ICQ) без потери имеющихся контактов и идентификаторов. Более того, распределенная природа Jabber позволяет клиентам какого-либо сервиса, к примеру Google, напрямую переписываться с клиентами любых других Jabber-сетей. Подобная децентрализация существенно повышает надежность, поскольку клиенты не привязаны к одному конкретному серверу, как в случае с ICQ. Случись что неладное с сервером Jabber, и они рискуют… попросту не заметить этого.
Однако вернемся к проблемам взаимодействия IM с VoIP. Стараниями все той же Google для протокола XMPP было создано очередное расширение — Jingle. С его помощью к функциям «аськи» чудесным образом добавилась еще и голосовая связь. Сначала кнопка «позвонить» появилась в оригинальном клиенте сервиса Google Talk для Windows, а затем она перекочевала в другие клиенты открытого протокола XMPP. Таким образом, популярный и распространенный IM-сервис обзавелся и возможностью голосовых вызовов внутри сети. Однако самое интересное, по всей вероятности, нас ждет впереди: Google уже тестирует сервис звонков на городские номера. При наличии подобной функции связка из XMPP и Jingle в исполнении Google Talk объединит в себе самый полный набор качеств среди всех представленных на рынке. Судите сами, простота взаимодействия с другими сетями IM, распространенность и открытость протокола, широкий набор функций IM + VoIP! В настоящее время решений, конкурирующих на достойном уровне с рассматриваемым, пока не было замечено.
Лучшим выбором для платформы Windows при использовании учетной записи Google Talk станет официальный клиент. А для систем Linux, BSD и Mac OS X самым очевидным выбором будет программа Psi, распространяемая с открытыми исходными текстами и поддерживающая самые последние нововведения в связке XMPP/Jingle. Кроме того, существует Psi и под Windows, однако новые функции появятся в этой версии несколько позже, чем в предназначенных для остальных платформ. Кстати, клиент IM от «Яндекса» базируется именно на Psi.
Приятного общения!
Jabber в роли «аськи»
Когда мы рассматривали преимущества протокола XMPP, то подробно описывали исключительно технические аспекты. Ответ же на вполне естественный для многих пользователей вопрос: «Зачем это лично мне?» — вполне заслуживает отдельного обсуждения.
Для подавляющего большинства нынешних российских пользователей термин IM означает исключительно «ICQ». Сама же «аська» — это не программа и даже не сервис, это, попросту говоря, один из видов деятельности в глобальной Сети.
Что же, доколе дела обстоят таким образом, мы не станем ломать привычные стереотипы и представим вам... чуть лучшую «аську», чем сама «аська». Дополненную и переработанную, так сказать. Иными словами, систему обмена сообщениями Jabber в самых популярных ее обличьях.
Основные технические преимущества лежащего в основе Jabber протокола XMPP мы уже рассмотрели. И «сферический IM в вакууме» выглядит вполне соблазнительно: надежный, безопасный, доступный для всякой платформы и не зависящий от конкретного злодея-собственника. Дело осталось за малым — опробовать чудо технологии в деле.
Способов обзавестись учетной записью Jabber — множество. Однако мы остановимся лишь на тех, «в нагрузку» к которым можно получить еще что-либо полезное, личный блог, например, или многофункциональный почтовый ящик. Постойте! А может быть, вы уже давным-давно являетесь пользователем Jabber, но просто не знаете об этом? Если у вас есть дневник на LiveJournal или почта на gmail.com, то именно так дело и обстоит.
Зарегистрировавшись в gmail, вы сразу же становитесь обладателем учетной записи Jabber, причем с идентификатором, аналогичным вашей новой почте, к примеру vasily.pupkin@gmail.com. В качестве клиента для ПК вы можете воспользоваться как оригинальной программой, предложенной Google (или Windows), так и любым из приведенных в данной статье решений. Процесс настройки подробно описан в справочном руководстве Google Talk — http://www.google.com/support/talk/?hl=ru.
Теперь самое время применить способность протокола XMPP работать с «неродными» сетями и получать доступ к вашему контакт-листу ICQ прямо в новой системе общения. Для этих целей подойдут так называемые «гейты», серверы, ретранслирующие данные из одной сети IM в другую. Список подобных серверов для русскоязычных мигрантов с ICQ можно изучить, в частности, на сайте мобильного Jabber-клиента Bombus: http://bombus-im.org/wiki/howto/howto_icq.
Сам процесс прост до удивления, единственным «но» для пользователей оригинального клиента от Google станет необходимость один раз обратиться для подключения «аськи» к помощи полнофункционального клиента наподобие Psi. Итак, подключаемся к нашей учетной записи Google Talk, добавляем в список серверов выбранный гейт ICQ, вводим свои учетные данные — и вуаля! Можно переносить контакты в Jabber. Теперь дальнейшее общение с «асечниками» станет возможным уже из любой программы-клиента. Однако функциональности у такого общения заметно прибавится. Чего стоит одно хранение истории бесед прямо в почтовом ящике, доступном вам отовсюду. Отныне вы никогда уже не столкнетесь с проблемой, связанной с тем, что на рабочем ПК осталась ценная ссылка из вчерашнего разговора с коллегой в «аське». Поиск средствами Google по собственной истории бесед также не будет лишним. А если часть ваших контактов со временем последует вашему примеру и приобщится к Jabber, то очередной «подарочек» от AOL не оставит вас в офлайне ни на секунду.
Полезные ссылки
Описание H323: http://www.en.voipforo.com/H323/H323_objetives.php
Описание SIP: http://www.en.voipforo.com/SIP/SIP_architecture.php
Описание SIMPLE: http://www.osp.ru/nets/2004/02/150779/
Спецификации XMPP: http://www.xmpp.org/
Спецификации Jingle: http://www.xmpp.org/extensions/xep-0166.html
Wiki-страница разработчиков Jingle: http://xmpp.org/tech/jingle.shtml
Сводная таблица по рассмотренным программам