Using Lync like a LyncPRO – Look good in federated calls!

LyncGuruUsing Lync like a LyncPRO is a segment on The UC Architects podcast where I go through tools you as a LyncPRO may want to use to make your experience cooler, easier and you can showcase features to your peers. The tools are typically

- Applicable to the desktop client
- Community developed
- Have requirements outside just running Lync
- Use PowerShell and registry to apply settings

Using Lync like a LyncPRO – Look good in federated calls!

This LyncPRO tips was featured on The UC Architects podcast Episode 40

One of my favourite features with the Exchange 2013 integration is the high resolution photo option where you are able to get a crisp color rich photo in all internal Lync calls. There is one drawback though, the profile picture is not shared with federated contacts. In fact, the only way a federated contact can see your picture is if the following is true, if your federated contacts

  • have you in their existing Outlook contacts list, added your sip address and a picture
  • use the Outlook Social Connector to connect to Facebook and has merged that information with their Outlook Contact
  • have activated Outlook Social Connector, is connected with you on LinkedIn and you use your sip address as the primary email address in your LinkedIn profile

As you can see there is a lot of room for your federated contacts not seeing a picture of you when you are in a Lync call with them or they have a picture of you that is not so good for business relations. The resolution of the picture from the social connector is only 48×48 pixels and will get quite garbled when you are in a Lync call.

48x48 picture from AD and LinkedIn

48×48 picture from AD and LinkedIn

Why use the option to show a picture from a website

  • You are guaranteed to show up with a picture in your federated contact activities
    • in their contacts list
    • in Lync calls
  • Even though it will have a lower resolution for internal calls, it is totally worth it if you collaborate with federated contacts on a regular basis
200x200 shared from website

200×200 shared from website


  1. Create your profile picture with the dimensions 200×200 and make sure its below 30k in size
  2. Save your picture on a website that is not behind a username or password
  3. Click your picture in the Lync 2013 client
  4. Make sure you have the radio button to Show picture from a website
    • Don’t see this radio button? Check the prerequisites chapter
  5. Add the URL to your photo
  6. Click Connect to picture to save the setting
  7. Verify that your Lync profile picture is updated, should take less than 10 seconds
  8. You are now sharing your picture of choice to internal and federated contacts and looking good in meetings of any scenario

Some facts

  • In Lync 2010 the thumbnailPhoto attribute had the size of 48×48
  • in Lync 2013 you can integrate with Exchange 2013 and store the photos in
    • 48 pixels by 48 pixels, the size used for the Active Directory thumbnailPhoto attribute. If you upload a photo to Exchange 2013 Exchange will automatically create a 48 pixel by 48 pixel version of that photo and update the user’s thumbnailPhoto attribute. Note, however, that the reverse is not true: if you manually update the thumbnailPhoto attribute in Active Directory the photo in the user’s Exchange 2013 mailbox will not automatically be updated.
    • 96 pixels by 96 pixels, for use in Microsoft Outlook 2013 Web App, Microsoft Outlook 2013, Microsoft Lync Web App, and Lync 2013.
    • 648 pixels by 648 pixels for use in Lync 2013 and Microsoft Lync Web App.
  • In Lync 2010 and in Lync 2013 you also have the option to show a picture from a website
    • This url will be shared with federated contacts and you can therefore control the picture viewed by your federated contacts
    • Size is hardcoded to 200×200, smaller images will be upscaled and bigger pictures will be downsized
    • You can also use twitter and LinkedIn profile pictures directly if you have their url’s
      • I found them to have a lower quality than a directly linked jpg picture of a blog.
648x648 picture not that much different from the 200x200 picture

648×648 picture not that much different from the 200×200 picture


  • Show picture from a website is only available when you are logged on to a Lync Server 2013 deployment
    • Lync Online does not have this option at the time of writing
  • It is not enabled by default on Lync Server 2013
  • To enable it, do the following in Lync Server Management Shell
    • $pe=New-CsClientPolicyEntry -Name EnablePresencePhotoOptions -Value True
    • $po=Get-CsClientPolicy
    • $po.PolicyEntry.Add($pe)
    • Set-CsClientPolicy -Instance $po
  • Make sure that the client policy assigned to your users have the DisplayPhoto AllPhotos



Using Lync like a LyncPRO – Use custom presence states!

LyncGuruUsing Lync like a LyncPRO is a segment on The UC Architects podcast where I go through tools you as a LyncPRO may want to use to make your experience cooler, easier and you can showcase features to your peers. The tools are typically

- Applicable to the desktop client
- Community developed
- Have requirements outside just running Lync
- Use PowerShell and registry to apply settings

Check out the other articles in this series:
If you have a LyncPRO tips you want to share, head over to The UC Architects LinkedIn discussion for this topic, or leave a comment below

Using Lync like a LyncPRO – Use custom presence states!

Ok, this is a topic that has been around since the early days, where you can add more presence states than the predefined you find in your client today. Custom presence states lets you pimp your presence field with your own states that reflect how you feel and what you are doing. Lately things got a bit more awesome, here is why:

  • MVP Greig Sheridan has created a tool that lets you set presence states with shortcuts
  • Now this tool support custom presence states
  • I went and created a PowerShell script for automating the process of creating the xml file and correct registry settings
    • For those of you who do not have centrally deployed custom presence states
    • Or for those of you who want your own states


  1. Download the script and run it
  2. This will create the following custom presence states

  3. After you have played with the new presence states you can download HIDnLync 2013
  4. It is easy to set up
  5. You can choose your own custom presence states and be able to change them with keyboard shortcuts
  6. I use it to tell my peers that I am in a mobile call or am teaching Lync in a class
  7. Got any useful presence states, share them in the comments field below :)

Session from TechEd North America 2014 is online

Recently I had the honor to speak at TechEd North America in Houston. I had a blast doing the session and I really want to thank those who attended my session. Some of the comments I got after the session makes it apparent that managing Phone numbers in Lync is becoming a challenge lots of organizations need to have a strategy for.

During the session I concluded with the following

  • Use the E.164 format for all numbers, even the phonenumber and mobilenumber attributes in AD
  • Use extensions, not for short-dialing, but for authentication
  • Excel does not scale one, two or three years in to the deployment, I show you the tools you can choose from
  • Use PowerShell automation and add it to existing user management routines
  • If you have a complex deployment, use third party tools that have more logic and statistics built-in
  • If you have a multivendor environment, try out UniMax 2nd Nature that can manage other vendors as well
  • All scripts and oneliners are available at

View and download the video at Channel9


Here is some pictures from my experience


Using Lync like a LyncPRO – Disable Lync client pop-ups!

LyncGuruUsing Lync like a LyncPRO is a segment on The UC Architects podcast where I go through tools you as a LyncPRO may want to use to make your experience cooler, easier and you can showcase features to your peers. The tools are typically

- Applicable to the desktop client
- Community developed
- Have requirements outside just running Lync
- Use PowerShell and registry to apply settings

If you have a LyncPRO tips you want to share, head over to The UC Architects LinkedIn discussion for this topic, or leave a comment below

Using Lync like a LyncPRO – Disable Lync client pop-ups!

This LyncPRO tips was featured on The UC Architects podcast Episode 37

Have you ever rebuilt your PC and installed a fresh Lync client or use a customer Lync computer to validate features where you get these pop-ups welcoming you in to the meeting, notifying you that the meeting will continue after you leave the meeting? Well now MVP Greig Sheridan has created a PowerShell script that disables these pop-ups through registry for you. What the script does

  • .\Set-Lync2013ClientWarnings.ps1 expert
    • will disable all pop ups
  • .\Set-Lync2013ClientWarnings.ps1 default
    • will delete the registry entries so that you can demo the pop-ups or you want to live like a new user
  • Will control these scenarios
    • DSCLOSEVOICE”, “DSCLOSEVOICEVIDEO”, “DSCLOSELSCONF”, “DSLogoutCloseConversations”, “DSStartAppsharingNotification”, “DSAppsharingGrantControlNotification”, “DSAppsharingGrantControlToSpecificPersonNotification


Totally recommend that you as a LyncPRO use this script to control your pop-up experience. Head over to Greig’s blog to download the script

My Lync and BYOD in a WIFI infrastructure LyncCast is now Online

Friday april 11th I did a talk over a Lync Cast arranged by Microsoft Norway about Lync and Bring Your Own Device (BYOD) in a wireless infrastructure in Norwegian.

Abstract: Bring Your Own Device (BYOD) er en trend IT avdelingen ikke alltid kan kontrollere. Tar man Lync med telefoni med i bildet så er det en del momenter man må tenke på, som hvilket nett skal «unmanaged devices» koble til, hvordan kan vi sikre tale kvaliteten og hvor enkelt er det å komme i gang for brukeren. Hvis du ønsker å lykkes med Lync i et trådløs nettverk, da er denne webcast for deg og din bedrift

View the video here:

Dial-in Conferencing in Lync now just requires Enterpreise CAL

Some time ago the CAL licensing for dial-in conferencing was changed. The change is that for users to be able to invite to a Lync meeting where users are able to dial in from a phone or a mobile now just require that this user has an enterprise CAL. Earlier the users that could invite to such meetings needed to have plus CAL in order to do this. The scenario is that users now can invite to a phone conference without being enabled for Enterprise Voice which requires Plus CAL. This is ofcourse policy controlled on the Lync server and has always been possible, but not from a licensing perspective.

Figure 1: Dial-in Conferencing in Lync


New or Improved

Standard CAL

Enterprise CAL

Plus CAL

Initiate an   impromptu (ad-hoc) multiparty (3+ users) meeting with audio and video   (including dial-out to PSTN or PBX users) Improved  

Initiate an   impromptu (ad-hoc) multiparty (3+ users) meeting with audio (including   dial-out to PSTN or PBX users) Improved    

Schedule and   invite attendees to meetings with audio (including dial-out to PSTN or PBX   users and hosted audio conferencing features), video, web conferencing and   content sharing Improved  

Automatically   join meeting audio from PBX or other phone number Improved  

Enable use of   Lync Room Systems New

Lock down your Lync status and PC notifications using PowerShell

PomodoroRecently I wrote a blogpost on Control your Lync presence during a Pomodoro Sprint using PowerShell. This awesome script uses a timer and the Lync SDK to lock down Lync for 25 minutes while I get some real work done. The only thing I did not find out was how to suppress is Outlook popups and other notifications.

Thanks to a great tip by MVP Olav Tvedt i found out that you can set your laptop in presentation mode using the commandline tool presentationsettings

  • PresentationSettings /start
  • PresentationSettings /stop
  • Works from PowerShell as well

Using the script on a desktop

Apparently PresentationSettings is not installed on desktop computers by default. Searching the net I found a post by MVP Robert Sparnaaij where he described that you can use registry to enable this feature on desktop computers as well:

If you save the below text to a .reg file and run it you will add the settings necessary to enable PresentationSettings and you are good to go

Windows Registry Editor Version 5.00



; WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall Windows. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

Download the script and check out how I use the Pomodoro Technique with Lync and PowerShell here:

Control your Lync presence during a Pomodoro Sprint using PowerShell

This article is for you Lync-PRO’s out there who want to differentiate yourself from the average Lync user and at the same time want to reach true flow state using the Pomodoro Technique

This article discusses

  • The Pomodoro Technique
  • Flow state by Jason Silva
  • My Lync controlling Pomodoro PowerShell Script
  • The Script

The Pomodoro Technique

PomodoroScott Hanselman explained the Pomodoro Technique in a great way on his PodCast. Pomodoro is about splitting your productive time into intervals of about 25 minutes. During that time you should ignore E-mail, Lync, Twitter, Facebook, Instagram, LinkedIn, news, colleagues and all other elements that could distract you from your trail of thought, your deep dive focus, your flow state.

I have a busy day and it comprise of presentations, meetings, workshops,  customer dialogue, support sessions and talking with colleagues. Sometimes I actually need to deep dive into a problem or produce good documentation, where I have to focus for at least 10 minutes before I reach my flowstate and I need to stay in that flow state as long as possible. My biggest problem is that I am easily distracted and that is why I need to really focus to get real work done :) When I first sit down, I try to do Pomodoro sprints where I try not to get interrupted. When the interval is finished I am available for all the Lync IM’s, mails and everything. This way I may get more quality work done in a short period of time. Read more about Pomodoro here:

Flow State

My goal is to reach a flow state. Jason Silva, my favourite futurist, did a talk on his YouTube channel Shots of Awe. Recommend to get inspired by his talk about the subject

My Lync controlling Pomodoro PowerShell Script

When in a Pomodoro focus session I set do-not-disturb in Lync, disable notifications in Windows 8, and close all web sites that can distract me so I can focus on the work at hand be it an e-mail, document, script or configuration task. I use PowerShell as my Pomodoro timer and with the Lync SDK I am able to start a session, set the correct custom status and know that even if I forget, I will reset my status when my focus session is over.

The function in the script does the following

  • Set the duration of the Pomodoro sprint, usually 25 minutes
  • Import the Lync SDK into PowerShell
  • Delay is where you set the interval the script will update time remaining
  • It plays a start wav file, this could be a 25 minute Pomodoro tick sound
    • I usually just find a cool start tune and then listen to my own music on Spotify or YouTube
  • Then I use custom presence state in my Lync client where I have one state called Pomodoro Focus with do-not-disturb
  • Outlook and other notifications will get suppressed using presentationsettings /start, so no notifications will popup during the sprint
  • After that you have the counter that will count down the remainder of the focus session
    • I publish that in the personal note field of the Lync client, updates every minute with the time for when I will be available again :)
    • The last thirty seconds will display how many seconds are left until full availability


  • At the end of the function
    • I play an alarm to notify me that the session is over
    • Reset the Lync presence state
    • Set an appropriate note in the Lync client
    • To make sure I am available again

The Script


  • Download the Lync SDK
  • In order to avoid having to install visual studio, extract the lyncsdk86.msi from the sdk exe file using winrar or other software
    • The SDK need to match the bitness of your Lync client
  • Go through the script and change the path to where you installed the SDK
    • The script checks to standard paths for Office 2013
  • Running the script from a desktop? Remember to enable PresentationSettings:
  • I use some default wav files to start and end the Pomodoro Sprint, you can change those at the start of the script
  • Now you only need some determination to get some things done using an awesome technique :)

Veiw the script below

#Last updated: 02.12.2013 By MVP Ståle Hansen (
#Pomodoro function by Nathan.Run()
#Lync Custom states by Jan Egil Ring
#Note: for desktops you need to enable presentation settings in order to suppress email alerts, by MVP Robert Sparnaaij:

#Add the path to your module and wave file here
$ModulePathISO=(Join-Path -Path ${env:ProgramFiles(x86)} -ChildPath “Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.dll”)
$ModulePathStream=(Join-Path -Path ${env:ProgramFiles(x86)} -ChildPath “Microsoft Office 2013\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.dll”)
$StartWave="C:\Windows\Media\Windows Proximity Connection.wav"
$EndWave="C:\Windows\Media\Windows Proximity Notification.wav"

#Checking if the files are available
if (Test-Path $ModulePathISO){$ModulePath=$ModulePathISO}
elseif (Test-Path $ModulePathStream){$ModulePath=$ModulePathStream}
else{Write-host SDK dll file not found;Write-Host Exiting script;break}

if (!(Test-Path $StartWave)){Write-host Start Wave file not found;$stop="True"}
if (!(Test-Path $EndWave)){Write-host End Wave file not found;$stop="True"}
if ($Stop -eq $True){Read-host "Wav files could not be found, press enter to continue or crl+c to exit";$errorpref="SilentlyContinue"}

 Function Publish-LyncContactInformation {

    Param (
        # Availability state as int
        # ActivityId as int
        # Custom ActivityId as int
        # String value to be configured as personal note in the Lync client
    #Importing Lync SDK and create object
    Import-Module -Name $ModulePath
    $Client = [Microsoft.Lync.Model.LyncClient]::GetClient()
    $Self = $Client.Self
    $ContactInfo = New-Object 'System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType, object]'

    if ($AvailabilityId) {
        $ContactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::Availability, $AvailabilityId)

    if ($CustomActivityId) {
        $ContactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::CustomActivityId, $CustomActivityId)

    if ($PersonalNote) {
        $ContactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::PersonalNote, $PersonalNote)

    $Publish = $Self.BeginPublishContactInformation($ContactInfo, $null, $null)


Function Start-Pomodoro
    Param (
        #Duration of your Pomodoro Session
        [int]$Minutes = 25

    $seconds = $Minutes*60
    $delay = 1 #seconds between ticks

    #Set do-not-disturb Pomodoro Foucs custom presence, where 1 is my pomodoro custom presence state
    Publish-LyncContactInformation -CustomActivityId "1"

    #Setting computer to presentation mode, will suppress most types of popups
    presentationsettings /start

    #Errorprefernce is set to silent when wav files not present
    $ErrorActionPreference = $errorpref
    #Starting music, remember to change filepath to your wav file
    $player = New-Object System.Media.SoundPlayer $StartWave
    1..6 | %{ $player.Play() ; sleep -m 3400 }
    $ErrorActionPreference = "Continue"

    #Counting down to end of Pomodoro
    for($i = $seconds; $i -gt 0; $i = $i - $delay)
         $percentComplete = 100-(($i/$seconds)*100)
         Write-Progress -SecondsRemaining $i `
         -Activity "Pomodoro Focus sessions" `
         -Status "Time remaining:" `
         -PercentComplete $percentComplete
         Start-Sleep -Seconds $delay

         #Showing remainder of time in Lync client personal note
         $MinutesRemaining = $i/60
         $MinutesRemaining = [System.Math]::Round($MinutesRemaining, 0)

         if ($MinutesRemaining -gt 1){Publish-LyncContactInformation -PersonalNote "Will be available in $MinutesRemaining minutes"}
         elseif ($i -lt 31){Publish-LyncContactInformation -PersonalNote "Will be available in $i seconds"}
         else{Publish-LyncContactInformation -PersonalNote "Will be available in less than a minute"}


     #Stopping presentation mode to re-enable outlook popups and other notifications
     presentationsettings /stop

     #Pomodoro session finished, resetting status and personal note, availabilit 1 will reset the Lync status
     Publish-LyncContactInformation -PersonalNote "Your personal note"
     Publish-LyncContactInformation -Availability "1"

     #Errorprefernce is set to silent when wav files not present
     $ErrorActionPreference = $errorpref
     #Playing end of focus session song\alarm, 6 times
     $player = New-Object System.Media.SoundPlayer $EndWave
     1..6 | %{ $player.Play() ; sleep -m 1400 }
     $ErrorActionPreference = "Continue"


Start-Pomodoro -Minutes 25

Featured on NextHop blog Series: Interview with a Lync Pro

I had the honour of being interviewed by Justin Morris who writes the blog series Interview with a Lync Pro hosted at the Lync NextHop blog. It is really cool be featured in such a way and recognized as a Lync Pro by the community together with the people I myself turn to for expert knowledge. Head over to NextHop to read the entire interview and also make sure to read the interview of the other Lync Pro’s as well:

NextHop is the Microsoft Lync Server team’s customer response channel—a new medium to rapidly make the information you need available to you, when you need it. NextHop provides pertinent, short-format, technical articles between major releases of the product and associated product documentation (technical library content, Resource Kit book, whitepapers, and tools).
NextHop highlights the knowledge of experts in the Lync Server community, bringing you information from internal and external experts, such as the Lync Server engineering team and our Most Valuable Professional (MVP) community. In addition to publishing great content by contributing authors, NextHop keeps a pulse on the community. The Lync Server Blog Roll and @DrRez Twitter feed highlight the activities of other sites and blogs focused on Communications Server. NextHop provides pointers to a wealth of information about Lync Server. Our plan is to support, encourage, and evangelize all the great content that is being written about Lync Server.

Virtual Technical Solution Professional (V-TSP) at Microsoft Norway

In january 2012 I became a Virtual Technical Solution Professional (V-TSP) at Microsoft Norway. Virtual means that I am still employed by Atea but work closely with the local Microsoft team.

My role as a V-TSP is to provide technology overviews, proofs-of-concept, technical demonstrations, and technology assessments for Microsoft customers. The V-TSP program demands that the partner have the gold competency and that the provided resource is highly skilled and certified within the area of expertise.

I am really looking forward to work even more closely with Microsoft and make sure their customers implement Microsoft Lync and the Unfied Communications proftfolio to the fullest by combining the broad best-of-breed UC technologies from Atea together with Microsoft.

Here is some information I found regarding the V-TSP program

The Microsoft Virtual Technology Specialist Program (V-TSP) is a select group chosen from the elite in Microsoft’s partner community, whose focus is to augment Microsoft’s internal Technology Specialist team. Their primary role is to communicate the value of Microsoft Solutions to customers and to provide architectural guidance for Enterprise Integration solutions. The Microsoft V-TSP program was designed to create a deeper relationship with Microsoft Partners, the Product Teams at Microsoft Corporate, and Regional Microsoft Offices, in order to provide highly skilled solution specialists to Microsoft customers. It is designed to enable a high performance team of partner-based resources to deliver pre-sale activities and resources to empower customers and help them meet their solution and integration needs.

V-TSPs are chosen by Microsoft because of their superior architectural, development, consulting, and customer interfacing skills. Microsoft utilizes these type of individuals in partnership with the Microsoft regional Offices, in pre-sales efforts to secure Microsoft solution opportunities. This includes meeting with Microsoft customers, participating in customer visits with Microsoft representatives, as well as, participating in broad reach events like presenting training and seminars to Microsoft customers.

Microsoft V-TSPs have direct access to online resources and documentation and resources that are usually solely reserved for the Microsoft internal teams. They also have early access to extensive information about all new Microsoft product releases, which benefit Atea and Microsoft customers.