Thursday, October 1, 2015

Lync/SFB Pickup Group

While we are in middle of Skype for Business deployment for one of our customers he asks us something he used to do in his Legacy PBX.

He told us that any phone set could pickup the call of another one phone ringing by just pressing his extension with specific prefix, As example if phone extension is 100 and another phone with extension 101 ringing he just press #101 then the call will be transferred to extension 100 and answered by it.

After some googling and for my own surprise we found that Microsoft Lync/S4B has feature called "Group Call Pickup" that enables Enterprise Voice users to pick up calls that are ringing for another user by dialing a call pickup group number, below are the steps we used to configure it at customer:

Configure Group Call Pickup number ranges

The first step is to configure the Group Call Pickup range, It is similar to Call Park range definition, but you should know that you must use Lync Server Management Shell to create, and view Group Call Pickup, Managing Group Call Pickup number ranges are not available in Lync Server Control Panel.

Our customer has the range of 1xx to 6xx and he used to press 8 before the ringing extension to pickup the call so we defined the range as below command
"New-CsCallParkOrbit -Identity CallPickUp -NumberRangeStart 8100 -NumberRangeEnd 8699 -CallParkService <service ID of the Application service> -Type GroupPickup"

To check that it is configured correctly we run "Get-CsCallParkOrbit" and the result was as below:
Identity           : CallPickUp
NumberRangeStart   : 8100
NumberRangeEnd     : 8699
CallParkServiceId  : ApplicationServer:<pool FQDN>
CallParkServerFqdn : <pool FQDN>
Type               : GroupPickup

To get the service id you could run"Get-CsService -ApplicationServer"

Assign Group Call Pickup numbers to users

We use SEFAUtil to assign Call Pickup numbers to each user for more details on how to install it check below this

First we check it with Pilot user with running below command
"SEFAUtil.exe <pilot user sip uri> /server:<lync pool> /enablegrouppickup:8299"

To check that it is configured correctly we run "SEFAUtil.exe <pilot user sip uri> /server:<lync pool>

Then we make a call to 299 and while it ringing from third phone we press 8299 and call transferred to this phone with announcement to the caller that the call is answered by another person which was additional feature customer was happy with it.

Now we tested it but we need to deploy on all the users so will go to scripting :) we create CSV file with "SIP,Number" as "sip uri, pickup number" and we write below sript

$pickup=import-csv "C:\SEFAUtil\CallPickup_numbers_full.csv"
foreach ($pi in $pickup)
C:\SEFAUtil\SEFAUtil.exe $pi.SIP / /enablegrouppickup:$number

And everything is working good now.

At last i would like to thank my colueage Ahmed Mostafa who helped me on this issue.