Hi all,
I known that this one has been on all of the bloggers concerning Enterprise Voice and hybrids, but.
There is some findings that I discovered during my migrations and I want to point them out.
First, when You are doing a PSTN gateway to Office 365 (Azure) side, You need all three Sip-Trunk names inside SBC that You are using (Audiocodes only supports three, but that is enough)
sip.pstnhub.microsoft.com
sip2.pstnhub.microsoft.com
sip3.pstnhub.microsoft.com
And all the three are under this Cname.
sip-all.pstnhub.microsoft.com
Second, MediaBypass is an option, but keep in mind that If set to $True it doesn’t mean all the media will stay inside Your network. It’s a cloud and media will flow accordingly.
https://docs.microsoft.com/en-us/microsoftteams/direct-routing-plan-media-bypass
Third, When Teams Enterprise Voice (Exactly the same stuff with Skype Online) is enabled and You have problems with Calling pad in Mobile app, Web or Desktop, Don’t panic and set all the stuff to from $false to $true and vice versa. It just takes time.
When You have License applied, Enterprise Voice set to $true, calling policy in-place for the users and a phone number populated at OnpremLineUri (from where it will be synced to LineUri attribute under Teams) all will work, it just takes time depending on backup resfresh within Microsoft hierarchy.
Fourth, When You have Onprem environment, You have to clear almost all MSRCT* Attributes from the users. DON’T USE DISABLE-CSUSER! If You do, it will leave msRTCSIP-DeploymentLocator in place and stuff isn’t working.
Just don’t remove msRTCSIP-Line if You are migrating from Onprem Hybrid to Teams, if You do,then manual populating of OnpremLineUri is needed.
When You need to populate OnpremLineUri inside Azure, You have to clear msRTCSIP-Line attribute, otherwise it will remain read-only.
Fifth, Always, always add SipAddress to ProxyAddresses attribute when Authorative AD is Onpremises. Just like with EmailAddresses, when using Onpremise AD as Authorative You will be populating them and they will be Synced. Remember that User can only have one SipAddress, not multiple ones.
Sixth, Always populate Telephone number in International format to Users Telephone number, then You can use it with bulk scripting.
And here is the Scripts to Add SipAddress to ProxyAddresses and other one clearing MSRCT*-attributes from users, Excluding msRTCSIP-Line.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$csv=import-csv "c:\csv\Teams-Users.csv" foreach($user in $csv){ $userUpn=$user.SipAddress.Replace("sip:","") #Do not add proxyAddress if it is present already $proxies=Get-ADUser -Filter "UserPrincipalName -eq '$userupn'" -properties * | Select-Object @{Name=“proxyAddresses”;Expression={$_.proxyAddresses}} if(($null -eq $proxies) -or ($proxies.proxyAddresses -join ' ' -notmatch "sip:")) #empty list of ProxyAddresses { write-host "Adding sip" Get-ADUser -Filter "UserPrincipalName -eq '$userupn'" | Set-ADUser -Add @{"proxyAddresses"=$user.SipAddress} } else { write-host "No need to Add sip" } } |
1 2 3 4 5 6 7 8 9 |
$csv=import-csv "c:\csv\Teams-Users.csv" foreach($user in $csv){ $userUpn=$user.SipAddress.Replace("sip:","") #Clear all users msRTCSIP-* Attributes write-host "Clearing msRTCSIP-* Attributes for $userUpn" Get-ADUser -Filter "UserPrincipalName -eq '$userupn'" | Set-ADUser -clear msRTCSIP-ApplicationOptions,msRTCSIP-DeploymentLocator,msRTCSIP-OwnerUrn,msRTCSIP-PrimaryUserAddress,msRTCSIP-UserEnabled,msRTCSIP-OptionFlags,msRTCSIP-FederationEnabled,msRTCSIP-InternetAccessEnabled,msRTCSIP-PrimaryHomeServer,msRTCSIP-UserPolicies } |