Настройка тенанта Office 365 для службы Cloud PBX-Teams

Для конфигурации тенанта потребуется наличие на компьютере модуля PowerShell Teams. Его можно установить командой

Install-Module MicrosoftTeams

Подключение к Teams Powershell, и корректное отключение:

Откройте PowerShell на компьютере, на котором установлен модуль PowerShell Teams, и выполните следующие команды:

Import-Module MicrosoftTeams

$cred = Get-Credential

В открывшемся окне после этой команды введите логин и пароль учетной записи, имеющей права Администратора Skype for Business / Teams или Глобального администратора тенанта Office 365.

Connect-MicrosoftTeams -Credential $cred

После успешного выполнения этой команды можно приступать к настройкам тенанта или заданию параметров пользователей Teams.

Важно: после выполнения требуемых действий, не забывайте принудительно отключить PowerShell-сессию командой:

Disconnect-MicrosoftTeams

Если этого не делать, оставляя сессию «висеть» в памяти, создание подряд нескольких подключений может не позволить выполнить следующее, без перезагрузки компьютера.

Глобальные настройки связи тенанта со службой Cloud PBX-Teams

В зависимости от того, какой SSL-сертификат будет использоваться службой Cloud PBX-Teams — заказчика, или общий, выбирается имя шлюза службы. В случае собственного сертификата заказчика на домен yourname.ru, допустим, выбирается имя teamsgw.yourname.ru. В случае общего сертификата, ранее в тенант Office 365 было добавлено имя домена clientname.teams.lancloud.ru, поэтому и имя шлюза будет точно такое же — clientname.teams.lancloud.ru.

Используемый номер TCP-порта для службы сообщается заказчику администраторами службы Cloud PBX-Teams.

Если заказчик использует первый вариант, собственный SSL-сертификат и имя шлюза teamsgw.yourname.ru — необходимо убедиться, что во внешнем DNS создана запись teamsgw.yourname.ru, указывающая на IP-адрес службы Cloud PBX-Teams: 45.84.84.68

В PowerShell выполняется следующая команда:

New-CSOnlinePSTNGateway -Fqdn servicename -SipSignalingPort portnumber -MaxConcurrentSessions 100 -ForwardCallHistory $true -MediaBypass $true

В качестве параметра servicename указывается выбранное выше имя службы — например, clientname.teams.lancloud.ru. В качестве параметра portnumber — присланный номер порта, например, 5068. Параметр MaxConcurrentSessions не влияет на ограничение количества одновременных звонков, и нужен только для отработки мониторинга в Office 365, вывода предупреждений. Рекомендуется указать этот параметр в число, равное числу желаемых одновременных вызовов, либо в количество линий транка, предоставленного провайдером (если у вас например номер в 10 одновременных вызовов, укажите 10).

Параметр ForwardCallHistory необходим для передачи информации о переадресованном вызове.

Параметр MediaBypass необходим для движения голосового трафика в обход серверов Microsoft, напрямую между клиентами Teams, и службой Cloud PBX-Teams.

Далее, создаются категории вызовов, которые будут назначены пользователям

Категории вызовов — для всех пользователей без разграничений

Если всем пользователям возможно совершать любые звонки, без разграничения по направлениям — то необходимо выполнить в PowerShell следующие команды:

Set-CSOnlinePSTNUsage -Identity Global -Usage @{add="AllCalls"}

New-CSOnlineVoiceRoute -Identity AllCallsRoute -NumberPattern '.*' -OnlinePstnGatewayList servicename -OnlinePstnUsages AllCalls

New-CSOnlineVoiceRoutingPolicy "AllCallsPolicy" -OnlinePstnUsages "AllCalls"

В качестве параметра servicename указывается имя шлюза, добавленного командой New-CSOnlinePSTNGateway выше.

Указанные команды создадут одну политику вызовов, включающую один единый класс вызовов — любой набранный телефонный номер будет направлен в шлюз службы Cloud PBX-Teams.

Далее, созданную политику можно назначать на пользователей.

Категории вызовов — разные группы направлений разным группам пользователей

Если необходимо разграничить пользователей по направлениям — например, одним из них разрешить совершать только звонки на локальные московские номера, вторым разрешить звонки по всей России, и третьим разрешить звонки на любые номера по всему миру — необходимо создать три класса вызовов, три маршрута с соответствующими шаблонами телефонных номеров, и три политики, каждая из которых включает в себя один или несколько требуемых классов вызовов. Для этого необходимо выполнить в PowerShell следующие команды:

Set-CSOnlinePSTNUsage  -Identity Global -Usage @{add='Moscow','Russia','International'}

New-CSOnlineVoiceRoute -Identity ToMoscowRoute -NumberPattern '\+749[5|9]\d{7}" -OnlinePstnGatewayList servicename -OnlinePstnUsage Moscow

New-CSOnlineVoiceRoute -Identity ToRussiaRoute -NumberPattern '\+7[1-68-9]\d{9}' -OnlinePstnGatewayList servicename -OnlinePstnUsage Russia

New-CSOnlineVoiceRoute -Identity ToIntlRoute -NumberPattern '\+[1-9]\d{6}\d+' -OnlinePstnGatewayList servicename -OnlinePstnUsage International

New-CSOnlineVoiceRoutingPolicy "MoscowCallsPolicy" -OnlinePstnUsages "Moscow"

New-CSOnlineVoiceRoutingPolicy "RussiaCallsPolicy" -OnlinePstnUsages "Moscow","Russia"

New-CSOnlineVoiceRoutingPolicy "AllCallsPolicy" -OnlinePstnUsages "Moscow","Russia","International"

В качестве параметра servicename указывается имя шлюза, добавленного командой New-CSOnlinePSTNGateway выше.

Указанные команды создадут три политики вызовов — политика MoscowCallsPolicy разрешит выполнять звонки только на телефонные номера с кодом города +7-495 и +7-499, политика RussiaCallsPolicy разрешит выполнять звонки на любые телефонные номера, начинающиеся с +7, но не на номера Казахстана (формат +77ххххххххх) , политика AllCallsPolicy разрешит совершать вызовы на любые телефонные номера с любыми префиксами.

Далее, созданные политики можно назначать на пользователей.

Выбор телефонной нумерации пользователей

У каждого пользователя, который должен совершать или принимать звонки с телефонными абонентами, должен быть назначен телефонный номер. Допустимо назначение трех разновидностей телефонных номеров:

  • Прямой телефонный номер — вида +74951234567
  • Непрямой полный телефонный номер — вида +74957654321;ext=100, то есть, указанный номер компании, и добавочный номер 100
  • Короткий телефонный номер — вида +1234, то есть, внутренний номер 1234.

Назначенный телефонный номер в начале обязательно должен иметь плюс. Даже если вы его не укажете — в клиенте Teams номер будет отображаться как +500. Для звонка из Teams на другой короткий добавочный указывать в начале + необязательно.

Настройка дополнительных Планов вызова

Вызов внешнего телефонного номера в клиенте производится, набрав соответствующие цифры номера. По умолчанию, работает следующее преобразование — если будет набрано 11 цифр, начинающихся с 8 — номер будет преобразован в +7хххххххххх. Если будет набран международный номер вида 810ххххууууууу — он будет преобразован в +ххххуууууууу — стандартный формат отображения номеров.

При этом, если необходимо чтобы пользователь мог совершать короткий вызов — например, если пользователь находится в Санкт-Петербурге, и набирая 7 цифр, ожидает совершения вызова на местный номер — необходимо создать правила вызова местного телефонного номера, с его кодом — для Петербурга, например, 812.

Далее, по умолчанию, если в клиенте Teams пользователь хочет вызвать другого пользователя — он может найти его по имени, фамилии, или логину. Знать номер его добавочного при этом необязательно. Но если пользователям привычнее, набрав 1234, вызвать другого пользователя по его внутреннему добавочному — необходимо создать специальный план вызова.

Для конфигурации вызова короткого внутреннего номера, необходимо выполнить в PowerShell следующие команды:

$RU1 = New-CSVoiceNormalizationRule -Identity Global/RU1 -Description "Internal" -Pattern '^(\d{4})$' -Translation '+$1' -InMemory

New-CSTenantDialPlan -Identity RUInternal -NormalizationRules $RU1

Данный пример создаст план вызова, содержащий правило для коротких четырехзначных номеров в компании (преобразование 4321 -> +4321), позволяющее, набрав 4321, тут же вызвать соответствующего пользователя Teams. При необходимости, выделенную полужирным цифру нужно изменить на нужную длину внутреннего номера.

Для конфигурации вышеуказанного примера — плана вызова местного номера для пользователей из Санкт-Петербурга, необходимо выполнить следующие команды:

$RU2 = New-CSVoiceNormalizationRule -Identity Global/RUSPB -Description "LocalSPB" -Pattern '^(\d{7})$' -Translation '+7812$1' -InMemory

New-CSTenantDialPlan -Identity RUSPB -NormalizationRules $RU1,$RU2

Данная команда создаст план вызова для пользователей, включающий оба правила — набранный четырехзначный номер будет внутренним вызовом по добавочному, а к набранному семизначному номеру будет присоединен код страны и города +7 812.

Аналогично, для организации с пользователями в разных городах и разными форматами вызова местных номеров, создаются соответствующие планы вызовов.