Monday, 8 November 2010

Office Communications Server 2007 R2 Tool: Adoption Reporting

From DrRez blog:

The Adoption Reporting Tool enables administrators to more easily measure both usage and adoption of Microsoft Office Communications Server 2007 R2 in their enterprise. 

More info about it here.

Monday, 13 September 2010

CS 2010 branded as Lync?

There's been some gossips around a possible branding of CS 2010 as Lync 2010.

There was even a blog, that looks like a hoax, talking about Lync. The blog does not have a lot of information and there's a few old OCS 2007 R2 screens as well so it doesn't look very legit.

But last Wednesday a RC of "Lync Server 2010" showed up on Microsoft Downloads and yesterday the Lync Server 2010 Planning tool (RC) was also released there.

I've tried the Planning tool and... it does look like a Planning tool for the new Communications Server 2010. :-)

Nothing has changed yet on CS "14" homepage but i've found this support page with a mix of Communicator, OCS 2010, Communications Server 2010 and Lync labels.

Now, i need to download and try that Lync RC. :-D

Wednesday, 8 September 2010

Communications Server 2010 - Documentation

Looks like some documentation is finally hitting TechNet. There's only 5 articles so far, and most of them have been around for a while since TechEd but now we can find them all in one place.

You can find them in

Friday, 23 July 2010

OCS, MOC and Group Chat Updates: July 2010

A couple more updates for OCS 2007 R2.

Updates that are released for Communications Server 2007 R2 - KB968802

  • Update for Audio/Video Conferencing
    2028578  Description of the cumulative update package for Office Communications Server 2007 R2, Audio/Video Conferencing Server: July 2010
  • Update for Core Components
    983471 Description of Cumulative update for Office Communications Server 2007 R2, Core Components: July 2010
  • Update for Communicator Web Access
    983469  Description of the cumulative update package for Office Communications Server 2007 R2, Communicator Web Access: July 2010
  • Update for Conferencing Attendant
    2028574  Description of the cumulative update for Office Communications Server 2007 R2, Conferencing Attendant: July 2010
  • Update for Conferencing Announcement Service
    969823 Description of the update package for Office Communications Server 2007 R2, Conferencing Announcement Service: July 2009
  • Update for Monitoring Server
    971298 Description of the update package for Office Communications Server 2007 R2, Monitoring Server: July 2009
  • Update for Response Group Service
    2284304  Description of Cumulative update for Office Communications Server 2007 R2, Response Group Service: July 2010
  • Update for Standard/Enterprise edition Server
    983472 Description of cumulative update for Office Communications Server 2007 R2: July, 2010
  • Update for Standard/Enterprise edition Server Back End
    2032834 Description of the cumulative update package for Office Communications Server 2007 R2 database: July, 2010
  • Update for Unified Communications Managed API 2.0 Core Redist 64-bit
    982170 Description of the cumulative update for Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redist 64-bit: July 2010
  • Update for Web Conferencing Server
    2028582 Description of the cumulative update for Office Communications Server 2007 R2, Web Conferencing Server: July 2010

Description of the cumulative update package for Communicator 2007 R2: July 2010 - KB2028888

This cumulative update fixes the following issues:
  • 2252163  Starting Office Communicator 2007 R2 for first time causes additional network traffic
  • 2251520   A distribution group displays incorrect information in Office Communicator 2007 R2 after you change the distribution group name
  • 2251474   Calling an Office Communicator 2007 R2 user fails when you change a matching number in the Company_Phone_Number_Normalization_Rules.txt file
  • 2251473   You cannot send non-English messages continuously in bold, italic or underline font in Office Communicator 2007 R2
  • 2250890  Error message when you send a large file by using Office Communicator R2 and a Office Communications Server server that has the Forefront Security for Office Communications Server component installed
  • 2250113  You cannot input DBCS characters into the password field when you try to log on to office communicator 2007 R2
  • 2231823  An additional delay is caused by Office Communicator 2007 R2 when you put your computer in hibernation or in standby
  • 2268858  The last dialed telephone number for a contact changes to "Communicator Call" after you start Communicator 2007 R2 or Communicator 2007
  • 978164  A conversation window opens unexpectedly when you press ENTER in the Search box in Office Communicator 2007 or Office Communicator 2007 R2
Update package for Office Communications Server 2007 R2 Group Chat Server: July 2010 - KB2032881

This package seems to have no new updates, just previously released updates.

Description of the update for Office Communications Server 2007 R2 Group Chat Client: July 2010 - KB2032922

  • 2190298 You receive an unhandled System.NullReferenceException exception in Office Communications Server 2007 R2 Group Chat Client
  • 2277126  Header information is also copied when you copy a story message in Office Communications Server 2007 R2 Group Chat Client
  • 2277132   The position of the Office Communications Server 2007 R2 Group Chat Client window is changed after an unsuccessful logon
  • 2277137 The title of a story message is replaced by the content from of a story message in Office Communications Server 2007 R2 Group Chat Client
  • 2277375 Delays in presence updates or high latency in database operations may occur when OCS 2007 R2 and OCS 2007 R2, Group Chat are running under high concurrency
  • 2277605  The User-Agent header in the SIP request that is sent by Office Communications Server 2007 R2 Group Chat Admin Tool is not unique and clear enough

Description of the update for the Office Communications Server 2007 R2 Group Chat Administration Tool: July 2010 - KB2032949

This package seems to have no new updates, just previously released updates.

Wednesday, 14 July 2010

Description of the update for Communicator Mobile 2007 R2: July 2010

There's a new update for Communicator Mobile. You can get it here.

Issues that this hotfix package fixes

  • Provides home screen support for new home screens in Windows Mobile 6.5+ phones.
  • Provides integration within the phone dialer for Windows Mobile 6.5+ phones.
  • Enables Communicator Mobile 2007 R2 to recognize when the phone is roaming and by default prevents Communicator Mobile 2007 R2 from signing in to roaming networks.
  • Provides additional support for joining conference calls from a Windows Mobile appointment. To do this, press Menu, and then press Join Conference.
  • Lets users log on by using a user name in the format, in addition to the domain\user format.
  • Enables the functionality by which callbacks are now automatically accepted when the user uses the Call via Work option.
  • Resolves the problem in which the Microsoft Installer (.msi) installation fails on a Windows XP Service Pack 3 (SP3)-based computer. In this situation, users should install Communicator Mobile 2007 R2 by using a (.cab) installation.
  • Fixes the problem in which AT&T FUZE devices that are set for a High-Speed Downlink Packet Access (HSDPA) connection cannot handle voice and data at the same time. In this situation, calls that use the Call via Work option fail unless the device is reverted to 3rd Generation (3G) by disabling HSDPA.

Tuesday, 29 June 2010

Changing the shared folders location

I recently i had to change the shared folders locations on a OCS R2 installation and it all went smoothly, or at least appeared to :)

Instructions are simple, insert your CD or go to the folder where you have OCS R2 setup and re-run the setup. Click on Prepare Prepare Environment and then Create Enterprise Pool.

You will then face the same questions that you had to fill when you installed it. At some point the wizard will ask for the share folders location and you can change then.
Just make sure on the Reuse Existing Database page, clear the Replace existing database check box or else all your existing data will be lost (not good!).

Looks simple and effective but... it lacks some steps.

First you will need to go over to the Front End IIS and re-map all the virtual directories to the new shares. This one is easy to notice as you get alot of warnings soon enough.

Second, you will find this warning on event viewer:

Event ID 32020 Task Cat. (1055)
Unable to create the Application Host data directory.

Unable to create the directory \\ocs old shares\AppStore\Microsoft.Rtc.Applications.Acd. The network path was not found.
Cause: See error message.
Create the directory manually.
Oops... looks like something wasn't changed. :-)

What i had to do to change it was (it might be another solution but i didn't found it):

Go to Start -> Run -> wbemtest
Click connect and type root\cimv2 and then connect.

Now, click on query and type this:

Select * from MSFT_SIPApplicationConfigSetting where Backend="sql_instance"

There will be a few instances returned but only one will have the DataLocation filled. You will have to change that to the new location.

And it's sorted.

Monday, 21 June 2010

Introducing DNS Load Balancing in Communications Server “14”

Keith Hanna published a nice article about DNS Load Balancing in CS 14.

DNS load balancing is introduced in Communications Server “14”. The objective of DNS load balancing is to reduce the need for a Hardware Load Balancer (HLB) for SIP-based load balancing. HLB is both expensive and hard to configure. In addition, HLBs aren’t application-aware; they cannot support “connection draining,” a new feature in Communications Server “14”.
How Does DNS Load Balancing Work—in Practice?
The client queries DNS to resolve the FQDN of the pool (for example, similar to Office Communications Server 2007 R2. Instead of returning the virtual IP address of the hardware load balancer, the DNS query returns the list of front-end server FQDNs as shown in Table 1. With previous versions of Office Communications Server, this query would return the IP address of the hardware load balancer.
In Communications Server, the DNS query returns the list, {,,,}, to the client. The order in which these are returned to the client is irrelevant. The client chooses an IP address from the list at random, and then attempt to connect to the front-end server. If the connection fails, the client continues down the list in a random fashion until a successful connection to the pool is achieved or the list is empty.

Client Registration

With previous versions of Office Communications Server, the client would be able to successfully connect to a front-end server. It would then register the client’s SIP URI into the single-shared registration database that is stored on the back-end server running Microsoft SQL Server. However, in Communications Server, each front-end server in a pool has a completely independent registration database. Each user is assigned a predefined registration database (that is, registrar) that they should connect to. This registrar assignment is calculated by a hash value of the user’s SIP URI. Therefore, it is highly likely that a randomly selected front-end server is the incorrect server for the client to connect to. In this example, there is a 75 percent chance the client would randomly contact the wrong server. In other words, there is a 25 percent chance that the correct server was reached on the first attempt. No SIP redirect would be required.

DNS load balancing is only part of the client connectivity matrix. The internal hashing and distribution of the client registration information is the other part. The two mechanisms work together to determine how a client connects to a pool.
DNS load balancing does not remove the dependency on hardware load balancers completely; however, hardware load balancing is still required for load balancing Web traffic (such as address book services) used in Communications Server. By eliminating the need to load balance SIP traffic by using a hardware load balancer, the complexity of configuring a pool or bank of Edge Servers is significantly reduced.
Keep in mind that the hardware load balancer is still required when operating in a mixed Communications Server and legacy environment (Office Communications Server 2007 R2 or Office Communications Server 2007).
 Full article @ Technet

I think this is a great new feature in MCS, it allow us to deploy older or cheaper HLBs, since all we need HLBs for now is for web traffic, no need for two fancy F5 ($$) just for OCS.

Tuesday, 8 June 2010

Communications Server ‘14’ Full Disclosure

Jeff Schertz posted on his blog some new features from MCS (wave 14)
Right now I’m down at TechEd 2010 in New Orleans, LA where the keynote address is in progress.  Microsoft has now officially lifted the Non-Disclosure Agreement (NDA) on all features and content which will be coming in the next release of Communications Server, which is still dubbed ‘Microsoft Communication Server 14’.  The ‘14’ refers to the internal Wave 14 codename which has been used since the birth of this iteration of code.

 More at his blog here.

Friday, 21 May 2010


Wondering why BPA wont update on Vista/7/W2k8 machines?

Pro-Exchange gives you the answer. UAC :)

Tuesday, 27 April 2010

TechDays 2010: Microsoft Communications Server "W14"

Two movies of a presentation by François Doremieux in TechDays 2010.

TechDays 2010: Introduction to Microsoft Communications Server "W14" 
Positioning and main features for Microsoft Communications Server “W14”, with emphasis on Voice and Collaboration capabilities.

Get Microsoft Silverlight

Original @

TechDays 2010: New Voice capabilities and infrastructure in Microsoft Communications Server "W14"
Detailed description of voice features in Microsoft Communications Server “W14”, with discussion of implications on topology and interoperability.

Get Microsoft Silverlight

Original @

Friday, 23 April 2010

Useful OCS SQL queries (Part II)

Another day, another query. This time, a more important one that can be used for accounting.

This query will show all the completed calls to the PSTN, showing call time, who dialed and where to. Advanced reporting could be built on top of this query to find out how much this calls cost.

Use LcsCDR
SELECT    CONVERT(varchar(10), VoipDetails.SessionIdTime, 103) [Start Date],
        CONVERT(varchar(10), VoipDetails.SessionIdTime, 108) [Start Time],
        CONVERT(varchar(10), SessionDetails.SessionEndTime, 103) [End Date],
        CONVERT(varchar(10), SessionDetails.SessionEndTime, 108) [End Time],
        CONVERT(varchar(10),SessionDetails.SessionEndTime - VoipDetails.SessionIdTime,108) [Time],
        REPLACE(REPLACE(Phones.PhoneUri,';phone-context=LOCATIONPROFILEHERE',''),';phone-context=enterprise','') [From Number],
        Users1.UserUri [From Sip],

        REPLACE(REPLACE(Phones1.PhoneUri,';phone-context=LOCATIONPROFILEHERE',''),';phone-context=enterprise','') [Number Dialed],
        Users3.UserUri [On Behalf Of],
        Users4.UserUri [Referred By]

FROM         VoipDetails LEFT OUTER JOIN
                      SessionDetails ON VoipDetails.SessionIdTime = SessionDetails.SessionIdTime AND
                      VoipDetails.SessionIdSeq = SessionDetails.SessionIdSeq LEFT OUTER JOIN
                      Phones ON VoipDetails.FromNumberId = Phones.PhoneId LEFT OUTER JOIN
                      Phones Phones1 ON VoipDetails.ConnectedNumberId = Phones1.PhoneId LEFT OUTER JOIN
                      Users Users1 ON SessionDetails.User1Id = Users1.UserId LEFT OUTER JOIN
                      Users Users2 ON SessionDetails.User2Id = Users2.UserId
                      LEFT OUTER JOIN Users Users3 ON SessionDetails.OnBehalfOfId = Users3.UserId
                    LEFT OUTER JOIN Users Users4 ON SessionDetails.ReferredById = Users4.UserId

where SessionDetails.ResponseCode = 200 and
    Users2.UserUri is null and
    SessionDetails.SessionEndTime is not null
order by VoipDetails.SessionIdTime
You need to change the red text to match your profile(s) so it 'cleans' the number.


Thursday, 22 April 2010

Useful OCS SQL queries (Part I)

After you get a fully functional OCS environment you want to check some statistics on it's use.
Since all of the info is on the DB it should be easy to get it and even create some reporting (Reporting Services) on top of it.

Next i'll show you some queries i find useful to have at hand.

Client versions

You can check a overall of client versions on your environment using OCS MMC:

But, you might want to get a little more details, as in, who's using what version. You can do that by running this query on the backend.

SELECT     rtc.dbo.Resource.UserAtHost, CAST(rtcdyn.dbo.Endpoint.ClientApp AS varchar(128)) AS ClientApp
FROM         rtcdyn.dbo.Endpoint INNER JOIN
                      rtc.dbo.Resource ON rtcdyn.dbo.Endpoint.OwnerId = rtc.dbo.Resource.ResourceId
order by UserAtHost
This will return a list showing what versions are being used and who's using them. It will even show if the same user is using different devices (as in one user on CWA, MOC, COMO, etc at the same time).

If you need the same query that MMC uses, this is it:
SELECT CAST(ClientApp AS varchar(128)) AS ClientApp, COUNT(*) AS Clients
FROM rtcdyn.dbo.Endpoint
Group by ClientApp

It's not something you will use on a daily base but it's useful to have.

Wednesday, 21 April 2010

Hello World

So this is my new blog, welcome. :-)

I'll try to keep it updated with my ventures in technology, mainly Microsoft technology and focused on Office Communications Server.

Let's see how it goes.