Haiku #146

Haiku for sale: No

Money down, zero interest.

Service Provider.

 

Here at the Lync Server PowerShell blog we like to think of ourselves as being as much artists as we are technical writers.

 

Note. Of course, based on our skills at technical writing, we might as well consider ourselves being as much tightrope walkers, brain surgeons, or Russian ballet dancers as we are technical writers. But that's beside the point.

 

At any rate, being artists ourselves, we were fascinated to learn about a recent work of art by American artist Lawrence Weiner. At the Art Basel Fair in Basel, Switzerland, Weiner has painted the following on the showroom floor:

 

2 METAL BALLS + 2 METAL RINGS

---------------------------------------

[SET DOWN IN THE GROOVE]

 

These words represent an idea Weiner had for a sculpture, and they can be yours for just $160,000.

 

You know, that's what we said: that would be a steal at double the price!

 

So what exactly do you get for that $160,000? Well, you don't get a sculpture; Weiner had an idea for a sculpture, but he never actually got around to sculpting it. And you don't get to, say, cut up the floorboards and keep the words he painted on the floor. Instead, you get something even better: you get the "immaterial idea" behind the sculpture. That means you can "write [the] phrase in a room, or come up with a sculpture you think it describes." According to Weiner's art dealer, "When you take ownership, you can realize it any way you want." And for just $160,000. You'd be crazy not to buy it!

 

As you might expect, this got us to thinking. After all, every day we write a Lync Server PowerShell haiku but, to be honest, that's really our haiku; no one else has ownership of that haiku. Therefore, today we decided to do things a little different. We've come up with an immaterial idea: a haiku about the CsLisServiceProvider cmdlets (Get-CsLisServiceProvider, Remove-CsLisServiceProvider, and Set-CsLisServiceProvider). For a limited time only, we are offering that immaterial idea for just $75,000; that's less than half of what you would typically pay for an immaterial idea! After you buy the idea, you can write your haiku in a room, you can turn it into a sculpture, you can realize it any way you want. Do we care what you do with it? Of course not; after all, now it's your haiku.

 

And, besides, we'll probably be sitting on the beach in Tahiti anyway.

 

At any rate, give us call; no reasonable offer refused.

 

Note. In fact, we might even consider some unreasonable offers. You never know until you call, right?

 

In case you aren't sure why you'd even want a haiku about the CsLisServiceProvider cmdlets, we should probably take a moment to explain what a LIS (Location Information Service) service provider even is. As you know, Microsoft Lync Server 2010 introduced the Enhanced 9-11 (E9-1-1) service, a service that enables users to make emergency 9-1-1 calls, have those calls routed to the appropriate Public Safety Answering Point (PSAP), and ensure that the operators at the PSAP are able to retrieve the caller's location.

 

So how does that all work? Well, in a nutshell, when an Enterprise Voice user makes an emergency call, that call is routed to an E9-1-1 networking provider. That provider then uses location information compiled by an organization to figure out exactly where the call is coming from (even if it's made from a laptop computer or a cell phone) and then transfer that call to the nearest PSAP. (The PSAP represents the 9-1-1 operators, and is responsible for directing the call to the police, the fire department, or other emergency responders.)

 

The moral of the story is this: if you want to use the E9-1-1 service, one thing you'll need to do is contract with an E9-1-1 service provider. And after you've made that contract, you'll need to use the Set-CsLisServiceProvider cmdlet to configure Lync Server to work with that provider.

 

We had a feeling someone would ask that: how do you configure Lync Server to work with an E9-1-1 service provider? Here's one example:

 

$p = Read-Host –AsSecureString

 

Set-CsLisServiceProvider -ServiceProviderName E911Provider -ValidationServiceUrl https://www.911contoso.com/validation/ -CertFileName C:\MS-Contoso-Cert.pfx -Password $p

 

We've done two things. First, the service provider will give you a password that’s required to access the system. In our first command, we've simply used the Read-Host cmdlet (and the AsSecureString parameter) to type in that password and store it in a variable named $p.

 

In the second command, we used the Set-CsLisServiceProvider cmdlet to convey service provider information to Lync Server.

 

Note. Weshould probably point out that there is no New-CsLisServiceProvider cmdlet; instead, there's just Set-CsLisServiceProvider. But that's fine: if you run Set-CsLisServiceProvider and no service provider can be found, the cmdlet will automatically create that provider for you.

 

As you can see, we also needed to specify the name of the provider; the validation Web service URL for that provider; the location of the certificate used for authentication with the provider; and the password we stored in the variable $p. Where do all these things, like the certificate file and the validation service URL, come from? You got it: the service provider will give you all that information.

 

And that's it. You can use the Get-CsLisServiceProvider cmdlet to retrieve information about your service provider, and the Remove-CsLisServiceProvider cmdlet to delete that provider. Note that you can have only one service provider for each E9-1-1 implementation. Note, too that the Set-CsLisServiceProvider cmdlet will fail if it cannot resolve all the information you provided. For example, suppose you can't remember the password used by the service provider. If you try to run the command without including a password you'll get an error message similar to this:

 

Set-CsLisServiceProvider : Cannot validate argument on parameter 'Password'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again.

 

And if you try to use a bogus password, assuming you can bypass the cmdlet requirements, you'll get an error message like this:

 

Set-CsLisServiceProvider : The specified network password is not correct.

 

And so on and so on. The point is, don't even bother running Set-CsLisServiceProvider until you have all the information needed to configure the system.

 

That should give you the lowdown on the CsLisServiceProvider cmdlets. As for our immaterial idea, we just brought in another box from the warehouse, but they're definitely going fast. Which means you better call now, before they're all gone. Operators are standing by.

 

See you tomorrow.