using namespace System.Net # Input bindings are passed in via param block. param($Request, $TriggerMetadata) # Write to the Azure Functions log stream. Write-Host "PowerShell HTTP trigger function processed a request." # Interact with query parameters or the body of the request. $adminName = $Request.Query.adminName if (-not $adminName) { $adminName = $Request.Body.adminName } $adminPassword = $Request.Query.adminPassword if (-not $adminPassword) { $adminPassword = $Request.Body.adminPassword } $upn = $Request.Query.upn if (-not $upn) { $upn = $Request.Body.upn } Import-Module MicrosoftTeams Write-Host "Connecting to teams" $securePassword = ConvertTo-SecureString -string $adminPassword -AsPlainText -force $teamsCredential = New-Object System.Management.Automation.PSCredential ($adminName, $securePassword) Connect-MicrosoftTeams -Credential $teamsCredential Write-Host "Getting user info" $user = Get-CSOnlineUser -Identity "$upn" -ErrorAction SilentlyContinue | Select OnlineVoiceRoutingPolicy, OnPremLineUri, LineUri, OnlineVoicemailPolicy,DisplayName, UserPrincipalName, EnterpriseVoiceEnabled,UsageLocation } if ($user){ $onlineVoiceUser = $null if (!$first) { $body = $body + ", " } $body =$body + "{`"UPN`": `"" + $user.UserPrincipalName +"`", " $body = $body + "`"VoiceRoutingPolicy`": `"" + $user.OnlineVoiceRoutingPolicy +"`", " if (![string]::IsNullOrEmpty($user.OnPremLineUri)) { $body = $body + "`"LineUri`": `"" + $user.OnPremLineUri +"`", " } else { if (![string]::IsNullOrEmpty( $user.LineUri)) { $body = $body + "`"LineUri`": `"" + $user.LineUri +"`", " } } $body = $body + "`"VoicemailPolicy`": `"" + $user.OnlineVoicemailPolicy +"`", " $body = $body + "`"UsageLocation`": `"" + $user.UsageLocation +"`", " $body = $body + "`"userDisplayName`": `"" + $user.DisplayName +"`"}" $first = $false } Write-Host "returning body = $body" # Associate values to output bindings by calling 'Push-OutputBinding'. Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body })