There is a call for
You. Just dial 209 to
Answer. Call parking.
You know, the first time he heard that call parking was being added to Microsoft Lync Server 2010, the author of today's haiku looked at the person who relayed this news to him and said, "Huh?"
Now, the author didn't react this way because he was opposed to call parking; instead, he reacted that way because he didn't have the slightest idea what call parking even was. Except that, in one of those weird twists of fate that make life so interesting, it turned out that he knew exactly what call parking was; he had just never heard the term call parking before. How could someone who writes Lync Server PowerShell haikus know something about a technology like call parking? Well, for one thing, whenever he goes to the grocery store he invariably hears announcements broadcast over the PA system, broadcasts like "Bakery, dial 209" or "Produce, dial 208."
What are those announcements about? Well, those announcements get broadcast any time a caller has phoned the grocery store and asked to speak to, say, someone in the bakery department. Whoever answers the phone has no idea where that bakery person could be: they could be in the bakery, baking; they could be on the floor, stocking shelves; they could be in the lunchroom, eating lunch. Therefore, instead of transferring the call to a specific phone, the call is "parked;" in effect, this means that the call is transferred to an unused extension (call park number) and immediately placed on hold. All the baker has to do in order to answer the call is pick up any phone anywhere in the store and dial the number (in this case 209).
And yes, you're right: call parking is a pretty cool technology. But, then again, everyone knows that.
In Lync Server, numbers are reserved for call parking by placing those numbers into a "call park orbit" (which is just a fancy way of saying that a specific set of numbers is to be used for parking calls). In turn, call park orbits can be managed by using the aptly-named CsCallParkOrbit cmdlets: Get-CsCallParkOrbit; New-CsCallParkOrbit; Remove-CsCallParkOrbit; and Set-CsCallParkOrbit.
So how do you actually create a call park orbit? We're glad you asked that question; creating a call park orbit is as easy as running a command like this one:
New-CsCallParkOrbit -Identity "Redmond" -NumberRangeStart 100 -NumberRangeEnd 105 -CallParkService ApplicationServer:pool0.litwareinc.com
So what's going on with this command? Well, what's going on in that command is that we're creating a call park orbit (with the globally-unique name Redmond) that encompasses call park numbers 100, 101, 102, 103, 104, and 105. To assign those numbers to the call park orbit we set the value of the NumberRangeStart parameter to 100 and the value of the NumberRangeEnd parameter to 105; that effectively selects all the numbers between 100 and 105, inclusive. We also tack on the CallParkService parameter, which is used to specify the instance of the Application Server service to be associated with this call park orbit. (All call park orbits must be associated with an instance of the Application Server service.)
And that's pretty much all we have to do. If we want to verify that the Redmond call park orbit was created, and that the call park numbers 100 through 105 have been assigned to that orbit, well, that's something we can do by calling the Get-CsCallParkOrbit cmdlet:
Or, to retrieve just the information for the Redmond call park orbit:
Get-CsCallParkOrbit -Identity Redmond
And there you have it. Now the next time you're in the grocery store and you hear an announcement like "Bakery, dial 209" over the PA system, you can turn to the shopper nearest you and say, "Obviously they're using call parking." And your fellow shopper will no doubt say, "Huh?" But hey: as long as you know what call parking is, that's all that really matters, right?