Microsoft Teams Meeting & Calling API Now Enabled for Incoming PSTN And You Can Call the Landis Contact Center for Microsoft Teams To Test It Out

For those who have been waiting, the Microsoft Teams Meeting & Calling API now is enabled for incoming PSTN. PSTN callers can now call into your applications. (peer to peer and multiparty applications)

To not only say its possible, but also to demonstrate this new Calling API functionality, just dial +1-717-721-5367 to call a queue configured on the Landis Technologies Contact Center for Microsoft Teams. Read more:

If you already have a Microsoft Teams Calling API application, you can enable PSTN Callers to call it by using these instructions:

Jabra Foray into Video: Jabra Panacast USB 4k 180 Degree USB Webcam

Below is my quick video look at the Jabra Panacast at Microsoft Inspire 2019.

A few observations on the panaramic 4k USB webcam by Jabra:

  • 180 Degree panaramic view by stitching together 3 cameras
  • 4K USB video solution
  • Works with Teams because it is a standard USB webcam, but NOT Teams Certified as of this writing
  • The microphone in the device is not Jabra (because of acquisition)
    • Jabra recommend using Jabra speakerphone with it.
  • The panacast will frame the group using built in cpu
    • It does not recognize/frame the active speaker, but the group
  • The device built is metal and excellent feel/fit/finish
  • Because of the built in cpu to stich the cameras together, the case is a heat sink and it needed: the device gets warm, as did the Panacast edition of the usb webcam
  • Jabra apparently aquired the tech from

And here is the official Jabra page:

How to Assign a Telephone Number to a Teams Calling API Bot/Application

In essence, assigning a telephone number to a Teams Calling Application/Bot involves creating a contact in Teams that points to the Application/Bot Id and assigning a phone number to that Teams contact. The Teams contact is called an "Application Instance". There are 4 steps:

1. Create the Application/Bot registration
2. Create an Application Instance
3. Assign a Virtual User License (or Phone System license) to the Application Instance
4. Assign a Phone Number to the Application Instance

1. Create the Application/Bot registration

If you are using an Application/Bot created by another vendor, just ask them what the App ID is. They will know what to give you.

If you have written an Application/Bot using the Microsoft Teams Calling API's then you need to create an application/bot registration if you haven't already. Here is how:

What you will need from the "Azure Bot Service" is the  "Microsoft App Id" from your application. 

This Microsoft App Id will be used in the ApplicationId parameter of the next step.

2. Create an Application Instance

As Teams tenant Administrator, run the below Powershell:

New-CsOnlineApplicationInstance -UserPrincipleName <> -ApplicationId "<app_id>" -Displayname "<bot_display_name>"

UserPrincipleName = The username you want to create for this application instance.
ApplicationId = The app id from step 1
DisplayName = The display name you want to give this contact.

When you run this command successfully it will give output including an ObjectId. This ObjectId will be used in the Sync-CsOnlineApplicationInstance command.

Sync-CsOnlineApplicationInstance -ObjectId <application_instantce_id>

ObjectId = ObjectId output from New-CsOnlineApplicationInstance you just ran.

NOTE: We needed to wait 1 hour before we could do step 3 below and about 10 hours before we could do step 4. To know when you can do step 3, just search for the contact you made in this step in the Microsoft Teams client, when it is available to Teams users, you can do step 3. To know when you can do step 4, call the contact and see if the Application/Bot answers, when it does you can do step 4. If you try step 4 before that you will get an error something like "WARNING: The following Application Instance not present in BVD..."

3. Assign a Virtual User License (or Phone System license) to the Application Instance

You can follow these instructions to assign a Virtual User License to the Resource Account:
Browse to:

Find the useraccount/application instance/resource account we created in step 2.

Click "Manage product licenses" (located in header)

Select Location = United States
Check "Phone System - Virtual User"

Click "Save Changes" button.

Exit using "X" button (upper right)

4. Assign a Phone Number to the Application Instance

To see what Service Numbers are available to assign to this Application Instance go to:

Skype for Business admin center navigate to: Admin center | Teams and Skype | Skype legacy admin | Voice | Phone Numbers

When you find an unassigned service number, copy it or write it down and use it in the PowerShell below. Now run:

Set-CsOnlineVoiceApplicationInstance -Identity <> -TelephoneNumber <phone_number>


You should now be able to call the telephone number and reach your Teams Calling Application/Bot

Problems to Be Aware of When Recommending or Using Microsoft Teams Certified IP Phones

There some items in the Microsoft Teams app supplied by Microsoft to the certified Teams IP Phone vendors to be aware of. (This means the items below affect all IP phone vendors) The solution to many of these issues could be "use a certified headset", but we all realize that there are sometimes areas or users that a physical desk phone is the best solution. This can be especially challenging when it is an executive that is requiring a deskphone. These are items to be aware of. Be armed with knowledge.

FIXED 9/2019 - Bug: Keypad dialing misses digits

If a user walks up to a phone and starts dialing at normal dialing speed without picking up the handset the phone will drop some of the dialed digits.

Workaround: Train users to pickup the handset before dialing or dial very slow.

Missing Feature: No Contact List/Quick Dial List

Most desk phones have the ability to assign a button to quick-dial a buddy or often called phone number but unfortunately these phones do not. Not only do they not have physical buttons to dial regularly dialed contacts, there isn't even the ability to pin contacts on a regularly called contact list. (exacerbating the issue, there is no manageable extension dialing solution.)

Workaround: Search for the contact click the Search and start typing the contact name.

Weak Design: Can't completely dial a number using keypad buttons

The same users that want a traditional desk phone experience will typically want to be able to dial a number using the physical buttons on the phone. Users on desk phones and mobile phones have come to expect a Green/dial button to initiate a dial. With the current Teams IP Phone software the user will be able to dial a number using the physical buttons, but need to complete the phone call by pressing the touch screen soft phone button for "dial" or...

Correction - ...The phones with the latest update will now dial after a few seconds pass. (around 3 seconds)

Weak Design: Elements on the touch screen are too small

The elements on the screen are too small for typical users. Understandably this is worse on the low cost models that have a smaller/vertical screen)

Workaround: Settings | Device Settings | Accessibility | Large Text (you do not need to restart phone)

Missing Feature: PC Phone Control (formerly called Better Together or Better Together over Ethernet)

This feature allows a user to have a phone paired to a PC so the user can use the phone independently or integrated with the PC to, for example, click to dial a phone number.

Workaround: None

Other Items

  • Sometimes when the voicemail play button is pressed it doesn't respond. (Perhaps related to small components on screen? Or is it that voicemail file is still being loaded?)
  • App instability around calling Bots: "Unfortunately Teams has stopped."
  • Park - can't just walk up to a phone and dial digits, they must touch the Park icon on the screen first.
  • Experience when using in conjunction with Call Queues: Muting & Transfer (Update: A newer firmware may provide a fix for this. Verifying.)


Another solution to getting a very traditional handset which does not have many of the problems noted above is using existing Skype for Business certified IP Phones with Microsoft Teams. (although this doesn't seem a very forward looking solution at them moment if an organization needs to purchase a bunch of IP phone right now.)

Microsoft Teams is rapidly evolving and improving and I expect the IP Phone team will work to resolve these issues. I also understand from phone vendors that there may be a v2 spec of the Teams IP Phone may be forthcoming?

If there are any other items you think should be added to this list, please comment.

My Microsoft Inspire 2019 #Microsoft Teams Notes

My Inspire 2019 Observations & Perceptions

Microsoft Teams as an Operating System?

It's no surprise that Microsoft Teams was a focus in the keynotes & at Inspire generally. What I found interesting was to hear Microsoft talk about Teams as an operating system or Windows. As I  remember, Microsoft quotes users in keynote saying something like "Its what I log in in the morning, work all day and log out at night". Another "I think of it as an OS where I get work done" (as I remember). I've heard this before, just not so publicly. Will Microsoft Teams be the next "Windows"? It's conceivable. 

What Does "...Support for Contact Centers..." Announcement Mean?

Microsoft and Microsoft Partners are super eager to be able to move customers entirely to Microsoft Teams. Some of the blockers are voice features that are not yet in Teams like Contact Centers, Call Recording, Attendant Consoles & so on. At Landis Technologies we talk to customers everyday about this need and there is significant pressure related to this need. On one side Microsoft has been slow to get a complete set API's for ISV's (like us) to create native/core products to fill these needs, and on the other side there is intense pressure to get this functionality ASAP. So what Microsoft has announced at Microsoft Inspire: "...Additional new partner integrations include support for contact centers, compliance recording and cloud solution providers." (Source) What does this mean in plain English? Microsoft is going to support 2 levels of contact centers: #1 The basic level is "bolting on" existing SIP contact centers via direct routing and legacy Skype for Business contact centers via federation. A coming Presence API (Source: Five9 engineer at Inspire) will assist SIP contact centers in making the integration less disconnected. #2 Advanced contact centers using the Microsoft Teams Calling API's that give a very "native/core" (like our own Contact Center for Microsoft Teams). This will be the "native" contact center experience that doesn't require the cost & complexity of buy/configuring an SBC & Direct Routing.

Bringing Physical Whiteboards Into Microsoft Teams Meetings

I thought it was interesting to watch the audience response to a demo of the Microsoft Teams coming feature that brings a physical whiteboard into Teams meeting via a webcam while making the presenter "see through" when getting in front of the whiteboard: One of the very enthusiastic applause points in the keynote. This feature and the PowerPoint rehearse were both very well received. So, for what its worth, this features seemed to strike partners quite good.

Vendors are Working to Bring Devices to Microsoft Teams

Jabra is the Jabra Panacast 3 camera 180 degrees very wide angle USB webcam. The rep noted they working on Teams certification, but since it is a standard USB device it work with Teams on my laptop that they nicely let me test. (See my video here) This is Jabra's first foray into video as far as I know.

I was also very impressed with the Poly Studio's ability to do active speaker detection. The Poly Studio is a standard USB, 4K, video bar that does active speaker detection with no additional software on the PC. I was impressed how it detected the active speaker in a huddle room (12 x12 approx.) and did a production-like switch to the active speaker. If the two speakers are far apart it did a cut and if close it did a nice pan. I think this has real promise and look forward to trying it out when the production firmware is released.

Microsoft Announcements

A big announcement at Inspire is around Microsoft Teams having 13Million daily users which surpasses Slack. Source

Microsoft highlights in its Inspire press release that Microsoft Teams now enables contact centers. "...Additional new partner integrations include support for contact centers, compliance recording and cloud solution providers." Source

New Partner Developments

Poly Studio: Source
Jabra Panacast : Source
Landis Technologies Native Microsoft Teams Contact Center Q4 2019 Source
Verba: Working with Microsoft on Teams recording solution Source