Для конфигурации тенанта потребуется наличие на компьютере модуля 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.
Аналогично, для организации с пользователями в разных городах и разными форматами вызова местных номеров, создаются соответствующие планы вызовов.