Category Archives: Clients

Update 14.0.3 for Lync for Mac 2011 fixes issues on some USB audio devices

I recently got my hands on the latest 14.0.3 update for Lync for Mac 2011 which allows certain USB devices to work better with the client. Unfortunately it’s not a free-for-all patch, so you need to contact Microsoft Customer Support Services and requested the hotfix be sent to you. Anyway, let me tell you more about it.

As per the Microsoft KB article, this update introduces the following improvements for Lync for Mac 2011:

  • Improvement of audio quality
  • Improvement of headset functionality
  • Improvement of audio device support

Which audio devices might you ask? These ones:

  • Polycom CX300
  • Plantronics Calisto 800 and 540 series
  • Logitech B530
  • Jabra Pro 9450
  • Sennheiser DW Office
  • Microsoft LifeCam Studio

It’s important to note that only the above devices are tested to work with this update. Let’s look at the improvements to the client and what the user experience looks like. Continue reading

Lync for Mac 2011 14.0.2 Update Available

A bit late to the party I know. 🙂 I was in Turkey all last week so didn’t get a chance to write about this earlier.

Last Monday, Microsoft released a new update (14.0.2) to Lync for Mac 2011 that fixed a few issues, one which I’ve been keeping an eye on for a while and that many on the TechNet forums reported – problems with the Cisco AnyConnect VPN client.

Secondly, this update fixes scenarios where the client might unexpectedly sign out or crash. Sensational. I’ve definitely experienced this first hand so this is a welcome update to improve stability.

To update your client just open Office Updates and it’ll do it for you. Easiest way is from within Lync, click Help then Check for Updates. Alternatively, you can download the patch manually.

For more information and a download link, check out the Microsoft Support KB article here.

Improving Presence Privacy in Lync 2010

An update was recently released that addresses a few niche privacy scenarios in Lync 2010. Even though presence is really what makes Lync amazing and enables so many innovative ways to communicate, this additional insight can cross the line and impact work/life balance. To address this, Microsoft has released a patch to remove the LastActive attribute from the presence aggregation category.

This update will be handy for organisations that are approaching presence functionality with caution or have strict rules around how much information a user makes available to the rest of the organisation. Particularly, it will be useful for companies that operate in countries where it’s illegal to monitor employee’s activity.

A bit more from the Microsoft description of this update:

The Lync Server 2010 presence scheme includes a method for calculating and displaying how long a user has been away or offline. This is known as “Last Active.” The LastActive attribute returns presence inquiries only from users who have the “Colleagues,” “Workgroup,” and “Friends and Family” privacy relationships.

Lync Server 2010 always calculates the Last Active time stamp during presence aggregation for each user and stores it in a database. Last Active presence information is retrieved to satisfy individual presence inquiries and subscriptions by other users. This occurs according to the access level that the users were assigned. The design of the Last Active presence information has changed for the following reasons:

  • Last Active presence information may be incorrectly interpreted as reflecting the actual user’s status at work. Therefore, users may rely on it to remotely monitor an employee’s activity. However, this behavior is not allowed in some countries.
  • Last Active presence information that is provided to users should not disclose how long a user is away or offline for business reasons.

Note The aggregate presence data that is calculated by Lync Server 2010 contains the status history of each user’s endpoints if a user is signed to multiple endpoints. The status of each endpoint changes automatically in response to system events (such as logon, logoff, workstation lock and unlock, and network connectivity events), configured timeouts, scheduled meetings, and user activity. The status of each endpoint can also be changed manually by the user. In this situation, Last Active presence information cannot be considered as an accurate measure of the user’s presence. Instead, Last Active presence information is intended to provide additional information about the user’s availability and willingness to communicate.

So as you can see, this patch has basically been released for companies that may have gone a bit too far with presence and how they are tracking their staff. If you don’t keep a handle on this, you could find a rift created between managers and their employees. Imagine this scenario:

Manager: “I saw that your presence in Lync was set to away for 7.5 minutes at 11:35am, what were you doing then?!”
Employee: “Uhh, I was in the bathroom?!”

Really what you want to do is strike a balance between personal accountability and trust when using presence. Don’t let your managers go all “big brother” on your staff to the point where they are nervous to walk away from their computer.

You can check out more about the update here on the Microsoft Support site.

Cumulative Update 5 (CU5) for Lync Server 2010 Released

CU5 for Lync Server 2010 has arrived! This update fixes the “no video in RCC” behaviour (whereby an RCC cannot make a video call at all), as verified by Jamie Stark here on twitter.

Here are the download links:

  • Updates for Server. You just need the LyncServerUpdateInstaller.exe to update each server. Download here and view the corresponding KB article explaining what’s fixed.
  • Update for Client (64-bit) download here.
  • Update for Client (32-bit) download here.
  • Update for Group Chat Client download here.

Happy patching!

RCC gets video

Update – Fri 02 Mar 8:30am GMT

I wanted to touch on this a bit more in light of Jamie Stark’s post on NextHop overnight. Some important caveats are raised and I want to highlight a few here:

“For RCC-enabled users to make peer-to-peer video calls and join video conference calls, they need a webcam and a headset, handset, or speakerphone for their workstation or laptop.”

“The update does not support the scenario known as Split AV, where audio is delivered through the desk phone and video comes through the Lync client. The Split AV scenario provides an inconsistent and oftentimes suboptimal end-user experience, because the audio and video use different network paths and frequently lose sync. This means when a user starts an audio call using a PBX phone, they cannot add video to that call. If a call is started using the Lync client as the audio endpoint, it can be escalated to include video.”

“The February 2012 update is all client-side with Lync 2010.”

So if you run RCC today, you’re getting video back. Happy days!

Dial any number in Internet Explorer using Call Lync IE Accelerator

New guy on the block at Modality Systems, Tom Morgan has recently whipped up an awesome new app to fill in the gaps in functionality in Lync on the desktop.

Lync comes with an IE add-on by default which is supposed to enable you to dial any number from within Internet Explorer, but we frequently find that it only allows you to dial US formatted numbers, case in point:

 Lync picks up the US number ok, but..

When it comes to UK numbers, no dice.

This kind of behaviour is actually acknowledged by Microsoft and the resolution is that “Phone-number detection in Internet Explorer is not enabled when the phone number is not a United States number and does not start with a “+”.” and that there is “currently no workaround for this issue”.

Until now. Tom has written an accelerator for Internet Explorer that allow you to dial any number within IE easily and quickly.

How does it work?

First we install the IE accelerator from Tom’s blog over here and click on Install Accelerator. After that, we’re ready to go, it’s that simple.

Now when we find a number on a webpage we want to dial, all we need to do is highlight it, right-click it and click Call using Lync.

I’d only just installed the accelerator which is why I add to hover over All Accelerators, but you can move it to the left column by setting it as a default accelerator in the Manage Accelerators options in IE.

After we hit Call via Lync, Lync pops up with a conversation window, ready to dial the number. Notice that Lync has applied our company normalisation rules also? Pretty neat.

Once I click the yellow highlighted part, the call dials and I’m good to go.

It does display a new tab in IE that says “Smile! You’re in a Lync call!” but according to Tom it’s an unavoidable side effect:

“It’s a little finicky because in an accelerator you can only make an HTTP call. So, I’m making an call to a page, passing the selected number, then using JavaScript to invoke to call. That works fine, but the downside is that you’re left with a new page open in the browser. There’s really nothing I can do about that so I’ve stuck a big smiley face on it.”

But hey, it works right? Go and download it now from Tom’s blog and follow him on twitter as well.

What you should know about photos on Lync Mobile

Last week we were testing various scenarios regarding the displaying of photos in Lync Mobile as there are some inconsistencies with other clients (both Mac and PC). Seems I’m making a bit of a theme of talking about photos in Lync, having clarified a few things on how they work in the desktop PC client last year.

I identified some behaviour on the mobile client that could impact how you provision photos in Lync in your environment, here’s what I discovered.

How do photos display on mobile?

As I mentioned in my previous post about photos, the full blown PC client can display photos from AD/SharePoint, a URL you specify, or no photo at all. You can control this using a client policy to ensure your users all get the same experience.

On mobile, you have no control over how photos are displayed. Lync Mobile can only display photos retrieved from Active Directory or SharePoint, it cannot display a photo from a URL.

If a user is displaying a photo from a URL and there is a photo in AD, it will display the photo from AD. If there is no photo in AD, it will display no photo at all. Let me show you what I mean:

Tom’s photo when I use the desktop client. Tom has a photo from a URL defined.

Tom’s photo on Lync Mobile on iPhone. Because Lync Mobile cannot display photos from URLs, it displays no photo at all.

Implications

This has implications to your deployment because you may encounter scenarios where users are accustomed on the desktop client to seeing a photo of a user from a URL the user has specified. Once they start using the mobile client, they will either see no photo of the user/s at all (if no photo is in AD/SharePoint) or they will see the photo that is stored in AD (typically from Exchange) or SharePoint. This leads to an inconsistency in experience, which may generate calls to your helpdesk.

Not a huge one, but worth looking out for if photos are a big value point for your Lync deployment (and they should be).

Exporting and importing contact lists in Lync Server 2010

I’ve been doing a fair bit of work around coexistence and migration lately and throwing contact lists around all over the place using dbimpexp. In light of this, I thought it’d be a good idea to do up a post to help you understand what dbimpexp.exe is as it’s a super useful bit of kit to have at your disposal during a Lync implementation/migration or during day-to-day operations.

If you’ve had experience backing up or restoring OCS 2007 R2 or Lync Server, chances are you’ll be familiar with dbimpexp. It’s very helpful for moving contact lists in a DR situation or between deployments in different domains. The only constant is that the SIP address must be the same when exporting or importing, so there’s no dependency on the AD domain that the contact lists have been exported from or are being imported into.

What is Dbimpexp?

Essentially (as per Microsoft), it’s a utility for exporting, managing and importing XML files containing homed resource data from a Microsoft Lync Server 2010 SQL database. When they say homed resource data, they mean user contact lists and conference directories. Dbimpexp allows you to import or export users’ contact lists either on a per user basis or a bulk pool-wide basis.

Using dbimpexp.exe

Dbimpexp.exe is located in C:\Program Files\Common Files\Microsoft Lync Server 2010\Support on a Lync Front End Server. You’ll be running it on one of your Enterprise Edition Front End servers or your Standard Edition server to export or import users’ contact lists.

The commands are slightly different for Standard and Enterprise Edition Front Ends, so I’ll cover both in the following sections.

Exporting Contact Lists

So the first thing we want to do is get those contact lists out of one server/pool so we can have them stored to restore in the event of failure, or so we can import them into a new server where the SIP domain is the same. We can export the contact list of an individual or the contact lists of all users on the server/pool.

Standard Edition

For Lync Server Standard Edition, we run the following commands to export users’ contact lists.

For a Single User

This will export out an XML file of the contact list for the single user you specify:

dbimpexp.exe /user:<sip address> /hrxmlfile:”<path that you want to write the xml file to>”

So an example of this would be:
dbimpexp.exe /user:jmorris@justin-morris.net /hrxmlfile:”C:\justin.xml”

For all users homed on the server

This will export out an XML files of all users’ contact lists on the server/pool:

dbimpexp.exe /hrxmlfile:”<path that you want to write the xml file to>”

An example of this would be:
dbimpexp.exe /hrxmlfile:”C:\allusers.xml”

Enterprise Edition

For Lync Server Enterprise Edition, we need to specify the backend SQL instance to connect to that the rtc database resides on. Run the following commands to export users’ contact lists from your Enterprise Edition Front End pool:

For a Single User

This will export out an XML file of the contact list for the single user you specify:

dbimpexp.exe /user:<sip address> /sqlserver:”<SQL Server FQDN\instance name>” /hrxmlfile:”<path that you want to write the xml file to>”

So an example of this would be:
dbimpexp.exe /user:justin@justin-morris.net /sqlserver:”SQL01.justin-morris.net\LYNC” /hrxmlfile:”C:\justin.xml”

For all users homed on the pool

This will export out an XML files of all users’ contact lists on the server/pool:

dbimpexp.exe /sqlserver:”<SQL Server FQDN\instance name>” /hrxmlfile:”<path that you want to write the xml file to>”

So an example of this would be:
dbimpexp.exe /sqlserver:”SQL01.justin-morris.net\LYNC” /hrxmlfile:”C:\justin.xml”

Importing Contact Lists

So now that we’ve exported our contact lists from the source server/pool, we can take the XML files that dbimpexp has created and import the contact lists into the target server/pool.

The only difference between the export and import commands is that to import users, you need to specify the /import switch and the restore type switch of /restype:user (which is different from /restype:all which will attempt to import the conference directories also).

Standard Edition

For Lync Server Standard Edition, we run the following commands to import users’ contact lists.

For a Single User

This will import the contact list from the XML file for the single user you specify:

dbimpexp.exe /import /user:<sip address> /hrxmlfile:”<path where the xml file resides>” /restype:user

So an example of this would be:
dbimpexp.exe /import /user:jmorris@justin-morris.net /hrxmlfile:”C:\justin.xml” /restype:user

For all users homed on the server

This will import all users’ contact lists on the server/pool from the XML file you specify:

dbimpexp.exe /import /hrxmlfile:”<path where the xml file resides>” /restype:user

An example of this would be:
dbimpexp.exe /import /hrxmlfile:”C:\allusers.xml” /restype:user

Enterprise Edition

For Lync Server Enterprise Edition, we run the following commands to import users’ contact lists.

For a Single User

This will import the contact list from the XML file for the single user you specify:

dbimpexp.exe /import /user:<sip address> /sqlserver:”<SQL Server FQDN\instance name>” /hrxmlfile:”<path where the xml file resides>” /restype:user

So an example of this would be:
dbimpexp.exe /import /user:justin@justin-morris.net /sqlserver:”SQL01.justin-morris.net\LYNC” /hrxmlfile:”C:\justin.xml” /restype:user

For all users homed on the pool

This will import all users’ contact lists on the server/pool from the XML file you specify:

dbimpexp.exe /import /sqlserver:”<SQL Server FQDN\instance name>” /hrxmlfile:”<path where the xml file resides>” /restype:user

So an example of this would be:
dbimpexp.exe /sqlserver:”SQL01.justin-morris.net\LYNC” /hrxmlfile:”C:\allusers.xml” /restype:user

Conclusion

So as you can see, it’s a really good tool to have up your sleeve. It’s great for restoring data after you’ve had to do a force move of users or have just rebuilt a new server and have a working Front End ready to go.

If you’ve got any questions about how it works or when you’d need to use it, drop me a comment below.

Lync for Mac 2011 crashes on OSX Lion 10.7.2

I observed this problem recently on my own Mac, where Lync would crash with the latest patch applied (10.7.2) and it had me stumped. I’d updated to take advantage of iCloud with iOS5 on my iPhone, and it killed Lync on me. 🙁

Fortunately, Apple man of wizardry Mark Coughlan has posted an awesome fix for this problem over on his tech blog, which turns out to be caused by some certificate keychain in OSX. Check it out here.

Lync for Mac 2011 – A First Look

Two weeks ago I announced that the Lync for Mac 2011 client was coming and got super excited.  Today, Lync for Mac 2011 became available through Microsoft Volume Licensing and thus generally available to most.

I’ve downloaded and installed it on my MacBook Air running OSX Lion and can now provide a first look at the new Lync client experience for Mac.

What’s New

What isn’t new? This client looks almost completely different to the old Communicator for Mac second class citizen. It feels A LOT more like the Lync client on Windows.

Incoming call/IM notification

Firstly, the incoming call/IM toast looks totally different. We now have a much more “Lync” looking toast going on, with the user’s name and title listed, number they called on and a preview of the IM.

Lync for Mac 2011 - Incoming call toast

We can now also deflect incoming calls to voicemail, mobile, reply with IM or set to DND. Can I get a hell yeah?

Lync for Mac 2011 - Redirect call to mobile

Photos

We can see from the IM session below that photos are now visible in Lync. This is something I think that is a real perception changer for Lync. I know it was one of the first things I noticed about the new client back when I saw previews of Wave 14, so it’s great to see the same experience on Mac.

Lync for Mac 2011 - IM conversation

Unfortunately, we can’t specify an internet URL for our photo though. Only the default corporate photo from AD or no photo at all is configurable. And yes, I have checked the Photos option in my Client Policy on Lync. 😉

Lync for Mac 2011 - Photos in Preferences

Call Control

We now have call forwarding options available in Preferences. This experience is the same as that in the Lync client on Windows, and means Mac users have the same control over incoming calls as Windows users.

Lync for Mac 2011 - Call forwarding options

Online Meetings

This is where the big improvements have been made. The Lync for Mac 2011 client can now join and create online meetings created by Lync, no more Web Scheduler!

Meet Now

From the menu bar, I can now create a meeting on the fly and select Meet Now.

Scheduling an Online Meeting

Now directly from Outlook for Mac 2011, we can schedule online meetings. Be aware this requires the 14.1.3 update (Service Pack 1) for Office for Mac 2011.

From the New Meeting screen in Outlook, I click the Online Meeting button in the ribbon and select Create Online Meeting.

Outlook then populates the meeting request with the meeting details from Lync, ready to send to your participants:

Joining an Online Meeting

Once I click Join online meeting in the meeting invite, my default browser fires up and accesses the simple URL on the Lync Server:

After this, Lync for Mac 2011 opens and joins the online meeting. Yeah I know, I’m deep in thought in this screencap.

Lync for Mac 2011 - Group ConversationI can then do things like share my desktop, and I can see the stage that shows me what content is currently being shared. Click the image to see it at a larger size.

Lync for Mac 2011 - Stage

Pretty sweet huh?

What’s still missing

Even for all the improvements, there are still unfortunately a few things that aren’t in Lync for Mac 2011:

  • Can’t tag a contact for status change alerts.
  • No feeds tab or conversation history tab.
  • No ability to create a team-call group.
  • Can’t specify an internet URL for your photo, as mentioned above.
  • Can’t save conversations to Conversation History folder in Outlook.
  • Still no streamlined USB audio device support, however my belief is that this is a Mac OSX limitation.

Improved Experience

This is just a quick first look at the new Mac client, but as you can see Microsoft have made some huge improvements here over the old Communicator for Mac that was really just a skinned Mac Messenger. It looks and feels more like Lync, and the meeting join experience is dead on the same now. Great to see an on-par client experience across platforms now.

How does Lync 2010 use Exchange calendar information?

I’ve had a few questions come up lately around when Lync 2010 polls Exchange for free/busy information and how/when presence state is updated based on your calendar. I did a bit of digging into it and think I’ve worked a few things out that make the whole situation a bit clearer.

There are two things to consider here. We need to look at how often Lync polls Exchange for the free/busy information, and then how often your calendar state is published to your Lync presence i.e. you change from Available to In a Meeting based on the free/busy data that was retrieved from Exchange.

How is it controlled?

Everything we need to look at here is defined in a Lync Client Policy and there are two parameters that you need to specify interval durations for – either WebServicePollInterval (if you’re using Exchange Server 2007/2010) or MAPIPollInterval (if you’re using Exchange Server 2003) and CalendarStatePublicationInterval. I’ll go into more detail on each of these below.

Lync determines when to change your presence from for example, Available to In a Meeting with this data. This means that if you create an appointment in Outlook in-between when Lync polls Exchange and when Lync applies your calendar state to presence, this won’t be reflected in Lync until the polling interval lapses and Lync retrieve the Free/Busy info from Exchange again.

Retrieving Calendar Data from Exchange

So firstly, we need to look at how calendar data (free/busy information) is retrieved from Exchange Server by Lync.

Exchange Server 2003

If you’re (still) using Exchange Server 2003, Lync will poll the server via a MAPI RPC call for free/busy information. This is controlled in the Lync Client Policy using the parameter MAPIPollInterval.

The default is 30 minutes but this can be changed to anything from 5 minutes to 480 minutes (5 hours). So to set it to 5 minutes, the cmdlet would be Set-CsClientPolicy -MAPIPollInterval 00:05:00.

Exchange Server 2007/2010

Update 28th Jan 2013: Amended to explain that Lync connects to the Exchange Autodiscover service first before being directed to the EWS URL, thanks Marcin Swiatelski. 🙂

For those using Exchange Server 2007 or 2010, Lync will be connecting to your Exchange Autodiscover Service URL and then onto your Web Services URL for free/busy information rather than the local MAPI profile in Outlook.

It builds this Autodiscover URL based on your SIP address, and not by anything you configure in Exchange or from the AD Service Connection Point. So if my SIP address is me@justin-morris.net, the two URLs Lync will attempt to connect on will either be:

https://autodiscover.justin-morris.net/autodiscover/autodiscover.xml or
https://justin-morris.net/autodiscover/autodiscover.xml.

For Lync to connect to the Exchange Autodiscover service, you need one of these URLs to be accessible.

Typically the autodiscover.sipdomain.com option is the most commonly deployed, as this compliments what is already usually deployed for Outlook 2010 to work.

Once Lync has connected to the Exchange Autodiscover service, it will receive EWS URLs to connect to e.g. https://autodiscover.justin-morris.net/EWS/Exchange.asmx or https://justin-morris.net/EWS/Exchange.asmx

The interval in which Lync connects to EWS to poll for free/busy information is controlled in the Client Policy using the parameter WebServicePollInterval. The default is 30 minutes but this can be changed to anything from 5 minutes to 480 minutes (5 hours). So to set it to 5 minutes, the cmdlet would be Set-CsClientPolicy -WebServicePollInterval 00:05:00.

Publishing Calendar Data to Presence

So now once we’ve retrieved that calendar data from Exchange, Lync needs to actually apply it to your presence, and how often this occurs is controlled by the CalendarStatePublicationInterval parameter in the Lync Client Policy.

Unlike the MAPIPollInterval and WebServicePollInterval parameters, the CalendarStatePublicationInterval parameter must be set in number of seconds.
So to set it to 5 minutes, the cmdlet would be Set-CsClientPolicy -CalendarStatePublicationInterval 300. 

Polling and Publication

My understanding from perusing TechNet library articles is that there is a difference between Polling and Publication of calendar information in the Lync client.

I could have interpreted this incorrectly, but I’m pretty sure this is the way calendar information is handled by Lync. If anyone can shed additional light, please let me know in the comments.

TechNet Library References:

Set-CsClientPolicy
http://technet.microsoft.com/en-us/library/gg398300.aspx

Migrating User Settings to Lync Server 2010
http://technet.microsoft.com/en-us/library/gg398814.aspx