Haiku # 31

Nice try, Fuzzy. But

Let's see a haiku with this:

CsAnnouncement

If you're a fan of the comic strip Get Fuzzy then you no doubt noticed a very disturbing trend in last week's strips: Darby Conley, author of the strip, suddenly had his characters writing haikus. For example, here's a haiku written by Satchel the dog:

My friend Bucky is

Mad, mad, mad, mad, mad, mad. Deep

Down he wants my hugs.

And another by Bucky the cat:

Look at me wrong I

Will pop you in the nose with

My paw pow paw pow.

Now, there's nothing wrong with these haikus; in fact, we sort of wish we'd come up with the part about "My paw pow paw pow":

You don't like LS

Haikus? Then we'll pop you with

Our paw pow paw pow.

No, what we find … interesting … is that we start writing Lync Server haikus and then, just a few weeks later, haikus mysteriously start popping up in the comic strip Get Fuzzy. Coincidence? Well, that's not really for us to decide, is it? Although it does make you wonder ….

But don't worry, Get Fuzzy fans: we have no plans to sue, at least not at the moment. In fact, we actually welcome the competition; it helps keep us on our toes. (And you know what they say: imitation is the sincerest form of flattery.) As near as we can tell, everyone has probably stopped reading Get Fuzzy and started reading the Microsoft Lync Server PowerShell blog instead. We assume that Darby Conley just figured, "Hey, if you can't beat 'em, join 'em." Welcome aboard, guys!

Besides, we're not all that impressed with the haikus found in Get Fuzzy. Not that they aren't nice little haikus, especially considering the fact that they were written by a neurotic dog and a psychotic cat. Nevertheless, we haven't seen a single reference to Lync Server PowerShell in any of the Get Fuzzy haikus. And as every student of Japanese poetry knows, no one has ever been taken seriously as a haiku writer until they started writing about Lync Server PowerShell. Tell you what: let's see Darby Conley find a way to work Get-CsCertificate into a haiku. Then we'll be impressed.

Note. Actually, we will be impressed: we've been trying for months now to figure out how to work Get-CsCertificate into a haiku.

So what about CsAnnouncement, the Lync Server PowerShell noun we did figure out how to work into a haiku? (In case you're wondering, CsAnnouncement corresponds to the following Lync Server cmdlets: Get-CsAnnouncement, New-CsAnnouncement, Remove-CsAnnouncement, and Set-CsAnnouncement.) Well, as you know, any large organization is bound to have at least some phone numbers that are valid numbers but aren't currently assigned to anyone. What happens if someone dials one of these unassigned numbers? Well, nothing, really: they'll likely get a busy signal or something, but they'll have no way of knowing that they're dialing a phone that isn't going to get answered any time soon.

Wait, check that: back in the old days they'd have no way of knowing that they were dialing a phone that wasn't going to get answered any time soon. With Microsoft Lync Server 2010, however, you can now take these unassigned numbers and turn them into, well, unassigned numbers. When a phone number has been officially designated as unassigned, that means you can have Lync Server take some sort of action any time that number gets dialed. For example, you can have the call answered, play an announcement ("The number you have dialed is no longer in service. Please hold while we transfer you to a receptionist."), then have the call transferred. All in all a slightly better user experience that simply hearing a busy signal.

As you might have guessed, you use the CsAnnouncement cmdlets to manage the announcements that are played any time someone calls an unassigned number. Lync Server gives you two choices when it comes to announcements: you can have the system "read" a text-to-speech message or you can play a pre-recorded audio file (which must be imported using the Import-CsAnnouncementFile cmdlet). It's entirely up to you.

Like most things involving Lync Server PowerShell, announcements are pretty easy to work with. The main thing to keep in mind is that you are limited to a single announcement per instance of the Application Server service. When you create an unassigned number one of the things you need to do is specify the instance of the Application Server that number will be associated with. In turn, that's how you know which announcement will be played when someone calls a given unassigned number: the system will play the announcement that has been assigned to that instance of the Application Server service.

Ah, good question: how do you assign announcements to an instance of the Application Server service? Well, if you want to use a text-to-speech announcement you use a command similar to this:

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Generic Announcement" -TextToSpeechPrompt "The number you have dialed is no longer in service. Please hold while we transfer you to a receptionist." -Language "en-US"

Pretty simple, huh? And what if you want to play a pre-recorded audio file instead? No problem. After the file has been imported (.WAV or WMA format only), you can assign the file to an Application Server by using a command like this one:

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Generic Announcement" -AudioFilePrompt "GenericMessage.wav"

And here’s something really cool. With this command, the pre-recorded announcement is played and then the call is transferred to the user with the SIP address receptionist@litwareinc.com. That's done by assigning the appropriate SIP address to the TargetUri parameter:

New-CsAnnouncement -Identity ApplicationServer:redmond.litwareinc.com -Name "Generic Announcement" -AudioFilePrompt "GenericMessage.wav" –TargetUri "sip:receptionist@litwareinc.com"

Or if you'd just like to see which announcements have been configured for use in your organization, well, all that takes is a simple little command like this one:

Get-CsAnnouncement

And there you have it. Just remember, if you're looking for haikus written by dogs and cats, well, Get Fuzzy is as good a choice as any. But if you're looking for haikus that give you the inside scoop on Lync Server PowerShell cmdlets, well, there's only one place to turn.

Note. Well, actually, we were referring to the Lync Server PowerShell blog. But we're sure that Beetle Bailey does have some good inside information on Lync Server PowerShell cmdlets, too.