Friday, May 30, 2008

Microsoft Office Communications Server 2007 Software Update Service Deployment Guide

This document describes how to deploy Microsoft Office Communications Server 2007 Software Update Service. Version 1.2 download it now.

File Name: OCS_UpdateServiceDeploy.doc
Version: 1.2
Date Published: 5/29/2008
Language: English
Download Size: 2.1 MB

Unified communication (UC) devices, such as Microsoft® Communicator Phone Experience and Microsoft RoundTable™, enable rich communication within an organization. Deploying these devices requires regular maintenance by the IT department, which includes providing available software updates to these unified communications devices. All UC devices rely on an automatic mechanism to obtain software update required on a regular basis.

Microsoft Office Communications Server 2007 Upgrade Service provides an automated way to update all unified communications devices deployed in an organization. These software updates can be the latest enhancements or fixes to known issues in the current version already deployed on the device. This document guides you through the process of deploying the Office Communications Server 2007 Software Update Service in your organization.

Microsoft Office Communications Server 2007 Update Service Administration Guide

This document describes how to administer Microsoft Office Communications Server 2007 Software Update Service. Version 1.1 download it now.

File Name: OCS_UpdateService_Admin.doc
Version: 1.1
Date Published: 5/29/2008
Language: English
Download Size: 1.5 MB

Microsoft Office Communications Server 2007 Software Update Service is an automated way to update all unified communications devices deployed in an enterprise. These software updates could be the latest enhancements or bug fixes in the current version already deployed on the device.
This document explains how to use Software Update Service to perform the following:

  • Manage updates in your organization
  • Monitor logs and other update information

Portal Event now with UC

Hi everybody! Especially for the readers in the Netherlands. Next month we will organize the Virtual Microsoft Portal event in Houten and Schiphol-Rijk. After 8 times its now time to use Unified Communications to arrange this.

As Bas Krikke always say its the physical minimum and the virtual maximum. The old good stuff before will now be virtualized by Microsoft Live Meeting 2007. Good speakers and great content.

Two LM line sessions on the same time in two different places (e-office in Houten and Macaw in Schiphol-Rijk). So basically you have free of choice. More information about this event and registration more in the upcoming weeks.

UCMA Part 2: Self

In Part 1 we have seen how we can subcribe to Roaming Contacts in this part we will take a look at Self subscription.

You may ask why do we want to subscribe to our self? Actually Self subscription returns some important information. Which categories do we have set up. Which containers do we have and the membership of those containers. And who is subscribed to me. The last one can be very handy. For instance we have created a bot, and we want to tell everybody who is using it that it will be down for maintenance or that new functionality has been added.

More information on this article please review our new UC Development Weblog. Check it out!

UCMA Part 1: Roaming Contacts

Looking at the UCMA 1.0 SDK stated that it is possible to use subscriptions. The only thing that is missing is how to implement them? What do we need to send? What do we get back?

For this information you have to dig deep into the protocols.
Recently Microsoft published preliminary versions of these protocols. You can find them here: Office Protocol Documents. It's almost 90 Mb in PDF documents :-(.

More information on this article please review our new UC Development Weblog. Check it out!

Thursday, May 29, 2008

OCS-Webclient part 3: Technical difference between OCS-Webclient and the CWA

Besides that our OCS WebClient is functionally different, there are also differences in the way the application is set up.
As the OCS-WebClient matures I come across some problems relates to working in a browser-environment.

  • Every additional function needs an environment (functions and storage)
  • Handling multiple chatsessions and redirecting flows of conversation.
  • Security issues / browserindependancy

Of course the "Microsoft Office Communicator Web Access" Client deals with these issues. It is always re-assuring to have proof that something can be done. These issues were present from the beginning, but as the project started as an experiment and a way to develop my skills in both UC and JavaScript. There are two major differences between my project and "Microsoft Office Communicator Web Access":

  • No permanent datacontainer: The probable environment for our project is a portal(in this case Sharepoint) The user probably request multiple pages. If this happens all information used by the OCS-WebClient gets lost. This includes Chatwindows, because they are 'children' of the web-page which can't communicate and act by themselves. The web-access client resides in a seperate browserwindow, in this way it has a fairly solid base.
  • Direct contact on the UCWA-Server: The webpage is located on the same server as the web-client. For the basic handling it shouldn't be a problem accessing the webservices on another server. That is, if you don't mind security. Cross-domain scripting is disabled in the standard security settings in Internet Explorer and Firefox.

The last topic will be discussed another time. The solution is to make a proxy-server, or to configure your browsers security level for the main site.

So how do we deal with this problems? Every time the user navigates to another page most information has to be regained. So what about storing information elsewhere? Storing on another server is out of the question. That would compromise the whole idea of having a fast lightweight clientside script. The way to store localy within a browser is a cookie. But cookies can store limited information. We only store that data, so we don't have to login everytime.(Being SessionID, RequestID, AcknoledgementID and the authorization Cookie)

In choosing a client we could make an analogous comparison with getting something to eat while on a trip:

  • perhaps the Microsoft Office Comunicator 'rich' client being a restaurant or at home: a lot of choice with all facilitations, but not available everywhere.
  • With the "Microsoft Office Communicator Web Access" being a snackbar, can be found on almost every corner, Functional, ready to use but missing some luxuries.
  • And our web-access client being a picnic basket. You can have a bite at the very spot you are standing. And you only brought exactly the things you like. But if you want a complete meal, it has to be set up every time you move. You can make it extensive, but your browser has to carry and deploy the basket. Usually this is so fast that you won’t notice it.

My advice : Make a combination of all three according to your taste and mood and eat all you want. Feedback is always welcome.

OCS-Webclient part 2: New functionality

It has been a while since the first article.  As a developer (and a person) you shouldn't restricted yourself to much in the beginning. And in fact it is a good thing not to set the threshold too high for UC-Ajax. The past months gave me as much insight in the workings/quirks of AJAX/JavaScript as of UC. On this article we will go into some functional improvements. The next will go into technical details.

As I spoke to my colleagues in what functionality should be added, it became clear that the added value of the client is seamless integration and adding “Unified Communications” in the context of the page. The question is: where is OCS relevant in a page.

A good example is the integration of the rich client with SharePoint if someone posts something. If you hover over the name of the writer you will be presented with a number of things you can add:

Let’s try to translate some to our scenario with no rich client available.

Options regarding audio and video are not possible. If the user does not have the rich client installed he possibly has no access to a dedicated e-mail-program (like Outlook) either.  There are loads of information available on a contact if you query the presence of a contact in OCS. We can combine them with (possibly hidden) content on the page itself. For instance you can filter out all unnecessary options that do not match within the context of the page.

What about your own presence? The most logical place for UC-driven actions regarding yourself in SharePoint is the upper right-hand corner, between your other personal links. I’ve created an icon of your current state and a pulldown-menu to change it.
It is also very simple to change your status according to the page you are viewing. For instance if you are navigating to your “My Site” and open a new blog post: The webclient can set your presence to ”Busy” and/or your note to “blogging”.


Another possibility is that you want to initiate a call with somebody else. But where can you find your contact list without starting a new window for the MS Webaccess client first? A possibility shown above is to put it in a Web-Part, but it might as well be in another pulldown menu next to your own status. It might as well be any element on the page as log it has an ID attached to it.

The link on each contact is created by the OCS Webclient and could direct you to the mysite of that person, or open a chatwindow. Alternatively a popupwindow can be shown.
If you want to discuss these or other functionalities, feel free to contact us. Feature request send an email to of or just IM us or

Getting and setting presence using UCMA

After publishing the first 2 articles about getting and setting presence using UCMA, Paolo Tuninetto came up with a scenario in which it didn't quite behaved the way I expected it to be.

If you did set the presence of your application it did show up online in the OC Clients. If you were getting the presence of some one using the OC client it got the correct presence back. That was the scenario I used and tested.

More information on the UC Development weblog.

UC development components we are working on...

I've been really busy with a lot of questions and issues regarding to UC development. Here is a short overview of what I've been working on and what you can expect from me the next few weeks.

CWA and Silverlight 2 beta 1.
I'm still working on this one here is a screenshot of the current application:


Next part of this series will show you how to handle presence events.

After publishing the articles about how to get and how to set presence, I got a series of questions and issues. To solve these I had to take a deep dive into the presence and SIP protocols. Microsoft recently published preliminary versions of these protocols.

Here is a list of the things I worked on:

  • Getting and Setting presence(update article coming soon)
  • Subscriptions
  • self(Categories, Containers, Subscribers)
  • roaming contacts (groups and contacts)
  • presence (in fact there are 3 ways how you can implementpresence subscriptions).
  • ContainerMembership

For more information contact more detailed information see Marcs weblog.

WebMessenger extends Microsoft OCS to Nokia users

WebMessenger has added support for Nokia handsets to its messaging middleware platform, which enables a wider range of corporate phones to be used with Microsoft Office Communications Server (OCS) for mobile presence and messaging functions.

Available immediately, WebMessenger Mobile for Microsoft OCS brings the same functionality to Nokia S60 devices as the Communicator Mobile client supports on Windows mobile handsets, according to WebMessenger president Joe Naylor.

"We've seen Microsoft having tremendous success over the past year, with customers ripping out and replacing Lotus Sametime and Jabber in favour of OCS, " he said.

However, communications vendors such as Nortel have found their customers wish to integrate mobile handsets with any new IP PBX system, and Microsoft only provides an OCS client for its own Windows Mobile platform. Businesses typically have a mix of devices, especially Nokia phones.

"We’re currently the only vendor with OCS support on Nokia," Naylor said. The company also announced support for BlackBerry devices in May.

Jeremy Green, principal analyst for enterprise mobility at Ovum, said that a solution such as WebMessenger Mobile addresses a real business need.

"Until now, OCS has been a closed world where you needed Microsoft infrastructure and Microsoft handsets, but few enterprises want to commit to just a single handset platform," he said.

OCS itself provides a unified communications system integrating web conferencing, instant messaging and voice and video call support for desktop Windows users.

WebMessenger Mobile requires a server-based component that links with OCS, but also integrates with Active Directory so that administrators can create mo bile messaging user groups and push out the client to user handsets.

"The key point here is that the user has the same credentials as their desktop account," said Naylor. WebMessenger can also integrate with other messaging systems such as Lotus SameTime and Jabber, he added, and can be operated as a hosted service by carriers.

For enterprise customers, WebMessenger Mobile for Microsoft OCS costs $72 (£36) per handset licence, while the server costs $4,995 (£2,526) and can support up to 10,000 users.

Source: VNUNET

Wednesday, May 28, 2008


Yesterday a lot of partners where joining the UC event Heliview.

Also ESTOS got some interesting information about products on top of OCS2007.

As a certified Microsoft Gold Partner specialising in the area of Unified Communications, ESTOS is in a position to offer standard software components and expertise for migrating existing telecommunications system infrastructure through to a modern, future-proof Unified Communications solution based on the Microsoft Office Communications Server. The following solution components represent the best technology available for this scenario and can also be deployed in combination with classic ESTOS products.

Some nice products they have:

  • ESTOS CallControlGateway 2.0
  • ESTOS PhoneTools for Communicator 2.0
  • ESTOS MetaDirectory 2.0

More information see the website of ESTOS.

New fresh list of webcasts in July 2008

New list of webcasts upcoming in July 2008. Thanks Eileen for sharing this with us!

TechNet Webcast: Disaster Recovery in Communications Server 2007 (Level 200)
Monday, June 02, 2008 - 9:30 AM - 10:30 AM Pacific Time
Byron Spurlock, Consultant - Microsoft Consulting Services, Microsoft Corporation

TechNet Webcast: All About Communications Server 2007 Security (Level 300)
Thursday, June 05, 2008 - 9:30 AM - 10:30 AM Pacific Time
Byron Spurlock, Consultant - Microsoft Consulting Services, Microsoft Corporation

TechNet Webcast: Configuring DNS, Certificates, Ports, and Load Balancers for Communications Server 2007 (Level 300)
Monday, June 09, 2008 - 8:00 AM – 9:00 AM Pacific Time
Byron Spurlock, Consultant - Microsoft Consulting Services, Microsoft Corporation

TechNet Webcast: A Technical Introduction to Forefront Security for Communications Server (Level 300)
Thursday, June 19, 2008 - 11:30 AM - 1:00 PM Pacific Time
Kelli Cook, Product Manager, Microsoft Corporation

MSDN Webcast: Building Software on the Microsoft Unified Communications Platform (Level 200)
Tuesday, June 17, 2008 - 10:00 AM - 11:00 AM Pacific Time
Chris Mayo, Technical Evangelist, Microsoft Corporation

MSDN Webcast: Behind the Scenes with Communications Server 2007, Communicator 2007, and Exchange Server 2007 (Level 300)
Thursday, June 19, 2008 - 10:00 AM - 11:00 AM Pacific Time
Chris Mayo, Technical Evangelist, Microsoft Corporation

MSDN Webcast: Driving Contextual Collaboration with Office Communicator 2007 (Level 300)
Tuesday, June 24, 2008 - 10:00 AM - 11:00 AM Pacific Time
Chris Mayo, Technical Evangelist, Microsoft Corporation

Momentum Webcast: Bringing Everyday Applications Together with the Power of Presence (Level 100)
Wednesday, June 11, 2008 - 11:00 AM – 12:00 PM Pacific Time
Stephanie Doakes, Mid-Market Solutions Advisor, Microsoft Corporation

Heliview Zeist the Netherlands

Yesterday, Microsoft Netherlands organized the Heliview event about Unified Communications. Especially the new way of work and also we give a presentation about OCS how it integrates with MOSS and other Business Line Applications.

Download the presentation here.

We also demonstrate our new projects Silverlight in MOSS, UC Routing Engine etc.

Our stand:


The day was amazing and really great to expand your partner network. Microsoft Netherlands was founding partner and also e-office was having their own stand. Together with the colleagues in the Microsoft department we talked a lot about how OCS fit into the (HOT = Human, O= Organization and T= Technology) format. Most of the time especially the HO aspects are not covered in projects. We are primarily focused on this concept. Our stand was build up with one Roundtable three demonstration laptops with full blown OCS and presence balls ;-)


Good to see also new fresh guys giving customers the possibility to rollout OCS in one box (UC appliance). I was really surprised how they integrate OCS, OCS Edge and Mediation Server in one server completely redundant and manageable. Also the Microsoft Licenses are included. The whole OCS infrastructure completely deployed in 2 hours through a well designed WebUI. Different kinds of appliances are available from standard edition to enterprise edition and also virtualized appliances by  Microsoft Hyper-V RC0 (RC1 is in testing). To be continued! We will post about this kind of services very soon.

Good to have more and more inspiration about new content I need to publish. Thanks for this day guys!

Monday, May 26, 2008

Heliview in Figi Zeist

Tommorow morning we are standing on a big event about the new way of work at Figi, Zeist in the Netherlands. Togerther with my colleagues we have a nice stand near Microsoft and Mitel. Bas Krikke Business Consultant at e-office will present about OCS and the new way of work. I'll hope some of you are on this event. Just give me a call/hanshake ;-) and I will proudly present UC!

We had some nice gadgets USB sticks (1 GB) with our presentations and presence balls to hit someone. Gna Gna!

Utica delivers hosted OCS

Hot from the press: press release (Dutch)

image Hosting Provider UTICA (gold Microsoft Certified Partner) is the first hosted provider in Europe that offers Office Communications Server 2007 as a hosted (SaaS) Service on a subscription basis, the service starts from € 4,95 a user a month.

The hosted OCS offering delivers a corporate and secure medium for unified communications where instant messaging, (video)conferencing, presence, LiveMeeting and telephony functionality are brought to the public.

The Hosted Office communications server offering from UTICA is meant for corporates (small and medium businesses) that are not willing to invest in a specific and complex service but that nevertheless want to get the advantages of the functionality.
UTICA is working closely with her partners (Mitel, Interoute, EMS-Cortex) to make this offer complete with premium VOIP / telephony services. If you need any information about UTICA we will send you the contact details.

Friday, May 23, 2008

Unified Communications Development/Infrastructure update

Unified Communications Development is absolutely booming at the moment. Marc and I get more hits on our weblogs than ever before. Also good to see is that you as weblog reviewer is looking for more brief information about how you can easily develop powerful applications with OCS.

In a very early stage e-office was busy with the UC competence to develop nicely UC applications.
The good news is that we will continue doing this. So I can assure you that this weblog and the Unified Communications Development weblog will be frequently updated with new code samples and unified infrastructure related  news.

As you saw before Marc Wetter Software Architect at e-office is lifting up the whole UC development Suite to the next level and produce constructive code samples to design your own UC customized application integrated in probably Microsoft Office SharePoint Server 2007, Windows SharePoint Server v3 or other projects.

If you lost this information before, underneath a short overview of all blog posts we published about custom build UC applications.
How to build a Silverlight UC client with Silverlight 2 Beta 1?

We also published information about how to develop Middle Tier UC applications: Developing middle tier UC applications

How to get/set presence in UCMA:

UCMA Getting Presence using UCMA
UCMA Setting Presence using UCMA

Also how to create a UC Routing Application with UCMA. Check it here

Bottom line we are very busy with OCS and especially the UC development tools. What can you expect from us:

  • A business case where MOSS2007 is used as enterprise platform with integration to OCS
  • a UC custom application to get information out of your CRM system when having a inbound call from a fictive customer;
  • how to make an effective backup of OCS and how to restore it?;
  • Part 2 of Integrate OCS in webpages using JavaScript connecting through the webservice. Coming soon! Part 1 see here
  • .... and some extra hot news... we can’t say it ;-) 

Office Communications Server 2007 Document: Command-Line Reference Guide

Also the Command Line Reference Guide is updated to version 1.1. Also downloadable from the Microsoft Website.

Brief Description
This document describes the use of command line procedures to perform various tasks related to Microsoft Office Communications Server 2007 deployment.

File Name: OCS_CommandLine.doc
Version: 1.1
Date Published: 5/22/2008
Language: English
Download Size: 1.1 MB

This document describes the use of command-line procedures to perform various tasks related to Office Communications Server 2007 deployment. This document describes prerequisites for using the LCScmd.exe command-line tool and the following usage scenarios:

  • Preparing Active Directory® Domain Services for Office Communications Server 2007 deployment by extending the schema, creating the necessary objects, groups, and permissions.
  • Creating Enterprise pools.
  • Installing Office Communications Servers, which include Standard Edition Servers, Enterprise Edition Servers, Archiving and CDR Servers, Proxy Servers, and Edge Servers.
  • Activating Office Communications Servers.
  • Checking the status of Office Communications Servers.
  • Deactivating Office Communications Servers.
  • Performing XML-based logging.
  • Managing permissions.
  • Delegating domain authority.

Office Communications Server 2007 Document: Active Directory Guide

The OCS 2007 AD Directory Guide is updates to version 1.1. You can download it from the Microsoft Download site.

Brief Description
This document guides you through the process of preparing Active Directory for Microsoft Office Communications Server 2007, how to delegate setup and administration, and includes the Active Directory schema reference.

File Name: OCS_ADGuide.doc
Version: 1.1
Date Published: 5/22/2008
Language: English
Download Size: 839 KB

The Office Communications Server 2007 Active Directory® Domain Services preparation process extends the Active Directory schema and creates the necessary objects, groups and permissions required to deploy and operate Office Communications Server 2007. This guide describes the extensions and focuses on the following areas:

  • How to prepare Active Directory so that you can deploy and operate Office Communications Server 2007.
  • How to delegate setup and administration permissions.
  • Active Directory schema reference.

Thursday, May 22, 2008

Group And Contact Management Using WMI

Microsoft Office Communications Server 2007 WMI API Sample
This sample shows how an administrator can manage contacts and contact groups for users by using the Microsoft Office Communications Server 2007 WMI API.

File Name: ContactManagementontheServer.msi
Version: 1.0
Date Published: 5/21/2008
Language: English
Download Size: 488 KB

This sample application uses the Office Communications Server WMI API to enable the administrator to populate the contact group lists belonging to the organization’s employees with the appropriate contact group team member names.

Presence and MOC Automation API

Yesterday, a bunch of samples are released about presence in managed applications and the MOC automation API.

Office Communicator 2007 Automation API Capabilities

Quick Details
File Name: AdvancedAutomation.msi
Version: 1.0
Date Published: 5/21/2008
Language: English
Download Size: 471 KB

Group And Contact Management Using Communicator Automation

File Name: ContactManagementfromClient.msi
Version: 1.0
Date Published: 5/21/2008
Language: English
Download Size: 9.7 MB

Presence in Managed Applications

File Name: Presenceforsmartclients.msi
Version: 1.0
Date Published: 5/21/2008
Language: English
Download Size: 583 KB

Presence in Web Applications

File Name: PresenceOnWebPages.msi
Version: 1.0
Date Published: 5/21/2008
Language: English
Download Size: 796 KB

Wednesday, May 21, 2008

Office Communications Server - Backup (Part 2)

Yesterday, we discussed part 1 of the backup procedure for OCS into your organization. Today we discuss other topics necessary to provide a good backup of your OCS deployment.

Looking at the previous post on step 2 (part 1) the following levels in OCS needs to be backupped.

  • Global Level Settings (apply to all computers in the forest structure)
  • Pool Level Settings (which configuration settings apply to an invidual Standard Edition Server or Enterprise Edition Servers within the same enterprise-pool)
  • Computer Level Settings (machine level settings which are specific to that OCS running machine)

Our own environment

Looking at our own infrastructure we have different OCS components in production. This backup procedure is primarily focused on a Standard Edition server deployment.

  • OCS Server Standard Edition in Consolidated Topology (all OCS MCU's on one box) example name: contoso1
  • OCS Edge Server Consolidated Topology (all Edge components on one box) example name: contoso2
  • OCS Mediation Server (Mediation Server for our Mitel 3300 ICP solution) example name: contoso3
  • OCS Mediation Server (Mediation Server for Enterprise Voice users using Interoute One iSIP services) example name: contoso4
  • CWA Server ( - Communicator Web Access Server 2007 example name: contoso5


Log on to the server to be backed up, or a separate computer on which Office Communications Server 20007 administrative tools have been installed (such as a management console), with an account that has RTCUniversalReadOnlyAdmins or equivalent user rights, as well as write permissions for the folder to which settings are to be backed up.

Step 4. Which (RTC) databases do I need to backup? Source: Backup / Restoration Guide. In this overview you see exact which databases are present and what kind of data is in it. Also the database locations are specified.


Step 5. OCS Standard Edition uses default file locations on the file system. Attached the complete overview.


Step 6. Which tools do I need to install before creating a backup?

  • LCSCmd.exe, used to export settings to the backup location (and to import them, in the event that they must be restored). This tool is available on any computer on which you have installed the Office Communications Server 2007 administrative tools. When having a Standard Edition Server lcscmd is already present.
  • Database tool: To backup databases on Standard Edition servers and, to restore the database on any Standard Edition (in the event of loss of data), use SQL Server Management Studio Express in SQL Server 2005 Express Edition.
  • File system tool to backup system state and file shares.

Step 7. How to backup my global and pool configuration on contoso1?

Step 7.1 Backup Global and Pool level configurations

At the command prompt, change to the directory containing the LCSCmd.exe tool (by default, <drive>:\Program Files\Common Files\Microsoft Office Communications Server 2007).


lcscmd /config /action:export /level:global,pool /configfile:<drive>:\<path>\<filename>.xml /poolname [name of Standard Edition server, which is used for the pool name]

C:\Program Files\Common Files\Microsoft Office Communications Server 2007>lcscmd
/config /action:export /level:global,pool /configfile:D:\e-office\21052008\contoso1.xml /poolname:contoso1

Step 7.2 Backup machine level

lcscmd /config /action:export /level:machine /configfile:<drive>:\<path>\<filename>.xml /poolname [name of Standard Edition server, which is used for the pool name]

At the command prompt, change to the directory containing the LCSCmd.exe tool (by default, <drive>:\Program Files\Common Files\Microsoft Office Communications Server 2007).


C:\Program Files\Common Files\Microsoft Office Communications Server 2007>lcscmd
/config /action:export /level:machine /configfile:D:\e-office\21052008\contoso1_2.xml /poolname:contoso1

After doing the first two steps repeat this for contoso2, contoso3, contoso4 and contoso5. The last one contoso5 is special you can easily export the CWA configuration file to a XML-format. Execute the Export Wizard and follow the steps.


Source: Backup and Restoration Guide OCS.

Tuesday, May 20, 2008

Office Communications Server - Backup (Part 1)

Almost a year ago OCS was RTM'ed and most of our partners and customers did install OCS right away in their infrastructure. Some historical moments of e-office on the 27th of August 2007.

In some cases we did a little bit of help and extra consultancy to make sure the product was implemented successfully. Some other customers we did large implementations with OCS and installed additional UC components as CWA, COMO, Edge, Mediation Server etc.

Looking afterwards to those projects, customers absolutely need to ask themselves how they backup the OCS environment. As OCS becomes a critical service for organizations especially for IM, Voice, Video and Conferencing it’s important to have a backup strategy and a well tested recovery plan. This is absolutely crucial in a case of a failure.

Before implementing a Backup/Restore plan please first consider these main topics:


Step 1. Business Requirements

  • Business continuity (how many business driven applications do rely on OCS?, how important is Voice over IP? etc.
  • Data completeness (OCS will store User Data, Compliance related data and configuration data. How frequent would like to backup this?)
  • Data criticality (How do you deal with compliance related data? How long do you need to store this?)
  • Cost constraints (How many time will you lose when having a Disaster Recovery? How many does that cost?

When you have a clear answer to these questions its absolutely the time for you to design the OCS backup and restore plan.

Step 2. What needs to be backed up?

When looking at OCS you see that OCS stores different information and configuration on different levels within the architecture. When looking closer you see three different levels.

  • Global Level Settings (apply to all computers in the forest structure)
  • Pool Level Settings (which configuration settings apply to an invidual Standard Edition Server or Enterprise Edition Servers within the same enterprise-pool)
  • Computer Level Settings (machine level settings which are specific to that OCS running machine)

Make sure you have a clear view about which OCS role you need to backup. When having that in your mind I really suggest to read the OCS Backup and Restore Guide or purchase the OCS Resource Kit. Looking at these documents you will have a clear and more detailed view which level you need to backup.

Step 3. Backup and Restore Tools

There are a couple of tools you can use to backup specific components.

  • LCSCmd.exe - OCS command line tool to export and import server settings.
  • SQL Server Management Studio (Express) to backup all types of OCS databases.
  • NTBackup.exe - file system backup solution

In the next part (2) of this thread we will show you how you can export OCS configuration settings. Additional we show you which RTC databases are present in OCS and which content they contain.

Monday, May 19, 2008

Stay tuned..

Would you like to stay tuned with the latest information about UC and UC development? We can send you the latest information my email each month.

Just to provide an extra service for everyone in the UC community. By the way this weblog is also RSS-enabled so just add the site to your RSS-reader and there you go!

If you like it by email please SUBSCRIBE.

Since this month the newsletters we've send are available through SkyDrive powered by Windows Live. Password-protected online file storage. Always available where you need it.


Also big news is that my colleague Marc Wetters joined the biggest UC weblog in the Netherlands. Together we post about UC infrastructure and UC development. Just to deliver the right content on the right place for the right people ;-). Because the code we published on the regular UC weblog takes much more space we have moved the UC dev content to the new weblog Unified Communications Development. The next few days we apply some additional webparts and layout to make it more familiar.

We like your feedback just to provide the best content. If you are having Communicator 2007 or Live Communications Server 2005 SP1 connected to the World Wide Web you can send us a SIP INVITE on or

Friday, May 16, 2008

Unified Communications (UC) Platform Developer Metro Training

Last week I followed this 2 day training in the Netherlands. It really gives developers a good overview where to start. If you want to start developing on the UC platform, I really recommend that you follow that training. I have been working with some of the SDKs and APIs a little longer and still learned quite a bit.

Main topics are:

  • Unified Communications: Behind the Scenes with OCS 2007, OC 2007 and Exchange 2007
  • Driving Contextual Collaboration with OC 2007
  • Building Contextual Collaboration Clients for the Web using the UC AJAX SDK
  • Building Asynchronous Contextual Collaboration with Exchange Web Services
  • Business Process Communication with the UCMA
  • Anywhere Information Access with OCS 2007 Speech Server

Any questions/ comments please feel free to contact me. or

Getting Presence using the UCMA

Yes, it can be done, but I have to warn. It is not officially supported by Microsoft.
Here is a code sample how to do it using a SipServiceRequest. Note that you must have created an endpoint before you can use this code. I used a RealTimeClientConnectionManager to create the endpoint.

The request:


The callback, which handles the response data.


Any questions/ comments please feel free to contact us. or or or

Developing middle tier UC applications, where to start?

This is not an easy question. There are multiple SDK’s and API’s, which one should I use in which scenario?
I have been in discussion with some UC developers and people from Microsoft about some of the issues I was facing, and what the possible solutions are.

The first API that comes to my mind is the UCMA (Unified Communications Managed API). The second would be the UC AJAX SDK. Then we have the UCCA (Unified Communications Client API) and the OC (Office Communicator SDK).
The UCCA and OC SDK are client oriented. The UCCA is the one to create a new client if you don’t want to use the Office Communicator client. The OC SDK is to interact with the Office Communicator client. So for creating middle tier UC applications these are not really suited.
I have been in discussion with some UC developers and people from Microsoft about some
Let’s try and start with some scenario’s.

Broadcasting messages

This should be an easy answer. Let us use the UCMA. The UCMA is really a good choice, it’s intended to for such a scenario. It can handle high volumes and is scalable. However, it is not the only possible API to use. What about the UC AJAX SDK, can it do the trick? Sure it can, as long as you stick to text messages. Can it handle high volumes, and is it scalable? Does it perform well? In fact it does. I do not have exact figures, but I am really surprised of the performance. And the UC AJAX SDK is much easier to understand then the UCMA. What are the drawbacks of using the UC AJAX SDK? Only two come to my mind: you can only use text message and you need a CWA (Communicator Web Access) server.


First one again the UCMA. But in fact the UC AJAX SDK can be used as well. In this case, the reaction time of the UC AJAX solution reacts a little slower then the UCMA solution. This is caused by the polling mechanism for getting events. The advantage of the UCMA is that you can set the presence as an automaton(Always online). Normally there is a limit of 200 subscriptions. Publishing your presence as an automaton doesn’t have that limitation.
You can use the System.Speech in .NET 3.0 to handle more complex grammar recognition.

Bots that needs presence

Now we get to the real discussion. Can we use the UCMA? Officially getting presence and subscribing to presence is not supported in the UCMA!!!
So what are the alternatives? You could use the UCMA and use UC AJAX SDK for getting presence information. This is a good combination, and you could use the advantages of both. If you only need text messages, the UC AJAX SDK is a good choice.

UCMA and presence!!!

Presence in Office Communicator server is done with sip requests and sip subscriptions. I have seen a lot of questions on the net if it is possible to get presence using the UCMA. Everybody at Microsoft I have spoken to or reactions that have been posted to these questions stated that presence information in UCMA is not possible. My first reaction was why is it not possible? The UCMA supports sip requests and sip subscriptions. At that time, I took a deep dive in the protocols and tried to find out if it was really not possible. Can you make the correct sip request or sip subscription in UCMA to get presence? Using the Office Communicator Server Resource kit I found out that actually you can.
I presented my findings to some people at Microsoft. They were surprised. In fact you can do it but it is officially not supported. For me the big question was why is it not supported. Actually the answer is quite simple. The correct protocols for presence are not public. The only applications that use those specific protocols are all Microsoft applications. For future versions these protocols can be subject to change. So the application you create may not work anymore with future versions or updates.
Will it keep me from using these protocols und keep me from using UCMA for presence? No it will not. And the main reason for that is that the Office communicator client, the CWA server, Office Communicator server, the UCCA all use the same protocol. If Microsoft will change that protocol none of these applications will be compatible anymore with the new version.

Any questions/ comments please feel free to contact us. or or or

Thursday, May 15, 2008

Creating a CWA client with Silverlight 2 beta 1 (part 5)

In Part 4 we have seen how to get events from the cwa-server. But we still have to schedule this. The pollWaitTime tells us when we can get our next events.

You could use the System.Windows.Threading.DispatcherTimer  but this ticks with a regular interval and as our interval is dynamic I went for a stroryboard in Silverlight.

Creating the timer
Just add a story board to XAML in your application/usercontrol.


In the code file add the code that handles the TimerCompleted Event. In this Method we set the timer duration stop the timer, get our events and start the timer again.





We still have to start our timer manually the first time. We can only do this only after we have signed in. So from our userAgent we raise our event that we have successfully signed in. Then start our timer. As you can see in that eventhandler I also hide our login part.


Creating the User controls

So now let’s finally start and do something in the UI. We have our Page.xaml. Just add a StackPanel and name it Contacts . In this StackPanel we want to show our groups and contacts belonging to these groups. A way of doing this is creating 2 usercontrol. A GroupControl and a ContactControl.

In Part 4 in our userAgent class we created events we raise when we get  groupEvents and contactEvents. In the first event we get from our server we first get back the groups and then our contacts belonging to that groups. In the presenceEvent, which probably will be addressed in one of the next parts of this series, we get detailed information of these contacts and status information. For now we only get the sip uris and to which groups the contact belongs.

Let’s create our contactControl.


As you can see this is simple control. For the status indication I use an Ellipse with brush. I added a name attribute to the gradient stop color. This makes it easier to change the status color later on.


This control will be extended later with a private method, which changes the color depending on the availability of the user. If we do not have a display name yet we just show the sip address of the contact.
Create the GroupControl. Again with some sample xaml and the code belonging to that user control.



Adding event handlers.
Let’s get back to our main page. In one of the first parts we created the login boxes and a button to signin. After clicking that button we create an instance of our UserAgent, sign in and handle our events. As you see below the GroupEvent and ContactEvent.


Let’s Handle our group events. For now I only handle the added action.


Let’s Handle our contact events. For now I only handle the added action. As you can see I use an extra function to find the correct control.



Please note that this is a series how you can create a cwa silverlight application, not a complete sample yet. Next part of this series will show you how to handle presence events.

Any questions/ comments please free to contact us. or or or

Monday, May 12, 2008

New Partner Program Competencies


To better distinguish your organisation in its areas of expertise, the Microsoft Partner Program is creating three new competencies: Business Intelligence, Unified Communications Solutions, and Hosting Solutions, effective May 30, 2008.

Unified Communications Solutions: System integrators: Get the recognition and resources you need to showcase your expertise in streamlining communications—regardless of medium, platform, or location. The new Unified Communications Solutions competency will include the IM/Presence specialisation (formerly the Unified Communications specialisation within the Information Worker Solutions competency), the Messaging specialisation (formerly the Exchange Migration and Deployment specialisation within the Advanced Infrastructure Solutions competency), and a new Voice specialisation. Find out what these changes mean for you. Click here

Source: here

Thursday, May 8, 2008


At this moment I'm Out of Office (OOF). I will return on the 13th of May. After some busy weeks now a couple of days relaxing. Postings about CWA/Silverlight will continue (part 5). Questions about Silverlight and custom CWA app's please contact my colleague Marc Wetters. Other UC related things please send me an email or leave a comment.

Wednesday, May 7, 2008

Creating a CWA client with Silverlight 2 beta 1 (part 4)

In Part 3 we have seen how to setup our session. In this part we’re going to get the events from the server. In this case we are not going to use synchronous calls, but asynchronous calls. We do not want to block our UI thread.
Let’s get back to our UserAgent class and create our CheckEvents Method. If there is still a request to the server running, don’t create a new request. You get some internal error you can’t catch!!!
This has to be a public Method. I’ll explain in the next Part why. But First we have to create our data channel Url.


The datachannel url needs two parameters we have to provide.
Of course the Sid (the id of the session we created) and the AckID (acknowledge ID).
With the AckID we let the CWA server know which events we already got. If we don’t send the new acknowledge ID with our request, we get all events over and over again.
Next create our CkeckEvents method.


So we got our response. Let’s handle the response stream we got back.


First thing you see is that we get the ackID from the response. We’ll send it with the next request we make. Let’s process our ContactGroups.


Next is we have to create a user class and a group class so we can store our information. Then we have to create extra eventArgs so we can raise Events to our Silverlight application to handle them in our UI.



So we now we can handle some events. Next is how we can set a timer to get call the CheckEvents Method and do something in our Silverlight application to actually show we got something back.
We going to make a start with that in the next Part of this series.
Please note that this is a series how you can create a cwa silverlight application, not a complete sample yet.

Any questions/ comments please feel free to contact us. or or or

Creating a CWA client with Silverlight 2 beta1 (part 3)

In Part 2 we created the logon request and send it. We got our CWA-ticket(authentication ticket) back. We will need this for all future request.
Now let’s do something with the response.


The method above will be used for all synchronous request. In this sample for logging in, creating a session. And for all commands we send to the cwa server.

When we login we get the Uri(our sip address) back belonging to the authentication information we used to login. And we get our signInData back. We need this for Initiating our session.
The other 2 things I handle in processing the response are the SID (session ID) we get that back from after initiating our session. And the PollWaitTime, this I will address in part 4.
Now we are authenticated next step is to set up a session.


This looks pretty the same as login in, but it uses a different request and a different url to send the request to. We need to add some code to the things we did in Part 2.
First the url we add to our UserAgent class.


Next is adding functionality to our Request builder. And to our constants.


So now we have setup our session. Next is to let our main application know that we successfully created the session. As you can see I raise an event in our UserAgent class. Our main Silverlight can handle that event. Hiding the login textboxes. Intializing our main UI.
What do we need for raising that event.


Now we have our session. We know how to send commands to the server. Next is checking for events from the server. Which we want to do asynchronously. That is going to be Part 4 of this series.

Any questions/ comments please feel free to contact us. or or or

Tuesday, May 6, 2008

Upcoming UC Developer Events

May & June Upcoming Unified Communications Developer Events & Traning!


May 21 - MSDN Webcast: geekSpeak: Contextual Collaboration Using Unified Communications with George Durzi (Level 200)


May 15-16 - Sydney, Australia -  Microsoft Office - Unified Communications (UC) Platform Developer Metro Training
May 19-20 - Redmond, WA - Microsoft Office UC (Unified Communications) Platform Developer Training


June 11 - Dowers Grove, IL - Peters and Associates presents Unified Communications

June 3-6 - Orlando, FL - Microsoft TechEd

More information and registration links please visit the weblog of  Michael Dunn.

Creating a CWA client with Silverlight 2 beta1 (part 2)

In Part 1 we got started on building the CWA client. Overcoming some development problems. In this part we actually gone start developing.


Getting Started
First thing to do in your silverlight application is creating 3 textboxes in which you can enter your logon information. Best way is to put them in a grid so you can hide the grid after logging in. We are gone need username, domain and password.
The next thing we need is a new class file in my case UserAgent.cs. In this class we going to put all our CWA Ajax logic. As you can see all code is in C#.
First add some private and public properties we are going to need:
public class UserAgent

Next step is the initializing of this class. As this application can only run on a cwa server we can get our server url dynamically.


Logging in to the server.
Now it is starting to get interesting. Let’s create the login method on our class. After that we can call it from our silverlight application.
First create a new class for building the request.
Now we can build our request and start signing in.

As you can see we get our CWA-Ticket back. We going to need this for all future request we are going to make.
As this article has become a little larger as I initially planned, processing the response and initiating the session will be addressed in the next part of this series. Question of maybe feature requests please send us an email or contact us directly.
Marc Wetters and Joachim Farla or

Monday, May 5, 2008

Creating a CWA client with Silverlight 2 beta1 (part 1).

I was wondering if it was possible to create a silverlight application that would function as a CWA client. After some research, I found out that it can be done. In this series I will show you how it can be done and what problems I had to overcome to get it working.

Ideally, you would build a silverlight application that would run in any web application. At the moment this can’t be done.
Silverlight does support cross-domain access but only under certain circumstances:
•    only with http connections no https yet.
•    In root of the Target server there has to be a XML file that

allows silverlight to access that server from another domain(the CWA isapi catches all requests so that is a problem, you can create an extra isapi filter that only serves that xml file).
Therefore, building a Silverlight application and having the possibility to debug has to be done on a CWA server directly. Create a visual studio 2008 web application that actually runs directly on a CWA server.


After having overcome the problem of debugging, the next problem popped up: Authenticating.

Using the AJAX sdk there are several ways to authenticate (forms authentication, Integrated authentication). They all use a http-header(CWA-Ticket) after you have been authenticated.
After you logon to the server, you get your CWA-Ticket in the response headers, which you need for all further requests. Now we have a problem.

In silverlight the System.Net.HttpWebResponse doesn’t have any headers. How do we get that CWA-Ticket after logging in? We need that CWA-Ticket for all requests were going to make.
There is a solution for this problem, we have to use the browsers XMLHttpRequest object. I don’t wanted to use this object all the time. For now, I only get synchronous requests to work. So for commands and logging in I use the XMLHttpRequest for the asynchronous calls(asyncdatachannel) I use the System.Net.HttpWebRequest.

I know some people would say Silverlight does support Multithreading so that is not a problem. That is what I thought also. But actually the HttpWebRequest and XMLHttpRequest(ScribtObject) can only run in the UI thread. You do not want synchronous calls in your UI thread (it can block your client).

Here is a code sample to create the external XMLHttpRequest:


In part 2 I’m going to explain how to actually logon and initiate the session. Please contact Marc Wetters @ or send him an email on . Enjoy and please feel free to give us your feedback.

Saturday, May 3, 2008

place to be...

Michael Dunn Senior Consultant at Microsoft gives an presentation about "Embedding Presence in yoimageur Applications".

Absolutely the place to be to get more knowledge about this amazing product.

Michael will cover why .NET developers should even bother with presence, the difference between the UC APIs, and your options for embedding presence in your applications.  The focus is going to be around the client APIs, Communicator Automation API, UC Client API, UC AJAX and ActiveX Name Controls.

More info about Michael Dunn:

Michael Dunn, Microsoft Corporation
Michael Dunn is a Senior Consultant for Microsoft and former MVP for Office Communications Server. He is a frequent speaking at user groups and conferences across the nation and the author of the APress book, “Pro: Microsoft Speech Server 2007”. In his free time you can catch him blogging or answering questions on various MSDN forums & newsgroups.

Visit his weblog on Am I done?

Microsoft Office Communicator Web Access Management Pack for Microsoft System Center OpsMgr 2007

File Name:
Microsoft Communicator Web Access System Center Operations Manager 2007 MP.MSI


Date Published:


Download Size:
611 KB

The Microsoft Office Communicator Web Access 2005 Management Pack for Operations Manager 2007 monitors the health of computers running Office Communicator Web Access server components on Windows Server 2003 and alerts IT administrators about critical health conditions that indicate degraded performance. The management pack monitors and provides alerts for:
• Automatic notification of events indicating service outages
• Performance degradation
• Health monitoring
• Centralized management
This management pack requires the Back Compatibility MP version 6.0.5000.12 (or higher)

Friday, May 2, 2008

Office Integration – like Peanut Butter and Jelly (Beans)

nice story about Office Integration. More information see the Communicator Team Blog. Enjoy!

Microsoft Office Communicator 2007 Hotfix KB 951662

File Name:


Knowledge Base (KB) Articles:

Date Published:


Download Size:
4.9 MB

Issues that the update fixes
This update fixes the following issues:

951870 ( Event IDs 8239 and 8206 are logged when you schedule and then cancel a meeting in Communicator 2007

949498 ( Error message when a Communicator 2007 user sends a message that contains only Japanese characters to Communicator 2005 users: "<Username> cannot receive message in the format you used"

951871 ( The presence status changes to Away for all Terminal Server users when an administrator locks the desktop or lets the screen saver run in Communicator 2007

951868 ( Registry settings for certain protocols are overwritten, and Communicator 2007 becomes the default application for these protocols when you log on to Communicator 2007

Note This update now enforces HTTPS in High Security mode. Some services that previously worked by using HTTP will now be required to use HTTPS when they are in High Security mode. These services include the address book service, the custom tabs service, and the custom presence service.

Tags van Technorati: