The elephant missed

His plane. He forgot his trunk

Configuration.

 

Commentary

 

Now that's a sobering thought, isn't it? After all, elephants never forget anything. If an elephant can forget his trunk configuration, what does that mean to you, the Microsoft Lync Server 2010 administrator?

 

Of course, there's a chance that you've already forgotten about your trunk configuration. With that in mind, let's quickly refresh your memory. As you may or may not know, when telephones were first invented you could only talk to someone whose telephone was directly wired to your telephone. Remember those tin can telephones you made as a kid, the ones where you tied two tin cans together with a piece of string and then tried talking through them? Well, that's pretty much what the first telephones were like. If you had 10 people you regularly conversed with, you'd have to have 10 telephones, each phone connected to a different person. You ever hear anybody talk about "the good old days" when it comes to telephones? The fact that telephones had to be hard-wired to one another is one reason you don't.

 

As you might expect, it didn't take long for people to realize, "You know, this might not be the ideal way to put together a phone system." As a result, phone companies soon developed telephone exchanges and switchboards. You know how in old movies people would pick up the phone, speak to an operator, and ask the operator to connect them to someone? That was a telephone exchange, and it was an improvement: after all, now you can talk to multiple people even though you only had one phone. However, there was still one limitation: you could only talk to people on your telephone exchange.

 

Eventually, of course, phone companies figured out how to link telephone exchanges. The connection between two telephone exchanges was called a "trunk" because … well, because that's what they called it.

 

Note. In their defense, remember: this was a long time ago. They probably didn't have very many words back in those days.

 

So what does any of that have to do with Lync Server 2010 and, to be more specific, with Lync Server PowerShell? Well, as it turns out, trunks and trunk configuration settings are important in Lync Server:  trunk configuration settings define the relationship and capabilities between your Mediation Server and the public switched telephone network (PSTN) gateway, IP-public branch exchange (PBX), or Session Border Controller (SBC) at the service provider.

 

Note. What exactly is a Session Border Controller? We're glad you asked that: "Session border controllers are deployed in Voice over Internet Protocol (VoIP) networks to manage signaling as well as the media streams involved in setting up, conducting, and terminating telephone calls or other media communications."

 

Didn't think we'd get that one, did you? But don't feel bad; we didn't think we'd get it, either.

 

As for the PowerShell connection, well, Lync Server ships with a full set of cmdlets devoted to managing, creating, deleting, modifying, and testing trunk configuration settings: Get-CsTrunkConfiguration; New-CsTrunkConfiguration; Remove-CsTrunkConfiguration; Set-CsTrunkConfiguration; and Test-CsTrunkConfiguration. For example, you say you want to require the Secure Real-Time Transport Protocol in order to protect media traffic between your Mediation Server and your PSTN gateway? OK; that can be done using a command as simple as this:

 

Set-CsTrunkConfiguration –Identity site:Redmond –SRTPMode Required

 

Want to run a quick test to make sure that trunking configuration for the Redmond site is working as expected? OK:

 

$tc = Get-CsTrunkConfiguration -Identity Site:Redmond

Test-CsTrunkConfiguration -DialedNumber 4255551212 -TrunkConfiguration $tc

 

That's really all there is to it.

 

The moral of the story is this: when it comes to Lync Server administration, don't be an elephant. Instead, take advantage of the CsTrunkConfiguration cmdlets.

 

You know, like a giraffe would.

 

References

 

Get-CsTrunkConfiguration

New-CsTrunkConfiguration

Remove-CsTrunkConfiguration

Set-CsTrunkConfiguration

Test-CsTrunkConfiguration