Earlier this week December 6th 2021 the long awaited SIP gateway for Teams made Generally Available!, it has been in private preview for some time and now its ready for prime time. Blog post here
Ive raided my garage for old handsets i had once upon a time used with Skype for Business and i found 3 handsets, a little dusty as you will see but they should still power on (i think)
- Poly VVX400
- Yealink T48G
- AudioCodes 440HD
Lets see if we can connect them to Teams and use them again! Perhaps i can dust them off and put them to some use after all.
First off What’s is SIP gateway? Do i really need it and what handsets work?
What is SIP Gateway ?
SIP Gateway enables core Teams calling functionality on compatible SIP phone models from Cisco, Poly, Yealink and AudioCodes. They need to be compatible phones as well. Pic from blog post below.
What handsets can i use ?
There is full list of compatible handsets here with minimum and approved software versions.
Making sure you have a compatible handsets and have the minimum software version is important, as otherwise it wont work so don’t waste your time.
For Cisco you need the MPP firmware so there could be additional costs in getting this from cisco so check this before.
What can i do ?
Using a compatible phone listed above it will provide core Teams calling functionality including
- Inbound and outbound calls
- Call transfer
- Meeting dial-in and dial-out
- Device-based “do not disturb”
- Voicemail with message waiting indicator
Using a compatible phone using SIP gateway wont provide you with the feature rich handset functionality of a Teams Phone but allow you retain existing investments in handsets and bring those to Teams with core calling functionality. Perhaps you have 10k phones you don’t want to immediately replace from your day 1 move to Teams and now using existing compatible handsets will allow you replace them with Teams Phone in a phased approach or take time to assess the best Teams certified devices you need.
The phone do need to be compatible and on the minimum software version to be used with SIP Gateway so check this first.
For a full list of benefits check this out on docs page https://docs.microsoft.com/en-us/microsoftteams/sip-gateway-plan#benefits-of-sip-gateway
From the benefits listed a couple of notes to be aware of.
For meetings it notes
NOTE: Adding a Teams meeting participant via “request to join” currently won’t alert a SIP device.
and Call forwarding
To make local call forwarding work, the admin must set the
AllowCallRedirect attribute in
Call Queue Support
I saw on Twitter a note from @heig that mentions SIP Phones are not able to take calls if a Call Queue has conference mode enabled. If conference mode is disabled then SIP phone rings.
Call Queue support is not specifically called out or listed under the core functionality.
I’ve tested a Call Queue without Conference mode and the SIP phones ring but as CQ support isn’t specifically listed there is a question around supportability for SIP phones in CQs. Ill add some feedback to the SIP Gateway docs and see if we can get this updated so its more clearer.
How much does it cost ?
There is no additional cost for organizations to use SIP Gateway, and any users meeting the following requirements can use SIP Gateway
- Users must be licensed for Teams Phone (via Office 365 E5, Microsoft 365 E5 or a standalone license)
- PSTN enablement (i.e., phone number assigned) via a Microsoft Teams Calling Plan, Direct Routing, or Operator Connect
- Common area devices require a Common Area Phone license
For your wanting to use Cisco please check if there are any firmware costs from Cisco first. I tested with Yealink, Poly and AudioCodes and all firmware upgrades were free but this could be different for Cisco.
Handset prep, Configuration of SIP Gateway and signing in
I’ve found some old phones i once used with Skype for Business so lets see if we can get them working. I have a Poly VVX400, Yealink T48G and an AudioCodes 440HD
There a number of steps required for configuration including handset, network and tenant configuration. Different handsets require different configuration and firmware but overall its basically the same steps.
Here is the list below from Docs and ill dive into these in my walkthrough but here is a list.
Before you can configure SIP Gateway, do the following:
- Reset SIP devices to factory default settings.
- Open your firewall to Microsoft 365 and Teams.
- Make sure the SIP devices are not behind a proxy.
- Open the UDP port. Open UDP port in the range 49152 to 53247.
- Open the TCP port. Open TCP port 5061 for IP ranges 18.104.22.168/14 to 22.214.171.124/14.
- Open the following https endpoints (IP addresses and URLs) – IPs listed here
Few things to note as well
- SIP Gateway only supports IPv4
- SIP Gateway only supports static—also called registered—emergency addresses.
- User details and policies will be fetched to SIP devices when users sign in. Any policy changes thereafter for signed-in users will be synced to the device within one hour.
- SIP phones depend on Call Redirect, so the admin must set the
Lets go !
My walkthrough with a Poly VVX400, Yealink T48G and AudioCodes 440HD
1, Check Handsets and software versions first
I have a Poly VVX400, AudioCodes 440HD and a Yealink T48G so lets go check the compatible phone list here
My VVX 400 is a YES
|VVX400||Minimum firmware version|
|Approved firmware version|
and my AudioCodes440HD
|Minimum firmware version|
|Approved firmware version|
Yealink as Well
|T48G||Minimum firmware version|
|Approved firmware version|
Next i need to check i meet the minimum firmware versions as they have been offline for a long time so lets take a look.
1.1 Firmware version updates needed on all
Another factor is also firmware version and as my VVX has been in the garage for a while mine is below the minimum version as its 126.96.36.19925 so i need to do an update first to my VVX400.
Lets go update.
I will use the Polycom hosted server to check for updates, click Check for updates. (Nice touch on the Poly is i didnt need to go searching for the firmware files)
Listen out for the poly famous warble noise 🙂 and watch the phone update.
When the phone is updated check again to make sure were at least the minimum version we can proceed.
We are now 188.8.131.5280 so we can move forward with the VVX400!
Again i booted up my yealink and as i suspected its very out of date i went on the phone and found the local ip address and logged in via browser.
Headed over to settings and firmware is out of date
I headed over to Yealink Support and under end of life products i find the T48G two versions as one was for SfB. The SfB didnt look like the minimum version of 83 so i went for the one below. When i check the minimum version here it just states 83 which is odd. so im going to try the version below. Firmware file link https://support.yealink.com/en/portal/docList?archiveType=software&productCode=8351e0e8ff2931b3
This firmware did work as well.
and the phone is showing Firware upgrade
We are updated
Lets factory refresh as well
Again my audiocodes was out of date, no surprise there.
I found the ip address of the phone and signed in
For firmware again it was a look around to find this and found it listed under Firmware > IP Phones > 440HD > Microsoft > Teams. link below and is listed on the compatible devices page as well.
Back over to the phone for update
All being well the firmware will update !
When if back it should display time and date
Next ill do a factory reset.
If you have a lot of handsets you will need to make sure they are all updated first if required, this could be quite a job but best to plan for this.
Handsets all updated so lets move on
2. Check the SIP Gateway configuration requirements
Now my handsets are all meeting the minimum firmware and are compatible time to configure SIP Gateway.
There are a number of config steps listed here i need to check. I have listed these above as well.
2.1 Reset SIP devices to factory default settings.
First thing ill do is boot up the device and reset it to default. Ill start with the VVX400
On the phone i went to Settings > Advanced > Entered passcode > Administration Settings > Reset to defaults > Reset to factory > YES
VVX reboots, when its rebooted grab the IP address as you will need this later.
I already did this above
I already did this above
2.2 Open your firewall to Microsoft 365 and Teams
Ive confirmed firewall post are open
2.3 Make sure the SIP devices are not behind a proxy.
SIP devices are not behind a proxy
2.4 Open the UDP port.
UDP ports are open in the range 49152 to 53247.
2.5 Open the TCP port.
TCP ports open 5061 for IP ranges 184.108.40.206/14 to 220.127.116.11/14.
2.6 Open the following https endpoints (IP addresses and URLs)
All address and IPs are open.
3. Verify that SIP Gateway is available for your organization
Ok so head over to Teams Admin center > Teams devices > SIP devices
If this is visible then SIP gateway service is enabled for your organization. Happy days
4. Enable SIP Gateway for the users in your organization
Even though my tenant is enabled i need to enable this for my users or the user thats require it.
Again in Teams Admin Center > Voice > Calling Policies
Select your policy im going to enable this on the Global policy so this will apply to all users. If you are testing you can create a custom user policy.
Turn On “SIP devices can be used for calls” and click Save
5. Set the SIP Gateway provisioning server URL – This is needed so the handset connect to SIP Gateway, download config and firmware.
This can be done via DHCP or manual, im going to do this manually for my three phones.
Please note configuring this is different for each handset as they are different vendors.
For DHCP details go here. If you have alot of phone you will likely need to use DHCP.
Please note setting the provisioning server url is different for each phone type as shown below. Note the different in option numbers.
If you want to set a SIP devices UI language then please check here by default English is used but Spanish, Japanese, German, French and Portuguese are available.
First i need the IP Address of the phone to get to the web interfaces of the phones.
I went to settings > Status > Network > TCP/IP parameters
Open a browser and go to the IP address for example https://192.168.0.235
entered in admin password for vvx and submit
Once signed into the phone i see
Now im looking for provisioning server url so lets look at the setings
Now i have to enter a url from one of the dhcp options from here
Changed server type to HTTP
Added Server address as
Change Boot Server to Static
Now i see a Teams Logo!
Phone shows restarting again and again
Now updater is updating
and restarting again
Once is finished you will see a Teams logo on the phone and sign in.
Again i found the IP address of the phone and signed into the web interface. In Settings > Auto provision i found Server URL
At the bottom i Clicked auto provision now
Firmware updating is displayed on the phone.
After its compete i have a Teams logo on the phone 🙂
Again i got the ip address of the phone and signed into the web interface.
I went to management > set provisioning server to static url and enter the provisioning server url in configuration url , click submit then clicked check now.
Please note i only entered this for the Configuration url as shown below.
Phone restarts, say checking for configuration, updating configuration
Phone is ready and shows sign in.
6.Configure conditional access
Im not using Conditional Access on this demo tenant so ill skip this but here is the info to check if you are. if your organization uses Conditional Access for devices in the corporate network, it should exclude the following IP addresses listed at the url below.
7. Signing in
Next you need to sign in user using a personal account or a Common Area Phone account.
If your using your personal account then on the phone click sign in and this will prompt you to visit the Microsoft device sign in page to sign into the phone using your personal credentials.
If your want to sign in with Common Area Account you can remotely provision the phone in the Teams Admin Centre and use remote sign if the phone is enrolled. Check down below.
Lets look at personal sign in first
On the phone click Sign in
This display the device login URL and a code
Go to the URL enter the code and it will prompt you to sign in with your personal user credentials.
Click continue and the after a moment the VVX will restart, and you will get the warble noise and sign in as the user.
Once signed in the number will display in the top left and keys are programmed at the bottom.
Phone is displayed in Teams Admin Centre
Can click for more details
I clicked sign in on the handset and
went to https://microsoft.com/devicelogin and entered the code displayed on the handset and signed in.
Once signed in the Yealink didn’t restart but i saw the username appear top left and it was signing in. After it signed in i had the name and number displayed on the top of the display.
Now my phone is displayed in Teams Admin centre > Devices > SIP devices
Same experience i need to go to device login and sign in with a personal account
Either enter account or choose
Took a good few seconds and the phone restarts and shows updating configuration again.
Now the phone shows the user signed in in the top left corner with name and number scrolling, there is also programmed buttons on the bottom of the screen.
The Phone is now displayed in the Teams Admin centre as well under SIP devices
I can click on the phone and view my details and you can restart the phone remotely.
Common Area Phones Provisioning
Now i read the note above and seems i need to enroll the device if the device is not already displayed in sip gateway under devices, i will do this one at time for this device.
If you have already used the device as i had when i signed in with a personal account then the device was already enrolled and displayed in SIP gateway in my tenant.
Remote Sign in for Common Area Phones – Already enrolled into SIP Gateway.
This phone is already enrolled in SIP gateway as i had signed in with a personal account before so this was already displayed.
With phone displayed already in SIP devices but not signed in as a user i found we can remote sign in as well.
Again i went to the device log in page, entered the code and this time signed in with a common area phone account. I enter the common area username and password.
The phone restarts and signs in
Enrolling your device then signing with your Common Area Phone account remotely
Back to Teams Admin center > Teams Devices > SIP Devices
Under Actions > Provision devices
Click Add MAC address manually
Add MAC address and location and click apply
Under Waiting on activation click the device and then Generate verification code
Now you will have a verification code
It mention to dial an enrollment feature code i have no idea what this is for a vvx400 but i followed the doc which was
On the SIP device, dial the enrollment feature code followed by the verification code. For example, if the enrollment feature code is *55* and the verification code is 123456, dial *55*123456 to enroll the device.
So i dialled *55*772424 and it dialled out and beeped
I had no idea if it works but i went to next step and the device was no under Waiting for sign in
Clicked sign out
I sign in with my common area account
After signing in the phone restart and signed in.
Restart a Phone from Teams Admin Center
This time i thought id restart the phone remotely. Click Restart buttons and you have the option to restart now or pick a preferred time and date which is nice
I chose to restart now
If you look at history then
and now my phone is rebooting. Thats is awesome!
If i look at health status i can see phone is offline
After the reboot its back
Now i have three user devices set up
Remote Sign out
I can restart here and i also found you can remotely sign a user out under actions > sign out
There is not confirmation required for this so be careful
This is tracked in the history tab though
I signed out and my phone is now updating configuration
when my phone is signed out it shows like this under sip devices
Ok so that was my walkthrough connecting three different compatible phones to SIP gateway.