Awarded Microsoft Most Valuable Professional (MVP) 2018-2019!

I am really proud to be awarded Microsoft Most Valuable Professional (MVP) 2018-2019. This is the eighth time I receive this award and it is a real honor to be part of this community and that Microsoft recognizes my contributions. I was awarded as Office Servers and Services MVP and I will continue focus on Microsoft Teams, Skype for Business, Office 365 and Microsoft 365, in that order.

The MVP award program recognizes your passion for Microsoft technology and your activities for the past 12 month. I think that the MVP program is the key to success because of getting there is not the end of the journey, but the beginning. When you are recognized as an MVP, you have been acting as an MVP for a long time and this is a way for Microsoft to say thank you for something you have already been doing for a couple of years. Getting the reward just means you need to step it up in terms of community activities to be able to get re-awarded. Think about it, there are now 2996 MVP’s and hundreds of thousands of IT Pro’s, this does not happen by itself.

Typical, but not limited to, activities for becoming an MVP are 

  • Contributing code to Projects
  • In-Person and virtual Speaking
  • Engaging in organizing user groups
  • Helping Others
  • Creating Content
  • Providing Feedback
  • Source (mvp.microsoft.com)

Some highlights of my contributions for the past year

Some links to MVP information

Microsoft Teams Direct Routing GA

Today Microsoft Teams Direct Routing was announced as General Available. This is the means for you to bring your own SIP trunk to Microsoft Teams using only a standard SBC. Today AudioCodes and Ribbon are certified SBC’s for Direct Routing and more are in the works. There are three flavors to Direct Routing

Hosted in Azure!

Yes you read correct. AudioCodes has a certified SBC that now is supported in Azure, which means you can run your Direct Routing SBC in Azure as an appliance.

DRGA6.PNG

Installed in your datacenter connected to your PBX or SIP trunk

With Direct Routing you do not need any Skype for Business or Teams components installed in your datacenter to provide voice for your Teams users. All you need is a certified SBC, a public IP address and a public certificate to connect. Read my blogpost on infrastructure requirements for setting up Direct Routing in your datacenter

DRGA2.png

Hosted by a partner

One SBC can connect to multiple Office 365 tenants making this scenario scalable. This means you can consume native Microsoft Teams services from your own tenant and have a service provider host your voice connectivity.

DRGA3

Thoughts

I think Direct Routing will make Cloud Voice mainstream and it can be combined with Calling Plans where available, which means that you can freely choose how to consume voice. Being able to install the SBC in Azure means that anyone can now host and conenct their own sip trunk to Office 365. With the ability to either get this hosted or set up with next to no on-premises infrastructure you have a solution that can be consumed by most customer types from SMB to Enterprise.

References

Microsoft Teams Direct Routing explained

Microsoft Teams Direct Routing is General Available as of June 28 2018. This is the means for you to bring your own SIP trunk to Microsoft Teams. To be clear, this will only give your Teams users PSTN connectivity, your Skype for Business Online users still needs to use CCE or Skype for Business Server hybrid to get PSTN connectivity.

The goal of this article is to explain the basic around Direct Routing from an infrastructure point of view.

Licenses

  • You need a Phone System License  per user, which is part of Office 365/Microsoft 365 E5 or add-on for Office 365/Microsoft 365 E3
    • Phone System is not available as add-on for Office 365 Business Premium or Microsoft 365 Business
  • To get a phone number in Teams meetings, you need the Audioconferencing license per user, which is part of E5 and can added as add-on for E3 and Business SKU’s

Firewall ports and protocols

  • To connect a sip trunk to Microsoft Teams, a SIP proxy is used.
    • From your SBC to the SIP proxy you need always to use port 5061
      • From SIP proxy to your SBC you can choose any port between 1024 – 65 6536
      • I prefer to use 5061 since it is the same port as SIP proxy and it may be simpler in the long run
      • Traffic needs to be open both ways
    • You can limit the connectivity to the pstnhub.microsoft.com addresses specified below and the IP addresses they resolve to
      • you should always use sip.pstnhub.microsoft.com as primary as it is a Global FQDN
      • sip-all.pstnhub.microsoft.com is mentioned in the documentation and can be a possible source DNS name
  • Media range is UDP between the ports 49 152 – 53 247

DirectRouting4

SBC requirements

DirectRouting5

Media Bypass internally

  • The advantage of media bypass in a Direct Routing scenario where server is in the cloud is that media stays local and the media path is more optimal
  • Media bypass is supported by AudioCodes and Ribbon
    • needs to be configured specifically on SBC and enabled in Office 365
    • both vendors support ICE light which is used for connectivity checks when finding optimal media path
  • The clients need to be able to resolve and connect the public IP of the SBC
    • traffic needs to be open both ways, same media ports are used
    • requires hair pinning on NAT device

DirectRoutingMB1.PNG

Media Bypass externally

  • Media bypass is possible from clients logged on outside the corporate network
  • The client needs to resolve the SBC FQDN and connect to the IP
    • This results in allowing any IP as source ip on the media port range on the SBC
    • Since only TLS connections are allowed, I think this is something that can be considered
  • If the client cannot connect to the IP it will relay media via the SIP Proxy

DirectRoutingMBext1

Migrating to Direct Routing

Since CCE or Skype for Business Server cannot provide voice for Microsoft Teams, the only viable migration path is to introduce a SBC or configure the current SBC to connect to Microsoft Teams. From there you can start moving users by routing specific numbers and number series over to the new SIP trunk.

If you use direct SIP trunk with your Skype for Business Server today, then you can test Direct Routing by implementing a SBC and connect it to Microsoft Teams. Then provide a SIP trunk from Skype for Business using the inter trunk routing feature in Skype for Business Server, which allows you to move some test numbers to the SBC and Microsoft Teams. When you are ready to move to Microsoft Teams, you can switch the PSTN SIP trunk to go directly to the SBC.

pathtothecloud

Summary

When you have the correct approach from an infrastructure point of view, then you are ready to create PSTN usages and voice policies in Office 365. After that, users needs to be enabled for enterprise voice and get assigned a number. Then you are ready to succeed with Microsoft Teams Direct Routing

References

 

Talking Teams automation and OneNote productivity at the Microsoft Campus this August at TechMentor!

Wow! I am going to speak at a conference at the Microsoft Headquarters in Redmond! This is bucket list check for sure. I am soo looking forward to this and hope the attendees will learn a thing or two about Microsoft Teams and get inspired to do more with OneNote in my two sessions.

SPECIAL OFFER: As a speaker, I can extend $500 savings on the 5-day package. Register here: http://bit.ly/RDSPK09_reg

How to Administer Microsoft Teams Like a Boss

This session will help you learn how to take control of Microsoft Teams using PowerShell. You’ll be able to find activities across all workloads to create PowerBI reports and use the information to decommission, archive, or expire inactive teams.

You will learn:

  • How to administer Microsoft Teams using PowerShell
  • Advanced activity reporting on usage using PowerShell and PowerBI
  • How to use advanced activity reporting to decommission, archive or expire Teams

OneNote LifeHack: 5 Steps for Succeeding with Personal Productivity

So you’re using OneNote as your primary note taking tool? Without any structure, you might lose track of all your notes. This session will help you learn how to get structured using OneNote to dump all your thoughts, ideas, e-mails and notes that are either actionable or something you want to find later. You’ll learn five steps to get started with a robust framework from using the sections correctly, take notes with your mobile device, use Microsoft Flow to send e-mail to OneNote from any device, and the Pomodoro Technique to prioritize and induce flow in a busy workday. The magic is to collect all information in one section regardless of the platform.

You will learn:

  • A framework for productivity
  • How to use the GTD methodology and a practical context with OneNote
  • How to use the Pomodoro Technique

Amplify your knowledge at TechMentor Redmond — bring the issues that keep you up at night and prepare to leave this event with the answers, guidance and training you need.  Register now: http://bit.ly/RDSPK09_reg 

Announcing the Pomodoro Windows app

August 2017 MVP Jan Egil Ring and I launched an open source PowerShell based Pomodoro timer. This is a great way to get stuff done, but difficult to get started with. Andreas Kang Schøyen over at Lillevik IT has done something about that and created an executable program that sets up the integrations and timer.

How it works

When downloading and installing the app, it will automatically integrate with your Skype for Business 32 bit application and your Windows OS making it capable to:

  • Set you to “do not disturb” in Skype for Business with a custom presence state called Pomodoro Sprint
    • The app cotains the SDK dll’s for the Skype for Business client, so no extra installs to control presence
  • Write a note of your choosing during the the Pomodoro sprint and adding the time when you will be available
    • It even counts down the last 15 seconds, so that people waiting to reach you that you are about to become available
  • Write a note of your choosing after the Pomodoro sprint is complete
  • Set your computer in to presentation mode which suppresses popups
  • Start your favourite Spotify playlist for productivity
  • Make you available again when the sprint is finished

The app supports automatic updates and the roadmap includes IFTTT ingration so that you can mute your phone during the pomodoro sprint. See full roadmap here

PomodoroV2

The goal is to induce the flow state in a busy workday

Multitasking is a myth. The goal is to reach the flow state by focusing on one task at a time. Have you ever started writing an email, thought you sent it and eagerly waiting for a response, only to find it incomplete and unsent at the end of the day? This is one of the perils of multitasking.

The Pomodoro Technique is a great methodology to induce flow in a busy workday. It is all about avoiding distractions for 15-25 minutes and focus on one task at a time. This is a short enough period in the day that you can squeeze it in before a meeting. It is incredible what you can get done 15-25 minutes. The goal is to not get distracted and it takes about 7 minutes of focus before your reach your flow state.

If you want to succeed with Pomodoro, you need to make yourself unavailable. Equally important, you need to make yourself available again when those 25 minutes have passed. That is why we created the Pomodoro PowerShell tool, and why I love the simplicity of this app.

Read more and download the exe and MSI version of the app here: http://pomodoro.lit.no

Watch an outtake from my session at Microsoft Ignite 2017 on singletasking

Learn more on my thinking around singletasking and tools available to succeed with the flow state, from this outtake of my OneNote LifeHacks talk at Microsoft Ignite 2017

Complete lists of your tasks is key to success

An important part of succeeding with the Pomodoro Technique is lists. Lists enables you to choose the task that lifts the most weight off your shoulders at that point in time. I use OneNote to capture all my ideas and actions, enabling me to create that finite list of tasks. Check out how I do it in my OneNote LifeHacks YouTube series

Using Mentimeter to interact with your audience

At Nordic Infrastructure Conference 2018, I tried something new. Getting feedback from the audience before my session on their expectations for the session. I tried two different approaches using Mentimeter

  • Write down a question, comment or expectation for the session, open ended
  • What do you associate with OneNote, live word cloud

Both worked out great. I got some good questions that I answered beforehand because I was not going to cover it in my actual session. Other comments where about actual topics during the session that I made sure I covered thoroughly.

mentiteams

I thought the live word cloud was a great icebreaker before the session where people got to see what other associated with OneNote and maybe amplify what they agreed on, and of course add to the word cloud with their own association. It gave me a chance to interact with the audience before the session and know the focus of the attendees

What is Mentimeter?

It is an interactive presentation software that lets you engage with an onsite or online audience live. The attendees participate via their mobile by navigating to a website and entering a code that is displayed onscreen. You have nine different types to choose from and you get five quiz as part of the free getting started package

menti

What I liked about Mentimeter

  • It was easy to get started with
  • You can add a timer to the activity, indicating to the audience when you start your session
  • It looked good
  • It’s anonymous
  • Helped me break the ice in the room.

I recommend you check out the free version and it may be a good tool to get some feedback from the room during a presentation as well. I will definitely try it out again

Slides and demo oneliners from NIC2018 now online

At Nordic Infrastructure Conference 2018 in Oslo, I had the honor of talking about Microsoft Teams and OneNote in two packed sessions. I got some awesome feedback after my sessions and heard that people learned something. That’s the reason I do these talks and want to continue to speak at conferences like this. You can download all slides from the conference via GitHub, which I realize is a super way to share content after a conference.

Download my slides and PowerShell oneliners from my Control Microsoft Teams like a Boss session

TimelapsStaleHansenV3

Download my slides from my OneNote LifeHack session

DVBLk0wWAAE5NJS

My company, CloudWay had a booth at NIC and we had a blast talking secure productivity and give away thousands of mobility swag :)

DSC_0101

How to connect to Exchange Online PowerShell via ISE with MFA the correct way

I had the issue that my ISE client timed out after 10 minutes and I could not re-logon to Exchange Online PowerShell and I had to start a new session each time. I asked on Twitter and got some great help from these guys, a big shout out to

It turned out I was doing it wrong. Here is how to do it right

  • Install the Exchange online PowerShell module for MFA
    • Go to Exchange Admin in portal.office.com
    • go to Hybrid and click download for the Exchange module
    • This will break in Chrome, so use Edge og IE
    • Note that you should run the installed module from time to time in order keep it up to date
  • Open PowerShell ISE or Visual Studio Code and use this code to connect to Exchange Online
#Import the module, requires that you are administrator and are able to run the script
Import-Module $((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0\") -Filter CreateExoPSSession.ps1 -Recurse ).FullName | Select-Object -Last 1)
#connect specifying username, if you already have authenticated to another moduel, you actually do not have to authenticate
Connect-EXOPSSession -UserPrincipalName admin@contoso.com
#This will make sure when you need to reauthenticate after 1 hour that it uses existing token and you don't have to write password and stuff
$global:UserPrincipalName="admin@contoso.com"

How I create Microsoft Teams in PowerShell, January 2018

This is how I choose to create Microsoft Teams using PowerShell in the period of January 2018 as demoed in my NICconf session. This will probably change in the future so I need to specify the time this actually worked for me :)

  • I create the Office 365 Group in Exchange because then I can specify the email address and I also like to remove it from global addressbook since it is primarily used for Microsoft Teams
  • Then I Teams enable the group and typically it is created for projects so I create typical channels I want to use in the project, typically it is an Office 365 migration and deployment projects
  • Typically I leave it up to the group owners to add the members themselves in Microsoft Teams, but I use Teams PowerShell to add the owners and optionally members, because it is simpler to do it using Teams
  • The Microsoft Teams PowerShell module is based on Microsoft Graph and everything is in the context of your admin account, so in order to administer the Teams, you need to be an owner of those Teams
  • Be aware of that it can take up to 24 hours until members and channels are added to the Microsoft Teams because this is Microsoft Graph and the SLA is 24 hours to sync members over from Azure AD. Typically this should happen within 15 minutes
    • This is how it is as of January 2018
#Create the Office 365 Group
New-UnifiedGroup –DisplayName NICDemo96 –Alias NICDemo96 –EmailAddresses "NICDemo96@M365x963508.onmicrosoft.com" -owner GA-sha256@M365x963508.onmicrosoft.com -RequireSenderAuthenticationEnabled $False -Verbose
#This is optional, but may be a good practice initially since Office 365 Groups may clutter your Global Addressbook
Set-UnifiedGroup –Identity NICDemo96 –HiddenFromAddressListsEnabled $true
#Create the Team, provide the GUID object ID to specify the Group
$group = New-Team -Group (Get-UnifiedGroup NICDemo96).ExternalDirectoryObjectId -Verbose

#Check your Teams, will only list teams you are a member of
Get-Team

#Add Channels to the Team
New-TeamChannel -GroupId $group.GroupId -DisplayName "1 Adoption" -Verbose
New-TeamChannel -GroupId $group.GroupId -DisplayName "2 Deployment" -Verbose
New-TeamChannel -GroupId $group.GroupId -DisplayName "3 Operations" -Verbose
New-TeamChannel -GroupId $group.GroupId -DisplayName "4 Change Management" -Verbose
Set-TeamFunSettings -GroupId $group.GroupId -AllowCustomMemes true -Verbose

#add owners and members, easier to do with Teams cmdlet
$Owners = "PradeepG@M365x963508.onmicrosoft.com","PattiF@M365x963508.onmicrosoft.com","LidiaH@M365x963508.onmicrosoft.com","MiriamG@M365x963508.onmicrosoft.com"
$Users = "IrvinS@M365x963508.onmicrosoft.com","JohannaL@M365x963508.onmicrosoft.com","DebraB@M365x963508.onmicrosoft.com"
ForEach ($Owner in $Owners){Add-TeamUser -GroupId $group.GroupId -User $Owner -Role Owner}
ForEach ($User in $Users){Add-TeamUser -GroupId $group.GroupId -User $User -Role Member -Verbose}

#Check that members are added, know that it could take up to 24 hours until they are actually added to Microsoft Teams
Get-TeamUser -GroupId $group.GroupId
Get-UnifiedGroupLinks NICDemo96 -LinkType owner
Get-UnifiedGroupLinks NICDemo96 -LinkType member

If you want an updated approach, you should check out the Book I am co-authoring that is update weekly by MVP Tony Redmond, to match the ever-changing Microsoft Cloud. The book is called Office 365 for IT-Pros and comes highly recommended.

Check out my speaker profile @SessionizeCom

Check out my speaker profile here:  https://sessionize.com/StaleHansen/

I love sharing my thoughts, ideas and findings from the field at conferences and in user groups. I have been an active public speaker since 2011, my first English session in 2012 was at Nordic Infrastructure Conference in Oslo. My first talk at a conference in the US was in 2014 at the Lync Conference in Las Vegas. From there I have been talking at conferences such as TechEd US and EU, TechDays Sweden, IT/Dev Connections, UCDay UK, Communication Day Belgium and Microsoft Ignite. It has been and is a blast.

I have created a profile at Sessionize.com with links to my speaker experience and current sessions I am focusing on, but not limited to :) If you find any of the topics interesting, do not hesitate to contact me for a talk internally at your company, at your user group (remote via Skype for Business works), or at a conference. Most of the talks are updated frequently with my current experience and features from Microsoft, so they never get old or repetitive :)

Check out my profile here:  https://sessionize.com/StaleHansen/