Oct 19

Lync; ABSCONFIG & corrupt addressbook; Fixed!!


When you’ve implemented Lync within your environment and you have modified the address book, you might get a similar message in your event viewer:

A full data file is corrupt.

Path: ‘\\<SERVERFQDN>\<SHARE>\1-WebServices-1\ABFiles\00000000-0000-0000-0000-000000000000\00000000-0000-0000-0000-000000000000\F-0f4e.lsabs’ – file corrupted: invalid attribute id 0 in contact. Index: 38 Guid: {301db040-7ab9-47d8-a1e4-00e4bbc1cbaf} Offset: 484

Cause: The Address Book Server is attempting to read one of the full data files in order to generate a delta file. The full data file is corrupt and the delta file cannot be generated.


Examine the details in the associated event log entry to determine which full data file is corrupt and first save it away for possible use by PSS. Then delete the corrupt file. This will result in a missing delta file, but the client will get the next oldest delta file instead.

Found so far…

Now I’ve found a blog entry: http://www.lync-blog.nl/?p=504&lang=en regarding the ABSConfig tool. The address book is indeed modified to only include only the Lync enabled users.

However, when I’m looking into the dbo.AbAttribute is see differences in the RTC and RTCLOCAL databases…. The blog mentioned earlier provides a solution to restore the address book without the filters… However, that didn’t solve my issue… We’ve got a whole lot of users and contacts with the same value in the mail attribute that resulted in double entries in the default address book.

Great news… It is fixed!!

You can follow these steps to fix the address book and have a filter on it.

  1. Request the hotfix from Microsoft using the following reference: http://support.microsoft.com/kb/2621857.
    1. Unpack the file and copy the OCSReskit.msi to the Front-end server(s).
  2. Request the hotfix from Microsoft using the following reference: http://support.microsoft.com/kb/2621854/
    1. Unpack the file and copy the OCSCore.msp to the Front-end server(s).
  3. Uninstall the current Lync resource kit from the Front-end server(s);
  4. Run the OCScore.msp on all Front-end(s) servers;
  5. Type in: Install-CsDatabase -Update -ConfiguredDatabases -SqlServerFqdn <EEBE.Fqdn> -UseDefaultSqlPaths

    Remark: You only need to run this once on a Front-end

  6. Install the OCSReskit.msi

    If you’ve installed it on the default location, you can run the ABSConfig.exe from the following location: C:\Program Files\Microsoft Lync Server 2010\ResKit. In the screenshot below, I’ve added a filter that only objects that have the msRTCSIP-PrimaryUserAddress attribute filled in.

  1. When pressing Apply, Regeneration of the User database will be done. Look at the Lync Server part of the Eventviewer to validate that you see the EventId 30024:

    This EventId is required for all domains in the Active Directory Forest where Lync is deployed.

  2. Once step 7 is finished, you need to update the address book by typing in:


  1. In the Lync Server part of the Eventviewer (on the server where you’ve performed step 7) look for EventId 21056 that the LS Address Book Server is finished.

Thank you Microsoft for getting this fixed within short period of time!

Permanent link to this article: http://www.reijling.nl/?p=769

Oct 02

GREAT NEWS!! MVP Lync, thanks!

Yesterday, I’ve received great news:

Dear Jeroen Reijling,

Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Lync technical communities during the past year.

I would like to thank everybody for the recognition and will continue to support everybody that has questions regarding OCS and Lync.

Permanent link to this article: http://www.reijling.nl/?p=761

Sep 29

Lync; How to configure Standard, Enterprise & Plus CAL functionality

So you’ve chosen to deploy Lync, great!! Now you’ve taken a look at the Client Access Licenses (CAL’s) that you require within your organization. You’ve found the website: http://lync.microsoft.com/en-us/HowToBuy/Pages/pricing-licensing.aspx and want to translate it into something you can use in the IT backend….

As a rule of thumb, I use the following guidelines for these CAL’s:

  • Standard; IM/Presence, Peer 2 peer Audio/Video sessions;
  • Enterprise; Multi-party Audio/Video Conferencing, Application/Desktop sharing and dial-in audio conferencing (connection to the PSTN is required);
  • Plus CAL; Enterprise telephony including 911, dial and receive PSTN calls, Response Groups, Delegation, Routing rules etc.

Within OCS, there are conferencing policies which you can use for that. Within Lync, the possibilities of these polices are extended and might be overwhelming. All possibilities are documented here: http://technet.microsoft.com/en-us/library/gg429724.aspx

I’ve come up with the following diagram that could be useful for you as well, feel free to use it within your organization or ask me any questions about it. Biggest differentiators for me are:

  • No conferencing what so ever;
  • Allow Audio/Video or only Audio.;
  • Allow or Disallow Recording;
  • Allow or Disallow Dial-in conferencing;

This resulted in the following Conferencing policy names:

  • STD_CAL_NoConferencing
  • ENT_CAL_REC_Audio
  • ENT_CAL_REC_AudioVideo
  • ENT_CAL_REC_AudioVideo_PSTN
  • ENT_CAL_NOREC_AudioVideo

The complete table below shows the policy names in the top row and all configured settings in the rows.

EDITED: The number 2 used for the STD_CAL_NoConferencing can be set to any value, as Multiparty IM is included in the Standard CAL.

When you’ve configured the policies, you can have the helpdesk people (or yourself) assign the correct policy on a user level:

When you want to script it, you can use the following script (assuming you have their windows logonname (samAccountname)):

$newusers = Import-Csv “Names.txt”

foreach ($user in $newusers)


    $name = $user.name

    Write-Host “Procesing $name”

    $samAccountname = “<DOMAIN>\$name”

    Write-Host “Setting conferencing for $samAccountName”

    Get-CsUser -identity $samAccountname | Grant-CsConferencingPolicy -Policyname Tag:STD_CAL_NoConferencing

    $samAccountname = “”



So now you’ve configured conferencing policies and assigned them to the users.

When you want to give your users the rights to use the Plus Call, just enable the Enterprise Voice part on a user using http://technet.microsoft.com/en-us/library/gg413011.aspx For this part, I’m assuming you’ve already have the Lync environment connected to the PSTN environment…


Permanent link to this article: http://www.reijling.nl/?p=749

Sep 14

Migrate users and/or change SIP addresses

Possible situation

You might have started to deploy Lync or OCS 2007 R2 in a pilot/Proof of Concept environment. When you were deploying the clients and enabling users, you decided to have the SIP addresses identical to the logon names, also known as User Principal Names.

Reasons might be that it was easy because you are managing all the internal DNS zones and could use automatic configuration for the clients.

2nd to this, you started your environment using a Standard Edition, as it offers all the functionality and is easy to deploy.

Best Practices regarding SIP address and Email addresses

Now, the OCS 2007 R2 or Lync Pilot/Proof of concept environment has started to grow and was taken into production without you knowing it… You’ve now read that for best practices, you should be having the SIP addresses and E-mail addresses identical…


  1. After experiencing the Lync functionalities, business asks you to build a high available environment.
  2. You do not have Split-Brain/Split Horizon DNS because you have a lot of SIP/Email domains that you would like to support, but no different DNS servers for internal and external zones that could provide different answers. In the screenshot below, sip.contoso.net is referring to IP nr. 1 and would be your Access Edge server. IP nr.2 would be your Front-end Pool or Director Pool when people are internal.;

  3. How are you going to change all the SIP addresses to match the E-mail address.
  4. You would like to change the SIP addresses, but you have two types of users (I know that you might have more…) :
    1. People that come into the office every day, using a domain joined machine;
    2. People that have a laptop and only connect from time to time using VPN;

Possible solutions

  1. When you’re building the High Available environment, you are requested to request certificates… Question comes up… Do I really need the SAN entries for all additional SIP domains I want to support? You need to if you are using Automatic client configuration. Otherwise, you don’t need to. You need to make sure your meet the certificates requirements that are documented here: http://technet.microsoft.com/en-us/library/gg398094.aspx
  2. If you don’t have split-brain, you need to make usage of Manual configuration. You can do this using Group Policy to bootstrap the Lync Client: http://technet.microsoft.com/en-us/library/gg425941.aspx. Make sure you only configure the Poolname, don’t limit the User functionalities here. You need to do that using in-band provisioning. Well documented here: http://technet.microsoft.com/en-us/library/gg398814.aspx. Downside if manual client configuration is that automatic failover only works on specific situations… Remark: If the client is manually configured to connect to a specific pool and his account has a different registrar (like a Survivable Branch Server or Survivable Branch Appliance) then the Pool, failover will be available.
  3. Changing the SIP addresses is pretty easy when you are capable of running the following Powershell command: get-csuser -DomainController $DomainController | Enable-csuser -Registrarpool <REGISTRARPOOLFQDN> -SipAddressType EmailAddress
  4. All the accounts are now modified… You find out that the clients are not automatically lookup the signin name for the Office Communicator or Lync.. How are you going to make sure that all users notice the SIP domain change on the client side…
    1. For the users that are always connected, you can use the script I’ve posted here: http://www.reijling.nl/wp-content/plugins/download-monitor/download.php?id=1 . You need to rename the .txt file to a .cmd file and it can be added in the GPO. In XP, you’ll be able to use this KB: http://support.microsoft.com/kb/314488 or with Windows 7 use: http://technet.microsoft.com/en-us/library/cc731892(WS.10).aspx
    2. When you want to reach all the VPN users and you don’t have Direct Access deployed, you can use this download: http://www.reijling.nl/wp-content/plugins/download-monitor/download.php?id=2 .

      It consists of two files:

      1. Cmd file that closes the client, removes the signin address, call Gpupdate.vbs, starts Communicator.
      2. VBscript that calls the gpupdate with the focus on the user part; writes down the username and computername in a logfile and a status file.

      Just modify the Gpupdate.vbs parameters for the output file. Send out the link to the users that the SIP address change is being announced and that the users should run the script when they are not able to sign in.

Hopefully this is helps you to migrate your environment. If you have any questions regarding this topic or scripts, feel free to contact me.

Permanent link to this article: http://www.reijling.nl/?p=733

Sep 13

LyncSocial; A first impression

LyncSocial (Beta) is a free application for Microsoft Lync that allows users to update their Lync, Twitter and LinkedIn statuses simultaneously.

I’ve seen a post in some Linked-In Groups that there was a Social connector for Microsoft Lync.

Their statement is: “LyncSocial is a simple way to enhance your social media presence without taking the extra time to login and post to different platforms. Simply include #TW for Twitter or #LI for LinkedIn in your Lync status to automatically update these platforms.”

Here is a personal review of what I’ve experienced so far…


Using Internet Explorer, I downloaded the client from http://www.lync-social.com/

When finished downloading, it showed that the download could harm my computer… I think there is some work to be done by Project Leadership to have this accepted by the majority of the community.

The setup is pretty straight forward… Just a couple of Next, Next Next buttons and you’re done.

When the setup is finished, there is no checkbox or button that asks if you want to start the plugin… Might be something to have a look at…

Setting up and configuring

So I’ve started the plugin and found out that there isn’t much to configure… You can check the Twitter and Linked In and select the hash tag you want to use with it..

So far so good, it looks pretty easy… Now I justed wanted to setup my accounts… I couldn’t find any settings to setup and looking in the help file didn’t help as much as I wanted to… I’ve got a technical background but reading the helpfile didn’t get me the right results….Getting my Lync client to post updates on Twitter and LinkedIn…


I found out that you just need to update the comments box in the Lync client like the picture below:

Once you enter the #TW, you’ll get a prompt to get the client connected

The steps to have that connected is pretty simple. In the end you will grant the application access to your Linked In Account.


As I’ve connected LinkedIn and Twitter, it will post a message with the status… Weird, in the test status message, I’ve put the #TW to just verify that something gets posted on Twitter. I want to separate messages between Twitter and LinkedIn…. However, using only the #TW, it did show up in both… Again, some room for improvement…


All in all, I like the integration, but the application has some rough edges that need to be solved to have it as something I would like to use on a daily basis.

Permanent link to this article: http://www.reijling.nl/?p=722

Aug 26

Damaka Xync client mobile client for Lync review; Pro’s and Con’s

Damaka has released a multi-platform mobile client that allows to connect to Microsoft Lync without any new backend requirements…

I’ve downloaded the iPad client from the iTunes AppStore. This is something that is nice for small businesses, but with a large multinational… You probably do not want your end-users to buy the Xync client themselves. The deployment model is great, payment methods is something that might be improved….

The client itself… If Lync your environment is connected to the Internet and is using automatic configuration, you can just sign in using your SIP address (most of the time identical to your mail address), domain logon name and your password. This results in you being able to logon and shows your contact list including groups etc.:

So far so good, creating a Lync call between two users is pretty intuitive as well. Just press and hold your finger on the name, or click on the icon on the right. A menu pops up and you able to create a call.

When you receive or in a call, the screenshots below are shown… Continue reading

Permanent link to this article: http://www.reijling.nl/?p=684

Aug 24

Lync, Remote Call Control and Video, it will be available in 2012

Microsoft Lync offers customers flexibility in deployment models with existing legacy IP-PBX systems through interoperability features like Direct SIP integration and Remote Call Control (RCC).

Direct SIP is the capability for Microsoft Lync to send and receive calls as a peer IP-PBX with existing telephony infrastructure, including SIP/PSTN Gateways and IP-PBXs. Dozens of PBXs, Gateways and IP Telephony Service providers interoperate with Microsoft Lync Server 2010 through Direct SIP. Those qualified for interoperability by a third party are documented in the Unified Communications Open Interoperability Program at http://technet.microsoft.com/UCOIP. Direct SIP allows end-users to have their entire phone capability served by Microsoft Lync as an alternative PBX infrastructure, or to work in concert with a PBX.

RCC is the capability for the Lync client to control a PBX phone through a Computer Telephony Integration (CTI) signaling channel with the PBX. RCC continues to be supported by Microsoft in Lync Server 2010. The core capabilities for end-users this feature provides is click-to-call using a user’s existing PBX phone and PBX-based binary presence update (“In a Call”). These capabilities are largely unchanged since the initial release of RCC with Live Communications Server 2005 SP1.

While RCC makes up a very small percentage (less than 1%) of deployed Lync voice seats, these capabilities continue to be supported for all customers in Lync Server 2010 although video calling for RCC-enabled users is not available in the Lync client. This includes both peer-to-peer video calling using the Lync client for both media types and split audio video calls where audio comes through the desk phone and video comes through the Lync client. The enhancements made in the Lync release, primarily around video escalation scenarios, required the video feature for RCC-configured users to be deprecated.

Based on feedback from customers planning to deploy Lync for RCC and video, Microsoft has investigated ways to address the lack of video capability for RCC-enabled users. Calling scenarios where audio is delivered through the desk phone and video comes through the Lync client, also known as “Split AV”, will continue to remain deprecated in Lync. The split AV scenario is not only is difficult from an engineering perspective, it provides an inconsistent and oftentimes suboptimal end-user experience with audio & video taking different network paths and losing sync.

Microsoft does plan to add peer-to-peer video calling for RCC-enabled users to the Lync client in the tentatively scheduled Q1CY12 timeframe. With this enhancement, RCC enabled users will be able to place and answer peer-to-peer Lync video calls, join conferences with audio and video enabled using Lync, and continue to use RCC for its core purpose of controlling the desk phone and binary presence update.

Microsoft does not have any additional information to provide about a future release of Lync. With the exception of this scheduled update, there are no planned changes or deprecation for the RCC feature set. Should any plans arise, Microsoft will announce them publically as soon as possible.

For end-users configured for RCC and deployed today without video calling capability (i.e. no webcams), there is no change to their experience with the current version of Lync. They will continue to control their PBX phone to place and receive calls using the Lync client as with previous releases. Similarly, presence update for a user’s “In a Call” status will still operate as expected. For a comparison of user features available in RCC vs Enterprise Voice, please refer to the Lync product documentation at http://technet.microsoft.com/Lync

Customers interested combining desktop video calling with IP telephony have several options for moving forward. In summary:

  1. Keep RCC users on Office Communicator 2007 R2, while deploying Lync to enterprise users for the voice features of Lync, either alongside or in replacement of their PBX phone.
  2. Use the Q1CY12 Lync update with peer to peer video calling enabled for RCC enabled users.
  3. Enable users for Enterprise Voice and use Direct SIP for trunk level interoperability with the IP-PBX.

Continue reading

Permanent link to this article: http://www.reijling.nl/?p=675

Jul 21

Enabling users for Lync fails with ContraintViolationNoLeadingOrTrailingWhitespace error

When trying to enable some users using Lync Control Panel, I was getting the following error:

Other accounts were not having any issues and I was member of the CsUserAdministrator and therefore had the correct rights.

When analyzing a Debug session (ADConnect, Powershell and Userservices) with the Snooper tool. It presented the following error message:

Component: PowerShell
Function: OcsCmdlet.WriteError
Source: ocscmdlet.cs(455)
Local Time: 07/20/2011-16:45:42.472
Sequence# : 0008898E
CorrelationId :
ThreadId : 1F20
ProcessId : 2CDC
CpuId : 2
Original Log Entry :
TL_ERROR(TF_COMPONENT) [2]2CDC.1F20::07/20/2011-14:45:42.472.0008898e(PowerShell,OcsCmdlet.WriteError:ocscmdlet.cs(455))(0000000001B23ADF) ErrorId=Validation,Microsoft.Rtc.Management.AD.Cmdlets.EnableOcsUserCmdlet,ErrorMessage =ConstraintViolationNoLeadingOrTrailingWhitespace,StackTrace=

The error message basically mentions that there is a space character (" ") after the selected user object. In the Active Directory, the User object had a trailing space after the Displayname. When that was correct, all provisioning was done without any error.

To my concern, this looks like something that should be fixed in the Powershell Enable-CsUser command… However, now you know how to resolve this issue.

Permanent link to this article: http://www.reijling.nl/?p=672

Jul 15

Lync; Configure Monitoring server URL in Lync Control panel

When you have deployed the Lync Monitoring server, by default you will see the following screenshot regarding “View Montiroing Server reports”

However, you are not able to click on the 1-MonitoringServer-3 link… Which I find quite annoying. To update the Lync configuration with the correct URL, you need to run the following script from any domain member machine that has the Lync Management Shell installed:

Set-CsMonitoringServer -Identity “MonitoringServer:<MONITORINGSERVERFQDN>” -ReportingUrl “http:// <REPORTINGSERVERFQDN>/ReportServer/Pages/ReportViewer.aspx?/LyncServerReports/Reports%20Home%20Page”

The result is that the 1-MonitoringServer-3 is a link:

If you click the link, you will be redirected to the Monitoring server dashboard:

Permanent link to this article: http://www.reijling.nl/?p=668

Jul 04

Lync; Cumulative Update 2 available







Lync 2010 (64bit)



MS download

Lync 2010 (32bit)



MS download

Lync 2010 Phone Edition (Tanjay)



MS download

Lync 2010 Phone Edition (Aries-Aastra)



MS download

Lync 2010 Phone Edition (Aries-Polycom)



MS download

Lync 2010 Attendee (Admin Install)



MS download

Lync 2010 Attendee (User mode install)



MS download

Lync 2010 Attendant (32 & 64 bit are a combined patch)



MS download

Lync 2010 Group Chat Client



MS download

Lync 2010 Group Chat Server



MS download

Lync 2010 Group Chat Admin



MS download

Source: http://www.microsoft.com/download/en/details.aspx?id=11551

Permanent link to this article: http://www.reijling.nl/?p=664