Microsoft Teams License requirement in AudioCodes Mediant SBC


I recently had a shocking surprise from AudioCodes, right after i upgrade the Firmware of a production Mediant 800 SBC that use for Direct Routing With Teams. I was asked to upgrade the firmware to the latest available (V 7.20A.250.003) to fix a media related issue and ended up having outbound PSTN calling completely broken.

At that time, i didn’t know what exactly happened and i used the SYSLOG Server to capture an outbound calls to see what’s really going on. In the log file, it shows 500 Internal Server error and “User Agent Not Licensed”.

^^( 619193) —- Outgoing SIP Message to 52.114.7.24:5129 from SIPInterface #5 (Teams IF) TLS TO(#825373264) SocketID(4459) —-
^^SIP/2.0 500 Server Internal Error
Via: SIP/2.0/TLS 10.0.0.5:5061;branch=z9hG4bK5421869
From: <sip:sip-du-a-as.pstnhub.microsoft.com:5061>;tag=5e90f471-bde2-4838-bc73-f02e01be778a
To: <sip:admin@PERSBC01.test.com>;tag=1c297288434
Call-ID: 15caad8d-6788-474a-85f8-5c4be183d8d5
CSeq: 1 OPTIONS
Reason: SIP ;cause=500 ;text=”User Agent Is Not Licensed”
Content-Length: 0

I have seen couple of Mediant VE deployments losing the license before upon restart. I though it could be the same here. But, the license was intact and exactly the same as before.

I ended up opening a support ticket with urgent priority. It end up having to apply a license key to enable Direct Routing with Teams on SBC. Such a requirement was never there and no one knew such a license exist. It happens to be that AudioCodes have implemented this license requirement and it was not communicated widely in to the public. capture

In above snapshot, i have underlined the new license addition for Teams.

If you are planning to do a firmware upgrade on any on AudioCodes SBCs that has Direct Routing configured, or planing to have Direct Routing configured in SBC,then request this license first. It will save you time in troubleshooting. Further details regarding this license can be found in AudioCodes Product Notice #0345

Call Park and Retrieve in Microsoft Teams


Call Park feature is finally announced for Microsoft Teams and it now has (almost) all the Skype for Business Enterprise Voice related features in it. It’s still missing Call Pickup feature. If you are already families with Microsoft Lync and Skype for Business platforms, you already know what “Call Park” means. Also, it’s one of most commonly available feature in traditional TDM\IP PBX platforms.

Call Pickup is available to use in all Teams clients across platform. But, still not available in Teams based IP phones. Also, this feature only works in the user account is set to be on “Teams Only” interoperability mode. It will not work in “Islands” mode.

To enable Call Park in Teams, couple of things need to be done;

  • Create a new Teams Call Park Policy.
  • Assign the policy to users.

Let’s start with creating a Teams Call Park policy. Log in to Skype for Business Online Powershell and run the command;

New-CsTeamsCallParkPolicy -Identity CallParkPolicy -AllowPark $True

If you want to enable this feature across all users, you could enable parking on Global Policy. To do so, run the command;

Set-CsTeamsCallParkPolicy -Identity Global -AllowPark $True

By default, Parking is turned off in the policy.

If you have decided to use the Global Policy, then you don’t need to assign in to any users. But, if you create a new policy, then it need to be assign to the users who need this feature. Run the command below to assign the policy to a user;

Grant-CsTeamsCallParkPolicy -PolicyName CallParkPolicy -Identity  <UPN>

Configuration is done. Now, we need to test the feature. When you set the policy to the user and make an inbound call, you should see the “Call Park” feature appears in call control menu.

Press Call Park and  notice that the call getting parked and it shows the retrieve code, that can be used to pick up the call from elsewhere. 

Unlike in Lync or Skype for Business, Teams has a dedicated button\tab that need to be used for pickup function. It’s located in “Calls” tab, next to “Groups” and Speed Dial.

Press the “Unpark” button and then specify the park code that was provided by the time of parking the call. 

Press “Pick Up” to retrieve the parked call.

If the call was not retrieved for 5 Minutes, then the call will be returned to the user who parked the call in the first place.

That’s all it needs to configure Call Parking in Teams. Give it a go and post on comments if you have any issues.