- •Глава 3
- •3.1. Принципы построения сетей с коммутацией каналов
- •3.3. Системы меж станционной сигнализации на аналоговых и цифро-аналоговых сетях связи
- •3.4. Принципы построения узкополосных цифровых сетей связи с интеграцией услуг (isdn)
- •4.1. Основные понятия ip-телефонии и технологии пакетной коммутации 36
- •3.5. Системы межстанционной сигнализации на цифровых сетях isdn
- •Глава 4 построение мультисервисных сетей с коммутацией пакетов
- •4.1. Основные понятия ip-телефонии и технологии пакетной коммутации
- •4.2. Основы технологии tcp/ip и ip-сети
- •4.3. Протокол ip
- •4.4. Протоколы tcp и udp
- •4.5. Основы построения сетей ip-телефонии
- •4.6. Принципы передачи речи в сети ip-телефонии
- •4.7. Ввды систем сигнализации в сетях ip-телефонии и сеть ip-телефонии с протоколами н.323
- •4.9. Сети ip-телефоиии с протоколами mgcp и м есасо/н.248
- •7.1. Общие принципы построения сети ОбТс
- •7.2. Местные сети ОбТс и взаимодействие с телефонной сетью общего пользования
- •7.3. Способы установления соединений, системы обслуживания заявок и рмтс
- •7.4. Аналоговая сеть автоматической междугородной ОбТс
- •7.5. Магистральная и зоновые цифровые сети ОбТс
- •Единая нумерация на цифровой сети ОбТс (еснц)
- •7.6. Сеть ОбТс с пакетной коммутацией
4.7. Ввды систем сигнализации в сетях ip-телефонии и сеть ip-телефонии с протоколами н.323
Система сигнализации в сети IP-телефонии предназначена в первую очередь для управления вызовом: установление соединения и разъединение. Кроме того, сигнализация необходима для регистрации абонентов, поиска местонахождения абонентов, организации аудио- и видеоконференций, предоставления дополнительных услуг. Данные сигнализации используются в системе администрирования для сбора статистических данных, таких, как: учет трафика, определение качества обслуживания, тарификации разговоров и другие.
В настоящее время в IP-сетях применяются две основные системы сигнализации Н.323 и SIP.
Система сигнализации Н.323 представлена в одноименной рекомендации МСЭ-Т, получившей название: «Мультимедийные системы связи на основе передачи пакетов (Packet-based multimedia communications systems)». Рекомендация предназначена для создания систем связи на базе сетей с пакетной коммутацией для передачи речевой и видеоинформации, организации конференций, передачи данных. В настоящее время приняты вторая, третья и четвертая версии этого стандарта — Н.323 v.2, Н.323 v.3 и Н.323 v.4. На правах времи того документа существуют документы Н.323 v.5 и Н.323 v.6.
Протокол SIP (Session Initiation Protocol — протокол инициализации сессии) разработан комитетом IETF (Internet Engineering Task Force) и первоначально его описание было приведено в документе RFC 2543. В настоящее время действует усовершенствованный документ RFC 3261. Протокол предназначен для организации и управления сессиями, в течение которых между участниками происходит обмен мультимедийными данными: речью, видео и текстом.
К системам сигнализации следует отнести протоколы управления шлюзами MGCP (Media Gateway Control Protocol—протокол управления медиашлюзом) и MEGACO/H.248. Первоначально появившийся протокол MGCP был предложен комитетом IETF. Работая над усовершенствованием протокола MGCP, комитет IETF создал протокол MEGACO. Одновременно над подобным протоколом работал союз МСЭ-Т, которому было дано название Н.248.
Сеть IP-телефонии, построенная по стандарту Н.323, включает в себя четыре основных компонента: терминал Н.323, гейткипер (gatekeeper, или привратник), шлюз и устройства управления конференциями (MCU) (рис. 4.18). Они все включаются в сеть коммутации пакетов, которая может не гарантировать требуемое качество услуг — QoS (Quality of Service). В качестве такой сети могут использоваться сети: LAN, MAN (Metropolitan Area Networks — вычислительная сеть в пределах города), Интернет и Интранет. В рекомендации Н.323 не определены конкретные типы сетей, их протоколы и интерфейсы. В качестве примеров приведены сети Ethernet, Fast Ethernet, FDDI, Token Ring, ATM.
К сети Н.323 могут подключаться другие сета: телефонные сети, сети ISDN и В-ISDN (широкополосная сеть ISDN), а через сеть ISDN — сеть LAN, гарантирующая качество услуг. Взаимодействие с этими сетями происходит через шлюзы, причем один шлюз может обеспечить подключение к нескольким сетям разного назначения (на рис. 4.18 показано по одному шлюзу к каждой сети). В указанные сети могут включаться терминалы, служащие только для передачи речи — речевые
терминалы, так и терминалы, позволяющие одновременно передавать речь и ввдео — вадеофоны. Такие терминалы способны также передавать данные. Терминалы типа ввдеофон в зависимости от сети должны соответствовать одной из рекомендаций: Н.320, Н.321, Н.322 и Н.324. Терминалы Н.323 способны обмениваться с другими терминалами речевой, видеоинформацией и данными. Терминал может быть рассчитан либо на предоставление только одной услуги: речевой, видео, данных, либо любой комбинации из двух или трех таких услуг. В телефонной сети и сети ISDN к речевым терминалам относятся аналоговые телефонные аппараты, а в сети ISDN — также и цифровые телефонные аппараты. Роль терминалов Н.323 могут выполнять IP-телефоны и софгфоны.
В сети Н.323 возможны соединения между любой парой терминалов Н.323, между терминалом Н.323 и любым терминалом другой сети, подключенной через шлюз. Допустимы соединения между двумя терминалами двух разных TDM-сетей, подключенных через шлюзы. Также возможно соединение между двумя терминалами Н.323 с применением TDM-сети (сетей), в котором участвуют два шлюза, один для исходящего соединения к TDM-сети, другой — для входящего соединения от TDM-сети.
В сети Н.323 шлюз выполняет две основные функции. Во-первых, преобразовывает сигнализацию сети Н.323 в систему сигнализации, соответствующей TDM-сети, и наоборот. Во-вторых, в направлении от TDM-сети к пакетной сети производит преобразование речевых или видеосигналов TDM-сети в сигналы пакетной сети, вставляет их в пакеты и посылает пакеты в сеть коммутации пакетов, а в направлении от пакетной сети к TDM-сети производит такие же операции в обратной последовательности. Со стороны как пакетной, так и TDM-сети, шлюз выполняет функции терминала соответствующей сети. На пакетной сети — это терминал Н.323, а на TDM-сети — терминалы Н.320, Н.321, Н.322, Н.324, V.70 и речевые терминалы. Терминал TDM-сети рассматривает шлюз как терминал такого же типа.
При соединениях между речевыми терминалами шлюз может поддерживать обмен DTMF-сигналами. Для этого шлюз со стороны TDM-сети детектирует и формирует DTMF-сигналы, а со стороны пакетной сети — передает и принимает сигналы по протоколу Н.245 или использует специальные RTP-пакеты, служащие для передачи DTMF-сигналов и иных тональных сигналов (RFC 2833). Гейткипер обеспечивает управление вызовами в сети Н.323. Он взаимодействует с терминалами Н.323, шлюзами и MCU. В сети Н.323 может быть множество гейткиперов и каждый обслуживает свою зону сети. При установлении соединений между терминалами разных зон, гейткиперы обмениваются между собой сигнальной информацией. Гейткипер выполняет следующие обязательные функции.
Преобразование адреса — происходат преобразование так называемого алиас-адреса (alias address) в транспортный адрес вызываемого абонента. Алиас-адрес передается от вызывающего абонента и может иметь разную форму записи: телефонный номер, символьное имя, адрес электронной почты.
Управление доступом — при каждом вызове гейткипер определяет право пользователя на доступ к сети Н.323. Для этого используется протокол RAS (Registration, Admission and Status — регистрация, доступ и статус).
Управление полосой пропускания — осуществляется контроль над допустимым числом терминалов, получившим одновременно доступ к сети Н.323. При недостаточной полосе пропускания гейткипер может отказать в обслуживании очередного вызова. Эта функция также действует, когда соединение уже установлено, а терминалу требуется дополнительная полоса пропускания. Управление полосой пропускания происходит по протоколу RAS.
Техническая поддержка внутри зоны сети осуществляется для всех терминалов, шлюзов и MCU зоны, обслуживаемой данным гейтки- пером.
Гейткипер может выполнять необязательные функции, к основной из которых относится сигнализация управления вызовом. При наличии этой функции гейткипер участвует в процессе обмена сигнальными сообщениями по протоколу Н.225.0 при установлении соединений между терминалами. Гейткипер пропускает через себя сигнальные сообщения в обоих направлениях передачи. Если эта функция не задана, то гейткипер сообщает терминалам, чтобы они обменивались сигнальными сообщениями напрямую без его участия.
Гейткипер необходим, когда в сети есть хотя бы один шлюз, что объясняется требованием преобразования поступающих от TDM-сети цифр номера в транспортный адрес. В сети, в которую включены только терминалы Н.323, гейткилера может не быть. Однако в этом случае терминалам Н.323, должны быть известны транспортные адреса других абонентов сети. В сети также не будут выполняться основные функции гейткипера.Устройство управления конференциями MCU (Multipoint Control Unit) служит для образования конференций, в которых могут участвовать терминалы сети Н.323 и других сетей. Конференция может быть аудио или видео, а также одновременно аудио и видео. Во время конференции между участниками могут передаваться данные. Функционально MCU состоит из контроллера конференций (МС — Multipoint Controler) и процессора конференций (MP — Multipoint Processor). Контроллер управляет организацией конференций. Он обменивается информацией с терминалами, входящими в конференцию, и согласовывает параметры передачи медиапотоков. Процессор обрабатывает поступающие от терминалов потоки речевой, видеоинформации и потоки данных и полученные в результате обработки потоки возвращает терминалам.Конференции могут быть централизованными, децентрализованными и комбинированными.
В централизованной koi гференции терминал каждою участника соединяется с MCU в режиме «точка—точка». При передаче речи это означает, что между каждым терминалом и MCU образуется двусторонний логический канал, по которому от терминала к MCU передается поток RTP-пакетов с речью одного абонента. В MCU происходит цифровое суммирование речевых сигналов, принимаемых в RTP-пакетах оттерминалов участников конференции. С выходов сумматора or MCU к каждому терминалу передается поток RTP-пакетов с суммарным речевым сигналом. В суммарном речевом сигнале, посылаемом терминалу, не должно содержаться речевого сигнала, поступившего от этого терминала (абонент i ie дсшже1 г слышать самого себя). На рис. 4.19 показан пример централизованной аудио- конференции с тремя терминалами Т1...ТЗ (S — цифровой сумматор).
В децентрализованной конференции каждый терминал участника конференции передает каждомуфугому терминалу поток аудио- i/или видеоинформации без участия MCU. Со стороны MCU с помощью МС осуществляется управ- юние конференцией по протоколу -1.245 (рис. 4.20). Каждый терминал финимаег одинаковое число ме- шапотоков, равное N— 1, где N— шсло участников конференции. 3 случае передачи речи, терминал 1роизводиг цифровое суммирование речевых сигналов, поступаю- цих от всех других терминалов.
Комбинированная конференция представляет собой сочетание хентрализованной и децентрализованной конференций. На рис. 4.21 токазан пример комбинированной аудиоконференции, в которой терминалы Т1...ТЗ входят в централизованную конференцию, а Г4...Т6 — в децентрализованную. Все терминалы связаны с MCU, фичем при передаче речевых пакетов в децентрализованной конференции MCU рассматривается как терминал этой конференции. То этой причине на выходах сумматора, направленных к термина- тм децентрализованной конференции (Т4...Т6), должны присутствовать только речевые сигналы от терминалов централизованной конференции (Т1...ТЗ). На выходе, направленном к терминалу централизованной конференции, должны быть речевые сигналы всех участников комбинированной конференции, кроме сигналов данного терминала.
При цифровом суммировании, осуществляемом процессором MP, сигналы на каждом входе преобразовываются в сигналы с линейной характеристикой (производится декомпрессия сигналов). Затем раздельно для каждого выхода происходит собственно суммирование сигналов, поступающих с входов. В суммарном сигнале одного выхода не должно быть речевого сигнала, принятого по этому же входу. Суммарный сигнал кодируется по одному из стандартов (например, G.703) и передается на соответствующий выход. Чтобы снизить шумы и добиться одинакового уровня речевых сигналов, MP может ограничить поступление или ввести затухание сигналов на отдельных входах.
Рассмотрим процессы установления соединений на сети Н.323.
В процессе установления соединения и разъединения используются три протокола: RAS, Н.225.0 и Н.245.
Протокол RAS позволяет обмениваться сообщениями между терминалом и гейткипером при регистрации и отказе от регистрации пользователей, при управлении полосой пропускания и управлении доступом. Для переноса сообщений этого протокола используется протокол ненадежной передачи пакетов UDP. Описание протокола RAS приведено в рекомендации Н.225.0 МСЭ-Т.
Протокол Н.225.0 аналогичен протоколу Q.931, используемому на сети ISDN для сигнализации по каналу D. Служит для управления вызовом на этапах установления соединения, разъед инения и в других случаях. По этому протоколу пункты сети обмениваются сигнальными сообщениями таких же типов, как в стандарте Q.931. На сети Н.323 для передачи сообщений по протоколу Н.225.0 используется протокол надежной доставки TCP. В начальных версиях стандарта Н.323 для каждого соединения открывался отдельный сигнальный канал. Начиная с третьей версии, образуется общий для всех соединений сигнальный канал, а соединения различаются метками (call reference).
Протокол Н.245 представляет собой протокол управления передачей мультимедийной информации. Этот протокол управляет открытием и закрытием логических каналов, используемых для передачи мультимедийной информации. При огкрытии логических каналов за каждым из них закрепляется уникальный номер. Логический канал с номером 0 открывается только для передачи управляющей информации по протоколу Н.245. Для передачи информационных сообщений этого протокола испол ьзуется протокол TCP.
Предусмотрено несколько вариантов установления соединений, зависящих от необходимости регистрации пользователей, от применения гейткипера и способов пересылки сигнальных сообщений. В самом простейшем случае, когда не требуется регистрация пользователей, соединение может устанавливаться напрямую между терминалами пользователей без участия гейткипера. В этом случае терминал должен сам преобразовывать алиас-адрес в транспортный адрес пункта вызываемого терминала. Остальные варианты предусматривают применение гейткипера, причем сигнальные сообщения могут передаваться между терминалами напрямую или с переприемом (с трансляцией) в гейткипере. В этих вариантах пользователи могут пользоваться алиас-адресами.
Процедура передачи сигнальных сообщений начинается с фазы установления соединения, когда вначале происходит обмен сообщениями по протоколу RAS, затем по протоколу Q.931, а затем по протоколу Н.245.
Далее по образованному логическому каналу терминалы обмениваются речевыми пакетами. На фазе разъединения сигнальные сообщения передаются в обратной последовательности: Н.245, Q.931, RAS.
Рассмотрим подробнее процесс установления соединения и разъединения для варианта с применением гейткипера и передачей сигнальных сообщений напрямую между речевыми терминалами. На рис. 4.22 показана диаграмма установления соединения и разъединения между двумя терминалами одной зоны сети Н.323. Предполагается, что используя протокол RAS, оба терминала уже зарегистрировались в гейткипере. В рассматриваемом примере в качестве терминала выступает IP-телефон или шлюз, в который непосредственно включен аналоговый телефонный аппарат.
При поступлении вызова от абонента, гейткипер с помощью протокола RAS проверяет право пользователя на доступ к сети. Для этого от терминала 1 к гейткиперу передается сообщение ARQ (Admission Request), являющееся требованием на установление соединения. В этом сообщении содержится алиас-адрес вызываемого абонента. Гейткипер отвечает терминалу 1 сообщением ACF (Admission Confirm), извещающим о согласии на установление соединения. В нем гейткипер посылает транспортный адрес сигнального канала терминала 2. Если у пользователя нет права доступа к сети, гейткипер ответит сообщением отказа доступа ARJ (Admission Reject).
Теперь терминалы 1 и 2 обмениваются сигнальными сообщениями по протоколу Q.931. От вызывающей стороны по полученному от гейткипера транспортному адресу сигнального канала терминала 2 передается сообщение Setup, несущее в себе требование
на установление соединения. В обратном направлении от терминала 2 к терминалу 1 по образованному сигнальному каналу передается сообщение Call Proceeding, извещающее о том, что принято достаточно информации для продолжения соединения. Если терминал 2 готов принять вызов, он передает запрос допуска к ресурсам сети ARQ, на который привратник отвечает подтверждением ACF. При свободности вызываемого абонента, ему передается сигнал вызова, а по сигнальному каналу посылается сообщение Alerting. При ответе абонента на вызов от терминала 2 к терминалу 1 передается сообщение Connect. В этом сообщении содержится транспортный адрес логического канала Н.245. Теперь по протоколу TCP открывается логический канал Н.245 и происходит обмен сообщениями Н.245. Первым от каждого из терминалов передается сообщение Terminal- CapabilittySet, в ответ на которой другой терминал отправляет сообщение подтверждения TerminalCapabilittySetAck. В сообщении TerminalCapabilittySet содержится информация для согласования параметров обмена потоками речевой информации. Сюда обязательно вход ят данные о типах кодеков с которыми может работать каждый из терминалов, информация об обмене пакетами в обоих или в одном направлении соединения.
Далее определяется какой из терминалов будет ведущим (master), а какой — ведомым (slave). С этой целью терминалы обмениваются сообщениями MasterSlaveDetermination и MasterSlaveDetermination- Ack. Ведущий терминал определяется по максимальному из двух случайных чисел, посланных от каждого из терминалов. Процедура введения ведущего терминала необходима для разрешения конфликтов, которые могут возникнуть между терминалами. Например, это необходимо для исключения одновременного открытия каждым терминалом логического канала для передачи пользовательской информации.
Теперь для пересылки речевых пакетов надо открыть однонаправленные логические каналы в направлениях передачи от терминала 1 к терминалу 2 и наоборот. Для этого используется сообщение Open- Logical Channel, передаваемое от каждого из терминалов. В ответ на него поступает подтверждающее сообщение OpenLogicalChannelAck. В сообщении OpenLogicalChannel содержатся: уникальный номер логического канала для передачи речи в соответствующем направлении; транспортные адреса портов RTP и RTCP, на которые должны приниматься речевые пакеты; вид передаваемой информации — речь; тип выбранного кодека.
Процесс установления соединения закончился, и пользователи могут передавать речевую информацию, используя два односторонних логических канала между терминалами. Во время разговора используется схема передачи RTP/UDP/IP. Протокол RTCP служит для контроля над передачей потоков речевых пакетор.
По окончании разговора начинается фаза разъединения. При приеме от абонента сигнала отбоя, терминал прекращает передачу речевых пакетов и посылает по каналу Н.245 сообщение EndSessionCommand, извещающее другой терминал об окончании сессии. Этот терминал должен прекратить посылку речевых пакетов и также передать сообщение EndSessionCommand. Абоненту передается сигнал «занято».
По образованному при установлении соединения сигнальному каналу передается по протоколу Q.931 сообщение Release Complete. Теперь сигнальный канал закрывается.
Разъединение завершается обменом сообщений между терминалами и гейткипером по протоколу RAS. От каждого из терминалов в сторону гейткипера передается сообщение DRQ (Disengage Request — требование на освобождение), в ответ на которое гейткипер посылает подтверждение в виде сообщения DCF (Disengage Confirm — согласие освобождения). Гейткипер освобожд ает зарезервированную полосу пропускания для закончившегося соединения.
4.8. Сеть IP-телефонии с протоколом SIP
На сетях с пакетной коммутацией все большее значение находит протокол инициализации сеансов связи — SIP, разработанный в качестве стандарта для пакетных сетей рабочей группой по инженерным проблемам Интернет (IETF). Этот станд арт имеет назначение, аналогичное стандарту Н.323, однако имеет множество отличий. Не вдаваясь в подробности, можно заметить, что в рекомендациях Н.323 рассматривается прикладная сеть, наложенная на сеть передачи данных с пакетной коммутацией, в то время как протокол SIP ориентирован на интеграцию со службами сети Интернет. По протоколу SIP происход ит установление, модификации и завершение мультимедийных (в том числе речевых) соединений. SIP многое позаимствовал у таких популярных и уже доказавших свою состоятельность протоколов сети Интернет, как HTTP и SMTP.
Описание протокола SIP приведено в документе RFC3261 (версия 2). С этим протоколом связаны другие документы: RFC3265 — SIP Specific Event Notification (характерные уведомления о событиях по протоколу SIP), RFC3665 — SIP Basic Call Flow Examples (примеры обслуживания основных потоков вызовов по протоколу SIP), RFC3372 — SIP-T Context and Architectures (протокол SIP для телефонии: контекст и архитектура), RFC3515 — SIP Refer Method (наведение справки по протоколу SIP), RFC3725 — SIP Best Current Practices for Зрсс (применение протокола SIP для организации трехсторонней конференции), RFC4028 — SIP Session Timers (таймеры в течение сессий для протокола SIP) и другие. В протоколе SIP предусмотрен обмен информацией по протоколу SDP (Session Description Protocol — протокол описания сессии) в соответствии с документом RFC2327.
При создании протокола SIP были заложены следующие основные принципы.
Мобильность пользователей, состоящая в том, что пользователь может получать услуги сети независимо от своего местоположения в ней. С этой целью в сети должен быть сервер регистрации, а пользователь информирует о своем местоположении с помощью специального сообщения — REGISTER.
Масштабируемость сети означает, что можно построить сеть разных размеров и любая сеть может быть расширена
Расширяемость протокола указывает на возможность дальнейшей модификации протокола для введения новых функций и услуг, а также его адаптации к работе с различными приложениями пользователей.
Возможность взаимодействия с другими протоколами сигнализации необходима для работы с другими сетями, где используются иные системы сигнализации. Сети с протоколом SIP могут взаимодействовать с пакетными сетями, в которых применяются протоколы Н.323, MGCP и другие. В телефонных сетях общего пользования и технологических сетях протокол SIP взаимодействует с системами сигнализации DSS1 и ОКС № 7.
Важной особенностью протокола SIP является его полная совместимость с протоколами сети Интернет, разработанных комитетом IETF и отраженных в документах серий RFC. С точки зрения передачи мультимедийной информации в сети SIP находят применение протоколы: RTP, RTCP, RSVP (Resource Reservation Protocol — протокол резервирования ресурсов сети, RFC2205), RTSP (Real-Time Streaming Protocol — протокол передачи потоковой информации в реальном времени, RFC 2326).
Протокол SIP может быть использован на разных сетях с пакетной коммутацией: Х.25, ATM, Frame Relay и другие. Однако предпочтение отдается IP-сетям со стеком протоколов TCP/IP. Сигнальная информация может передаваться по протоколу TCP или UDP, но в первую очередь рекомендован протокол UDP. Чтобы достигнуть надежной передачи сигнальных сообщений при использовании протокола UDP предусматривается подтверждение приема и повторная передача сигнальных сообщений.
Протокол SIP обеспечивает инициализацию, протекание и завершение сеансов связи. В общем случае сеанс связи предполагает наличие хотя бы одного отправителя и одного получателя и между отправителем и получателем передается поток пакетов, несущих сигнальную информацию, речь, видео и данные. В мультимедийных соединениях каждый из пользователей может быть отправителем и получателем. Сеанс называется мультимедийным, когда в нем участвует множество отправителей и пользователей. Примером мультимедийного сеанса является аудиоконференция. В течение сеанса образуется один или множество диалогов. Под диалогом понимается взаимодействие между двумя агентами пользователей. В образовании диалога участвуют запрос типа INVITE и ответ из серии 2хх.
По сети SIP может передаваться любая мультимедийная пользовательская информация: речь, видео и данные и любые их комбинации. При установлении соединения вызывающая и вызываемая стороны обмениваются информацией о своих функциональных возможностях: тип мультимедийной информации, алгоритм кодирования, режим передачи пакетов: одноадресный (unicasting) или многоадресный (multicasting), транспортный адрес пункта приема пользовательской информации (для режима unicast) и другие. Для этой цели используется протокол SDP, данные которого вставляются в сообщения протокола SIP. Во время сеанса предусмотрена возможность его модификации (например, при переадресации вызова на другого абонента, при добавлении или прекращении передачи одной мультимедийной информации), для чего также применяется протокол SDP. В сети с протоколом SIP можно организовывать централизованные, децентрализованные и комбинированные конференции, на подобие тех, что рассмотрены для стандарта Н.323. В описании протокола SIP не приведены способы организации и управления конференциями, а только лишь процедуры, связанные с обменом сигнальной и мультимедийной информацией. Протокол SIP позволяет образовывать конференции с одноадресной (режим unicasting) и многоадресной (режим multicasting) рассылкой пакетов. Режим unicasting означает, что к каждому терминалу участника конференции передается индивидуальный мультимедийный (например, речевой) поток пакетов с транспортным адресом этого терминала. В режиме multicasting все мультимедийные пакеты одной сессии передаются с одним multicast-адресом, в соответствии с которым они доставляются сетью терминалам участников конференции. В этом случае пакетная сеть должна обеспечить режим многоадресной рассылки. Протокол SIP позволяет во время конференции добавлять или выводить из нее какого-либо участника.
Сеть с протоколом SIP строится с применением следующих устройств (рис. 4.23): прокси-сервера (proxy-server) SIP, сервера регистрации (registrar) и терминалов. К терминалам относятся софтфоны, IP-телефоны и шлюзы. В сети SIP прокси-сервер SIP и сервер регистрации обычно бывают совмещены в одном оборудовании.
Основные функции прокси-сервера SIP состоят в управлении обслуживанием вызовов в сети, доступом пользователей к услугам и в аутентификации пользователей. Он принимает, обрабатывает запросы и по результатам обработки выполняет соответствующие действия: пересылает запрос другому узлу сети, формирует и посылает ответ, обращается к базе данных и так далее.
Прокси-серверы могут быть двух типов: с сохранением (statefull) и без сохранения (stateless) состояний. Сервер с сохранением состояний хранит в своей памяти все входящие и исходящие запросы в течение транзакции, т.е. до получения ответов на них. Сервер без сохранения состояний только ретранслирует поступающие к нему Запросы и ответы. От сервера первого типа требуется большая производительность, но этот тип имеет больше функциональных возможностей. Возможен вариант комбинированного прокси-сервера, когда для одних пользователей он работает с сохранением состоя» * ний, а для других — без сохранения состояний.
Сервер регистрации служит для определения местоположения пользователя в текущий момент времени. Этот сервер управляет базой данных, хранящей информацию о месте положения пользователей сети. Пользователь сообщает о своем местоположении посылкой сообщения REGISTER, в котором указывает свой текущий адрес. Для пользователей, постоянно находящихся в одном месте, достаточно зарегистрироваться только один раз. Пользователи, меняющие свое местоположение, проходят периодическую регистрацию через определенные промежутки времени.
В сети SIP может быть сервер перенаправления (Redirect server), который служит для определения текущего IP-адреса вызываемого пользователя. На этот сервер поступают запросы об определении местоположения пользователя. Он через сервер регистрации или напрямую обращается к базе данных с местоположением пользователей сети. Сервер перенаправления применяется, когда в сети нет прокси-сервера (соединения между терминалами устанавливаются напрямую) или для снижения загрузки прокси-сервера.
При установлении соединений в сети SIP используется адресация, подобная адресации электронной почты. Адрес состоит из двух частей: имени пользователя, зарегистрированного в домене или на узле сети (хосте); имени домена, узла или шлюза. Две части разделены знаком @. Используются четыре типа адресов:
имя пользователя@домен;
имя пользователя@хост;
номер телефона@шлюз;
имя пользователя@1Р-адрес.
При использовании трех первых типов адресов необходимо обратиться к службе доменных имен DNS (Domain Name Service) для того, чтобы определить IP-адрес, соответствующий данному имени домена, узла или шлюза. При наличии во второй части IP-адреса, связаться с сервером или терминалом сети SIP можно напрямую.
Адрес записывается в строчку и перед ним ставится признак принадлежности к протоколу SIP. Ниже показаны примеры записи SIP-адресов:
sip: Vladimir@pgups.spb.ru;
sip: 768-84-51@gateway-pgups.ru;
sip: kvant@192.168.58.136
В протоколе SIP обмен сигнальными сообщениями происходит по принципу «клиент—сервер». Клиент генерирует запросы, а сервер обрабатывает их и отвечает на них ответами. Обмен сообщениями в виде запросов и ответов получил название транзакция SIP. Понятия клиент и сервер являются относительными. В сети SIP роль клиента выполняет терминал, который передает запрос к прокси- серверу. Прокси-сервер в обратном направлении посылает ответы. Прокси-сервер может послать запрос к другому прокси-серверу, который отправляет ответ. Здесь первый прокси-сервер является клиентом, а другой прокси-сервер — сервером. Также два терминала могут напрямую обмениваться запросами и ответами, один из них будет клиентом, а второй — сервером.
Важным понятием в протоколе SIP является агент пользователя UA (User Agent) — это терминал SIP, который формирует запросы, отвечает на них при взаимодействии с другими агентами пользователей в течение сеанса связи. Взаимодействие между агентами пользователей может быть непосредственным или через промежуточный сервер, например, прокси- сервер. Программное обеспечение агента пользователя делится на две части: клиентскую UAC (User Agent Client) и серверную UAS (User Agent Server).
Сообщения SIP имеют одинаковую структуру, показанную на рис. 4.24.
Первой передается стартовая строка. Если это запрос, то в стартовой строке содержится тип запроса, адрес вызываемого пользователя и номер версии протокола SIP. Если речь идет об ответе, то стартовая строка включает номер версии протокола и тип ответа.
Далее следуют заголовки, необходимые для передачи информации о вызывающем и вызываемом пользователях, пути следования сооб- п гений и других данных. Используются заголовки разных типов, причем каждому типу присвоено имя. После заголовков следует пустая строка, а за ней — тело сообщения. В теле сообщений может содержаться описание сеансов связи, например по протоколу SDP (сообщения типов INVITE, АСК и OPTION). В некоторых сообщениях тела сообщения может не быть, например в сообщении BYE. В стартовой строке, заголовках и в теле сообщения информация записывается в виде текста с использованием набора символов ISO 10646 в кодировке UTF-8.
Заголовки протокола SIP делятся на четыре вида: общие заголовки, присутствующие в запросах и ответах; заголовки содержания, включающие в себя информацию о размере тела сообщения или об источнике запроса; заголовки запросов, передающие дополнительную информацию о запросе; заголовки ответов, передающие дополнительную информацию об ответе. Формат заголовка начинается с его названия, далее следует двоеточие, а за ним содержание заголовка.
При обработке сообщений протокол SIP игнорирует заголовки с неизвестны ми названиями. Наиболее часто используются следующие общие заголовки: From (источник запроса), То (получатель запроса), Call-ID (идентификатор сеанса связи), Contact (контакт), Cseq (последовательность), Via (через). К заголовкам содержания относятся: Content-Type (тип содержимого), Content-Length (размер тела сообщения), Content-Encoding (кодирование тела сообщения). Во все запросы вставляется заголовок Max-Forwards (максимальное количество переадресаций). Подробное назначение и содержание заголовков рассматривается ниже при описании процессов соединения и разъединения.
В протоколе SIP первоначально были заложены запросы следующих типов:
INVITE — приглашение пользователя к сеансу связи; содержит описание сеанса по протоколу SDP;
АСК — подтверждение приема последнего ответа на запрос INVITE;
BYE — окончание сеанса; передается от любого из пользователей, участвующих в сеансе;
CANCEL — прекращение обработки запросов;
REGISTER — требование на регистрацию пользователя на сервере определения местоположения;
OPTION — запрос информации о функциональных возможностях терминала.
В дальнейшем были добавлены следующие запросы:
INFO — служащий для передачи дополнительной информации прикладного уровня после установления соединения в течение сеанса связи; примеры применения: обмен сигналами между шлюзами телефонной сети общего пользования или сети ОбТС во время сеанса связи; посылка сигналов DTMF в течение SIP-сеанса;
PRACK — участвует в механизме надежной доставки отдельных типов ответов;
UPDATE — служит для изменения некоторых параметров сеансов (например, кодеков) до поступления окончательного ответа на запрос INVITE;
NOTIFY — служит для переноса информации о текущем состоянии соответствующего объекта сети; может передаваться каждый раз, когда состояние объекта меняется;
SUBSCRIBE — используется для получения информации о текущем состоянии удаленного ресурса сети; служит для создания диалога между двумя агентами пользователей: подписчиком на предоставление информации и держателем этой информации; информация о текущем состоянии переносится в сообщении NOTIFY;
REFER — предназначен для реализации дополнительных услуг, таких, как переадресация вызова и наведение справки;
MESSAGE — позволяет передавать текстовые сообщения между пользователями без установления соединения между ними; используется модель, подобная передаче SMS (Shot Message Service — услуга коротких сообщений) в сети мобильной связи.
Ответы состоят из трехзначного кода и названия. Определено шесть классов ответов, причем первая цифра кода указывает на класс. Остальные две цифры присваиваются одному из ответов внутри данного класса. Ответы одного класса имеют одинаковое назначение. Рассмотрим назначение ответов разных классов:
1хх — предварительные ответы, означающие, что запрос принят и продолжается его обработка;
2хх — ответы успешной обработки запроса; означают, что запрос был получен, понят и принят к исполнению;
Зхх — ответы перенаправления, указывающие на необходимость принять меры по завершению обработки запроса;
4хх — ответы об ошибках клиента, сообщающие о наличии синтаксических ошибок в запросе или о том, что запрос не может быть выполнен сервером;
5хх — ответы об ошибках, обнаруженных сервером и указывающие на то, что сервер не может выполнить данный запрос;
бхх — ответы с отказом обслужить вызов на сервере.
Ниже приведены наиболее часто используемые ответы и их назначение:
100 Trying — запрос был принят и обрабатывается на сервере промежуточного узла сети;
180 Ringing — запрос INVITE принят вызываемой стороной и пользователю посылается сигнал вызова;
200 ОК — подтверждение о выполнении запроса;
Moved Permanently — вызываемый пользователь изменил свое местоположение, его новый адрес указан в заголовке Contact;
Moved Temporarily — вызываемый пользователь временно изменил свое местоположение, его новый адрес указан в заголовке Contact;
Bad Request — в запросе обнаружена синтаксическая ошибка;
Unauthorised — должна быть проведена авторизация вызывающего пользователя;
404 Not Found — сервер не нашел вызываемого пользователя, адрес которого указан в заголовке То;
480 Temporarily not available — вызываемый пользователь временно недоступен;
500 Server Internal Error — сервер обнаружил ошибку, которая не позволяет выполнить запрос; клиент может повторить запрос через 1несколько секунд;
600 Busy Everywhere — вызываемый пользователь найден, но он занят и не хочет в данное время принять вызов; в ответе может быть указано время для приема вызова;
604 Does Not Exist Anywhere — вызываемого пользователя не существует;
606 Not Acceptable — соединение с вызываемым пользователем невозможно из-за того, что содержащиеся в описании сеанса параметры (протокол SDP) недопустимы.
На сети SIP соединения могут устанавливаться либо с участием прокси-сервера, либо напрямую между терминалами. Прокси-сер- вер необходим для установления соединений между пользователями разных сетей SIP, а также для администрирования сети SIP: аутентификации пользователей, учета соединений, тарификация вызовов и другого. В одном соединении может участвовать несколько прокси-серверов. В соединениях напрямую между терминалами должен участвовать сервер перенаправления, если пользователи могут менять местоположение в сети SIP.
Рассмотрим процессы установления соединения и разъединения на сети SIP.
Начнем с варианта с использованием одного прокси-сервера на сети с фиксированным местоположением пользователей. Предполагается, что соединение устанавливается от пользователя А к пользователю Б и что у каждого пользователя находится IP-телефон с номеронабирателем (рис. 4.25).
Запросы показаны непрерывными линиями, а ответы — пунктирными. В IP-телефоне пользователя А должен быть прописан IP-адрес прокси-сервера, на который передается запрос INVHE.
После того как пользователь А набрал номер абонента Б (36074), от его IP-телефона прокси-серверу посылается сообщение INVITE. Содержимое этого сообщения показано на рис. 4.26.
Первая строчка представляет собой стартовую строку, содержащую наименование типа сообщения, адрес вызываемого абонента: 36074@otdelenl.com и версию протокола SIP.
Далее следует заголовок Via, служащий для исключения прохождения запроса по замкнутому пути (образование петли) и для того, чтобы в необходимых случаях задавать для запросов и ответов один и тот же путь в сети SIP. Заголовок Via учитывает прохождение запроса через каждый узел сети. При этом в каждом прокси-сервере принимаемый запрос обрабатывается и, если требуется, направляется к другому прокси-серверу. Каждый прокси-сервер добавляет поле со своим адресом. Таким образом, по заголовку Via можно определить полный путь прохождения запроса. Заголовок Via содержит версию протокола SIP, тип протокола транспортного уровня IP-сети, адрес узла сети, отправившего запрос (в рассматриваемом случае адрес терминала Iocat3.otdelenl.com) и параметр branch, необходимый для идентификации данной транзакции. В ответе на данный запрос передается такое же значение параметра branch. Содержимое заголовка Via
INVITE sip:36074@otdelen1 .com SIP/2.0
Via:SIP/2.0/UDP locat3.otdelen1 ,com;branch=z9hG4bK776asdhds Max-Forwards:70
To:36074<sip:36074@otdelen1.com>;tag=287447
From:33051 <sip:33051 @otdelen 1 ,com>;tag=1928301774
Call-ID: a84b4c76e66710@otdelen1 .com
CSeq:314159 INVITE
Contact:<sip:33051 @otdelen1 .com>
Content-Type:application/sdp
Content-Length: 162
Рис.
4.25. Соединение на сети SIP:
Терминал—Прокси—Терминал
o=- 2890844526 2890844526 IN IP4 locat3.otdelen1.com s=-
t=2873397496 0 C=INIP4 192.2.17.12 m=audio 49170 RTP/AVP 8 0 4
Рис. 4.26. Содержание первого запроса INVITE
копируется из запросов в ответы на них, и каждый сервер, через который проходит ответ, удаляет в заголовке Via свое имя.
Следующий заголовок — Max-Forwards присутствует в каждом запросе и служит для ограничения количества серверов или шлюзов, через которые проходит запрос. Значение заголовка Max-Forwards меняется в пределах от 0 до 255 и указывает на то, сколько осталось допустимых пересылок для данного сообщения. Каждый сервер, обрабатывающий запрос, уменьшает значение заголовка Max-Forwards на единицу. Исходное значение этого заголовка рекомендуется брать равным 70.
Заголовок То определяет логического получателя запроса. В заголовке может содержаться имя или номер вызываемого абонента (в рассматриваемом примере — номер 32051), который отображается на дисплее IP-телефона вызываемого пользователя. Обязательной частью этого заголовка является адрес вызываемого пользователя (36074@otdelenl.com). Заголовок То заканчивается параметром tag, который также передается в заголовке From, но уже с другим значением. Параметры tag в этих заголовках служат для идентификации одного диалога в одном сеансе связи. В ответе на запрос в заголовках То и From передаются параметры tag с такими же значениями, что и в запросе. В протоколе SIP может быть образовано несколько диалогов по одному запросу и в этом случае в узле сети возможно разветвление одного запроса по нескольким направлениям сети.
Заголовок From содержит данные об отправителе запроса: адрес и параметр tag. По аналогии с заголовком То, в заголовке From может быть имя или номер вызывающего пользователя (33051).
Заголовок Call-ID представляет собой уникальный идентификатор сеанса связи. Он должен быть одинаковым во всех запросах и ответах в течение одного диалога Идентификатор состоит из буквенно-цифрового значения (а84Ь4с76е66710), задаваемого агентом отправителя, и из имени узла сети (otdelenl .com).
Заголовок Gseq служит для идентификации транзакций и порядка следования запросов. Он состоит из целого числа (314159), которое не должно быть больше 231, и типа запроса. В ответе на запрос вставляется заголовок Cseq, принятый в запросе (INVITE). Если сервер принимает запрос со значением Cseq больше предыдущего, то считает, что это новый запрос. Клиент сам определяет способ выбора значения Cseq.
Заголовок Contact, как правило, несет в себе адрес пользователя, на который могут приниматься входящие сообщения.
Заголовок Content-Type указывает на тип тела сообщения. В рассматриваемом примере в теле сообщения переносятся данные протокола SDP.
Заголовок Content-Length представляет собой десятичное число, указывающее на длину тела сообщения в байтах (162 байта).
Рассмотрим описание сеанса по протоколу SDP, содержащееся в теле сообщения (см. рис. 4.26). При описании используются параметры, каждый из которых записывается в одной строчке и имеет наименование в виде одной буквы, после которой следует знак равенства, например: т=.
После пустой строки следует версия протокола SDP: v = 0.
Далее идет строка параметра «о» (origin), включающая данные инициатора сеанса. Данные имеют шесть составляющих, разделенных интервалами: имя пользователя или дефис (-), идентификатор сеанса (2890844526), версия обновления данных (если обновления данных не было, то то же значение, что и идентификатор сеанса: 2890844526), тип сети (IN — Интернет), тип адреса (IP4 — адрес IP-протокола версии 4) и адрес узла, инициатора данного сеанса (locat3.otdelen 1 .com). Следующая строка несет в себе имя сеанса «s», которое может быть ваписано в виде текста. Если имени нет, то ставится дефис.
Строка, начинающаяся с буквы «t», содержит два поля: время начала (2873397496) и окончания (0) сеанса. Время записывается в секундах в соответствии с протоколом NTP (Network Time Protocol — Сетевой протокол времени). Если в поле окончания сеанса стоит 0, То продолжительность сеанса протоколом SDP не ограничена (сеанс заканчивается при отбое от одного из пользователей). Когда нули стоят в полях начала и окончания сеанса, сеанс длится непрерывно (полупостоянное соединение). Продолжительность непрерывной сессии лежит в пределах от 2 до 6 месяцев.
Строка сданными соединениями начинается с буквы «с». В первом д втором полях указываются тип сети (IN ) и тип адреса (IP4), в третьем — IP-адрес узла источника запроса (192.2.17.12).
За ней следует строка с медиапараметрами, начинающаяся с буквы «т». Первый параметр — тип медиа: это может быть речь (audio), видео (video), передача данных (application, data) или данные, передаваемые по дополнительному каналу управления конференцией в течение сеанса (control). Второй параметр — это номер порта, на который посылаются пользовательские пакеты (49170). Значение этого параметра зависит от типа сети, записанного в строке «с» и от типа транспорт! юго протокола. Для протокола RTP номер порта обязательно четное число. Далее следует тип транспортного протокола Если в строке «с» в поле «тип адреса» стоит IP4, то это означает, что трафик должен передаваться с применением протоколов RTP и UDP, на что указывает запись RTP/AVP—протокол RTP, предназначенный для перед ачи аудио- и видеоинформации (AVP — Audio/Video profile). Последнее поле указывает на формат медиапотока, и его параметры определены профилем RTP/AVP. В поле формата могут содержаться типы полезного поля РТ (Payload type). Значение РТ может соответствовать одному из типов кодеков. На рис. 4.26 в строке «т» содержатся три типа РТ, соответствующие следующим типам кодеков: 0 — PCMU (G.711, р-закон ком- пандирования), 4 — G.723,8 — РСМА (G.711, А-закон компандирова- ния). Первое в строке значение РТ устанавливается по умолчанию.
Прокси-сервер, приняв запрос INVITE, производит аутентификацию пользователя А и посылает в обратном направлении ответ 100 Trying, являющийся подтверждением приема сообщения INVITE (рис. 4.27). В этом сообщении в основном повторяется содержимое
SIP/2.0 Trying
Via:SIP/2.0/UDP locat3.otdelen 1 .com;branch=z9hG4bK776asdhds; received=192.2.17.12
To:36074<sip:36074@otdelen1.com>;tag=287447
From:33051<sip:33051@otdelen1.com>;tag=1928301774
Call-ID:a84b4c76e66710@otdelen1 .com
CSeq: 314159 INVITE
Contact:<sip:33051@otdelen1.com>
Content-Length.O
Рис. 4.27. Содержание ответа Trying
INVITE sip:36074@otdelen1 .com SIP/2.0 Via:SIP/2.0/UDPserv1.otdelen1.com;branch=z9hG4bK8906fdrtk Via:SIP/2.0/UDP locat3.otdelen1 .com;branch=z9hG4bK776asdhds; received= 192.2.17.12 Max-Forwards: 69
To:36074<sip:36074@otdelen1.com>;tag=287447 From:33051 <sip:33051 @otdelen 1 .com>;tag=1928301774 Call-ID:a84b4c76e66710@otdelen1 .com CSeq:314159 INVITE Contact:<sip:33051@otdelen1.com> Content-Type:application/sdp Content-Length: 162
v=0
o=- 2890844526 2890844526 IN IP4 locat3.otdelen1.com
s=-
t=28733974960 C=IN IP4 192.2.17.12 m=audio 49170 RTP/AVP 8 04
Рис. 4.28. Содержание второго запроса INVITE
запроса INVITE, за исключением тела сообщения. Теперь прокси- сервер пересылает запрос INVITE IP-телефону пользователя Б. В новом запросе есть два отличия (рис. 4.28). Во-первых, в нем добавлена строка Via, содержащая адрес прокси-сервера (servl .otdelenl) и параметр «received», содержащий IP-адрес узла отправителя запроса.
IP-телефон обнаруживает в запросе INVITE имя пользователя Б и, если пользователь Б не занят другим разговором, посылает ему вызов. Обработав запрос INVITE, IP-телефон передает прокси-серверу ответ 180 Ringing (рис. 4.29).
SIP/2.0 180 Ringing |
% |
Vla:SIP/2.0/UDP servl .otdelenl ,com;branch=z9hG4bK8906fdrtk; |
|
received 192.2.17.104 |
|
Vla:SIP/2.0/UDP locat3.otdelenl ,com;branch=z9hG4bK776asdhds; |
|
received=192.2.17.12 |
|
To:36074<sip:36074@otdelen 1 ,com>;tag=287447 |
|
From:33051 <sip:33051 @otdelen1 ,com>;tag=1928301774 |
|
Call-ID:a84b4c76e66710@otdelen1 .com |
|
CSeq:314159 INVITE |
|
Contact:<sip:36074@otdelen1 ,com> |
|
Content-Length:0 |
|
Это сообщение включает заголовки Via, То, From, Call-Id и Cseq с таким же содержанием, что и в последнем запросе INVITE. В первом заголовке Via добавлен 1Р-ацрес прокси-сервера: 192.2.17.104. Заголовок Contact содержит адрес пользователя Б. Прокси-сервер пересылает ответ 180 Ringing терминалу пользователя А, исключив из него заголовок: Via:SIP/2.0/UDP serv 1 .otdelen 1 .com; branc = z9hG4bK8906fdrtk; received 192.2.17.104. После приема этого сообщения IP-телефон пользователя А посылает сигнал контроля посылки вызова.
Когда пользователь Б ответит на вызов, от его IP-телефона передается ответ типа 200 ОК (рис. 4.30), который принимается прокси- сервером. Заголовки и их содержание в основном совпадают с сообщением 180 Ringing, но в ответе 200 ОК передаются данные по протоколу SDP, характеризующие терминал пользователя Б. В строке «о» последний параметр (locat25.otdelenl) представляет собой адрес узла пользователя Б. Строка «с» включает IP-адрес IP-телефона пользователя Б (192.2.17.204). Из строки «т» видно, что IP-телефон пользователя Б может работать только с двумя типами аудиокодеков. Прокси-сервер пересылает ответ 200 О К терминалу пользователя А Это сообщение повторяет прежнее, но содержит только один заголовок: Via- SIP/2.0/UDPlocat3.otdelenl.com;branch=z9hG4bK776asdhds; received= 192.2.17.12.
В качестве подтверждения приема ответа 200 ОК IP-телефон посылает прокси-серверу запрос АСК (рис. 4.31), который завершает процесс соединения. Этот запрос имеет заголовки Via, То, From, Call-ID и Max-Forwards с таким же содержанием, что и в запросе INVITE, посланном от IP-телефона пользователя А
SIP/2.0 200 OK
Via: SIP/2.0/UDP serv/1.otdelenl .com;branch=z9hG4bK8906fdrtk; received 192.2.17.104
Via: SIP/2.0/UDP locat3.otdelen1.com;branch=z9hG4bK776asdhds; received=192.2.17.12
To: 36074<sip:36074@otdelen1 ,com>;tag=287447
From: 33051 <sip:33051 @otdelen1 ,com>;tag=1928301774
Call-ID: a84b4c76e66710@otdelen1 .com
CSeq:314159 INVITE
Contact: <sip:36074@otdelen 1 .com>
Content-Type:application/sdp
Content-Length: 160
v=0
o=- 2890844527 2890844527 IN IP4 locat25.otdelen1 .com s=-
t=2873397497 0 C=IN IP4 192.2.17.204 m=audio 3456 RTP/AVP 8 4
Рис. 4.30. Содержание ответа OK
ACK sip:36074@otdelen 1 .com SIP/2.0
Via:SIP/2.0/UDP locat3.otdelen1 ,com;branch=z9hG4bK776asdhds Max-Forwards:70
To:36074<sip:36074@otde!en1.com>;tag=287447
From:33051<sip:33051@otdelen1.com>;tag=1928301774
Call-ID:a84b4c76e66710@otdelen1.com
CSeq:314159 ACK
Content-Length:0
Рис. 4.31. Содержание запроса ACK
Прокси-сервер пересылает запрос ACK терминалу пользователя Б, добавив заголовок Via и уменьшив значение заголовка Max-Forwards на единицу, аналогично тому как это было сделано для запроса INVITE, посланному от прокси-сервера к IP-телефону пользователя Б.
Оба IP-телефона переходят в разговорное состояние и между ними в обоих направлениях пересылаются речевые пакеты с использованием протоколов RTP и RTCP.
Соединение нарушается при приеме сигнала отбоя от любого из пользователей (см. рис. 4.25 — от пользователя Б). IP-телефон посылает прокси-серверу запрос BYE (рис. 4.32),
BYE sip:33051 @otdelen 1 .com SIP/2.0
Via:SIP/2.0/UDP locat25.otdelen1 .com;branch=z9hG4bK776as45kj Max-Forwards:70
From:36074<sip:36074@otdelen1.com>;tag=38794634 To:33051 <sip:33051 @otdelen 1 ,com> ;tag=475931 Call-ID:a84b4c76e66710@otdelen 1 .com CSeq:749 BYE Content-Length:0
Рис. 4.32. Содержание запроса BYE
в стартовой строке которой находится адрес пользователя А. Заголовки Via, Max-Forwards, То, From, Call-ID, Cseq формируются по подобию запроса INVITE, но с учетом обратного направления передачи: содержимое заголовков То и From меняется местами и появляются новые идентификаторы, за исключением Call-ID. Прокси-сервер пересылает это сообщение другому IP-телефону. В новом запросе BYE добавляется заголовок Via и изменяется значение в заголовке Max-Forwards.
В качестве подтверждения приема запроса BYE терминал пользователя А посылает прокси-серверу ответ 200 ОК, который пересылает этот ответ терминалу пользователя Б.
В обоих IP-телефонах сеанс связи закрывается.
Теперь рассмотрим вариант соединения напрямую между теми же пользователями сети, в которой пользователи могут менять местоположение (рис. 4.33). В соединении участвуют серверы перенаправления и регистрации.
Вначале IP-телефон пользователя А посылает серверу перенаправления запрос INVITE с известным ему адресом пользователя Б: 36074@otdelenl.com. Сервер перенаправления передает запрос серверу регистрации, который обращается к базе данных о местоположении пользователей. Сервер регистрации передает серверу перенаправления ответе текущим адресом пользователя Б, а последний посылает терминалу пользователя А ответ 302 Moved Temporarily с текущим адресом пользователя Б, содержащемся в заголовке Contact (например, 34155@otdelen2). IP-телефон пользователя А передает серверу перенаправления запрос АСК, указывающий на окончание взаимодействия с ним.
Теперь IP-телефон пользователя А посылает на адрес IP-телефона пользователя Б новый запрос INVITE, в стартовой строке которого записан текущий адрес пользователя Б (34155@otdelen2). В новом
запросе INVITE значение заголовка Cseq увеличивается на единицу, а значение Call-ID сохраняется. Неизменными остаются поля заголовков То и From. В дальнейшем от IP-телефона пользователя Б передаются ответы 180 Ringing и 200 ОК, а от IP-телефона пользователя А — запрос АСК в соответствии с тем, как это было описано ранее. После состоявшегося разговора соединение нарушается посылкой запроса BYE и ответа 200 ОК.
Нетрудно заметить, что при неизменном местоположении пользователей в сети SIP, соединения напрямую между пользователями будут устанавливаться без участия серверов перенаправления и регистрации (соединение начнется с посылки запроса INVITE IP-телефону вызываемого пользователя).