Haiku #105

Wealth and happiness

Are within your grasp. Thank you,

Call Park cmdlets.


Dear friend. Two months ago, I hit rock bottom: my health was poor, I was out of work, and I was $50,000 in debt. And then I received an email that changed my life. This email told me that if I ran each of the CsCpsConfiguration cmdlets, and got 10 of my closest and dearest friends to run each of the CsCpsConfiguration cmdlets, then all of my problems would be solved.


That was just two months ago. Have all my problems been solved? Well, not really: my health has gotten worse, I still don't have a job, and now I'm $60,000 in debt. On the other hand, now I do know all about the CsCpsConfiguration cmdlets: Get-CsCpsConfiguration, New-CsCpsConfiguration, Remove-CsCpsConfiguration, and Set-CsCpsConfiguration. Those cmdlets have definitely changed my life.


This is a tremendous opportunity, and please don't let it slip by. Don't break the chain! If you do not run the cmdlets, and do not get 10 of your friends to run the cmdlets, then something bad will happen to you. Or maybe something good will happen to you. Or, most likely, absolutely nothing will happen to you.


You have been warned!


The author of today's haiku is a bit old-fashioned, which means he has a soft spot in his heart for the classics; you know, things like chain letters. Chain letters have been around for a long time; in 1935, for example, the Send-a-Dime chain letter completely overwhelmed the Denver post office. In that chain letter, you were supposed to send a dime to 5 of your friends, and then, within no time at all, you would receive 15,625 dimes ($1,562.50). Did anyone actually get that much money? No.


Um, wait: we mean yes, yes they did get that money. So if everyone reading this article (both of you) just sends a dime to the author of today's haiku ….


Note. Please do not send a dime to the author of today's haiku; chain letters that require you to send money and then promise big rewards are illegal.


Besides, what's he supposed to do with a dime? Now, if you want to send a $20 bill, well ….


At any rate, the author of today's haiku found a chain letter in his Junk Mail folder today. It was kind of a dull chain letter – it only promised to bring him good luck, and did not threaten him with death or dismemberment should he break the chain – but it was still kind of nice to see that chain letters are still around. The good things just never go out of style do they?


Note. In case you're wondering, yes, the author of today's haiku typically does look at the mail in his Junk Mail folder. It's usually far more interesting than the mail in his Inbox.


As near as we can tell, the CsCpsConfiguration cmdlets never go out of style, either. (Although this might be just a rumor, we've heard that Beyonce runs each of the CsCpsConfiguration cmdlets every night before going to bed.) And why not? After all, the CsCpsConfiguration cmdlets enable you to manage the Call Park service, and who wouldn't want to do that every night before going to bed?


Although how you could get to sleep after all that excitement is a mystery to us.


If you aren't familiar with the Call Park service, well, it's a new feature introduced in Microsoft Lync Server 2010 that lets you "park" a call. What the heck does that mean? Well, if you've ever been in a grocery store you might have heard an announcement like this: "Produce department, you have a call waiting on 209." That's a call that has been "parked." Someone called the grocery store, and rather than trying to transfer that call to a particular extension or a particular individual, the call is parked: it's placed on hold (in a Call Park orbit) and anyone in the Produce department can answer that call just by picking up a phone (any phone) and dialing 209. It's a pretty cool feature, and it's now available to anyone running Lync Server and Enterprise Voice.


The CsCpsConfiguration cmdlets provide a way for you to decide exactly what will happen any time a call is parked; for example, you can determine how long the call will remain parked before it "falls back" to the phone from which it was parked in the first place. In other words, suppose Ken Myer answers the phone and parks the call. After X number of seconds (and, thanks to the CsCpsConfiguration cmdlets, you get to decide how many seconds X number of seconds actually is), the call will be taken out of the call park orbit and Ken's phone will ring again. And what if Ken doesn't answer that call? No problem: you can also decide where the call will be transferred after Ken's phone rings Y number of times.


Note. Yes, we know: X and Y does sound a bit like algebra, doesn't it? But don't worry: it's not.


So how do you do all that? Well, to begin with, we should note that Call Park configuration settings can be assigned at the global scope and also at the site scope. If you want to change the settings for the global scope, well, all you have to do is call the Set-CsCpsConfiguration cmdlet. For example:


Set-CsCpsConfiguration –Identity global –CallPickupTimeoutThreshold "00:00:15" –MaxCallPickupAttempts 3 –OnTimeoutUri "sip:receptionist@litwareinc.com"


So what does that command actually do? Well, the CallPickupTimeoutThreshold configures the amount of time the call remains parked. In this case, we've set the timeout value to 15 seconds: that’s 00 hours : 00 minutes : 15 seconds. The timeout threshold can be set to any value between 10 seconds (00:00:10) and 10 minutes (00:10:00), inclusive.


Note. Yes, you do need to include 00 hours when specifying the timeout threshold. You might think that this command will set the threshold to 10 minutes:


–CallPickupTimeoutThreshold "10:00"


It won't. Instead, Lync Server will think you're trying to set the timeout period to 10 hours, and your command will fail.


The MaxCallPickupAttempts parameter is used when a call is not answered and thus falls out of the call park orbit: it tells you how many times the phone originally used to park the call will ring. (In this case, 3 times.) Meanwhile, the OnTimeoutUri specifies where the call will be transferred after that phone has rung three times: it's simply the SIP address where the call should be transferred.


Note. What if you don't specify a timeout URI? In that case, the call will simply be disconnected. If you decide that you don't want a timeout URI, just set that value to Null:


-OnTimeoutUri $Null


You can also enable and disable music on hold. For more information, see haiku number 43.


That's how you modify the global settings. How do you modify the site settings? The same way; the only difference is that first you have to create those site settings. For example, here's a command that creates a new collection of Call Park configuration settings for the Redmond site:


New-CsCpsConfiguration –Identity site:Redmond –CallPickupTimeoutThreshold "00:00:15" –MaxCallPickupAttempts 3 –OnTimeoutUri "sip:receptionist@litwareinc.com"


You say that you now regret creating a separate collection of settings for the Redmond site? That's OK; no bad luck will befall you. Just use the Remove-CsCpsConfiguration cmdlet to remove those settings:


Remove-CsCpsConfiguration –Identity site:Redmond


You can also run Remove-CsCpsConfiguration against the global settings; as is typically the case with Lync Server, however, those settings won't actually be removed. Instead, each property value will be reset to its default value. That means you'll get property values like these:













And there you have it: the CsCpsConfiguration cmdlets. Oh, and just to make sure there isn't any confusion, we need to reiterate that you don't have to run each of these cmdlets and then try to get 10 of your friends to run these cmdlets, too. If you don't do that, bad luck will not befall you. After all, the author of today's haiku didn't do that, and look how things have turned out for him.


Hmmm ….


Skip to main content