Интеграция SIP-звонков с Microsoft Teams через Direct Routing: практическое руководство

Вы решили подключить обычную телефонию к Microsoft Teams — не через облачный оператора Microsoft, а через своего, по SIP. Значит, вам нужен Direct Routing. Это не самая простая штука, но если разобраться, всё становится логичным. Расскажу, как это работает, что понадобится и где чаще всего ошибаются.

Что такое Direct Routing и зачем он нужен

Microsoft Teams умеет звонить по телефону — но по умолчанию это делается через встроенную подотчётную инфраструктуру Microsoft (Calling Plan). Проблема в том, что Calling Plan доступен не во всех странах, стоит отдельно за каждого пользователя и не даёт гибкости: вы привязаны к Microsoft как к оператору.

Direct Routing — это способ подключить внешнего SIP-оператора напрямую к Teams. Вы покупаете номер у любого оператора, который поддерживает SIP- trunks, и через промежуточное звено — Session Border Controller (SBC) — соединяете его с Teams.

Зачем это делают:

  • Нужны номера от привычного оператора, с которым уже работаете.
  • Microsoft Calling Plan не покрывает ваш регион.
  • Хочется меньше платить за минуты, особенно при большом объёме звонков.
  • Нужна гибкость: маршрутизация через свой SBC, интеграция с корпоративной АТС.
  • Требования к хранению данных или безопасности не позволяют отдавать голос третьей стороне.

Что понадобится для подключения

Прежде чем настраивать, убедитесь, что у вас есть всё необходимое. Список выглядит так:

  1. Лицензия Microsoft 365 с Teams Phone — это отдельная надстройка (Phone System). Без неё звонить на обычные номера не получится. Проверьте, что она назначена каждому пользователю, которому нужна телефония.
  2. SIP-оператор, который поддерживает подключение через SIP-trunk и готов работать с Direct Routing. Не все операторы это делают — уточняйте заранее.
  3. Session Border Controller (SBC) — устройство или виртуальная машина, которое стоит между Teams и вашим оператором. Это обязательный элемент. Microsoft не позволяет подключать SIP-операторов напрямую без SBC.
  4. Сертификат для SBC — нужно получить TLS-сертификат, который будет использоваться для шифрованного соединения с Teams. Microsoft доверяет определённым центрам сертификации.
  5. Публичный IP-адрес и доменное имя для SBC — Teams должен знать, куда отправлять сигнализацию и медиа.

Как выбрать SBC

SBC — это сердце Direct Routing. Именно он преобразует SIP-сигнализацию, шифрует трафик, управляет кодеками и обеспечивает безопасность. Выбор большой, но есть проверенные варианты, которые Microsoft официально сертифицировала для Direct Routing.

Модель Форм-фактор Для кого подходит Примечание
AudioCodes Mediant Аппаратный или виртуальный Малый и средний бизнес Один из самых популярных, хорошая документация
Ribbon SBC Аппаратный или виртуальный Средний и крупный бизнес Наследник Sonus, мощный, но сложнее в настройке
Oracle E-SBC Аппаратный или виртуальный Крупный бизнес Надёжный, но дорогой и сложный
TE-SBC (виртуальный) ПО для установки на ваш сервер Технические команды с опытом Дешевле, но требует самостоятельной настройки
Microsoft Teams Phone Mobile (Operator Connect) Не требует SBC Если оператор поддерживает Альтернатива Direct Routing — проще, но меньше контроля

Если у вас до 50 пользователей и нет выделенной команды по телефонии — берите AudioCodes в виртуальном варианте. Проще развернуть, проще обновлять, и документация по интеграции с Teams там самая подробная.

Пошаговый план подключения

Вот реальная последовательность действий, которая работает в большинстве случаев:

  1. Получите сертификат для SBC. Подойдёт сертификат от публичного CA (например, DigiCert, GoDaddy). Доменное имя должно совпадать с FQDN вашего SBC. Срок действия — обычно год, не забудьте обновить.
  2. Установите и настройте SBC. Пропишите IP-адреса, настройте сетевые интерфейсы, загрузите сертификат. На этом этапе SBC должен пинговать интернет и иметь выход наружу.
  3. Настройте DNS-запись. Создайте A-запись, которая указывает на публичный IP вашего SBC. Teams будет обращаться по этому имени.
  4. Подключите SBC к Teams через PowerShell. Команда New-CsOnlinePSTNGateway регистрирует ваш SBC в системе. После этого нужно назначить ему регион и маршрутизацию.
  5. Настройте маршрутизацию звонков. Создайте голосовой маршрут (Voice Route), который определяет, какие номера отправляются через ваш SBC. Например, все исходящие звонки или только на определённые коды стран.
  6. Назначьте пользователям номера. Через админ-панель Teams или PowerShell привяжите телефонные номера от оператора к конкретным пользователям.
  7. Назначьте политику звонков. Создайте или используйте готовую политику маршрутизации (OnlineVoiceRoutingPolicy) и назначьте её пользователям.
  8. Протестируйте. Сделайте тестовый звонок на мобильный, на городской номер, проверьте входящий вызов. Убедитесь, что голос идёт в обе стороны без задержек и эха.

Настройка через PowerShell: минимальный набор команд

Вот пример того, как выглядит регистрация SBC в Teams. Это не полное руководство, но даёт понимание процесса:

New-CsOnlinePSTNGateway -Identity sbc.yourdomain.com -SipSignalingPort 5061 -Enabled $True

После этого создаёте маршрутизацию:

New-CsOnlineVoiceRoute -Identity "AllCalls" -NumberPattern "^\+" -OnlinePstnGatewayList sbc.yourdomain.com -OnlinePstnUsages @{Add="International"}

И назначаете политику пользователю:

Grant-CsOnlineVoiceRoutingPolicy -Identity "user@domain.com" -PolicyName "International"

Если вы не работали с PowerShell для Teams раньше — начните с подключения модуля MicrosoftTeams и проверки прав администратора. Ошибки чаще всего связаны с правами или неверным форматом номера.

Частые ошибки и как их избежать

Вот что я вижу снова и снова при развёртывании Direct Routing:

  • Неправильный сертификат. Истёкший сертификат, несовпадение доменного имени, самоподписанный сертификат — Teams просто не установит соединение. Проверяйте заранее через Test-CsOnlinePSTNConnectivity.
  • Блокированный порт 5061. SBC должен принимать TLS-подключения на этом порту. Если между SBC и интернетом стоит файрвол — убедитесь, что порт открыт для входящих подключений от Microsoft.
  • Нет лицензии Phone System у пользователя. Без неё Teams не покажет ввода номера и не позволит звонить. Проверяйте через админ-центр: пользователь → лицензии → Phone System должна быть активна.
  • Неправильный формат номера. Teams требует формат E.164 (например, +74951234567). Если оператор отдаёт номер в другом формате — нужна нормализация на стороне SBC.
  • Двойной NAT или проблемы с сетью. SBC должен иметь публичный IP или корректный NAT. Если за SBC стоит ещё один роутер с трансляцией — будут проблемы с медиа-потоком (односторонний звук или тишина).
  • Забыли назначить политику маршрутизации. Пользователь может иметь номер, но если политика не назначена — звонки не пойдут через SBC.

Что выбрать: Direct Routing, Calling Plan или Operator Connect

У Microsoft есть три способа получить телефонию в Teams. Выбор зависит от вашей ситуации:

Выбирайте Direct Routing, если:

  • У вас уже есть SIP-оператор и вы не хотите менять.
  • Нужна гибкая маршрутизация и контроль над трафиком.
  • У вас есть технический специалист, который разберётся с SBC.
  • Вы хотите сэкономить на минутах при большом объёме звонков.

Выбирайте Microsoft Calling Plan, если:

  • У вас небольшая команда и нет желания настраивать SBC.
  • Вы готовы платить фиксированную сумму за пользователя в месяц.
  • Вам не нужна сложная маршрутизация.

Выбирайте Operator Connect, если:

  • Ваш оператор поддерживает этот режим (список есть у Microsoft).
  • Хочется простоты Direct Routing, но без собственного SBC.
  • Оператор готов сам настроить подключение к Teams со своей стороны.

Как проверить, что всё работает

После настройки не полагайтесь на «вроде позвонилось». Вот что стоит проверить:

  • Входящие звонки с мобильного и городского номера.
  • Исходящие на мобильные, городские и международные номера.
  • Переадресация вызовов — работает ли корректно.
  • Гудки при звонке на недоступный номер.
  • Качество голоса при длительном разговории (5–10 минут).
  • Звонок при плохом интернете — не падает ли соединение.

Для диагностики используйте встроенные средст Teams: раздел «Вызовы» → «Журнал звонков» и отчёты в админ-центре. Там видно, прошёл ли звонок через SBC и какой код завершения вернулся.

Практические рекомендации

Если бы я начинал с нуля, вот что бы сделал:

  1. Сначала определился бы с оператором — спросил, работают ли они с Direct Routing и какие требования к SBC.
  2. Взял бы виртуальный SBC (AudioCodes VE) и развернул на Hyper-V или VMware — это быстрее и дешевле, чем покупать железо.
  3. Настроил бы один тестовый номер, проверил бы все сценарии и только потом переводил бы остальных пользователей.
  4. Задокументировал бы все настройки SBC и PowerShell-команды — через месяц точно забудете детали.
  5. Настроил бы мониторинг SBC: логи, алерты на падение регистрации в Teams, счётчики активных вызовов.

Итог

Direct Routing — это надёжный и гибкий способ подключить свою телефонию к Microsoft Teams. Он требует подготовки: нужен SBC, сертификат, правильная настройка сети и лицензии у пользователей. Но если всё сделать правильно — вы получите полноценную телефонию внутри Teams с номерами вашего оператора и контролем над маршрутизацией.

Начните с проверки наличия лицензий Phone System у пользователей и выбора оператора, который поддерживает Direct Routing. Дальше — разворачивайте SBC, регистрируйте его в Teams и тестируйте с одним номером. Не торопитесь переводить всех пользователей сразу — убедитесь, что всё работает стабильно хотя бы пару дней.

Virtual SIM — eSIM и виртуальные номера по всему миру