How Can I Configure the Telephony Options for a User?

For the most part, there’s a pretty close tie between the items found in the Lync Server Control Panel and the parameters and property values used in Microsoft Lync Server 2010’s implementation of Windows PowerShell. For example, take a look at the following table, which compares the item labels used in the Edit Meeting Configuration dialog in the Control Panel with their Windows PowerShell equivalents:
 

Control Panel Labels

Windows PowerShell Properties/Parameters

PSTN callers bypass lobby

PstnCallersBypassLobby

Designate as presenter

DesignateAsPresenter

Assigned conference type by default

AssignedConferenceTypeByDefault

Admit anonymous users by default

AdmitAnonymousUsersByDefault

 
Can’t get much closer than that, can you?

 
At any rate, we – what’s that? Well, yes, we did say that for the most part there’s a pretty close tie between the items found in the Lync Server Control Panel and the parameters and property values used in Microsoft Lync Server 2010’s implementation of Windows PowerShell. So does that mean that there are exceptions to that general rule? Well, to be perfectly honest, yes, there are. For the most part, though, those exceptions aren’t worth losing any sleep over.

 
Right, we did use the phrase “for the most part” again, didn’t we? We should probably stop doing that; it just creates more work on our end.

 
OK, as it turns out there is at least one important area in which the values shown in the Control Panel and the corresponding PowerShell properties and parameters don’t match up very well: telephony. If you create or modify a user account using the Control Panel you’ll see the following telephony options:

  • Audio/Video disabled

  • PC-to-PC only

  • Enterprise Voice

  • Remote call control

 
And if you look at the PowerShell parameters for the Set-CsUser cmdlet you’ll see parameter names like these:

  • -AudioVideoDisabled
  • -IPPBXSoftPhoneRoutingEnabled
  • -RemoteCallControlTelephonyEnabled
  • -EnterpriseVoiceEnabled

OK, at first glance that doesn’t look too terribly bad, even though Control Panel doesn’t seem to have an option corresponding to –IPPBXSoftPhoneRoutingEnabled. Oh, and PowerShell doesn’t seem to have a parameter that goes along with Control Panel’s PC-to-PC only option. That’s bad. Even badder, however is the fact that you can immediately run into problems if you actually try to use one of these PowerShell parameters to modify the telephony options for a user. For example, suppose Ken Myer has been enabled for Enterprise Voice, and you’d now like to make a change and enable him for Remote Call Control instead. You might think the following command would do the trick:

 
Set-CsUser "Ken Myer" –RemoteCallControlTelephonyEnabled $True

 
But you would be wrong:

 
Set-CsUser : Remote call control mode cannot be set when user is enabled for Enterprise Voice.
At line:1 char:11
+ set-csuser <<<< "Ken Myer" -RemoteCallControlTelephonyEnabled $True
    + CategoryInfo : InvalidOperation: (CN=Ken Myer,OU=V_ou,DC=Vdomain,DC=com:OCSADUser)
   [Set-CsUser], ManagementException
    + FullyQualifiedErrorId : SetCSUser,Microsoft.Rtc.Management.AD.Cmdlets.SetOcsUserCmdlet

 
As it turns out, you can’t enable Ken Myer for Remote Call Control if he’s currently enabled for Enterprise Voice (or vice-versa). In fact, there’s a fairly complex little matrix of parameters and parameter values that must be used in order to configure the telephony options for a user.

 
Good point: if only someone could show us those parameters and parameter values, and then show how those things relate to the telephony options found in the Control Panel. You know, if only someone could put together a table like this one:

Control Panel option

IPPBXSoftPhoneRoutingEnabled

AudioVideoDisabled

RemoteCallControlTelephonyEnabled

EnterpriseVoiceEnabled

Audio/video disabled

$False

$True

$False

$False

PC-to-PC only

$False

$False

$False

$False

Enterprise Voice

$False or $True

$False

$False

$True

Remote call control

$False

$False

$True

$False

 
Hey, we told you it was a little complicated, didn’t we? But here’s the deal: if you want to set Ken Myer’s telephony option to Audio/video disabled you need to use the preceding table to construct a command like this one:

 
Set-CsUser "Ken Myer" –AudioVideoDisabled $True –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False

 

Note. OK, depending on how Ken’s account is currently configured you might not need to use all those parameters. But the above command will always set Ken’s telephony option to Audio/video disabled, regardless of how his account is currently set up.

 
The trick here? Set the –AudioVideoDisabled parameter to $True and everything else to $False.

 
Want to set Ken’s account to PC-to-PC only? Then use this command:

 
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False

 
As you can see, that was an easy one: everything gets set to $False.

 
Want to configure Ken’s account so it’s enabled for Enterprise Voice? Okey-doke:

 
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $False –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $True

 

Note. Actually, in this case –IPPBXSoftPhoneRoutingEnabled can be set to either $True or $False. Just make sure that –EnterpriseVoiceEnabled is set to $True and that –AudioVideoDisabled and –RemoteCallControlTelephonyEnabled are both set to $False.

Last, but surely not least, this command configures Ken’s account for Remote Call Control:

 
Set-CsUser "Ken Myer" –AudioVideoDisabled $False –RemoteCallControlTelephonyEnabled $True –IPPBXSoftPhoneRoutingEnabled $False –EnterpriseVoiceEnabled $False

 
You’re way ahead of us: set –RemoteCallControlTelephonyEnabled to $True and everything else to $False.

 
So, OK, it is a little complicated. But just use the four commands listed above and you won’t have any problems. We promise.

 
For the most part anyway ….