23 February 2014

15 March 2012

Address Book Service – Use and Troubleshooting (part 1)

I’ve seen a huge number of issues in the Microsoft public newsgroups related to the Address Book (AB Server). The queries arise from a combination of things: lack of clarity on how the AB Server actually works, bad configuration, permission problems, bad/missing certs, etc. I find we spend a lot of time answering the same questions over and over.
To try to help OCS admins grappling with the AB Server, I’m creating a couple of blog posts on the AB Server. This one, the first, will concentrate on how the ABServer Works. Then in a subsequent post, I’ll look at how to troubleshoot your issues.
Note: What I’m publishing is my understanding thus far. To some degree I regard this blog post as a work in progress – so please comment where I’m wrong, or missing a point. There are some gaps in my knowledge and I’ve indicated where those are. More comments PLEASE! Some of the information comes from the [MS-ABS] information you can find at the Microsoft Office Protocol Documents at: http://msdn.microsoft.com/en-us/library/cc307432.aspx. The rest of it via hard work, and loads of troubleshooting!
What does the AB Service actually do?
The AB Server (and some other components)are a  part of Office Communications Server that provides users with a local address book that can be searched by the client (e.g Microsoft Office Communicator, or MOC, and Microsoft Communicator Phone Edition, aka Tanjay). Clients then get information about OCS related users and groups (distribution lists) stored in AD, but without having to hit AD each time they search.
When it works (which is most of the time), the AB is pretty cool. You can search for users (and DLs) in MOC by just typing letters/numbers. If, for example, you hit “TH”, MOC would show all the entries that begin with “TH” – this would include all the users whose names start with Thomas, Thanthony, ThePowerShellUGDL,etc. The AB also allows clients to do reverse number look-up of incoming VOIP calls. {this is per MS-ABS – need to check of MOC actually does this]
The AB Server system enables searching of the address book using only local resources. But by decoupling the local store from the AD, there is inevitably a degree of imperfectly fast convergence. If I add a new user, Billy Bob Joe Bob for example, it’s not going to be instantly in your local AB even if he can log on pretty quickly. To understand this, let’s look at how the whole AB server process work works.
How Does The AB Process Work?
The AB Process consists of several pieces that  extract information on SIP enabled users and contacts and use this to create a set of files that the MOC client downloads and uses as noted above. At a very high level, this process involves several steps:
  • OCS’s User Replicator service registers for changes in the AD. The UR service then looks at all the new/changed/deleted user or contact objects. The details of these objects are then written to the OCS database. [need to add details around just what the replicator looks for, and where in the DB these records live]
  • The Address Book Server parses the DB contents and produces a set of files that the client can download to generate the local store. The ABServer runs, by default at 01:30 local time, but this can be changed using WMI. The AB Server creates both a new file representing ALL the contact data, plus a set of delta files showing ONLY the changes since a certain number of days ago. These AB files are placed on a local share, which are exposed as an IIS virtual root off the web components server. The ABServer runs on the web components server (and for an expanded Enterprise deployment, on all web components servers.
  • When the MOC client logs on, it obtains the URL to these files via in-band provisioniong. It then loads the appropriate files and creates a local database. This database is stored in [need to add this location]
User Replicator Service
The User Replicator Service has a couple of functions. First,propagates necessary OCS information from AD to OCS relatively quickly. UR can ask AD (technically it asks a GC) for all changes since a certain time. It then writes those changes to OCS’s SQL database. The UR process runs on the Front End Server. [need to add details of process name, and clarify what happens in expanded enterprise deployment]]
The information downloaded enables the OCS (SQL) database to contain all the information about OCS users up to ‘relatively soon  ago’. This means you can add a user and they can logon pretty soon. [need to quantify ‘soon’].
Since OCS has all the information about all the SIP enabled users/contacts, the DB also serves as the basis for generating downloadable address books. This is done by the AB Server that runs on the web components server and the client then downloads these as described below.
AB Server Process
Once a day the AB Server parses the OCS SQL database and creates a set of files that the client can download to construct a local address book database. By default, the AB Server performs this at 01:30 local time. You can use WMI to change this time. [should add WMI class/property to change]
The AB creates several files each night:
  • A full file holding all AB entries (at the time of the AB Server run)
  • Up to 30 delta files, representing the change between “now” and up to 30 days ago.
ABserver produces full files and delta files. Full files contain full details from OCS as of a date. ABServer also produces complete and minimal files that contain more/less information. [need to cite differences between these"]
The delta files contain the difference between two full files including new and changed user objects as well as deleted user and contact objects. The AB Server files are named as follows:
  • F-XXXX.lsabs  - a complete full file from date XXXX
  • D-XXXX-YYYY.lsabs – a complete delta file representing changes between XXXX and YYYY.
  • F-XXXX.dabs - a minimal full file from date XXXX
  • D-XXXX-YYYY.dabs – a minimal delta file representing changes between XXXX and YYYY.
The dates in these file names are 4-digit hex values representing the 0-based number of days since January 1, 2001, 00:00:00 UTC. Thus  F-0A8C.lsabs would be the address book file for Saturday, May 24, 2008.
The files with the .LSABS extension contain full information about each contact or user. Files with the .DABS extension contain a minimal subset of information useful to a SIP Phone Client. [need to check that MOC downloads the .lsabs and that the tanjay downloads the DABS]
What does the client do?
When the client logs into OCS, the client subscribes to provisioning information. The FE/registrar server responds by sending this information which includes a b base URL details of where to find the AB files. The client then uses the URL to request the appropriate files. It does this by concatenating the base URL received via in band provision with a detailed name based on the current date (using the date format noted above).
If this is the first time the client has ever logged on, or if the client hasn’t logged in for 31 days or more, MOC downloads the latest full file. If the user has logged in between 1 and 30 days ago, MOC downloads the appropriate .LSABS file. If the file is a delta, it’s merged wiuth the current address book. If it’s a full file downloaded, the new file overwrites the older one.
In some cases, the size of the delta can be larger than the size of the full file. This could happen if you do some major re-organisation of the AD (deleting users, adding users, etc). In such cases, no delta is created, and a full file is used instead.
The MOC client gets two separate base URLs – an internal one and an external one. MOC will first try to access the AB Server files using the internal base URL. If that fails (i.e because the client is external), MOC tries again using the external address. [need to confirm this using WS]
So What can go Wrong
In an nutshell – lots. although in most cases it all just works. There are some simple problems to resolve, as well as some more complex ones. But I’m leaving those details for a second blog article that looks into the primary issues you may face. I’ll publish this later this week.

31 October 2009

This blog closing down

This is the last post I will be making in this blog, which is now closing down as I head off for pastures new. It’s been fun to post here but life moves on.

In future, my posts on the subject of OCS are to be found posted to my technical blog: Under The Stairs at http://tfl09.blogspot.com.  I also post PowerShell Scripts to my other blog: PowerShell Scripts Blog at http://pshscripts.blogspot.com. Some existing posts will be left here for a while, but will gradually go or move to my technical blog as appropriate. Eventually I’ll remove this blog, so adjust your short cuts and RSS feeds.

For those of you how have read this blog I thank you and for those who have communicated via this blog double thanks.

As the words in the song go: What a long strange trip it’s been!

19 May 2009

Back Home after TechEd

Well – TechEd NA 2009 is over, and I’m home. The talk went pretty well. I received an overall score 3.77 out of 4 which was above average and above the UNC track’s average too. Pretty much as to be expected, my VM blew up as I started my first demo – thankfully I had all the demos pre-captured so was able to recover simply from that. 75 minutes on SIP was way too short – I wonder if I can convince MS to do an entire day on SIP for TechEd EMEA?

06 May 2009

Updates for Communications Server 2007 R2 (almost SP1!)

Microsoft has released a set of 13 patches for OCS 2007 R2. You might think of this as SP1 for OCS 2007 R2 (but that’s not the say MS is marketing it). Irrespective of what they call it, this set of patches is probably worth adding if you are deploying R2. As ever with patches, check the details to see if your systems are affected by each of these patches and which ones.

Due to the complex nature of OCS Deployments, patching is hard as there’s not just a single patch you can apply to all systems – you have to apply some patches on some systems and other patches on other systems. For example, an OCS 2007 R2 SE system needs 9 patches, while the Edge Server needs three. So plan this carefully as, at the least, you’ll need some service outages to apply the fixes.

The KB article: List of available updates for Communications Server 2007 R2: April 2, 2009, lists all 13 patches and describes which patch needs to be installed on which server role. You can drill down into each of the 13 individual patches – each has its own KB article. Most of these KB articles explain the issues resolved by the patch. KB 967675 that describes the fix to the Mediation server does not contain details of the fixes, but that’s probably just a doc error that will get fixed soon. For each individual issue, there’s a link to (another!) KB article describing the specific issue in more detail which include the symptoms of the (resolved) issue.

All in all, this is a useful update and well packaged. Next time though, couldn’t we have a mondo-patch (R2PatchAug09.exe for example) that you must apply to every related OCS system. That would help with the deployment and could reduce support calls especially from organisations deploying distributed Enterprise pools.

Technorati Tags: ,,

TechEd Talk Preparation

I’m just counting the days till TechEd NA. As I noted earlier, I’m giving a talk: UNC404 SIP: Naked in All Its Glory, which is a 400 level talk on the protocols that support OCS 2007. The allotted time of 75 minutes is inadequate to convey everything about all the protocols, let alone do all the demos. I could easily spend several days talking about all this (oddly enough, I do spend days talking about this stuff on a regular basis). Unfortunately, I’ve been pretty ill – at home with pneumonia but on the mend – thank heavens for good antibiotics! I will be well enough to travel and speak, but I doubt there will be much partying this year for me!

I’ve spoken at multiple TechEds over the years and kind of know what expect. But this year, the TechEd Organisers are going to even more extraordinary efforts on quality. My deck has been reviewed twice by the product team and I’ve had two dry runs. Today, I have some speaker coaching. As a trainer, I find all speaker coaching to be worthwhile and today’s session was particularly good. We spent a long time working on the areas of public speaking where

The bad news is that my deck is due tomorrow – and the deck I submit is the deck I have to present (no exceptions). After today’s speaker coaching, I want to tear it up and re do it (but there’s certainly not time). But the deck is strong, and with the benefit of the last deck review and the speaker coaching, I’ll have a good presentation. In some ways, that’s not a bad thing – it means I can rehearse what I’ll be saying, rather than changing stuff at the last moment and not quite getting it right. When the talk is all completed, I will post the final deck and the demos for those who are interested!

I wonder if attendees know just how much work a TechEd talk can be is!

Technorati Tags:

21 April 2009

TechEd Talk – continued

My talk for TechEd 09, “SIP Naked in All Its Glory” is moving forward. Yesterday, I had a dry run rehearsal, using Live Meeting. It was nerve-wracking, but a very useful experience. I got some great feedback on the talk and learned a bunch about how to setup my laptop to do the demos.

This talk is all about SIP on the wire – looking at how OCS 2007 uses SIP and related protocols. The thing that came most clearly out of yesterday’s rehearsal is that I could easily spend a WEEK talking about all this stuff- if not more!

15 April 2009

TechEd Talk!

I am super excited that I’ve had a talk accepted for TechEd North America. I submitted a number of talks, but only one got accepted: SIP: Naked in All Its Glory.

The talk will look at how OCS uses SIP, as well as a short discussion of TCP/IP, TLS, SDP and RDP. The talk will also look at the many extensions that MS has made to these protocols (as I noted over on my technical blog). The talk spends time looking at the key tools (i.e. WireShark and Snooper) as well as examining a number of network captures. Serious 400 level geekness!

I’ve got the talk nearly done and am working on my demos. Next week I have two dry-run rehearsals in front of an on-line audience. MS are also requiring me to have canned demos just in case anything goes wrong. If there’s something around this topic that you’d like to see added, feel free to ping me!

Sadly, my talk is right at the end of the conference – last thing on the Friday. If you’re around TechEd – I’ll also be hanging out on the UC booth.



Technorati Tags: ,,

14 April 2009

OCS 2007/2007 R2 User Awareness and Training Materials

I’m just back from a week in Redmond, attending OCS Voice Ignite 1.2 – an advanced training course in OCS and Voice. A fantastic week – serious geek heaven!

One interesting thing that was released last week was the UC 2007/2007 R2 User Awareness and Training Materials. These are a set of tools to help speed the usage and adoption of UC technologies inside your organisation. There are things llike posters, door hangers, quick reference cards, etc to help both IT Pros and End Users get to grips with UC.

If you are planning or involved in a deployment of OCS these materials may be very useful!

Technorati Tags: ,

04 March 2009

OCS 2007 R2 E-Learning from Microsoft

Microsoft has just released a new E-Learning collection entitled: Collection 10051: Exploring New Features in Microsoft Office Communications Server 2007 R2. This collection “collection” includes two  E-Learning clinics (aka 1-hour modules):

This collection provides a brief overview to what’s new in OCS 2007 R2 and is at around the 150 technical level – it concentrates on the key features of R2 but not dive too deeply. The first clinic looks at what’s new in R2, while the second clinic looks at how you can deploy and migrate to R2.

And a nice feature – these are free.

Technorati Tags: ,,

23 February 2009

Managing OCS 2007 R2 from the Command Line

Greg Stemp and Jean Ross (who use to be The Scripting Guys), have written a good article on TechNet: Office Communications Server: Managing OCS 2007 R2 from the Command Line.

This article looks at how to use LCSCMD to do useful stuff with OCS. As usual with Greg and Jean’s stuff, the writing is good, and examples are most relevant. And for OCS wanabe-gurus, there are a couple of cool  bits of information I’ve not seen elsewhere (application IDs for example). Well worth a read and a bookmark!

However, LCSCmd.Exe is not the only Command Line tool. The (ex) Scripting Guys have forgotten PowerShell! There’s no mention of PowerShell in this article at all, which is a curious omission. Or possibly the by-product of a word count limit on TechNet).

I’ll write more on this soon over on my Technical Blog: Under The Stairs.

Technorati Tags:

22 December 2008

Office Communications Server 2007 R2 is completed

I have it on good authority that Microsoft has completed their work on OCS 2007 R2, which is due for launch in Feb 09.  As of now, it’s not reached MSDN but I’d expect is fairly soon. Allegedly, it’s build 6907. Note that it’s 64-bit only!

Although coming just 18 months after OCS 2007 RTM, R2 is more than just a service pack – it both introduces some cool new features e.g. Attendant Console3, Dial-in Conferencing Support, a much improved CWA and persistent chat to name a few.

I am hoping we’ll see a OCS 2007 R2 Ignite in the new year.

Technorati Tags: ,

04 December 2008

Edge Planning Tool for Office Communications Server 2007

One of the biggest support call generators for OCS 2007 relates to deployment of the Edge Server. OCS’s Edge Server role can be complex to deploy mainly due to the combination of roles, ports, and IP addresses involved. To help you to deploy your Edge, Microsoft have produced the Edge Planning Tool for Office Communications Server 2007. This is a free download!

The Edge Planning tool produces reports you can use to get your Firewall/DNS/etc folks to do the right thing.

A nice tool.

01 December 2008

OCS Voice Ignite – Back on the Road

Technorati tags: , ,

I’m in Paris this week, and plan to be in Bangalore next week on OCS Voice Ignite. This week, I’m attending the updated version of this cool 5-day technical training session. Next week, I’ll be running a Voice Ignite event at Microsoft’s Technology Centre in Bangalore.

I can’t say much about this training, since it’s covered by NDA. But I can say a) it’s pretty cool training with what looks to be good labs and b) it’s a must if you are seriously going to deploy OCS Voice in your enterprise.

If I can get permission, I’ll post more details.

14 November 2008

RampUp – Free Developer Training From Microsoft

If you are a developer, Microsoft has some new free training. Microsoft explains Rampup as: “free, online, community-based learning program, with a number of different tracks that will help you build your portfolio of professional development skills. Ramp Up has a solid foundation of premium technical content from subject-matter gurus, and provides easy-to-access content in a variety of forms that guide you in learning the important skills. Join Ramp Up (it's free!) and help advance your career”

The current offerings and current web site are clearly a work in progress. The site is a little clunky with the integration between MSDN and MS Learning being less than totally seamless. There’s a lack of discoverability, little integration between this training and the MSDN Library content and the material is not bang up to date. But that’s just work that needs to be done – the free training is still of benefit.

I’ve suggested that the next course to go up on the RampUp site should be PowerShell for developers. We’ll see if MS take me up on this suggestion.

So if you’re a developer, why not head on over to the new Ramp Up site and sign up?

Technorati tags: , , ,