Wednesday, 30 October 2013

Call pick-up in Lync is finally here

Those of you that read my post How to explain the lack of Call Pick-up in Lync as a benefit know that I feel that the lack of call pick-up has good and bad points.  I still stand by my explanation that team call groups are a benefit.  It shows that Microsoft was thinking about the user when they came up with the feature.  After all, everyone has forwarding, but to enable a way for the user to put together a group of people they trust to answer their phone calls is ground breaking.

All of that said, however, no matter how you explain it customers still want call pick-up.  Now Lync has both.  Microsoft added call pick-up in the February Cumulative Update.  Now that I've had a chance to configure it and play with it I though I would share my experience.

Firstly I should explain that you can't just configure call pick-up in the Lync Server Control Panel.  Nor can you configure it in Lync Server Management Shell.  So just how does one configure call pick-up (I hear you ask)?

The answer is SEFAUtil.  To deploy and manage Group Call Pickup, you need to use the SEFAUtil resource kit tool. The tool is part of the Lync Server 2013 resource kit tools. Before you can install SEFAUtil, you must have a trusted application pool in your topology, specify SEFAUtil as a trusted application, and enable the topology.

Make sure you have the Lync 2013 Reskit installed on the server or desktop you want to administer call pick-up.  With Lync 2013 you can now add the Front End as a Trusted Application Pool.  So that's what I'm doing in this example.  I'm obviously using the Lync Server Management Shell for these.

Add a Trusted Application Pool

New-CsTrustedApplicationPool -id "<FEPool.domain.local>" -Registrar "<FEPool.domain.local>" -site Site:site

Add a Trusted Application, in this case SEFAUtil

New-CsTrustedApplication -ApplicationId sefautil -TrustedApplicationPoolFqdn "<FEPool.domain.local>" -Port 7595
Note: choose a port that is unused on the Front End.

Then Enable the Topology 

Now you should test SEFAUtil and make sure it works.  Make sure to run CMD as Administrator or you won't get any output.
c:\Program Files\Microsoft Lync Server 2013\ResKit>SEFAUtil.exe /server:"<FEPool.domain.local>" 
The output should look similar to this.
User Aor: Display Name: Firstname LastnameUM Enabled: TrueSimulring enabled: FalseUser Ring time: 00:00:20Call Forward No Answer to: voicemail
If you don't get any output, recheck your settings.

For some reason, Call pick-up is built upon the call park orbit feature of Lync.  So to start with you must create a call park orbit with the "Type" set to GroupPickup.

Now add a new call park orbit.  Again, using Lync Server Management Shell.
New-CsCallParkOrbit -Identity "Pickup" -Type GroupPickup -NumberRangeStart "*300" -NumberRangeEnd "*310" -CallParkService "<FEPool.domain.local>"
Now go back to the Command Shell (CMD) and add a user to a GroupPickup orbit.

SEFAUtil.exe /enablegrouppickup:"*300" /server:"<FEPool.domain.local>"
Now run SEFAUtil against the user account you added to the group and you should see the following output.
User Aor:
Display Name: Firstname Lastname
UM Enabled: True
Simulring enabled: False
User Ring time: 00:00:20
Call Forward No Answer to: voicemail
Group Pickup Orbit: sip:*300;;user=phone 
All pretty simple I think you'll agree.  But what happens when you want to manage multiple users?  You can run the command one at a time, or build a big script to do it with one user per line.  But now there's a better way.

James Cussen, a Lync Architect in Australia, has developed a GUI just using Powershell.  He calls it the Lync 2013 Call Pickup Group Manager and details can be found here.

Download the PS1 from here.  Save Lync2013CallPickupManager1.00.ps1 to C:\Program Files\Microsoft Lync Server 2013\ResKit.  Run Lync Server Command Shell as Administrator or it won't execute the command.
cd\cd "C:\Program Files\Microsoft Lync Server 2013\ResKit"c:\Program Files\Microsoft Lync Server 2013\ResKit>.\Lync2013CallPickupManager1.00.ps1
Below is what it looks like.

It is really straightforward to use.

Features of Lync 2013 Call Pickup Manager:

  • View all call pick-up group configuration (Orbits, Groups and Users) in one simple interface.
  • Call Pick-up Group Manager discovers call pick-up configuration information directly from the Lync database, to avoid having to poll every user individually using SEFAUtil. This makes configuration discovery super fast!
  • Easy configuration of Call Pick-up Orbits.
  • Group-centric configuration of groups. i.e. you attach users to a group, rather than groups to a user like the SEFAUtil tool would have you do.
  • Multi-selectable user list boxes for adding or removing multiple users at once.

I hope this has been useful.  Any comments please let me know.