Missed Call Notification – Not Working…..

Since November 2015 there has been issues with Missed Call Notification from Lync/S4B to Outlook.
There has been written many blogpost about this, but I will here try to summarize how to fix it – Until Microsoft release a permanent fix for the issue.

The following Windows Update’s are relevant for this issue.

I have been trying to solve this at several customers, but made a breaktrough today.

I have been searching for KB3101496 – Nothing to find!
Searched in Registry clearly shows that the patch is installed, but it’s not visible in Control Panel

Additional research pointet me in the direction of KB3114351.

Looking for KB3114351 in Control Panel showed that this patch was installed.
Did a Uninstall of this patch, with a following reboot.
After a reboot, the KB3101496 was again visible in Control Panel.
Did a uninstall of this patch as well, following with a reboot.

After a reboot, I checked the “About Skype for Business”, and the version was clearly changed.

About S4B

Did a test call, and VOILA – Missed Call Notification is restored !

In Short:

  • Unistall KB3114351
    • Reboot Computer
  • Unistall KB3101496
    • Reboot Computer

I hope this wil help others that has this problem, and that Microsoft will release a patch that fixes this forever…..

IIS ARR as Reverse Proxy for Lync 2013

I have recently been trying to get IIS ARR to work as a reverse proxy for Lync 2013, and today I made a breakthrough πŸ™‚

I have been following the NextHop article on how to set it up, but I didn’t manage to get it working 100% with all services – Office WebApps Server, LyncDiscover and Lync SimpleURL.

The issues I had was that I didn’t manage to get all services to respond correctly at the same time – And that must be one of the goals πŸ™‚

After some “trial and error”, I came up with a URL ReWrite ruleset that worked.
The following URL Rewrite ruleset worked:
IISARR-RuleSet

After I enabled the abowe ruleset Office WebApp Server, LyncDiscover and Lync SimpleURL’s gave the expected result.

Hope this helps anyone facing the same issues….

Enable users for Lync, via AD Group Membership

Hi.

I have written a small Powershell script that reads an Active Directory group, and Lync Enables users in that group or in any Groups-in-Groups.
The users e-mail address is used when enabling the user for Lync.

Changes will come to the script, in terms of more error checking and other improvments.

Requirements:

  • Needs access to Active Directory and Lync PowerShell modules

Please feel free to use the script AS-IS, and I’ll be happy for feedback, any kind πŸ™‚

I have successfully created a scheduled task at several customers – They are all happy πŸ™‚

Updates:

  • Changed the requirements of Log folder – Script creates logfile from where the command is called
  • Changed the format of Logfilename, Convertet to uFormat – Should cover most πŸ™‚

Changes are based on feedback πŸ™‚


#############################################################################################
# Enable-LyncUsers.ps1
#
# v1.0 - April 2012 by Trond Egil Gjelsvik-Bakke (https://trogjels.wordpress.com)
# v1.1 - October 2012
#        Changed script regarding to LogFile creation.
#
# Syntax:
#	Enable-LyncUsers AD-GroupName
#
#############################################################################################
param($CSGroup)

Import-Module ActiveDirectory
Import-Module Lync

#Check if AD Group contains members
$Members = Get-ADGroupMember $CSGroup -Recursive
if ($Members -eq $NULL)
{
    write-host "AD Group $CSGroup don't contain any users. Please add members to this group before continuing" -foregroundcolor red -backgroundcolor black
    exit 0
}

#Create LogFile
$LogFile = "Enable-LyncUsers-Log-"+(get-date -uformat %d%m%Y-%H%M%S)+".txt"
$LogTXT = "Processing Users.....`n"

Out-File -FilePath $LogFile -InputObject $LogTXT

Write-Host "Processing Users.....`n" -foregroundcolor Yellow -backgroundcolor Black

ForEach ($user in $Members)
{
	$samaccountname = $user.samaccountname

	$ADUser = get-csaduser -Filter {SamAccountName -eq $SamAccountName}

	$display = $ADUser.FirstName + " " + $ADUser.LastName

	write-host "Processing:" $display

	$adexist = get-csaduser | where {$_.samaccountname -eq $samaccountname}

	if ($adexist -eq $null)
    	{
        	$usernotinad = $true
		write-host "User " $samaccountname " not in AD"
    }

    else
    {
        $usernotinad = $false
    }

    if ($usernotinad -ne $true)
    {
        $enabled = Get-CsUser -filter {SamAccountName -eq $SamAccountName}

	# Check if user is enabled for for OCS/Lync
	if ($enabled)
	{
		# Check if user is enabled for OCS
	        if ($enabled.RegistrarPool -eq $null)
        	{
			Write-Host "User is on OCS, enabling for Lync" -foregroundcolor Yellow -backgroundcolor Black

			$pool = get-csservice -registrar | where {$_.ServiceID -eq "1-Registrar-1"}

			Move-CsLegacyUser -Identity $ADUser.SipAddress -Target $pool.PoolFQDN -Force -Confirm:$false
			$LogTXT = "Successfully moved $display to Lync Server 2010"

			Write-Host "Successfully moved $display to Lync Server 2010"
        	}

		else
		{
			Write-Host "User is already on Lync - Skipping..." -foregroundcolor Yellow -backgroundcolor Black
			$LogTXT = "$display is already on Lync Server 2010, skipping....."
		}
	}
	else
	{
		Write-Host "Enabling user for Lync - Processing..." -foregroundcolor Yellow -backgroundcolor Black

                $pool = get-csservice -registrar | where {$_.ServiceID -eq "1-Registrar-1"}

		get-csaduser | where {$_.samaccountname -eq $samaccountname} | Enable-Csuser -registrarpool $pool.PoolFQDN -sipaddresstype EmailAddress
		$LogTXT = "Successfully enabled $display for Lync Server 2010"

		Write-Host "Successfully enabled $display for Lync Server 2010" -foregroundcolor Yellow -backgroundcolor Black
	}
    }
	#Write Log
	Out-File -FilePath $LogFile -InputObject $LogTXT -Append
}

Lync Disable – AD Disabled users

Hi.

Have written a short powershell script that disables AD disabled Lync users.
This will prevent some warnings in Lync Eventlog.

Script changed with regards to some of the feedback.
Not changed with regards to the comment around Syntetic Transactions – Work in progress….


#####################################################################################
# Disable-AdDisabledCsUsers.ps1
#
# v1.0 - August 2012 by Trond Egil Gjelsvik-Bakke (trogjels.wordpress.com)
# v1.1 - October 2012
#        Changed script regarding to LogFile creation.
#
#
# Pulls all AD disabled users from AD and disables them for Lync as well
#
# Writes automatically to auto created logfile
# Can optionally write to screen using -verbose
#
# Example usage.
#
# .Disable-AdDisabledCsUsers.ps1 -verbose $true
#
####################################################################################
param($verbose)
Import-Module active*

#Create LogFile
$LogFile = "DisabledAdUsers-"+(Get-Date -uFormat %Y-%m-%d-%H%M%S)+".txt"
$LogTXT = "Processing Users.....`n"
Out-File -FilePath $LogFile -InputObject $LogTXT

$disabledADusers = Get-CsAdUser | ?{$_.UserAccountControl -match "AccountDisabled" -and $_.Enabled -eq $true}

Foreach ($user in $disabledADusers)
{
    $displayname = $user.FirstName + " " + $user.LastName
    
    #Disable-CSUser -Identity $identity
    if ($verbose -eq $true)
    {
        Write-Host "Disabled AD user $displayname is now disabled for Lync as well"
    }
    $LogTXT = "$displayname is disabled in AD, and now disabled for Lync"
    Out-File -FilePath $LogFile -InputObject $LogTXT -Append
}

Lenovo Video Issues with Communicator – Lync & OCS 2007 R2

Hi.

Lately I have been asked about Video issues in Lync and R2 Communicator – Communicator freezes once you accept inbound video call.
I did search the net, and came across the following article written by Chad McGreanorΒ – thanks πŸ™‚

This issue are related to the nVidia display driver with Lenovo T420s, T520 & W520.

Lenovo hasΒ been working on updating their site with the current Nvidia drivers, but as far as I know – It’s not updated yet !
Go to Nvidia directly and download the current driver that solves this issue.
Link: http://www.nvidia.com/Download/index.aspx?lang=en-us

After upgrading nVidia drivers, everything works πŸ™‚

Communicator/Lync issues with “Fast User Switching” on Windows 7

During work on OCS 2007 R2 and Lync projects, I have come across some strange behavior on Communicator and Lync, this behavior has only been noticed with computers accessed by more than one person – Often “Common Area PC”

Problem/Issue:
When a user is logged on to a computer and has locked the computer and a new users logs into the same computer by using “Switch User” functionality, the new user are having problems using Communicator/Lync for any type of Audio calls.

If the user try to do a PSTN call there is a constant dial tone in the background and the call will eventually terminate.
If the user try to join a A/V Conference, there is no audio and the conference call will end.

Solution:
Microsoft has confirmed – in mail – that there is an issue with FUS (Fast User Switching)Β and Communicator/Lync.
They have also done some investigation on this, but the change has been consider to large for the current available clients.

Work Around:
Since this problem/issue mostly occurs at “Common Area PC”, often meeting room pc, there is possible to turn off FUS on those computers. This can be done in GPO.

Another workaround would be to create a trigger that trigger’s on “Computer Lock” and terminates the Communicator process. The same trigger will trigger’s on “Computer Unlock” and restart the Communicator process.
This is probably NOT the best approach, but it will “solve” the problem.

Lync stopped joining Online Meetings ?

Hi.

I have recently experienced that Lync stopped joining Online Meeting without pressing F5, after IE9 installation.

I asked some colleagues and searched the net for solution, but no really good answers.

After some investigation, I discovered that this must have something to do with the MeetingJoinHelper ActiveX component.

The first thing to verify is, that the ActiveX component is properly configured, to to this:

  • Open Internet Explorer.
  • Press the Alt key to bring up the Internet Explorer menu bar.
  • Click Tools | Internet Options.
  • Once the Internet Options screen appears, click the Programs tab.
  • Click Manage add-ons.
  • Click the Currently loaded add-ons drop-down near the left-hand side and select All add-ons.

  • Once all the add-ons appear, locate MeetingJoinHelper Class. The MeetingJoinHelper Class add-on enables the MeetingJoinAxOC.dll ActiveX Control to launch the Lync client.
  • Verify that the status is Enabled.
  • Right Click the addon, and select More Information.

  • Click Remove all sites, and Allow on all sites.
  • This will “reset” the ActiveX component, and the addon start to behave like it is supposed to.

I hope that this solves the issues you are experiencing – It sure did the work for me!

Make “Lync Call” default

After implementation of Enterprise Voice in Lync 2010, we noticed that the Work number became the default calling method from Lync.

We wanted to change this behavior, and make Lync Call the default and preferred calling method.

To solve this, the following PowerShell command was issued:
Set-CsClientPolicy -EnableVOIPCallDefault $True

Information regarding this is collected from:
http://technet.microsoft.com/en-us/library/gg398300.aspx