Purchasing a Logitech web cam in 2020- Most out there are old 2016 models

During the 2020 safer at home order, a lot of people have been purchasing web cams and recording hardware, leaving many suppliers out of stock or back ordered until July 2020. I have been tracking availability and noticed Best Buy has been getting shipments in recently, and back-ordered products ship in a week.

After researching what is listed on websites, I noticed the Web cams model number meant nothing as far as the year that model was released. Most were from 2016/2017 era, and only was was from 2020.

Product name Logitech C920S Pro HD Webcam Logitech Pro webcam black C922 Pro Stream Brio 4k C930e C920 C925-e C920 HD
Notes C920 w silver face and wide view angle C922 Pro Stream, comes with tripod and X does not Brio 4k C930e C920 C925-e
First Available Year 31-Jan-20 2016 2016 2017 2014 2016 2016 2012
Normal Price $70 at best buy $130 best buy $99 best buy $200
Link https://www.bestbuy.com/site/logitech-c920s-hd-webcam/6321794.p?skuId=6321794 https://www.bestbuy.com/site/logitech-pro-webcam-black/4503702.p?skuId=4503702
MP 2.07 megapixels 15.0 megapixels 2 megapixels
Res 1920 x 1080 1080 1920 x 1080 3840 x 2160
Model # 960-001257 960-001070 960-001087 960-001178 960-000971 960-000770 960-001075 960-000764

At that point, unless I wanted the $70 best buy cam from 2020, I thought it was best to look up Logitech 2020 latest reviews.

https://www.techradar.com/news/computing-components/peripherals/what-webcam-5-reviewed-and-rated-1027972

I finally found the Logitech Steamcam from 2020 for $169 and is in stock on the Logitech website:

https://www.logitech.com/en-us/product/streamcam?crid=34#section-product-hero

Hoping this will make my Microsoft Teams streaming a bit better.

SharePoint Online- Bad service principal breaks SharePoint Admin API Access “Global Service Principal ID Error: Error: {}” Resolved

Could not retrieve Global Service Principal ID Error

We recently ran into an issue when creating SPFX Azure Active Directory App registrations using an O-Auth Implicit flow that our SharePoint Admin Center API Access page then gave an error:

Could not retrieve Global Service Principal ID Error: Error: {}
Could not retrieve Global Service Principal ID Error: Error: {}
Could not retrieve Global Service Principal ID Error: Error: {}

And when using O365 CLI, I was getting the same error trying to add a new serviceprincipal or list them:

o365$ spo serviceprincipal grant list
Error: Another object with the same value for property identifierUris already exists.

Error: Another object with the same value for property identifierUris already exists.
Error: Another object with the same value for property identifierUris already exists.

So now I am completely locked out of interacting with SharePoint Online to Azure AD Applications until this is fixed.

I opened a case with SharePoint Online MS Support and they said its on the Azure side but they would look into it for me.

After a few days they got back to me and said it was due to a bad Azure AD App Registration tagged under SharePoint that is causing the error. GREAT! I now have a place to start.

  1. Go into Azure Active Directory and go to App Registrations and search for “SharePoint”. Your “broken app” is somewhere in one of these two registrations.

    App registrations for SharePoint
    App registrations for SharePoint
  2. Big thanks to this article where it says how to find the bad one, https://github.com/SharePoint/sp-dev-docs/issues/3891#issuecomment-494868401 
    In the API Access admin page of SP admin https://yourcompany-admin.sharepoint.com/_layouts/15/online/AdminHome.aspx#/webApiPermissionManagement, go to view source and search for spfx3rdPartyServicePrincipalId. You will find a GUID, THIS IS THE GOOD ONE. The other application is bad.
    Good one (found in view source of Admin page- “spfx3rdPartyServicePrincipalId”:”ebxxxx-xxxxx-xxxxxxx899d1
  3. No go back into app registrations and map out what GUIDs belong where
    Good ID: “SharePoint Online Client Extensibility Web Application Principal
  4. That means the other one is bad! “SharePoint Online Client Extensibility Web Application Principal Helper
    According to the above article, deleting this one fixes it. AND IT DID!
    Object ID 218 is the good one, and the top one 421 is BAD!
  5. Sure enough, after removing the bad application I can now access the API Access page!

So after removing every single bad VM, app registration or enterprise app, it all comes down to removing the bad “SharePoint Online Client Extensibility Web Application Principal Helper” app registration above. Now everything works as expected and I can approve my app requests!

Big lesson learned!

Now I can do a Enable-SPOTenantServicePrincipal without errors:

Hope this helps and leave any comments below on your experience with this error.

Microsoft Teams cloud phone system and Skype for Business deployment

Our VoIP solution here at the office was previously Ooma. They are great, and rarely did we have issues with their service. However, we wanted to consolidate our VoIP phonelines with Skype for Business/Microsoft Teams. So here is the process of how we ported the numbers.

I believe this article is unique because I do not come from a VoIP telephony background, but rather an O365/SharePoint background. I love PowerShell but try to avoid it deep into very old Legacy and Skype commands where Teams has not developed a UI around it yet. I could not find an article or articles quite like what I am sharing. If that is because I am doing it wrong, please post some comments on any improvements or new-released features that may make everyone lives easier.

Changing our Phone system to Skype steps:

  1. Purchase O365 phone/voice licenses (This is important)
  2. Purchase any “hard phones” for your office (I picked a Skype for Business compatible Polycom phone because of previous issues with the new Microsoft Teams YeaLink phones, read more about this below)
  3. Put in phone number porting request in Skype for Business Legacy Portal (plan a date a week out or they will bump you a week out randomly)
  4. Setup your infrastructure (whatever that means)
  5. Conference Room Physical Phone configuration
  6. The big day- your numbers are being transferred
  7. End results
  8. Future steps/improvements

Purchase O365 phone/voice licenses (This step is important)

Its not easy to purchase licenses. Why? Because you need to know EXACTLY what to search for, AND choose “Addon” for the filter on the Purchase Services page.

Auto Attendant (for your main line)- Free

Add-on license when you search for “Phone System–Virtual User” per this article: https://docs.microsoft.com/en-us/microsoftteams/teams-add-on-licensing/virtual-user

  1. The UI for getting to these is terrible. Its like they hide a ton of products that are not E3 or E5, but hey, that’s what we have to work with….
  2. You have to perform these 3 steps. Go to O365 Admin portal > Billing > Purchase Services, then type this in search “Phone System–Virtual User” and hit enter. Then this is the crazy UI piece, click “Show all 1” itself (don’t expand it) to get to way more licenses…
  3. One more step to click “Add-ons” below under Other categories (yea… I know this is nuts…)
  4. And FINALLY you can find the EXACT string you searched for (terrible search results display on the last 2 pages. I am scarred this is the “new” admin center). Click on the  Phone System Virtual User header text to be taken to a cart checkout. Since its free I added 4 for my Main line numbers

User calling plans/licenses

Do they need to dial out to other numbers from Skype for Business?

If so, they will need a Domestic Calling Plan license

All users with a phone number in the Cloud will require a “Common Area Phone” license on top of their Office 365 license (E3, F1, Office Essentials, etc.)

If users want a Skype for Business conference bridge dial in number to be added to Skype invites, they can purchase a Audio Conferencing license.

Here is how we licensed our users:

  • Remote employees or contractors without a need for a phone line:Free
    • Office 365 E3 plan- $20/user/mo or free with MPN
    • They can use Teams and Skype for Business clients just fine to collaborate
  • Onsite/remote Employees that require a phone line$20/user/mo
    • Office 365 E3 $20/mo (consider E5 at $35/mo if you don’t have free E3’s like we do as a MS Partner. This might save you $10-$20/mo)
    • Common Area Phone $8/user/mo
    • Domestic Calling Plan $12/user/mo (International is $20)
  • Employees who schedule conference calls regularly$24/user/mo
  • Conference Room Phone $20/mo
    • Office 365 E3 (I could have used a cheaper license but I wanted an Exchange calendar for an interim Conference Room scheduling solution)
    • Common Area Phone $8/user/mo
    • Domestic Calling Plan $12/user/mo (International is $20)

The costs add up quick but considering Ooma costs $30/user/mo O365 can save about $10/user/mo and have one less separate system to manage.

Purchase any “hard phones” for your office

I picked a Skype for Business compatible Polycom phone because of previous issues with the new Microsoft Teams YeaLink phones.

$129 on Amazon https://www.amazon.com/dp/B01IF4VH6I/ref=cm_sw_em_r_mt_dp_U_mm1xDb4MTXRY9

Hooked it up with a single cat6 cable over PoE (power over ethernet) which I placed on the other side of this cable $20. Less wires and cords always creates a clean experience. https://www.amazon.com/gp/product/B001PS9E5I/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Put in phone number porting request in Skype for Business Legacy Portal

Tip: plan a date a week out or they will bump you a week out randomly by the O365 number porting team

  1. Create a schedule of the numbers you want to transfer over if you are not doing them all at once.
  2. Navigate to the O365 Admin Portal > Teams Admin > Skype for Business Legacy Admin Portal> Voice > Port Orders and create a new Port Order https://webdir2a.online.lync.com/LSCP/PortOrderNew/NewPortOrderWizard
    1. Specify your old VoIP provider account number (probably the billing phone number). All this info should match the old VoIP provider info:
    2. Create a helpful name for 1 or more numbers that are being ported. Or, you can just port over everything at once and not test 1 number.
    3. Pick a date at least 1 week out. If you pick a sooner date they will just reschedule.
    4. Just agree with the billing persons name.
    5. Done!
  3. Now wait until the numbers are ported over.

One final tip, assign your licenses to users then assign the numbers BEFORE the port finishes (give the new request a day to get scheduled then do it). The Skype team adds your numbers in early, so you can set up everything before the transfer, then Boom once the transfer happens the users number will still work without you having to jump into the Admin Portal and assign the number.

Setup your infrastructure

Assigning phone numbers to users

The easiest way I have been able to do this is through the classic Skype For Business Admin Portal. You might be able to do this from Teams Admin center but I think I was just missing user licenses then.

  1. Once a user has a license assigned (if they dont they do NOT show up here, even if you filter to “All”. Fix the licenses first if the user shows up funky here, or as on-premises PSTN.
  2. Assign the user a number an an Emergency Location. Emergency locations are super important for your business VoIP. If someone calls 911 Emergency, they do not know your company location, suite number, name, etc. This saves first responders valuable time and could save your our your co-workers life. Safety first admins. Save a life! Its just 1 tab over.
  3. Then assign the number to the user:

Thats it! Give it a few minutes and the user can receive calls.

Adding Audio Conferencing to users

This one is super easy, just buy and assign the license to an existing user. All of their existing Skype for Business meetings will auto-update with a dial in magically after a restart or a day.

This is managed in the Classic Skype Admin Center

Auto Attendant- Main line greeting and directory

This is the “you have reached _____ business name here ____ . Press 0 for reception or 1 for blah, etc.”

You can upload your own audio recording or translate the text to a robot voice.

First, add a “resource account” (basically a name/number association for caller ID and license features) that we can associate to our greeting in the next step.

Resource Account

  1. Go to Teams Admin > Org wide settings > Resource Accounts
    1. Create a new Auto Attendant account and give it a good username. This is what shows up when a call is transferred to your Skype users. This ugly one was auto generated because I created it from the Auto Attendant screen instead of here. Lesson learned. I an now naming the username SileoMainLine234 or whatever my numbers are.
    2. Repeat creating these 1 per number you have for the Auto Attendant (not user phone numbers)
    3. Assign a license back in the Office 365 Admin > users section of the top level portal. I assigned my Resource Accounts a Phone System – Virtual User free license:
    4. More information can be found here on the process: Assigning a number to a Resource Account: https://docs.microsoft.com/en-us/microsoftteams/manage-resource-accounts#create-a-resource-account-in-microsoft-teams-admin-center (This one was hard to find)

Back to creating a new Auto Attendant

  1. Go to Teams Admin > Voice > Auto Attendants
  2. Add a new Auto Attendant
  3. Select your resource accounts to assign to the greeting
  4. For security, you might want to lock down directory access only to a certain group. I have not seen any guidance on this, but I don’t want someone being able to guess ALL of my users.

Conference Room Physical Phone configuration

Here I go through how to configure the Polycom VVX411 phone for SKype for Business as a “user account” but will be in a shared conference room. This is where my post becomes non-traditional. I would have preferred to use a YeaLink conference speaker phone but it just was not ready for prime time and required a ton of PowerShell to configure. Simple for now until Microsoft Team Rooms get a UI for configuration.

The big day- your numbers are being transferred

Hopefully you have already associated your numbers to users before the cutover. Now you can sit back and make sure the phone number works. Inbound, outbound, etc.

End results

Conference Room Phone that I can send Skype meeting invites to and join with 1 click.

Skype for Business soft phone capabilities for my team

  • Visual voicemail
  • Teams Phone app interface
  • Call forwarding and simultaneous ring
  • Domestic/international calling plans
  • Tip for 1 touch join. Format your numbers so you can click on them to join a web meeting, pause and enter the access code automatically. Example:
tel:+180012345678,,00112233#

Then, you and other users can just click on the link to join a meeting rather than write it down or try to memorize the dial in.

Main line auto attendant recording and “operator”

Future steps/improvements

I hope someday to get a sweet Microsoft Teams Room system setup, but those are a few thousand dollars. They also require a ton of custom PowerShell scripts to setup. The fact that there is no UI and its pure PowerShell to configure tells me I will be one of the first pioneers to set it up. Thats a big investment for a small business, so I am holding off.

Future hopes:

  • PowerShell-less configuration
    • Teams physical phones
    • Team rooms
    • Meeting Room license
      • Exchange calendar for conference rooms

 

Office 365- Microsoft Teams Skype Upgrade AUTOMATICALLY scheduled in 31 days from now

Admins! Be sure to log into your Microsoft Teams Admin tenants at https://admin.teams.microsoft.com/dashboard and make sure you are ready for the Skype for Business to Teams upgrade!

All of your users after this time will no longer be able to use Skype for Business and must use teams. Red flag!

I was setting up a conference room account and noticed this message on my Teams Admin Center, that

"Skype for Business users in your organization will be upgrade to Teams on Sep 8, 2019. These users will receive a notification on Aug 25, 2019 about this automatic upgrade."

This was slipped in somehow, hard to believe it was not announced or anyone else has caught this yet. Skype for Business and Teams are two very different user experiences, and Microsoft emailing our users saying “you got 2 weeks to upgrade or else…” and all of our existing scheduled Skype meetings would have been a nightmare over the Labor Day Holiday weekend and have a heavy impact on productivity.

Our teams tenant operates with both Skype for Business and Teams (What is called “Islands” since its not really a hybrid):

Since we are still using Skype for Business for meetings and communication (But Teams for documents) we are not ready to upgrade, and want to postpone it.

Simply click Postpone and give a reason, you are automatically approved:

However, the message comes back at 61 days!

61 days

Click away on the left nav, click back to Dashboard, (91 days now..), postpone, and repeat.. My comment each time is “2020 guys…”

Finally, I get to 241 days, a far enough time for me to worry about an “auto upgrade” based on our internal upgrade plan of 2020:

241 days

I get an email each time as well

screenshot_20190809-192159_email-e1565404093454.jpg

When I am ready, I can go in on my own and swap from Islands to Teams Only, I don’t need this auto upgrade and communication stuff since we have a Change Management process for Office 365 changes.

As a Microsoft Partner, I cannot believe our tenant was about to be automatically upgraded to Teams in 31 days. What a nightmare the weekend after Labor Day would have been.

Skype for Business will be discontinued in 2021, but we are going to migrate to Teams 100% next year as an organization. Our users will need to install the Teams Client, setup any meetings on Teams and use that over Skype for Business. However, we have a plan to get there and 31 days is not the answer.

Was anyone else’s tenant “railroaded” into this upgrade? Share your thoughts below in the comments or on Twitter, https://twitter.com/eschraderMB/status/1159950837558288384