Category Archives: Skype for Business

Troubleshooting addressbook issues in Lync 2013/Skype For Business


You might come across a scenario where end users might report that they are not able to search for contacts  through Lync/Skype for Business client.

In this article i have collected few troubleshooting steps based on my experience which might help in addressing these kind of issues

Before looking into troubleshooting lets have a small idea on the address book synchronization :

The address book creation in Lync client happens separately and it never talks to Exchange.

The core component user replicator which was introduced from Lync 2010 contacts Active Directory very frequently once in every 60 seconds and updates the information of the users present in the Lync server. This interval is set by default and can be altered.

These updated information is stored in the backend SQL database named RTCab.

After the above job is completed it doesn’t mean that the address book is updated.After this the responsible server for  update process of  address book will start a synchronization pass once in every 24 hours usually 1:30 AM local server time.

This information will be updated in the address book files in the shared folder in the type dabs file.

So by looking into the above process there can be so many factors which might block searching the address book from client perspective.

Below  troubleshooting steps which might help in fixing these issues.

1)  First identify how many users are affected. Check the version of the client Lync 2013, Skype for business 2015 or Skype for Business 2016 client.

Pick any one of the affected user and perform the below tests.

From the affected PC try to access the URL you have published for lync and see if you get the authentication prompt.

If you are not getting the authentication prompt then there is some serious issue with the connectivity from your end reaching the server. You have to fix this issue.

2)  Run the command Get-CsUserReplicatorConfiguration and see the replication cycle interval.


The replication cycle interval by default is 60 seconds. If this value has been modified then we need to wait till the replication interval period gets completed.

3)  Its better to check the Synchronizepolling interval .This is the value which the addressbook server looks for any pending synchronization events for the lync users.Because there are more chances this value might be altered if you don’t want to happen this for every 5 minutes. In that case we need to wait till the interval period completes or run the Update-CsAddressBookConfiguration.

This value can be altered from 5 minutes to 3 hours.


4) Check the Csclientpolicy

Run the command Get-CSClientPolicy and see the AddressBookAvailabilty configuration.


Basically there are 3 options which we can set based on our requirement for this Lync/Skype for business address book availability.

a) Websearchandfiledownload.

b) Websearchonly.

c) FileDownloadOnly.

Its very self explanatory based on the names that we have for the addressbook.

By default this value is set to Websearchandfiledownload only. By having this option what it does is a local address book cache file from each client will be downloaded from the server. After that the Lync client will use the local cache. In-turn it will use the websearch functionality to download the user photos only.

So basically it takes 24 hours of time to have a fully updated local cache files.

When we have a web search only option  it does a direct lookup to the RTCAB database which will give the fully updated information for the lync/SFB clients. This is more or less similar like difference between having users in Outlook Cache Mode and in online Mode.

It would be better if we have a separate client policy only for the top VIP users. This will help them to see all the updated information from the Active Directory.

Inorder to create the client policy you can run the below command

New-CsClientPolicy -Identity VIP -AddressBookAvailability WebSearchOnly.

You can use this option for all users as well if we have less number of users where the user attribute changes happens very often and provided your network bandwidth is strong.

5) One last step that we can try is to run the below command.

The output of the command result should say there are no unindexed or abandoned objects.


If you see any errors on them then you can try running Update-CSAddressBookConfiguration and see if it helps.

Hope this helps


Sathish Veerapandian

MVP – Exchange Server 

Installing Monitoring server role in Lync 2013/SFB in SQL remote instance

In this article we will have a look at configuring the monitoring server role for enterprise deployment  in a remote instance for Lync server 2013 and SFB.

If you want to monitor Lync server 2013/SFB  and Lync client 2013 you need deploy Lync Monitoring server role.

As an overview deploying the monitoring role into an Existing Lync enterprise deployment would look easier. Un proper planning according to your environment and  installation will result you in Empty reports.

But when we look into the real time practical scenarios the situation changes on each and every environment basis according to your SQL setup.

So we cannot follow the installation  as such  unless and until we are clear on the SQL configuration.

In this article based out of my real time experience i will post few points and tips  :

1) Before installing the monitoring server role ,You need to deploy the monitoring server and then you need to deploy the monitoring reporting service.

2) For that your Lync Admin user account should have SYSADMIN on the SQL server (assigned through SQL Server Management Studio > Security > Logins).


3) Lync only supports Windows Authentication.  So the remote SQL Server instance  you have chosen to install the monitoring role  will need Windows Authentication enabled, similarly user who launches topology builder needs to have permissions to create/edit databases and access the SRS you have configured.

Lync Security

Make sure the use windows credentials is selected.


4) You need to have  lcsqoeq and lcsCDRQ on the public queues of Message Queuing accessible from the Lync Server so that it can pull the data and show you the reports.

For example you can try accessing the reporting services instance you configured from the Lync Monitoring server and the configured SRSS should show as below.



5) The lync monitor server name (NETBIOS) should not be more than 15 characters
If this is the case MSMQ will not able to deliver the messages

Basically the approach should be the below:

a) First you need to configure the SRS instance on your remote SQL.
b) Install the SQL reporting services.You’ll have to run the SQL report server setup wizard to define the report server URL. usually
c) Define the monitoring server in the topology.
d) Publish the topology.
e) And then install the reports from the installation wizard.

f) Make sure the lync server monitoring services is started, and the connectivity is good with sql server

g) Make sure that your SSRS instance SQL version (version and SP level) match the SQL version of your database instance that has the monitoring databases.

h) You should verify that the LcsCDR database was created in the SQL Server instance that you specified for Monitoring Server.

i) You need to run the dbo.RtcRecreateSummaryTable once the databases are created from the management studio.

Very IMP : You need to make sure that you are allowing the required ports for the srs url

Example if you have multiple srs configured on a SQL enterprise farm like one for Archive solution use a different port rather than 80 since the other application will be using this port.

Make sure that you are able to access the webpage of the report service URL from the Monitoring  server you are trying the installation

Usually the url would be your SQL server the port you defined and then the reports

Example :- http://SQL:8888/reports

If you have multiple applications using the SRS then you need to create the URL for the lync and make them to listen on different ports. Also you can see the other instances created under this location.


If its not accessible then you are having an issue with the permission with the account you have logged in on the SQL server.


Finally a healthy report should look like below



Hope this helps


Sathish Veerapandian

MVP – Exchange Server

Normalization Rules in Lync 2013 and Skype for Business

Normalization rules are Created to translate phone numbers in different format so that lync/SFB  can understand and transfer them to a correct location, User.

It is created to translate dial strings to E.164 format for the purpose of performing reverse number lookup.

This reverse lookup  is applied and reverse number lookup is performed, the called number is translated to  appropriate format so that the Lync/SFB mediation or the PBX receives the number in their understandable format so that they can perform the routing.

Its better to Classify  Normalization rules in the below scope :

User Dial plan –  Per User basis

Pool Dial plan –  Applicable to PSTN or registrar

Site dial plan –  Applies to Entire site

Global Dial plan – For all users

Its always better to create normalization rules rather than leaving the global as such . It will be easier to assign valid number patterns for each site according to the country and their area codes.

You need to keep these things in mind while creating a Normalization Rule

Dial plan – Per user, Per site , Pool or Global.
Country code – Choose the correct country codes according to your area.
Area code – Choose the right area code.
Length of extension – Make sure choose the correct length of extension that your PBX supports.

Below is the sample  format


A regular expression should start with a ^ – This is a beginning of the string
Should end with $ – which should be at the end.

So any number within the brackets is counted as variable : $1


Similarly add the digit line URI format that your PBX supports for the SIP Trunk integration. So you need to input the right pattern and the correct  digits which combines and creates a right translation rule.

These Translation rules modify the number before it leaves your Lync server so that your integrated PBX setup can understand the routing correctly.

Basically the normalization rules input is provided by the address book service.So the rules are triggered once the number is received from the Address Book Service.The Address Book Service is designed in a way that it removes all the non-mandatory characters before the rule triggers. So you wouldn’t need to worry about these non-mandatory characters.

So you need to make sure the phone numbers are correctly populated in the Active Directory so that they can be fetched and used for the Lync.

If you already have provided the numbers in E.164 format then your job would be pretty much easy.

Now we will see how to populate these values in Lync 2013 and Skype for Business

If its Lync server 2013 you need to use Company_Phone_Number_Normalization_Rules.txt file located in your Lync File Store location. Open the topology builder and see your file store location in the below folder


In the above example we need to open the text file and add below and save it


Once the above is done you need to run the below command


Make sure that use normalizationrules is set to true


Also there will be a notepad named Invalid_AD_Phone_Numbers created inside ABS files folder

Those numbers you get them in the txt are not acceptable number formats and you need to change them form the AD.

You can also test the normalization rule by running ABServer.exe file in the below path

C:\Program Files\Microsoft Lync Server 2013\Server\Core\ABServer.exe -testPhoneNorm “1234565”

From Skype for Business this job has been made simpler. There is no such files we need to modify them for this functionality.

The only thing you need to make sure is that you have entered the phone numbering format in the correct pattern E.164

If that is the case you can run the below commands from which we need to modify the new set of default roles according to your region and country , area codes

These can be defined in the Organizational  Level by the below commands



In-turn we need to create rules for translations and conversions.



Thanks & Regards

Sathish Veerapandian

MVP – Exchange server

Integrating Lync server 2013/ SFB with Cisco Unified Call Manager

Integrating the existing Lync setup with PBX or SBC’s is always a complicated one. When we look as a overview things looks smaller and easy. We need to choose the right PSTN gateways, SBC’s that are compatible with Lync and SFB.

When the real time scenario of implementation kicks in there are several things , components and factors which needs to be configured  properly.

If no proper planing and study on the existing setup is done ,then we will definitely run into multiple issues. Because we need to configure multiple things in PSTN gateways to create a proper channel route between these two medias.

If you aren’t voice expert its better to discuss this with VOIP  engineer dealing with these PBX gateways or associated vendors so we will get  best integration  advice according to the setup.

In this article i’m going to explain few methods that we can follow to integrate Lync 2013 / SFB with Cisco Unified Call Manager in already existing Lync/SFB  setup.

Speaking from my experience so  far below are the possible ways of implementing this.

1. Cisco unified communication integration for lync (CUCI – Lync) :

You can follow this if you want to utilize the existing Cisco CUCM PSTN enterprise plan for all the end users without investing any other components.

Keep Lync/SFB  only for IM & Presence and not having enterprise voice .

End users will get a Cisco Soft Phone agents  in their desktops for making the calls.

End users have the option whether to use the soft phone or to use their desk-phone.

It is basically like Cisco integrating their PBX with Lync for IM and Presence without the need of Cisco IM and Presence server.

By reading through so many blogs and forums i can see this integration is more complicated.

End users might get confused to understand in how they need to make the call.


But the best thing is you can use your existing CUCM setup and the Lync does not require Lync Plus CAL for the voice functionality.

Less configuration on the Lync side . You can plan for this if you  have a dedicated VOIP handling Cisco Team in your setup.

2. Remote Call Control or Call Via Work:

RCC enables users only  to control their desk  phones by using Lync on their desktop computers.

When a user signs in to the Microsoft Lync client, the Lync server sends instructions, through the IM and

Presence server of Cisco  and then  to the Cisco Unified Communications Manager maintains call features based on the end user action.

By enabling this it gives the end users to use the Lync 2013 user interface (UI) to control calls on their Cisco phones.

  • Make an outgoing call
  • Answer an incoming call
  • Answer an incoming call with an instant message
  • Transfer a call
  • Forward an incoming call

Very IMP note: The Cisco Unified communications manager PBX should have the existing PSTN plan as such.

The  Lync 2013 RCC feature  only sends call control commands to PBX and the  PBX will handle  the call process . No mediation server is required in this scenario.

Unfortunately if you are implementing RCC in Lync 2010/2013 then end users will not be able to make enterprise voice calls when they are remotely connected.

Reason: It is not possible for a user to have both enterprise voice and RCC together in Lync. This is almost a legacy dying technology which we should not think for any new implementation. RCC is depreciated technology and not recommended by Microsoft as well.

It can be a good solution only during the transition period from CUCM to Lync or vice versa.

Call Via Work (SFB 2015) :

People might think Microsoft has replaced CWV in SFB 2015  and why we need to implement this thinking the negative impacts from RCC.

This is an amazing hybrid type of  solution from Microsoft. The end user can set their ring back number in their SFB client.

The function of call via work is, the SFB mediation server will make a call to the configured phone number by end user and a second call to the destination number and connect both calls. The destination number calls will be handled by your PBX gateway. The connectivity from the mediation server to the PBX will be direct SIP. In turn this  will have a configuration of Dialplan, Voicepolicy, Pstnusage,and a Route to a sip trunk or gateway users.

This is very useful when you are in a poor internet connectivity on your trip and you can set your mobile number as callback in your SFB client  and we will have a great calling experience.

The prerequisite for CVW is similar to RCC but we require mediation server in additional.

Advantage :

No need to buy additional hard IP phones for end users if the voice plan stays with your PBX. SFB client perfectly routes and call to the destination with CWV feature.

SIP Trunk:

This type is very good in leveraging and using  the existing Cisco’s CUCM PSTN plans for end users.
This enables enterprise voice features for the end users without having the head ache of deploying additional components SBC’s etc..,

We need to have a direct SIP trunk configured between the both systems CUCM and your mediation server. We need to have mediation server configured in this case. A dedicated mediation server without collocated is recommended for this setup by Microsoft.

This can be used during transitions as well as a permanent solution.

You need to create a SIP trunk and a route pattern between Mediation server and CUCM.

There is an excellent document from Cisco for the same .

Click to access uc-manager.pdf

If you want to plan for the rest  of the above as well there are documents from Cisco as well as Microsoft .

Note : It is very important to have a detailed study and discussion on your existing PBX setup , PSTN plan , Network layout and Lync Setup with all the required teams and vendors before planning for integration.

Thanks & Regards

Sathish Veerapandian

MVP – Exchange Server 




Configure Office Web apps server for exchange,Skype for Business and sharepoint

In this article we will have a look at how to enable the Office Web Apps server functionality on Exchange, Lync2013, Skype for Business and share point

Before going further you need to know the below

What is the benefits of Office Web Apps Server ?
Will i loose anything if i go ahead without having OWApps Server?
Here is your answer!!

Office Web Apps Server is a new Office server that delivers browser-based version of Word, PowerPoint, Excel and One-note .
Office Web Apps Server is not only for PPT sharing in Lync Server.

You should install an OWA 2013 server. If you want to share PowerPoint Presentations in conferences.
This OWA server not only serves Lync or SFB.

OWA 2013 Server can be used by Lync 2013,SFB, SharePoint 2013 and Exchange 2013.
By doing this users can use a rich user interface to preview and modify the attachment online through OWA, Sharepoint intranet/internet sites and during the lync conferences.
The reason to use it is that Microsoft has outsourced the rendering of PowerPoints etc. to the Office 2013 Web Apps Server.

So you can watch PowerPoints in conferences from each common desktop web browser if you don’t have a Lync 2013 Client and MS office installed on your OS.

Without a Office Web Apps server, you could not share any Powerpoint with a Lync 2013 client.

You could only use desktopsharing to show the PPT, Word, excel which will be tedious.

So lets see how to enable OWA functionality on exchange,lync and sharepoint

I’m not going to explain how to install WAC server since there are more number of articles in the internet on the same.
So in this article we will have a look at how to enable this functionality on Exchange,Lync and SharePoint after you install the Office Web Apps farm in your environment.
Also we will have a look at the ports,firewalls and certificate requirements for the same.

For Exchange: 

Run the below commands

Set-OrganizationConfig –WACDiscoveryEndPoint http://<wac server>/hosting/discovery


You can run the below command after that and confirm that WACDiscoveryEndPoint value is populated

Get-OrganizationConfig | Format-List WACDiscoveryEndPoint

Then you need to run the below commands for the owa vdir to render documents via Office web app
Set-Owavirtualdirectory -WacViewingOnPublicComputersEnabled $True -WacViewingOnPrivateComputersEnabled $true –identity <OWA virtual directory identity>

Then run the below command to check if its enabled

Get-OwaVirtualDirectory “<OWA virtual directory identity” | Format-List Name,WacViewing*

You can use the below command to force the owa vdir to render via Office web app.
Set-Owavirtualdirectory -ForceWacViewingFirstOnPublicComputers $true -ForceWacViewingFirstOnPrivateComputers $true –identity <OWA virtual directory identity>

For Sharepoint :

Run the below commands
New-SPWOPIBinding -ServerName “”

$config = (get-spsecuritytokenserviceconfig)
$config.allowoauthoverhttp = $true

Set-SPWOPIZone –zone “external-https”

For Lync 2013/Skype for Business :

Just use the FQDN published under “InternalURL” when configuring Office Web Apps Server through the Topology Builder


No need to use the external FQDN which you have mentioned in the OWA’s server. It will work with the internal FQDN of the OWA’s server.

Once you publish this on the lync/sfb then you are done with this part.

Certificate requirements and DNS config :

DNS Config:

For Office Web Apps server  to work externally  External URL needs to be published and the request needs to be forwarded to the Internal server. So we need to perform the below things in-order to achieve that functionality.

Office web apps has 2 URL s. one internal and other external. The external one should have a DNS A record in public DNS just like Lync external web services and should be published over a reverse proxy. You need to  have a dedicated public IP for this as it use 443 and can’t use the one of Lync external web services.
Make sure the web Clients (usually web browsers) need to be able to make requests to the farm. These are normal HTTP/HTTPS requests on port 80 or 443 respectively.
Machines in the Office Web Apps farm initiate requests to  that particular service on the file host (e.g., SharePoint,Exchange). These requests are also HTTP/HTTPS on port 80 or 443. This is
how the Office Web Apps machines operate on the files they are rendering or editing.
At times file hosts occasionally need to request information directly from the Office Web Apps Server farm through the load balancer. These requests are also HTTP/HTTPS requests on port 80 or 443.

So there is no special config required for you on the firewall apart from port 80 and 443 traffic to the office web apps farm.
All the machines which are in the Office Web Apps Server farm will  communicate with each other via port 809. The reason behind this is because these machines are treated on a private network so  that no
other machines can join the farm or listen in on traffic they receive. So make sure you have the port 809 reachable b/w the owa servers and the firewall turned off in the windows machine of these web apps server.

Certificate Requirements :
Since the OWA’s server has 2 URL s. one internal and other external.
Have an internal certificate for internal communications.
Get a public certificate from public provider for your external published url.
Basically you need to put the public certificate on your reverse proxy server and leave your private certificate on the office web app server.
By doing this the external requests will be decrypted in the reverse proxy with the public certificate .

There is no need to place the public certificate on the OWAS server since for internal FQDN’s its doesn’t require a public key.

Hope this helps


Sathish Veerapandian

MVP – Exchange Server 

%d bloggers like this: