Сопряжение с SIP-системами в продуктах серии Communications Server. От Trusted Host до Trusted Application.

Статья выросла из так и ненаписанного комментария к веб-касту Илгиза Мамышева и Александра Станкевича, описывающему сопряжение Lync Server c системы видео конференций (ВКС) от компании Polycom. Один из вопросов, прозвучавший во время веб-каста и так и оставшийся без ответа, касался назначения настройки Trusted Application и Static Route на стороне Lync. Начав писать про эти настройки, я понял, что формат комментария не подходит. Кроме того, в голове родилась мысль одного эксперимента, но об этом позже.

Как это было…

Мало кто знает, но через LCS 2005 уже можно было звонить по протоколу SIP на другие IP-АТС. Без роли Mediation (так нелюбимой многими в OCS 2007 и OCS 2007 R2 за необходимость выносить её на отдельный сервер), без проприетарного кодека RTAudio и, даже, без пресловутого E.164.

Все взаимодействие с телефонными станциями и системами видео-конференций в LCS 2005 настаивалось на двух вкладках: Host Authorization и Routing.

Разделение довольно простое: Host Authorization определяет, от кого могут приходить SIP-сообщения, Routing – куда отправлять SIP-сообщения в различных ситуациях.

Host Authorization

clip_image002clip_image004

Host Authorization (ныне Trusted Application) отвечает за две вещи: возможность входящих вызовов от SIP-адресов из других доменов и возможность регистрации абонентов в LCS/OCS без необходимости аутентификации.

Допустим у нас есть:

  • организация LCS/OCS/Lync (SIP-домен mydom.ru);
  • пользователь Вася c SIP-адресом vasya@mydom.ru;
  • сервер ВКС от компании Polycom.

Мы можем создать домен polycom.mydom.ru и пригласить в конференцию пользователя vasya@mydom.ru от имени конференции Meet-room@polycom.mydom.ru.

А можем создать учетные записи для нужных нам комнат в Active Directory, настроить их на работу с LCS/OCS с именами Meet-roomXX@mydom.ru и настроить сервер Polycom на регистрацию комнат в LCS/OCS без необходимости аутентификации. В этом случае пользователи будут видеть статус доступности комнат. Как минимум: On-Line, Off-Line. А в приглашении Вася увидит не SIP-адрес, а нормальное имя конференции, указанное в поле Display Name учетной записи, используемой конференцией.

Данный механизм можно использовать для подключения к LCS/OCS (для Lync не проверял) стандартных (не заточенных под решение от MS) SIP-телефонов, спотыкающихся на этапе аутентификации. Абсолютно противопоказано с точки зрения любых политик безопасности, но поиграть можно.

Routing

clip_image006

Routing (ныне Static Routes) определяет, куда отправлять вызовы, в которых получателем значится определенный SIP-адрес (убрали в OCS) или любой адрес из указанного SIP-домена.

В предыдущем примере, если мы хотим, чтобы пользователи могли звонить в конференцию Meet-room@polycom.mydom.ru, нужно создать маршрут, описывающий на какой сервер и в каком виде слать сообщения для домена polycom.mydom.ru или пользователя Meet-room@polycom.mydom.ru.

Можно указать свой SIP-домен (в примере mydom.ru). В этом случае в сторону маршрута будут уходить вызовы на имена формата <имя>@mydom.ru, которые не зарегистрированы в LCS/OCS. В LCS/OCS можно указать, что маршрут будет использоваться для вызовов на телефонные номера (Phone URI). Этот параметр нужен для настройки RCC или маршрутизации телефонных вызовов.

Безопасность

Коммуникации между LCS/OCS и другим SIP-сервером рекомендуется шифровать. Для этого нужно настроить с обеих сторон отправку/вызовов по протоколу TLS (само собой, требуется установка на серверы сертификатов безопасности, организация доверия сертификату другой стороны и включения механизма прослушивания TLS).

Federation

Стоит сразу отметить, что Host Authorization и Routing позиционируются для коммуникаций внутри организаций. Для внешних коммуникаций еще в LCS использовался граничный сервер (Access Proxy в LCS или Access Edge позднее).

Приложения

Основное назначение Host Authorization и Routing с точки зрения Microsoft – обеспечение доступа сторонних приложений к LCS/OCS. В первую очередь откликнулись телефонисты (RCC). Во вторую – производители систем ВКС. Как я уже писал, производители IP-телефонии охладели к RCC в «эпоху» OCS 2007 (когда поняли, что MS хочет занять их позиции) и активизировались после выхода OCS 2007 R2 и приближении выхода Lync, когда поняли, что у MS может получиться. С производителями ВКС ситуация похожа.

Конференции

Забавно, но только сейчас интеграция Lync с Polycom выходит на уровень, имевшийся во времена LCS 2005 SP1. Связано это, пожалуй, с излишней самоуверенностью разработчиков OCS.

В LCS 2005 не было своего сервера конференций (MCU), и Office Communicator 2005 был «заточен» под взаимодействие с серверами конференций третьих фирм. См. скриншот.

clip_image008

Производители ВКС писали инструкции по настройке клиентов под их решения, создавали скрипты, выполняющие настройки автоматически и надстройки над Office Communicator 2005, позволяющие создавать конференции на их оборудовании одним кликом.

Уже LCS 2005 при интеграции с оборудованием Polycom была возможность, которая в Lync, при той же интеграции появилась только недавно и то пока находится на стадии беты: возможность выделить несколько человек из списка контактов и создать конференцию, в которой будет видно всех участников.

Вся красота разрушилась с выходом OCS 2007. Мало того, что в MS убрали возможность подключения к сторонним MCU, так еще и изменили формат SIP-сообщений (например, добавили поддержку ICE v12). Производители ВКС «прифигели» от такого «счастья» настолько, что отошли только через год после выхода OCS 2007 R2. А еще через полгода вышел OCS 2007 R2 с поддержкой ICE v19 и опять проблемы сопряжения. Мы поддерживаем работу наших систем c OCS 2007 R2, писали производители ВКС, дописывая мелким шрифтом, что клиент при этом должен оставаться Office Communicator 2007 (не R2). :-) Потом конечно поправили и это, но настолько тесной интеграции, как была при LCS 2005, пока что нет.

Настоящее время

В Lync Server интерфейс администрирования был переделан с нуля (не считая куска Response Group, но это отдельная тема), и сопряжение с SIP-серверами у разработчиков было далеко не на первом месте. В последнее время это означает, что функционал остается, но доступен только через PowerShell.🙂

Так что, вместо вкладок выше, имеем команды

  • XXX-CsTrustedApplicationPool
  • XXX-CsTrustedApplicationComputer
  • XXX-CsTrustedApplicationEndpoint
  • XXX-CsTrustedApplication

и

  • XXX-CsStaticRoute
  • XXX-CsStaticRoutingConfiguration

Кроме того, для сопряжения систем по TCP (без шифрования) придётся еще и руками править файл конфигурации Lync. (Об этом я уже писал в отдельной статье)

В официальной документации информации по командам не так много. К счастью, уже есть неплохие инструкции по настройке RCC от Cisco и сопряжения с оборудованием ВКС от Polycom. Их вы можете использовать (в части настроек на стороне Lync) и при настройке сопряжения с оборудованием других фирм.

Чего ждать

О продолжении банкета пока говорить рано.

Судьба RCC каждую новую версию весит на волоске, прямо как Public Folders в Exchange.

По слухам, в следующей версии MS возьмется за улучшения функционала решения в части ВКС. Так что, инструментарий сопряжения опять могут захотеть «порезать».

От сторонних разработчиков MS не откажется, так что Trusted Application и Static Route никуда не денутся. Может, только опять поменяется интерфейс доступа.

Эксперимент

Описание данного механизма нигде, вроде, не встречалось, но логично предположить, что используя Trusted Application и Static Route, одну организацию LCS/OCS/Lync можно скрестить с другой организацией LCS/OCS/Lync без использования серверов с ролью Edge. Данной идеей я поделился с Александром Станкевичем (известным в Российском IT-сообществе любителем такого рода «асоциальных» экспериментов). Поделился и лег спать, планируя вместе настроить всё в свободное время. А на утро получил письмо, что эксперимент успешно завершен.🙂

… Тут у нас с тезкой должен быть спор на 5 листов, сколько технической информации для эксперимента я ему дал и сколько он сам накопал, но вырезано цензурой для сокращения объема статьи. Ожидайте предложения в комментах :-) …

В общем, имеем: организация Lync, организация OCS 2007 R2.

Настроено сопряжение по протоколу TLS, используя Trusted Application и Static Route со стороны Lync и Host Authorization и Routing со стороны OCS.

Работает весь функционал, включая отображение статуса, голос, видео, демонстрация рабочего стола, конференции (даже с федеративными контактами). Кстати, поскольку абонент подключен не через федеративные отношения, значок clip_image010отсутствует. Отличия: контактов нет в адресной книге (без дополнительных асоциальных экспериментов), и статус доступности не отображается, пока не разрешит пользователь другой организации. Ну и само собой, поддержки от MS при таком решении не видать.

комментариев 8 to “Сопряжение с SIP-системами в продуктах серии Communications Server. От Trusted Host до Trusted Application.”

  1. Stanky Says:

    Вот я и ещё в одном блоге «отметился».
    Про «5 листов» особенно улыбнуло🙂 .

  2. Igor Romanovsky Says:

    Саша, а при подобном подключении через трастед аппликейшен обычных IP-PBX, будет ли работать транзитная маршрутизация звонков через Lync?

    Например, с IP-PBX1 по сип-транку приходят звонки в Lync, в нём не находят контактов и идут транзитом на IP-PBX2, в сооветсвии с маршрутом (маска телефонного номера).

    • Александр Донин Says:

      В OCS и Lync можно нельзя настроить маршрут по маске. Только на домен. Так что, в качестве замены Enterprise Voice использовать данный механизм будет затруднительно.
      А транзитную маршрутизатцию MS в Lync обещали добавить. Сроков, конечно, не называют.

  3. Stanky Says:

    Кстати о пяти листах — вот вырезка из той беседы:

    Донин Александр [22:42]:
    дык вот.
    хочу сцепить две организации Lync без еджей
    Станкевич Александр [22:42]:
    Ну и в чём проблема🙂 ?
    Или ты именно про федерацию говоришь?
    Донин Александр [22:43]:
    а ты знаешь другие способы?😉
    Станкевич Александр [22:43]:
    Ну, я подумал, что ты про то, когда две разные организации внутри одной сети.
    Донин Александр [22:43]:
    да
    так и есть
    в разных лесах
    Станкевич Александр [22:44]:
    И если поднять конференцию на одной, то клиенты без Edge’а будут подключаться к тому Front-End’у где она поднята.
    Угу — в разных лесах, понятное дело🙂 .
    Донин Александр [22:44]:
    не знаю пока
    Станкевич Александр [22:44]:
    Так я знаю😉 .
    Донин Александр [22:44]:
    через что связывал?
    Станкевич Александр [22:44]:
    ?
    Донин Александр [22:45]:
    две организации
    Станкевич Александр [22:45]:
    То ли там VPN был, то ли единая сеть.
    Донин Александр [22:45]:
    неее.
    Станкевич Александр [22:45]:
    Я уж точно не поню — больше года уж прошло.
    Донин Александр [22:45]:
    как вязывал Front-end из разных лесов
    Станкевич Александр [22:46]:
    Ну, без ёжикоФ, на первоначальном этапе, там не обойтись.
    Донин Александр [22:46]: 🙂
    а я хочу без Edge
    Станкевич Александр [22:46]:
    Через них всё согласование проходило, а потом тупо наикратчайшим путём.
    Вот в этом у меня есть сомнения🙂 .
    Донин Александр [22:46]:
    вот потому и тест
    у тебя есть две орагнизации в одной сети… желательно тестовые
    Станкевич Александр [22:47]:
    А как ты хочешь маршрутизацию трафика в этот домен организовать?
    Донин Александр [22:47]:
    где можно шалить
    Станкевич Александр [22:47]:
    Нууу…
    Донин Александр [22:47]:
    ?
    шалить не сильно будем
    Станкевич Александр [22:47]:
    Мой тестовый стенд с Lync’ом и рабочий OCS на соседних серваках😉 .
    Донин Александр [22:47]:
    хм….
    лучше два Lync
    Станкевич Александр [22:48]:
    Понятно, чо лучше🙂 .
    Но есть только такое.
    Донин Александр [22:48]:
    можно, конечно и такое.🙂
    Лана, попробую у нас поднять на неделе
    если получится — будет веелая статья
    Станкевич Александр [22:48]:
    Ты, сперва, идею вырази😉 .
    Как именно трафик пойдёт на другой Front-End?
    Через Route’ы🙂 ?
    Донин Александр [22:49]:
    trusted application + Static Route🙂
    Станкевич Александр [22:49]:
    О которых, кое кто, так каммент и не написал😉 .
    Донин Александр [22:49]:
    аха
    Станкевич Александр [22:49]:
    Так и понял🙂 .
    Донин Александр [22:49]:
    сейчас задумался о том чтоб написать и появилась идея

    Собственно, идея была заявлена, а про её реализацию я уже и сам смекнул. Ну а реализация — это уже дело техники🙂 .

  4. Александр Донин Says:

    Тогда уж еще две части нужно выложить на обозрение:
    1. где я в общих чертах описывал где что настраивается
    2. (уже утром) где ты возмущался, что в некоторых местах тебя ….. скажем так.. неправльно проинформировали.🙂 или последнее уже голосом было….

    • Stanky Says:

      Ну, как я уже сказал — это дело техники😉 . Да и было-то там всего пару строк и то с ошибками🙂 .

      Ну коли так желаешь:

      Донин Александр [22:56]:
      первый вопрос. начнем с TCP или с TLS?
      у каждого варианта свои недостатки
      Станкевич Александр [22:57]:
      С безопасностью (сертификатами), как можно догадаться, у меня проблем нет абсолютно ни каких😉 .
      Донин Александр [22:58]:
      тады по TLS. как подготовиться тогда конечно сам знаешь.
      Станкевич Александр [22:59]:
      Ты про доверие корням🙂 ?
      Донин Александр [23:00]:
      Аха.🙂 потом в Trusted server на OCS нужно добавить FQDN Lync и создать на Lync Trusted Application Poole с FQDN OCS
      Станкевич Александр [23:01]:
      Ну дык😉 !

      Донин Александр [23:07]:
      это первый этап. Отвелкся на свой стенд.
      дык значит
      машрут на OCS простой. Имя SIP FQDN Lync
      Донин Александр [23:09]:
      $x = New-CsStaticRoute -TLSRoute -Destination «OCS FQDN» -Port 5061 -MatchUri «*.sipdom.ru» -UseDefaultCertificate $True

      Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x}
      это роут на Lyncёу
      Станкевич Александр [23:11]:
      Угу.
      А доверенное приложение тупо доверяет такому серверу?
      Типа, считает его аутентифицированным.
      Донин Александр [23:12]:
      аха.
      Станкевич Александр [23:12]:
      Если он сертификат с соответствующим именем предъявил или ещё чего.
      Донин Александр [23:12]:
      приходи кто хош, бери что хош
      Станкевич Александр [23:13]: 🙂

      А «возмущение» моё было шуточным и уже голосом🙂 . Уж лучше б ты ни чего не говорил — времени бы мне сэкономил😛 !

  5. หนังxxx Says:

    Do you have any video of that? I’d care to find out more details.

  6. ดูหนังโป๊ Says:

    This is veгy attention-gгabbing, You’re an excessively professional blogger.
    I’ve joined yoᥙr feed and sit up for looking for more оf уour fantastic post.
    Also, I’ve shared yⲟur website in my social netաorks

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s


%d такие блоггеры, как: