Haiku #177

Natural beauty?

True beauty comes from CS

Conferencing settings.


Well, we're back. (Oh, please don't say you didn't even know we were gone: that hurts.) The author of today's haiku has spent the past few days in Moab, Utah, and has spent most of that time hiking every hikeable trail in Arches National Park. That meant he's spent the past few days trudging through deep sand and clambering over narrow rock ledges, all in weather over 100 degrees, with no shade, no place to stop and rest, and no food or water other than what you were able to carry with you.


And yet still he found that to be better than working. Go figure, huh?


At any rate, if you've never been there, the author of today's haiku highly recommends that you take a trip to Arches someday. (Here are a whole bunch of reasons why you might want to do that.) And sure, you probably could go to Arches sometime other than in August; that's something to think about if traipsing through the desert as the temperature climbs to 104 degrees Fahrenheit doesn’t necessarily appeal to you. Would we call you a wimp if you went, say, in April, when the average temperature is way closer to 60 degrees than to 100 degrees Fahrenheit? You bet we would. But what difference should our opinion make? That's what we thought.


Handy Arches backpacking hint. If you bring chocolate chip granola bars with you, you might want to eat them first, before the sun gets too hot. Just a suggestion.


The one thing that the author of today's haiku learned while at Arches National Park is that the same questions keep popping up over and over again, number one being, "Where are the bathrooms?" And the answer being, "For the most part, there aren't any."


Note. Did we forget to mention the almost-total lack of bathrooms when we were encouraging you to visit Arches National Park? That's weird: we had intended to mention that right after we discussed rattlesnakes and mountain lions.


Other questions that popped up from time-to-time included: 1) How are the arches formed? (Typically through wind and water erosion); 2) Does the park really rest on a giant layer of sand? (Yes, sand left over from huge seas which once covered the area some 300 million years ago); and, 3) How can I specify the maximum values for such things as conferencing handouts or conference content grace periods?


Well, as the park rangers patiently explained over and over again, the answer to the last question is a little more involved than the answer to some of the other more-frequently asked questions. (How many restaurants and concession stands are there in the park? Zero.) But there is a short and snappy answer: by using conferencing configuration settings. And how do you manage conferencing configuration settings? You got it: by using the CsConferencingConfiguration cmdlets (Get-CsConferencingConfiguration, New-CsConferencingConfiguration, Remove-CsConferencingConfiguration, and Set-CsConferencingConfiguration).


So what exactly are conferencing configuration settings? Essentially, conferencing configuration settings provide a way for you to manage the server side of your online conferences; for example, you can use these settings to specify the ports used for such things as client audio, client video, and client file transfers. You say that's not what you want to do, that you actually want to manage what your users can do in a conference? Well, in that case, you want to use conferencing policies. For more information on conferencing policies, contact the National Park Service.


Or, even better, see Haiku No. 175.


So is any of this hard to do? Not really, but it can be a little tricky. For example, by default Lync Server is configured to use any port between 1024 and 65535 (inclusive) for media traffic (e.g., audio, video, and file transfer). Suppose you don't really like that, suppose you'd like to limit the ports used for media traffic. In that case, you need to do a couple of things. To begin with, you need to enable the use of client media port ranges; that is, you need to tell Lync Server you want to use a specific set of ports for, say, client audio as opposed to any old port between 1024 and 65535. How do you do that? That's easy: you just set the ClientMediaPortRangeEnabled property to True. For example:


Set-CsConferencingConfiguration –Identity global –ClientMediaPortRangeEnabled $True


And if you decide later to go back to using any old port? Then just reset ClientMediaPortRangeEnabled to False:


Set-CsConferencingConfiguration –Identity global –ClientMediaPortRangeEnabled $False


But wait, that's not all. When you install Lync Server, default port ranges for different media traffic are preconfigured for you. For example:


ClientAudioPort : 5350

ClientAudioPortRange : 40

ClientVideoPort : 5350

ClientVideoPortRange : 40

ClientAppSharingPort : 5350

ClientAppSharingPortRange : 40

ClientFileTransferPort : 5350

ClientFileTransferPortRange : 40


In other words, client audio will use ports 5350 through 5389. How do we know that? Because client audio starts on port 5350 (ClientAudioPort) and uses a total of 40 ports. To the best of our mathematical ability, that means ports 5350 through 5389.


If that's OK with you, well, then that should be OK with you. But suppose you'd prefer to use ports 6000 through 6499 for audio. In that case, you need to use a command similar like this to configure the starting audio port and total number of ports set aside for audio traffic:


Set-CsConferencingConfiguration –Identity global –ClientAudioPort 6000 –ClientAudioPortRange 500


And, of course, we could have enabled port ranges and configured the audio port settings by using just one command:


Set-CsConferencingConfiguration –Identity global –ClientMediaPortRangeEnabled $True –ClientAudioPort 6000 –ClientAudioPortRange 500


That's entirely up to you.


About the only limitations we're aware of are this. First, each port range must have at least 20 ports; don't try to set an audio port range that starts at port 5350 and ends at 5351. The cmdlets will let you do that, but it's not recommended.


Unless you don’t care whether your conferences actually work or not.


Second, if you want to employ Quality of Service then your different media types (such as audio or video) should have unique port ranges. By default, all the different media traffic use the same port settings: a starting port of 5350, and a total number of 40 ports. To keep things unique, you might want to do something similar to this:


Traffic Type

Starting Port

Port Range

Client audio



Client video



Client file sharing




But, again, if you aren't using Quality of Service then it doesn't really matter.


The only other tricky thing to watch out for is setting the content grace period, which specifies how long conference content remains on the server following the end of a meeting. The content grace period can be any value between 30 minutes and 180 days. That's not too tricky; the tricky part is how you specify that value. To set a content grace period to something less than 24 hours, use syntax like this:


Set-CsConferencingConfiguration –Identity global –ContentGracePeriod 23:00:00


The 23 represents the number of hours, the first 00 represents the number of minutes, and the second 00 represents the number of seconds. (You can actually leave the second 00 off if you simply can't bring yourself to type another 00.)


Now, suppose you'd like to set your content grace period to a day and a half: 36 hours. This command will not work:


Set-CsConferencingConfiguration –Identity global –ContentGracePeriod 36:00:00


Instead, you'll get this error message:


Set-CsConferencingConfiguration : Cannot bind parameter 'ContentGracePeriod'. Cannot convert value "0.36:00:00" to type "System.TimeSpan". Error: "The TimeSpan could not be parsed because at least one of the hours, minutes, or seconds components is outside its valid range."


Granted, it might not be obvious what you did wrong. (OK, what we did wrong.) But what we did wrong was to set the hours to 36; we can't do that, because a day can only have a maximum of 24 hours. (Unless you're on Pluto, where a day can have approximately 154 hours.) To set a content grace period of 36 hours we need to use this command:


Set-CsConferencingConfiguration –Identity global –ContentGracePeriod 1.12:00:00


In other words, 1 day, 12 hours, 00 minutes, and 00 seconds.


And there you have it. The New-CsConferencingConfiguration cmdlet provides a way for you to create new conferencing configuration settings at the site or service scope (albeit only for the Conferencing server service). You can use Remove-CsConferencingConfiguration to delete any of those settings you just created using New-CsConferencingConfiguration, and, of course, you can use Get-CsConferencingConfiguration to return information about your existing settings. Do you have any settings where the client media port range has been enabled? This command will tell you:


Get-CsConferencingConfiguration | Where-Object {$_.ClientMediaPortRangeEnabled -eq $True}


How about any settings where the content grace period is less than 1 day? Well, try this command:


Get-CsConferencingConfiguration | Where-Object {$_.ContentGracePeriod -lt "1.00:00:00"}


And yes, commands like that do make you wonder why someone would drive all the way down to Moab, UT when he could have spent that time sitting at the dining room table running the CsConferencingConfiguration cmdlets instead.


Apparently there's just no accounting for taste.

See you tomorrow.