Forum Discussion

Satyendra Sharma's avatar
Satyendra Sharma
Brass Contributor
Jan 13, 2022

Microsoft Teams SIP Device Management

For the SIP compatible devices to register with Microsoft Teams we have to update the provisioning server URL's to one of the following based on the location.

The challenge with this is that now the SIP devices are going directly to Microsoft's SIP gateway bypassing any other provisioning server you maybe using before. 

 

I have a situation with a customer who has 2500 VVX series phones and now we aren't able to perform any management on the phones via the provisioning server i.e. (profile changes, line configuration, speed dial etc.).  And there is almost 0 management capability in the Teams admin center for SIP devices.

 

Is anyone aware of a way to perform granular level device management on SIP compatible devices with Microsoft Teams?

  • Satyendra Sharma Hi!

     

    I know that you ask this question a while ago but I have a way to do it... sort of...

     

    After doing the Microsoft configuration, I activate the REST API and send custom config with a powershell script directly to the phone.

     

    Here a example:

     

    $ip = "10.0.1.254"
    $secret = "12345"
    $user = "Polycom"
    
    $pass = ConvertTo-SecureString -String $secret -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential($user,$pass)
    
    add-type @"
      using System.Net;
      using System.Security.Cryptography.X509Certificates;
      public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
          ServicePoint srvPoint, X509Certificate certificate,
          WebRequest request, int certificateProblem) {
          return true;
        }
      }
    "@
    [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
    
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3, [Net.SecurityProtocolType]::Tls, [Net.SecurityProtocolType]::Tls11, [Net.SecurityProtocolType]::Tls12
    
    $data = @{
      "device.set" = "1";
      "lcl.ml.lang.clock.7.format" ="DD/MM/YYYY";
      "lcl.ml.lang.clock.7.24HourClock" = "1";
      "tcpIpApp.sntp.gmtOffset" = "-18000";
      "tcpIpApp.sntp.gmtOffsetcityID" = "16"
    } | convertto-json
    
    $data = "{ `"data`": $data }"
    
    Invoke-RestMethod -Uri "https://$ip/api/v1/mgmt/config/set" -Method POST -Credential $cred -Body $data -ContentType "application/json" | fl

    First, the API user is Polycom, not "admin" but it use the admin password (yeah, logic!).

     

    The TLS part is for trusting the SSL cert (self-sign).

     

    After that, you make your config in JSON (I choose to use a powershell array and convert it to JSON) and send it to the phone.

     

    You can find the REST API reference for 6.1.0 here: Polycom UC Software 6.1.0 Rest API Reference Manual

     

    Hope that help and if you had find another way, please share with us!

     

     

     

Resources