Archive for the 'Clients' Category

06 FebDial 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.

09 JanWhat 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).

07 NovExporting 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.

17 OctLync 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.

20 SepLync 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.

13 SepHow 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

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

It builds this 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/EWS/Exchange.asmx or
https://justin-morris.net/EWS/Exchange.asmx.

For Lync to connect to Exchange Web Services, 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.

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

08 SepLync for Mac 2011 has gone RTM

So, speak of the devil. Just saw a tweet (thanks @akipekka and @JohnACook) linking to the Office to Mac blog announcing that the Lync for Mac client has released to manufacturing. Excited much?

There’s a video in the link above, and it looks like the UI has been polished up a fair bit. It looks much less like Mac Messenger and a lot more like the Lync client on Windows. From the screenshot below, all the conferencing and content sharing features of the unified client are there. It’ll work both with Lync Server 2010 on premises and Office 365. Can’t wait to get my hands on it in October.

Lync for Mac -Sharing-Window

Image credit: Office for Mac blog.

More info here on the official Office for Mac site also.

04 SepFrom the UC Product Group – What devices have been certified for Mac?

On Friday, Microsoft published a post on the UCG Team Blog about Lync and Communicator for Mac. If you’ve read a few of my posts, you’ll know that I use a MacBook Air and that this is a subject I’ve been vocal about in the past, so this post piqued my interest.

There’s a few things in the post written by Maura Hameroff that I think deserve to be highlighted:

  • That the Lync for Mac 2011 client is “upcoming” (hopefully H1 2012 (am I being too optimistic to say Q1?)).
  • That there are shortcomings in the user experience with the device when used with Communicator for Mac, specifically around using the call control buttons on the device.
  • A lot of detail is provided to explain how to use the qualified devices today on Mac.
  • It’s suggested that an alternative solution is to use an IP phone with your Mac. It should be known that the phone can’t be tethered to the machine using the USB cable for click-to-call functionality with Communicator for Mac.

Great to see some information coming direct from Microsoft regarding the Mac experience. This kind of authoritative content enables organisations to make better decisions for their Mac users.
Hope to see some more news and improvements in the experience on Macs once Lync for Mac 2011 is released. Make sure you read the rest of the article over here.

27 JulCommunicator for Mac 2011 13.1.2 Update Available

As a follow up to my last blog post about issues with OSX Lion, I’m happy to bring news that Microsoft have now come out with a 13.1.2 update for Communicator for Mac 2011 to resolve the issues (and give you desktop sharing back!).

If you’re running the RTM version (13.0.0.) to get around the issues with OSX Lion, you’ll need to update to at least 13.1.0 to install this update. Otherwise the 13.1.2 update will not install. You can do this by following these steps:

  1. With Communicator open, click Help and then Check for Updates from the menu bar.
  2. When prompted, click Check for Updates.
  3. Once AutoUpdate has checked for updates, click Install when prompted to install the 13.1.1 update.
  4. Follow the Install Wizard to install the update.
Next, download the package for the update from Microsoft and you’ll be able to successfully install the update.

22 JulWorkaround: Communicator for Mac crashes on OSX Lion

Apple released Mac OSX Lion on Wednesday, their successor to Snow Leopard. I use a MacBook Air (late 2010) for work and play, so eagerly downloaded the 3 and something GB of new operating system overnight, ready to upgrade on Thursday morning before work.

I kicked it off and all was fine and dandy until I noticed two things. One, my Windows 7 VM wouldn’t fire up and I had to reinstall Parallels Desktop, and two, Communicator for Mac wouldn’t work properly. It would sign in ok, but would crash as soon you tried to initiate any kind of session – IM, audio/video, desktop sharing etc. You could open an IM with someone, but as soon as you entered text and pressed enter, it would crash.

Resolution

Thankfully, there’s a fix to this. My only option would have been to use Lync in my Windows 7 VM if I didn’t work it out. The culprit here is the Communicator for Mac 2011 13.1.1 update (that enabled desktop sharing). A simple reinstall of Office for Mac 2011 over the top won’t fix it because the update is still installed.

You’ll have to go to your Applications folder and trash Communicator for Mac 2011 completely like so:

Communicator for Mac OSX Lion

This way, Communicator is completely removed from your system. Now if you do the Office for Mac 2011 reinstall, it’ll install the RTM version (13.0.0), which works fine with OSX Lion. Only problem is you’ll have no desktop sharing.

Hopefully we’ll see a patch from Microsoft in the (very) near future to fix this incompatibility up.