Visit my TechNet blog to read my latest post:
Had an interesting request lately, where a company wanted to control how users join meetings when they click the “Join” on their Skype for Business clients’ calendar tab or when they join Skype for Business meetings from Outlook.
In the client’s options, we have the ability to choose what happens when we join meetings; We can join immediately using the Skype for Business client or choose from four different phone numbers, all of which must be populated in our contact card, and can be seen under Tools -> Options -> Phones.
If your AD is configured right, you should have your Work phone (ideally your Skype for Business line URI), your Mobile phone, your Home phone and maybe even an additional ‘other’ phone.
You can also manually add phone numbers if they’re not automatically updated from AD.
In the tab above you can choose any of the numbers you have in the ‘Phones’ tab and get to choose whether you’d like to be prompted at the beginning of each meeting which device you’d like to use, or just go with what you chose.
How do you control it?
Like most things, the Registry.
You can make changes to the user’s preferences but not grey-out the options. If the users want to bypass the setting they can, but they’ll be defaulted to your setting at logon.
First, decide if you want the user to be prompted with each call. If yes, we need to tick the “Before I join meetings, ask me which audio device I want to use”.
The registry setting fro this checkbox is located at
The key is
If it’s set to 1 – it means the box is ticked and the user will be prompted to choose which device they’d like to join the meeting from.
If it’s set to 0 – it means the box is unticked, and the user will automatically join via the configured device.
Choosing a device is the next funny setting:
Same registry location as above, look for the following key:
The setting of the last binary bit is as follows, as reflected in the users’ “Phones” tab:
0 – Do not join Audio.
1 – The Skype for Business client.
2 – Work Phone (If different from your Skype for Business line uri).
3 – Mobile.
4 – Home.
5 – Other.
If one of the above is not configured or missing, the client will default to “Do not join Audio”.
For example, if I want to set my users to join from their mobile phones without being prompted, I’ll set the AllowOverridingDeviceAtJoinTime registry key to 0 and the JoinAudioConferenceFrom key to 3.
Announced today, Microsoft is expanding some Skype for Business Online services and offering new ones;
PSTN Conferencing preview will now be available to customers in the following countries:
- United Kingdom
Finland, Norway and South Africa will be able to use this feature in November.
Cloud PBX Preview now available worldwide, allowing customers to get rid of separate PBXs globally and still break out locally. This is option still requires an om-premises S4B server installation.
Polycom CX is not dead yet – Skype for Business customers can use Polycom CX600 and CX3000, HP 4120, and Mitel Mivoice 6725 to connect to the cloud directly. Polycom VVX series Can be used as well.
source and more details: Microsoft.
Private numbers are a great thing. They can be used as various scenarios where a person needs a direct private line that’s not published in the contact card and isn’t displayed when you dial out. This is not to be mistaken for Response Groups Agent Anonymity, where agents can call on behalf of themselves or on behalf of the Response Group’s number.
What’s the difference?
Well, first, you can only manage Private Lines via PowerShell. Use the Set-CsUser -PrivateLine cmdlet to assign a user with a private line. When you’ll run the Get-CsUser cmdlet against that user you’ll get everything… Except for the user’s private number. We must use the explicit Get-CsUser sip:firstname.lastname@example.org | fl -PrivateLine cmdlet to get the user’s private number:
PS C:\Windows\system32> get-csuser email@example.com | fl
Identity : CN=Yoav Barzilay,OU=Users,DC=y0av,DC=local
VoicePolicy : Non Restricted
ConferencingPolicy : Allowed
ExchangeArchivingPolicy : Uninitialized
ExternalAccessPolicy : Skype Directory enabled
PersistentChatPolicy : Persistent Chat Enabled
UserServicesPolicy : AllowUnifiedContactStore
HostedVoiceMail : True
HostedVoicemailPolicy : ExchOnline365UM
HostingProvider : SRV:
RegistrarPool : S4bPool1.y0av.local
Enabled : True
SipAddress : sip:Yoav.Barzilay@y0av.local
LineURI : tel:+35864117539;ext=7539
EnterpriseVoiceEnabled : True
ExUmEnabled : False
HomeServer : CN=Lc Services,CN=Microsoft,CN=2:6,CN=Pools,CN=RTC
DisplayName : Yoav Barzilay
SamAccountName : yoav.barzilay
Now if I run the | fl (or | ft) switch with the right parameters, I’ll get what I’m looking for:
PS C:\Windows\system32> Get-CsUser firstname.lastname@example.org | fl Name, LineURI, PrivateLine
Name : Yoav Barzilay
LineURI : tel:+353864117539;ext=7539
PrivateLine : tel:+353857560598;ext=0598
Additionally, Private Numbers have a different behaviour and rules than Primary Lines:
- You can assign only one private line to a user.
- You cannot assign an additional voice mailbox to a private line. However, unanswered calls will be diverted to the voice mailbox if one is configured.
- Unless you decide to push it to the address book, Private Lines are never published on your contact card.
- call forwarding, team call, delegation, team ring, Group Call Pickup, and Response Groups don’t work with Private Lines. Call park and call pickup will work normally.
- When a call arrives to your private line it will display a “Private Number” notification when the call comes in and will have a different ring sound.
- Are you set to “Do Not Disturb”? calls to your private will ignore this setting and will go through anyway.
- Simultaneous ring, if enabled, is enabled on both the Primary and the Private lines.
- Private numbers must be between 3 and 15 numbers in length and must be preceded with the “TEL:” prefix.
So how do you set a number for a user?
Quite simply, to be honest: just run the following:
Set-CsUser sip:email@example.com -PrivateLine "tel:<user's Private number>"
Set-CsUser sip:firstname.lastname@example.org -PrivateLine "tel:+353987654321;ext=4321"
To help you identify all the users in your organization that are configured with a private number, I built the following script:
Run it from your PC (Not from the server!), where you have PowerShell 3.0 or higher and Excel 2010 at least.
The script might require you to change your PS execution policy.
To run the script just start it from an elevated PowerShell Window:
The script will then ask you for your Skype for Business Admin credentials to connect to the remote PowerShell on the server:
The script will run with Excel in the background and will open the file when it’s ready:
Please note this script only shows users configured with Private Numbers. If you’re looking for a way to display all your existing users and devices, please check this post.
Download the Skype for Business Private Numbers Script here.
Published today on the Lync blog, video calls between Lync and Skype are now available.
Details in the following link:
The cumulative update resolves the following issues:
- 3003346 – Cannot see presence status or send instant messages when OWA is integrated with Lync Server 2013 instant messaging
- 3003347 – User cannot dial out to a PSTN number as a guest in an online meeting in a Lync Server 2013 environment
- 3003350 – Cannot search users by using a keyword that differs from Lync Server 2013 AD DS display name format in a Lync client
- 3003357 – Error “400 Bad Request” when a user whose display name contains double quotation mark calls a PSTN number in Lync 2013
- 3008181 – Centralized Logging Service Agent Service cannot start after you install a September 2014 update for Lync Server 2013
Recent Microsoft Updates for Lync 2013 Server:
(Have a look at the newer, smarter, prettier, fancier version of this script here.)
This script isn’t big news, but it’s very handy and easy to use.
It allows you to remotely connect to one of your pools and create an Excel sheet, populated with the following:
|Display Name||SIP Address||Registrar Pool||Enterprise Voice||Line URI|
It’s basically a list you can hand to your customers and colleagues so they can keep track of changes.
Additionally, it helps spot Enterprise Voice enabled users that don’t have a Line URI or it’s misconfigured.
When you run the script it’ll ask your for your Credentials – You must Have appropriate Lync permissions:
It will then ask you for the FQDN of your Lync server or pool and will attempt to connect:
When connected, the script will immediately start creating the Excel file:
You can scroll up and down the Excel file but do not click anywhere on the spreadsheet. This causes the automated build to crash, and you’ll have to restart the script.
When completed, the script will notify you and close the remote PowerShell session it initiated.
The pace is approx. a second per line, so if you have 5000 users this is the time to go and grab a cup of coffee.
The script can be downloaded here.
Updated October 7, 2014: Version 2.0 checks for your PS version. This script will only run on PS 3.0 or higher.
Polycom VVX FTP Provisioning Server Script now updated with UC software version 5.1.2
Originally posted: August 29, 2014.
Updated: September 5, 2014.
I was following Polycom’s instructions and Jeff Schertz’s post on configuring an FTP Provisioning server for the Polycom VVX range. In large deployments, when you need to update and configure hundreds and thousands of phones, this is the only way to do it right.
There were two things that I struggled with when configuring this server:
- You have to build and configure an FTP server, DHCP options, AD user, download the files… etc.
- For most organizations – You’ll use an FTP on a Windows server. Jeff mentioned that the username and password for the FTP user (PlcmSpIp) would not be acceptable in many environments due to the fact that it doesn’t meet the Password complexity requirements.
So, I set up my mind to create an automated process to do all of the above, in a Windows Active Directory environment. I wanted…
View original post 523 more words
Lync Last Login script is now List Lync Orphaned users, retrieving data directly form LcsCDR Database.
Recently Yoav Barzilay and I upgraded our script for Getting the Last Login time for a user sign in into a Lync pool and it’s client type. we’ve added a new functionality to include the actual server the user is sign-in into within an enterprise pool and its backup servers based on the Get-CsUserPoolInfo cmdlet.
One of the feedbacks we got was that another interesting thing would be to see Users which did not sign-in the last couple of days, or in matter affect seeing all users which not being signed in for a long time – Orphaned Users.
Starting to explore this options, our main problem showing those orphaned users was that the Lync servers does not includes any kind of information as they only holds recent data in the RtcDyn database (last couple of days).
Our assumption was that this kind of data may only resides within the…
View original post 304 more words
Microsoft released two Lync-Related KBs today:
On-premises Lync Server integration with Exchange Online fails (KB2907651) deals with Exchange Online integration with an on=premises Lync Server 2010 or 2013. The issues described are Lync client Autodiscover process failure and EWS integration failure (EWS Information item is displayed as Not Deployed).
The fix for the above issues is to add the following registry key:
For Lync 2010 clients: Under HKEY_CURRENT_USER\Software\Microsoft\Communicator\, add a DWORD key named “OverrideDirectHttpConnection” with the value “1”.
For Lync 2013 clients: Under HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync\, add a DWORD key named “OverrideDirectHttpConnection” with the value “1”.
if you Lync Server 2013 Front-End server services don’t start for a long time (Who didn’t experience this?!), this article (KB2918336) can help.
This can happen after you install updates that require a service or system restart or if the Lync Server pool hosts three or more Lync Server 2013 Front-End servers.
If you see LS User Services Event ID: 32174, you might want to look into this article that suggests you run the command Reset-CsPoolRegistrarState -PoolFqdn “<Servers’ FQDN>” -ResetType QuorumLossRecovery.