Cisco TelePresence MCU 5300 Series
Для начала сделаем небольшой экскурс в историю создания сетей. В те времена когда не было Интернета, единственной системой общения в реальном времени была телефонная связь. Многие в детстве играли в телефон на проволоке и с жестяными банками на концах: по сути это и является простейшим видом связи circuit-switched network .
В приложении к электрическому телефону, для соединения двух абонентов, они должны находиться в одном электрическом контуре (circuit). Для соединения друг с другом нескольких абонентов использовался switch: оператор физически подключает контуры друг с другом - отсюда название circuit-switched network.
Со временем технологии развивались и конечные устройсва получили свои номера (extension numbers). Несколько switches соединялись друг с другом, и чтобы позвонить на абонента другого коммутатора необходимо набрать номер соответствующего свитча. Например:

Circuit-Switched Signaling
Любой тип передачи данных включает в себя две вещи: - Data: собственно передача голоса - Signaling: необходима для установки соединения.
Digital transmission
Цифровая передача использует передачу 0 и 1. Для перевода аналоговой речи в в цифровую передачу используются различные codecs (от слова coder-decoders).
Цифровая передача обладает несколькими преимуществами: - Дешевизна. Цифровая передача позволяет передавать несколько разговоров через несравнимо меньшее количество проводов, чем этого требует аналоговая передача. - Качество передачи. Цифровая передача не подвержена помехам при усилении сигнала.
Конечно у цифровой передачи есть и минусы. Самый главный минус - это задержки, необходимые для кодирования/декодирования и маршрутизации.
Digital Signaling
Вообще голосовые сети можно разделить на три категории: - Analog Voice Circuit Switched Network - Digital Voice Circuit Switched Network - Voice over IP Packet Network
Исторически эти технологии появлялись в том же порядке. Digital Voice Circuit Switched Network использует Time Division Multiplexing (TDM), которая позволяет передавать множество соединений с использованием одной линии. При этом каждое соединение использует определенный Time Slot. Изначально каждый поток занимал 64Kbps. Сигнализацию можно разделить две категории:
- access signaling - изначально это были on-hook/off-hook. Далее это развилось в pulse signaling, а затем появился Dual-Tone Multi-Frequency (DTMF). Для обратной связи от станции к пользователю (busy, call waiting и др) используются Standard tones, которые в разных странах разные.
- trunk signaling - в приложении к Digital Voice Circuit Switched Network бывают сигнализации: CAS: Сигнализация передаётся в голосовом канале. CCS: Сигнализация передается в выделенном канале, т.е. выделяется отдельный Time Slot под сигнализацию. SS6 и SS7 есть разновидности CCS. В настоящее время операторы предпочитают использовать CCS.
Packet-Switched Networks
Смысл Packet-Switched Networks - это разделение данных на секции или пакеты, и передача этих пакетов отдельно. Это даёт возможность передавать одновременно пакеты из разных источников и в разные назначения. Каждый пакет имеет адрес источника, а также адрес назначения. Передачей пакетов занимаются устройства под названием Router.
Packet-Switched Networks обладают высокой гибкостью и эффективностью. Они позволяют обеспечивать пропускную способность в различных направлениях и приоритезацию. Минусом таких сетей являются задержки, которые могут появиться из-за перегрузки сети.
Современная Packet-Switched Network это есть IP Network. Internet также является IP Network.
Transport Layer Protocols
В приложении к IP телефонии нам интересны Transport Control Protocol (TCP) и User Datagram Protocol (UDP). У низ разница в том, что TCP обеспечивает надежность соединения: получение пакетов требует подтверждения, и при потере пакет пересылается заново.
Real-time Data
Коммуникации Аудио и Видео требуют так называемую real-time transmission. Это означает что задержка скажем в секунду делает такой трафик абсолютно бесполезным. UDP и TCP также имеют инструменты, обеспечивающие сортировки пакетов, т.е. чтобы они прибывали в том же порядке как и отправлялись.
Пакеты могут прибегать к месту назначения с различными задержками, при этом нарушается последовательность получения этих пакетов; это различие во времени называется jitter. Для преодоления jitter используется Jitter Buffer. Например Real-Time Transport Protocol (RTP) использует Jitter Buffer. Получающая система буферизует входящие пакеты. тем самым давая определённое время добежать всем опаздывающим, в результате получающая система получит continuous playback.

Вообще jitter buffer выставляется автоматически, но чаще всего в Skype for Business Server 2015 он составляет 40ms
Quality of Service
Поскольку интересующий нас трафик является Real-time Data, в загруженных сетях для такого типа трафика необходима приоритезация. Вообще существуют два типа QoS: ◆ Integrated Services, RFC 1633 ◆ Differentiated Services, RFC 2475
Skype for Business Server 2015 поддерживает только Differentiated Services через маркировку пакетов метками Differentiated Services Code Point (DSCP). По умолчанию маркировка происходит следующая:

Session Description Protocol (SDP)
Session Description Protocol, SDP - протокол, который обеспечивает стороны необходимой информацией для поднятия media session. С помощью SDP передающая и принимающая стороны договариваются о параметрах соединения: IP адреса и порты, используемые media codecs, authentication и т.д. SDP может быть расширен через использование a= information lines.
SDP имеет текстовый формат, например:
Session Initiation Protocol (SIP)
Первое что стоит отметить - в настоящее время все упоминания о SIP на самом деле упоминают SIPv2. Не вдаваясь в подробности, можно сказать, что SIPv2 есть продолжение развития двух первоначальных протоколов SIPv1 и SCIP. Далее все упоминания SIP буду означать SIPv2.
Вообще SIP описывается RFC 2543, но SIP примечателен тем, что существует множество его расширений: ◆ RFC 2976 (INFO) ◆ RFC 3261 (ACK, BYE, CANCEL, INVITE, OPTIONS, REGISTER) ◆ RFC 3262 (PRACK) ◆ RFC 3265 (SUBSCRIBE, NOTIFY) ◆ RFC 3311 (UPDATE) ◆ RFC 3428 (MESSAGE) ◆ RFC 3515 (REFER) ◆ RFC 3903 (PUBLISH) Благодаря этим расширениями SIP обладает огромной гибкостью.
Microsoft в свою очередь не осталась в стороне и наплодила своих расширений. Если вы видите заголовки SIP, начинающиеся с "ms-" - это оно и есть.
Далее мы рассмотрим Microsoft implementation of SIPv2 и его работу с Skype for Business Server 2015.
Использование SIP
В своём основном виде SIP используется для создания, изменения и закрытия сессий между юзерами и или между юзером и сервером. SIP в своём синтаксисе похож на HTTP, и является протоколом request-and-response. Это означает, что для кжадого отданного request ожидается соответствующий response.
SIP response похожи на HTML:

Рассмотрим некоторые SIP requests:
-
INVITE - это начало или инициация SIP-сессии. INVITE в себя включает SDP для уточнения параметров сессии между сторонами.Как видно на диаграмме, на запрос INVITE в ответ пришло два SIP response: 180 Ringing и 200 OK.
- ACK - на диаграмме ACK есть подтверждение INVITE со стороны initiating user. Каждая SIP response должна быть подтверждена. Например если сторона получает несколько Responses - на каждую отправляется подтверждение.
-
CANCEL - используется для отмены какой-либо ожидающей INVITE.
- BYE - используется для отключения established session.
-
REGISTER - используется для информирования сервера насчет местонахождения клиента, или по сути IP адреса по которому доступен клиент. Skype for Business Server 2015 поддерживает Multiple Points of Presence (MPOP), когда один и тот же юзер может одновременно подключаться к примеру через комп, и мобилу. Все эти устройства осуществляют регистрацию отдельно.
- OPTIONS - позволяет сделать запрос какую функциональность поддерживает сторона
Все сообщения SIP имеют определённый формат:
SIP Request ◆ Request line
◆ Several header lines ◆ Empty line ◆ Message body
SIP response ◆ Status line
◆ Several header lines ◆ Empty line ◆ Message body
header lines бывают самые разные, также можно добавить свои, как это сделала Microsoft (заголовки начинающиеся на ms-) Рассмотрим некоторые стандартные заголовки:
- Call-ID - уникален для каждой сессии SIP, это позволяет отслеживать одну и ту же сессию через несколько серверов, что очень облегчает поиск проблем. Если звонок транферится - Call-ID меняется
- Contact - похож на заголовок From, но дополнительно содержит IP и порт. Это очень полезно когда мы имеем дело с сессиями с несколькими Endpoints, что позволяет иденитифицировать каждую сторону.
-
Cseq - Command Sequence (Cseq) используется для отслеживания запросов внутри одной и той же сессии. например:
Cseq: 1 INVITE ......... Cseq: 2 INVITE
При этом соответствующая 200 OK будет содержать то же значение Cseq, также как и ACK и CANCEL message.
-
From - в данном заголовке содержится SIP URI отправителя:
From: "Linda Lync"
-
Record-Route/Route/Via - все эти три заголовка имеют отношение к маршруту по которому данное SIP Message прибыло. Record-Route содержит proxy server. Route header содержит return path. Via header используется для обнаружения routing loops, т.к. в нем записаны каждый Proxy, через которые прошло сообщение.
Record-Route:
-
To - содержит SIP URI получателя
To:
Presence это возможность получать информацию о присутствии пользователя. Для Presence используются два типа SIP messages: SUBSCRIBE и NOTIFY. NOTIFY используется для обновления состояния. SUBSCRIBE используется для подписки на получения уведомлений о состоянии других пользователей. С точки зрения пользователя, для получения уведомлений Presence, нужно контакт добавить в contacts list.

Instant Message
Instant Messages также очень популярная опция. После того, как клиент залогинился (REGISTER) и получил статус своего собеседника (SUBSCRIBE, NOTIFY), он может отправить сообщение, используя MESSAGE request.

Skype for Business Codecs and Standards
Вообще Skype for Business Server 2015 использует продвинутый кодек SILK, но с точки зрения SIP session setup выбор кодека происходит через использование SDP, который в свою очередь является частью initial INVITE.
Рассмотрим пример пример лога:


Кодек и методы recovery
Для восстановления потерянных пакетов Skype for Business Server 2015 использует метод Forward Error Correction (FEC). FEC работает динамически и активируется в случае если пакеты начинают теряться. Предположим исходный голос выглядит:

Работа FEC заключается в том, что каждый пакет несет данные предыдущего пакета. Это конечно увеличивает нагрузку на сеть, но несильно, т.к. размер голосых пакетов невелик и даже сравним с размером заголовков этих пакетов.
В результате, благодаря FEC, часть данных можно восстановить:

Video Codecs
Skype for Business Server 2015 использует видео кодек H264 Advanced Video Coding/Scalable Video Coding (AVC/SVC).
Данный кодек использует многоуровневый подход для передачи данных клиентам. При этом каждый вышестоящий уровень и спользует нижестоящий + добавляет свои детали. Это позволяет передавать множество разрешений без необходимости обработки каждой из них поотдельности.

В дополнение в каждом потоке может быть запрошено различное разрешение, это даёт возможность клиенту запросить несколько потоков с различными разрешениями.

Skype for Business Server 2015 используется сжатие для уменьшения трафика.
Video Codec, как и Аудио, некотииируется через использование SDP.

Работа video codec
Как и в голосе, видео изображение разбивается на сэмплы. Каждый sample начинается и заканчивается I-frame (Intra-coded picture). I-frame в себе несёт полную картинку изображения, никак не сжимается, и проходит каждые 4 секунды для peer-to-peer video и каждые 3 секунды для конференций. Между I-frame идет комбинацию других кадров: P-frames (predicted picture) и B-frames (bi-predictive picture) - эти кадры содержат лишь изменения фрагментов картинки.


Desktop Sharing
Desktop Sharing использует Remote Desktop Protocol (RDP) в качестве media stream, и использует SIP как signaling method
Протокол XCCOS
SIP отличный протокол для basic messaging. SIP позволяет нам организовывать voice, video, and desktop sharing. Skype for Business Server 2015 также использует дополнительный протокол для организации persistent chat - Extensible Chat Control Over SIP (XCCOS). Аналогично протоколу SDP, XCCOS передаётся внутри SIP messages в XML-формате.
Внешние подключения
При инициализации сессии SIP, SDP передаёт инфорамацию об IP адресе и портах сервера, куда клиент может подключиться. Это прекрасно работает внутри сети LAN, но требует отдельного обсуждения подключений клиентов извне, поскольку на периметре сети установлены брендмауэры. Решение - это установка Edge server, который работает как SIP proxy server + media relay server. В этом случае клиенты не подключаются друг ко другу непосредственно, а к серверу, используя его как посредник.
Процесс подключение происходит в несколько шагов: 1. Log in to the front-end server using SIP via the Edge server (as a proxy). 2. Request the Media Relay Authentication Service (MRAS) credentials via the front-end server. 3. Request the Edge endpoint details. 4. Send the INVITE to another user, populating the SDP with Edge endpoint details. 5. Negotiate which endpoint to use for media communications. 6. Begin the session.
Клиент может находиться за NAT, в этом случае используются специальные методы для успешного прохода SIP через NAT (STUN и TURN)
Cisco TelePresence MCU 5300 Series - сервер многоточечной конференции (MCU), масштабируемый в зависимости от требований и размера видеосети.
Совместное подключение двух устройств Cisco TelePresence MCU 5300 может увеличить пропускную способность вдвое. Вкупе с упрощенной моделью лицензирования это позволяет с самого начала даже в небольших сетях извлекать выгоду от эффективности MCU и при необходимости легко выполнять масштабирование. Это обеспечивает защиту начальных вложений и делает возможным расширение центральных компонентов без длительных простоев служб простым как никогда.
MCU 5300 помогает реализовать индивидуальное изменение формата и скорости потока данных для каждого участника, что дает возможность использовать терминальные устройства разных производителей в рамках одной конференции.
Сервер MCU 5300 оснащен рядом технологий, разработанных Cisco для линейки продуктов TelePresence. В частности, технология Cisco TelePresence Multiway предоставляет широкие возможности проведения больших конференций, эффективное использование полосы пропускания, плавный переход в любой момент от соединения «точка – точка» к многоточечному соединению. Universal Port позволяет предоставить каждому участнику условия и режимы, наилучшим образом соответствующие его оборудованию и каналу связи. А технология PacketSafe сводит к минимуму последствия потери сетевых пакетов. Также новый сервер полностью совместим с программным обеспечением Cisco Unified Communications Manager, Cisco TelePresence Management Suite и Cisco TelePresence Conductor.