Сервер Skype for Business Server 2015 (S4 BS) располагает множеством кодеков, применяемых для различных типов связи в зависимости от используемых приложений, которые запускает конечный пользователь. Всюду, от одноранговых вызовов до конференц-связи, применяются различные кодеки от G.711 до Siren. В зависимости от типа кодека могут меняться методы проектирования инфраструктуры S4 BS, а также упрощается задача планирования требований к пропускной способности. В этой статье мы рассмотрим различные кодеки, применяемые в S4 BS, и сценарии, в которых они используются.
Протокол SDP
Прежде чем приступить к описанию кодеков, познакомимся с протоколом Session Description Protocol (SDP) (см. трассировку Snooper на экране 1). Здесь показано, какие доступные клиентам кодеки будут использоваться для связи (я захватил данные из клиента Lync 2013, а не клиента Skype, так как работал с заказчиком и у меня был установлен клиент Lync 2013). Протокол SDP отображает все кодеки, которые можно использовать для обмена данными с клиентом, и порядок, в котором они будут применяться.
Экран 1. Детали трассировки протокола Session Description Protocol (SDP) |
Напомню, что термин «кодек» обозначает сочетание операций «кодирование» и «декодирование» при преобразовании аналогового голосового сигнала в цифровую версию голосового сигнала.
SILK
Если раньше вам не приходилось слышать об этом кодеке, вы, наверное, удивитесь. Да, SILK переводится как «шелк», но здесь это слово имеет совершенно иной смысл. Кодек SILK появился в накопительном пакете обновления Lync 2013 в ноябре 2015 года и используется в Microsoft S4 BS для одноранговых (широкополосных) бесед. Предполагается, что в конечном итоге SILK заменит старые аудиокодеки Microsoft в Lync 2013 и на платформе S4 BS.
На экране 2 представлены собранные данные SDP исходящего вызова клиента Skype в телефонную сеть общего пользования. Цель изображения — показать не собственно вызов, а способ идентификации кодека SILK в трассировке журнала.
Кодек SILK в трассировке |
Кодек SILK, который в будущем заменит кодек Real Time Audio (RTA), выпускается в двух вариантах: широкополосном и узкополосном.
Узкополосный имеет следующий вид:
a=rtpmap:103 SILK/8000 a=fmtp:103 useinbandfec=1; usedtx=0
Широкополосный имеет вид:
a=rtpmap:104 SILK/16000 a=fmtp:104 useinbandfec=1; usedtx=0
Обе пары кодеков, широкополосный и узкополосный, могут использоваться для звуковых вызовов Lync 2013 и Skype, конечно, в зависимости от типа вызова, а не от того, является он исходящим или входящим. SILK поддерживает встроенное исправление методом прямой коррекции Forward Error Correction (FEC), включаемое параметром useinbandfec=1. Каждый раз при вызове одноранговый Skype будет пытаться применить широкополосный кодек, а когда вызов передается по телефонной сети общего пользования, применяется узкополосный кодек.
Real Time Audio (RTA)
Компания Microsoft подготовила собственный аудиокодек при выпуске Office Communicator Server (OCS 2007), и он также представлен в узкополосном (8 кГц) и широкополосном (16 кГц) вариантах. Со времени выпуска Office Communicator Server 2007 кодек RTA был основным кодеком для одноранговых вызовов до появления накопительного пакета обновления Lync 2013 в ноябре 2015 года. После этого SILK стал кодеком по умолчанию для одноранговых бесед через клиент Skype. В настоящее время RTA — запасной вариант для одноранговой связи и звонков по телефонной сети общего пользования для клиентов Lync и Skype. Как и в случае с кодеком SILK, для одноранговых вызовов RTA используется широкополосный кодек, а для звонков в телефонную сеть общего пользования — узкополосный кодек (см. экран 3).
Экран 3. Кодек RTA в трассировке |
Узкополосный кодек имеет вид:
a=rtpmap:115 x-msrta/8000
Широкополосный имеет вид:
a=rtpmap:114 x-msrta/16000 G.722
Помимо одноранговых вызовов, часто выполняются конференц-звонки с помощью Lync 2013 и Skype. G.722 используется для конференций с клиентом Lync или Skype (см. экран 4). Как правило, G.722 применяется, когда доступен широкополосный канал связи. Данный кодек обеспечивает значительное улучшение качества звука по сравнению с такими кодеками, как G.711 или Siren.
Экран 4. Кодек G.722 в трассировке |
G.722/2
Система Lync Room тоже располагает собственным кодеком.
Siren
Кодек Siren разработан компанией Polycom и используется при организации конференций в Live Meeting или Office Communications Server. В последнее время мы редко сталкиваемся с Live Meeting, и это означа платформу Microsoft. Такое развитие событий можно только приветствовать. Если проводятся конференции Lync или Skype с конечными точками с Communicator, кодеки Siren предоставляют широкополосный звук с частотой 16 Кбит/с, подходящий для масштабных конференций. Дело в том, что клиент Communicator не поддерживает кодек G.722. Кроме того, кодек Siren будет использоваться, если клиент Lync или Skype обнаружит, что пропускная способность канала связи недостаточна для политик контроля допуска звонков (Call Admission Control, CAC).
И последнее по очереди, но не по значимости применение кодека Siren клиентом Lync 2013\Skype: если выясняется, что время кругового пути превышает 25 мс. Данный кодек имеет вид a=rtpmap:111 SIREN/16000 в трассировке (см. экран 5).
Экран 5. Кодек Siren в трассировке |
G.711
Стандартный отраслевой аудиокодек G.711 широко применяется в телефонных сетях общего пользования. Когда вы звоните с одного сотового телефона на другой, сигнал передается через G.711. Всегда, когда мы обращаемся в телефонную сеть общего пользования из клиента Lync или Skype, в передаче сигнала участвует G.711. А что случилось с RTA и SILK? Эти кодеки не связываются с телефонными сетями общего пользования; в данном случае в действие вступает сервер-посредник. Сервер-посредник отвечает за преобразование сигнала от RTA или SILK к G.711 в процессе исходящего звонка в телефонную сеть общего пользования (см. экран 6). Кодек имеет вид:
a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000
Экран 6. Кодек G.711 в трассировке |
Эти два кодека представляют различные сигналы: PCMU — G.711 µ-Law, используемый исключительно в Северной Америке, а PCMA — G.711 A-Law, применяемый по всему миру. Когда клиент Lync или Skype решает отправить сигнал серверу-посреднику в формате G.711, серверу-посреднику не нужно выполнять никаких преобразований, так как сигнал уже представлен в формате, понятном для принимающей стороны. Если сигнал передается серверу-посреднику из клиента Lync или Skype в формате RTA или SILK, происходит преобразование формата, связанное с дополнительной нагрузкой на процессор сервера-посредника при обработке данного вызова.
Унифицированная система обмена сообщениями Exchange
Если мы ведем речь о кодеках, следует упомянуть и об Exchange. В Exchange используются кодеки трех типов:
- G.711 u-law
- G.7.11 a-law
- G.723.1
Как отмечалось выше, G.711 — стандарт, разработанный для аудиокодеков. Эти два кодека представляют разные сигналы: PCMU — G.711 µ-Law, используемый исключительно в Северной Америке, а PCMA — G.711 A-Law, применяемый по всему миру.
Аудиокодек G.723.1 используется в основном в приложениях VoIP и требует лицензии. Это высококачественный кодек с высокой степенью сжатия. Сервер клиентского доступа или сервер почтовых ящиков и поддерживаемый шлюз VoIP или IP-АТС могут предоставить как кодеки G.711, так и G.723.1.
Кодеки повсюду
Голосовая связь и мультимедиа вошли в наш обиход, и кодеки превратились в неотъемлемую часть жизни. Представьте себе разговор за обедом: «Какой тип кодека используется в вашем сотовом телефоне, когда вы звоните другим абонентам?» Конечно, это некоторое преувеличение, но тем не менее в мире Lync и Skype кодеки используются в самых разнообразных сценариях.