When entering details on the Lync and Skype Provisioning site an error occurs

When entering the access edge service FQDN and SIP Domain names on the Lync and Skype Provisioning site https://pic.lync.com you get an error on the top of the screen which says “You must specify all data using the western European character set.”

This is a strange one and seems to occur in all browsers, the only way I was able to resolve the situation was to navigate to the site in Internet Explorer 10 and use compatibility mode.

Lync Skype Provisioning web page error

Lync Client on Linux

I have been wondering lately if it is possible to use Lync from a linux workstation.  As far as I am aware there is no official support or even a chance that the client will run outside of a virtual windows box or similar. (if somone has managed to get the Lync client running under wine or similar i’d love to hear about it) however it seems it is possible to at least have basic chat functionality using pidgin.

For my ubuntu laptop it was simply a case of running:

sudo apt-get install pidgin
sudo apt-get install pidgin-SIPE

Then running pidgin and adding my account details in as a “Office Communicator” account type.

For example:

Protocol: Office Communicator
Username: sipaddress
login: domain\user
Password: password

If all your services are published in DNS you wont need to mess about in the advanced tab but be warned you may get a certificate warning if you used self-signed certs.

 

Configuring normalization rules for the Lync 2010 address book

Lync by default automatically pulls telephone information from active directory and publishes it to clients each morning at 1.30AM however often the telephone numbers entered in active directory have various problems, inconsistencies or are otherwise not formatted correctly for Lync to use.  If this is the case you may notice contact cards in the Lync client contain no phone numbers (or have some numbers missing) while if you examine the user in outlook or directly in active directory you can clearly see telephone numbers are configured for them.  Lync will only function with E.164 style numbers and as a result unless all of your numbers are stored correctly in this format, many will be missing.

A full list of numbers which fail to normalize can be found in the Lync Server event log of your front end server.  (normally logged shortly after 1:30AM) with event ID 21034.

 

As you can see there is a handy link to a file which contains a full list of the failed numbers.  The ideal way to fix this would be to edit all the numbers so they are stored in the right format.  For example changing a DDI and extension from 01372 112233 and 2233 to be stored as +441122112233;ext=2233 often this isn’t possible or desirable if other applications use these numbers and instead it maybe preferable (and quicker) to follow what the text in the event log suggests and setup normalization rules in the optional “Company_Phone_Number_Normalization_Rules.txt” file.

This was the case for me recently and I ended up creating the following rule to normalize standard UK national numbers into international E.164 style numbers:

## match National to UK E.164
\+?0([1-9]\d{7,9})
+44$1

(where +44 is your country code)

In an ideal world all your extension numbers will match your DDI numbers as well so you can normalize them with a rule similar to this:

## 9xxx extn into ddi
\+?(9\d\d\d)
+44112233$1;ext=$1

(where +44112233 is the appropriate area and regional code)

For my environment these two rules cut the number of failed numbers to 87.  If you cant wait until 1:30AM the next morning to see the results of your changes run ” Update-CSAddressBook” in the Lync shell window and wait approximately 5 minutes for the process to complete and the messages to appear in the event log.

In addition to the above if you wish to clear the cashed address book in a Lync client first close the client and navigate to %profilepath%\AppData\Local\Microsoft\Communicator and delete the appropriate SIP folder and then restart the client.  This will force it to re-download the address book and you can instantly enjoy the results of your changes.

A great reference on how to create these rules can be found here.

Cannot login to Lync 2010 Control Panel – Unauthorized: Authorization Failed

After restarting our Lync front end servers it became impossible to log in to the control panel.

 

In our environment nothing was recorded in the application or system event logs and there were no audit failures recorded in the security log either. The only place anything showed up was in the “Lync Server” logs where a number of “LS Remote Powershell” warnings and errors with event IDs 35005, 35007 were being recorded on each failed login attempt. (see below for event details)

The resolution for me was the restart the SQL instances hosting RTC and RTCLOCAL. It would appear any problem preventing access to the SQL server or active directory can produce these symptoms and errors so check your network connections and user/computer accounts if SQL looks OK.

 

Log Name:      Lync Server Source:        LS Remote PowerShell Date:          04/01/2012 09:33:22 Event ID:      35005 Task Category: (3500) Level:         Error Keywords:      Classic User:          N/A Computer:      ***** Description: Remote PowerShell cannot read the RBAC Roles information from the store.

Remote PowerShell encountered problem when trying to read the RBAC Roles information for the user. Cause of failure: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified) Cause: The failure may have happened due to some permissions issue in reading the management store. Resolution: Make sure that the server is domain joined machine and able to query the active directory.

Log Name:      Lync Server Source:        LS Remote PowerShell Date:          04/01/2012 09:40:05 Event ID:      35007 Task Category: (3500) Level:         Warning Keywords:      Classic User:          N/A Computer:      ***** Description: Remote PowerShell cannot create InitialSessionState.

Remote PowerShell cannot create InitialSessionState for user: S-1-5-21-*********-1589796742-927750060-43130. Cause of failure: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified) Cause: Remote PowerShell can fail to create InitialSessionState for varied number of reasons. Please look for other events that can give some specific information. Resolution: Follow the resolution on the corresponding failure events.

Deploying Lync 2010 Client as with Batch file

There are two versions of the Lync 2010 client, one for x86 and one for x64.  My understanding is that the client itself is 32bit but a number of the pre-requisits (silverlight & c++ reditributible) are arhitecture specific.  If you run the wrong version you will get an error message.

If you are sure all your machines have already met all the pre-requisits you can simply take the msi file from a machine which has already had the lync client installed and deploy that in the usual way.  (By default it is here: C:\Program Files (x86)\OCSetup\lync.msi)

But for most environments we cant be sure all the machines have met the pre-reqs and it may not be possible to just run one of the versions as you may have a mixed environment of x86 and x64.  This was the case for my environment and I ended up deploying the client with the following script configured as a computer start up script.  (if your users have admin rights you can run this as a logon script, but they dont have admin rights do they?)

If Exist %systemroot%\%computername%.txt goto END
If Exist “C:\Program Files (x86)\” goto X64
Set ARCHITECTURE=x86
IF NOT EXIST “%USERPROFILE%\Lync_Client\X86? MKDIR “%USERPROFILE%\Lync_Client\X86?
pushd “\\domain.com\staff\Installs\Lync\x86\”
XCOPY “*.exe” “%USERPROFILE%\Lync_Client\X86? /I /Y /Q
“%UserProfile%\Lync_Client\%ARCHITECTURE%\LyncSetup.exe” /install /silent /fulluisuppression
Echo “Lync client Successfully installed” on %COMPUTERNAME% >\\domain.com\staff\Installs\Lync\Lync_Client_Deployment_Results\%computername%.txt
Echo “Lync client Successfully installed” on %COMPUTERNAME% > %systemroot%\%Computername%.txt
:X64
If NOT EXIST “C:\Program Files (x86)\” goto END
Set ARCHITECTURE=x64
IF NOT EXIST “%USERPROFILE%\Lync_Client\X64? MKDIR “%USERPROFILE%\Lync_Client\X64?
pushd “\\domain.com\staff\Installs\Lync\x64\”
XCOPY “*.exe” “%USERPROFILE%\Lync_Client\X64? /I /Y /Q
“%UserProfile%\Lync_Client\%ARCHITECTURE%\LyncSetup.exe” /install /silent /fulluisuppression
Echo “Lync and Office clients Successfully installed” on %COMPUTERNAME% >”\\domain.com\staff\Installs\Lync\Lync_Client_Deployment_Results\%Computername%.txt”
Echo “Lync and Office clients Successfully installed” on %COMPUTERNAME% > %systemroot%\%Computername%.txt
:END
EXIT

As mentioned earlier, you can then deploy this script via Group Policy or your favorite deployment mechanism.  Note that the Lync installer must be run as a user with rights to install software.  For this reason, it may be easier to install as a computer startup script.  I also reccomend you used a DFS share for all your scripts/policies as it allows you to change the servers behind the share without actually changing the share name and having to edit all your scripts/policies.

Make sure the user/computers accounts have permission to write to the Lync_Client_Deployment_Results folder and also make sure you have extracted the client and put the relevant x64 and x86 client installers into the correct folders. e.g. put the x64 installer in \\domain.com\staff\Installs\Lync\x64\ and the x86 installer in \\domain.com\staff\Installs\Lync\x86\