|
Пора обратить внимание на SIPИспользуете ли вы IP-сеть для передачи речи или нет, все равно рано или поздно вам придется иметь дело с SIP (Session Initiation Protocol). SIP — это протокол сигнализации, устанавливающий и прекращающий сеансы связи в IP-сети. Наибольшую известность он приобрел как стандарт для IP-телефонов, позволяющий определять местонахождение конечных пользователей и инициировать между ними сеансы многосторонней телефонной и видеоконференц-связи. Если вы все еще не верите, что SIP действительно полезен, подумайте еще раз. Этот протокол уже работает: во время написания данной статьи я тестировал абонентскую службу SIP и адаптер от Vonage, которые обеспечили мне не только высококачественную, но и немыслимо дешевую местную, междугородную и международную телефонную связь. Что же касается профессионалов рынка, то компания BroadSoft продает сервис-провайдерам необходимое ПО, и они вовсю предлагают своим клиентам базирующиеся на общепринятых стандартах услуги IP-телефонии, голосовой почты и универсальной обработки сообщений, т. е. все то, для чего SIP и предназначен. Протокол SIP, подобно протоколу HTTP, отличается универсальностью и простотой использования. С его помощью можно проводить мультимедийные телеконференции в процессе коллективной работы над различными проектами и реализовывать голосовые функции в электронной коммерции. Ожидается, что в ближайшие два года он станет нормативным стандартом для IP-телефонии, пока же практически все поставщики корпоративных решений VoIP предпочитают “загонять” потребителей в прокрустово ложе фирменных технологий сигнализации. Первую версию SIP комитет IETF опубликовал в документе RFC 2543 в 1999 г., а самую последнюю — в RFC 3261 в июне прошлого года. SIP идеален для IP-телефонии, заменяющей традиционное сквозное соединение в обычной телефонной сети сеансом связи по сети передачи данных (например, по Интернет). То же самое обеспечивают мультимедийные сети, основанные на стандарте H.323 Международного союза электросвязи (МСЭ), а также некоторые фирменные IP-телефоны. Поставщики решений IP-телефонии до появления SIP пользовались протоколом H.323. Однако SIP проще в реализации и, кроме того, будучи облегченным протоколом, он требует меньше ресурсов, чем H.323. Но SIP — это и нечто большее, чем базирующаяся на стандартах альтернатива традиционным телефонным соединениям: он упрощает реализацию разнообразных мультимедийных сервисов, таких, как проверка присутствия (presence), позволяющая оперативно определить, может и собирается ли пользователь принять вызов по телефону, через сеанс видеосвязи или посредством мгновенного сообщения. Кроме того, с SIPом можно делать VoIP-звонки сразу нескольким абонентам. Описываемый протокол уверенно вторгается на рынок. ПО мгновенного обмена сообщениями WinMessenger IM компании Microsoft, входящее в поставку ее ОС Windows XP, уже базируется на SIP. WinMessenger также использует SIP для осуществления телефонных вызовов по Интернет. Только еще проектируемые беспроводные территориально распределенные сети (WAN) третьего поколения (3G) тоже будут использовать SIP для установления и разрыва соединений. Однако до сих пор бытует масса неверных представлений о том, что, собственно, делает SIP. На самом деле SIP не доставляет оцифрованную речь — это работа протокола RTP (Real-Time Transport Protocol), который служит транспортом для передачи голоса уже после того, как SIP инициирует вызов. Но, прежде чем SIP сможет установить сеансы телефонной связи, обмена текстовыми сообщениями или видеоконференц-связи с использованием разнообразных кодеков, необходимо определить, какие функции и средства поддерживают участвующие в этом сеансе устройства абонентов. Здесь в игру вступает Session Description Protocol (SDP); SIP возлагает на него задачу ведения переговоров о характеристиках сеанса между конечными точками потенциального общения. Вас приглашают! В качестве транспорта SIP может использовать протоколы UDP (User Datagram Protocol) или TCP, по умолчанию — UDP на порте 5060. Если пакет сбрасывается из-за ненадежности протокола (такого, как UDP), то SIP пошлет его вновь, как только “решит”, что ожидание ответа затянулось. Чаще всего SIP посылает другой стороне команду “invite” (т. е. “приглашаю”). Когда SIP-телефон или агент пользователя (User Agent — UA) “хочет” установить соединение с другим SIP-телефоном или UA, он посылает “приглашение”. При его принятии приглашающая сторона получает в ответ сообщение “200”, означающее, что все в порядке и сеанс связи установлен. Как и у HTTP и SMTP, команды SIP передаются открытым текстом, что облегчает их анализ. Любой анализатор протокола сможет показать вам текст реальных команд и ответов на них в простой ASCII-кодировке. Заголовок пакета SIP содержит поля адреса “to” (“кому”) и “from” (“от кого”) аналогично сообщениям электронной почты. Оба эти адреса, будучи универсальными идентификаторами ресурса (Uniform Resource Identifier — URI), выглядят как адрес электронной почты, например: sip:peter@nwc.com Поле “кому” может содержать стандартный телефонный номер. Заголовок SIP также включает поле “call ID” — уникальный номер, идентифицирующий SIP-транзакцию, и поле “via”, в котором UA сообщается, какой IP-адрес использовать для ответа в ходе переговоров о параметрах устанавливаемого соединения. После того как сеанс связи установлен, задействуется поле “contact”, в которое заносится некий IP-адрес. Этот адрес UA адресата использует для переговоров с UA инициатора вызова. При трансляции сетевых адресов (Network Address Translation — NAT) конечная точка в качестве обратного адреса на уровне SIP использует немаршрутизируемый (unroutable) адрес. Впрочем, поставщики SIP-решений вольны обратиться и к различным обходным путям — например, устройства могут оперировать исходящими адресами IP-пакетов вместо IP-адресов из SIP-заголовков либо поддерживающие SIP межсетевые экраны — применять NAT для их изменения. Для уведомления UA о мультимедийных возможностях вызывающей стороны в запросе-приглашении прибегают к синтаксису SDP. Вызываемая сторона отвеча-ет сигналом-сообщением “OK”, который тоже включает информацию о поддерживаемых ею мультимедийных возможностях. К вашим услугам! Некоторые SIP-телефоны наделены возможностью звонить друг другу и напрямую, но, если вам необходима масштабируемость, значит, потребуются серверы. Серверы SIP отслеживают информацию из справочников (directories) и местонахождение вызываемой стороны. Существует несколько типов SIP-серверов, причем все они могут работать на одном и том же физическом сервере либо каждый на собственной аппаратной платформе. Сервер-посредник SIP обслуживает запросы SIP-телефонов и агентов UA. Он устанавливает соединение с вызываемой стороной от имени инициатора вызова и продолжает играть роль посредника до тех пор пока не получит сигнал “200”. Сервер-посредник помещает свой собственный IP-адрес в поле “via”, чтобы клиент адресата знал, куда отправлять свои ответы. Посредник же пересылает их обратно инициатору вызова. Адрес в поле “contact” используется для прямых коммуникаций между агентами двух сторон (“Вы меня слышите?”). Получив для адресата запрос-приглашение, сервер-посредник немедленно отсылает обратно статусное сообщение “100”, или “trying” (т. е. “пытаюсь”). Таким образом он уведомляет звонящего о том, что занимается обработкой запроса-приглашения. Найдя UA адресата и переслав ему приглашение, сервер посылает звонящему сигнал “180”, или “ringing” (“звоню”). Отвечая, адресат передает сигнал “200” (“OK”) серверу-посреднику, который и направляет его инициатору вызова. Затем уже инициатор сам посылает сигнал “ack” (подтверждение приема) клиенту адресата, давая ему знать, что сигнал “200” получен. Все последующие коммуникации осуществляются напрямую между клиентами инициатора и адресата: за дело берется протокол RTP, который транспортирует оцифрованную речь между агентами UA. По завершении вызова одна из сторон передает сообщение “bye” другой стороне и та отвечает на него сообщением “200”. И хотя сервер-посредник по умолчанию “выпадает” из цикла общения после осуществления вызова, можно сконфигурировать его так, чтобы он в нем оставался. Делается это так: сервер-посредник помещает свой собственный адрес в поле “contact”, когда связывается с UA, вынуждая тем самым последний посылать все ответы обратно серверу-посреднику, а не UA визави. Включение сервера-посредника в процесс общения позволит вам задействовать механизмы записи деталей вызова, с помощью которых вы сможете контролировать продолжительность звонков. Этот подход также поможет вам из соображений безопасности скрыть информацию о конечных узлах сети. Запрос и установление вызова могут проходить через множество серверов-посредников. Так, например, если у одного сервера-посредника не получается установить соединение с UA адресата, он переадресовывает запрос другому серверу-посреднику, который, в свою очередь, попытается определить местонахождение адресата и связаться с ним. Существует еще сервер переадресации (redirect server), он способен получать запросы от UA или сервера-посредника и отвечать на них. Такой сервер сам соединения не устанавливает, но позволяет быстро снабжать UA нужной информацией, не загружая излишне процессор сервера-посредника. Сервер-шлюз SIP преобразует сигналы между сетями IP-телефонии и ТфОП, это дает возможность корпоративным пользователям звонить за пределы их организации. Такой шлюз, например, устанавливает соединение как с внутренней традиционной УАТС, так и напрямую с ТфОП. Он преобразует сообщения SIP в сигналы, воспринимаемые обычными телефонами, и с помощью кодека конвертирует трафик RTP в трафик ТфОП и наоборот. Большинство VoIP-вызовов между организациями пока проходят по сети ТфОП, поскольку еще не существует глобальной службы справочника для Интернет. В будущем протокол ENUM (E.164 Number, RFC 2916), по-видимому, станет использовать службу DNS, чтобы поддерживать Интернет-справочник для обслуживания внешних вызовов. Если вы применяете серверы-посредники, то вам нужен сервер-регистратор (registrar), сообщающий агенту UA местонахождение пользователя. В частности, как только работающий на дому сотрудник подключит IP-телефон, тот автоматически сообщит серверу-регистратору местонахождение данного сотрудника. При этом на сервере-регистраторе вы можете зарегистрировать сразу несколько своих телефонов: SIP-телефон, мобильный и даже обычный телефон, если только имеется SIP-шлюз, способный обслуживать ваш вызов. Поддержка протоколом SIP мобильных пользователей — одно из самых привлекательных его качеств. Когда сервер-посредник SIP получает запрос-приглашение, он, связывается со всеми зарегистрированными телефонами адресата по очереди или же одновременно. Сервер-регистратор сохраняет информацию о местонахождении зарегистрированных пользователей на сервере локализации (location server), который может располагаться на том же самом физическом сервере. Серверы-посредники SIP “консультируются” с сервером локализации в процессе поиска UA.
Екатеринбург, Первомайская, 104-127,
тел./факс (343) 378-31-55, 349-46-13,
info@optivera.ru
| |