<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://evangelyze.net/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Evangelyze Community Site</title><link>http://evangelyze.net/cs/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Debug Build: 40407.4157)</generator><item><title>My Blog has Moved</title><link>http://evangelyze.net/cs/blogs/mike/archive/2010/01/13/my-blog-has-moved.aspx</link><pubDate>Wed, 13 Jan 2010 11:18:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:430</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;My blog has now moved to &lt;a href="http://mikestacy.typepad.com"&gt;http://mikestacy.typepad.com&lt;/a&gt;.&amp;nbsp; If you are using RSS please update your feed with the new link: &lt;a href="http://mikestacy.typepad.com/mike-stacys-blog/atom.xml"&gt;http://mikestacy.typepad.com/mike-stacys-blog/atom.xml&lt;/a&gt;.&amp;nbsp; All of my previous articles have been reposted there with their original dates but I will no longer put new posts on this site, such as the one I posted today describing a feature of the January 2010 Communicator update.&lt;/p&gt;
&lt;p&gt;Thanks for reading!&lt;/p&gt;
&lt;p&gt;Mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=430" width="1" height="1"&gt;</description></item><item><title>Quarterly UC Virtual User Group meeting tomorrow</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/12/07/quarterly-uc-virtual-user-group-meeting-tomorrow.aspx</link><pubDate>Mon, 07 Dec 2009 14:56:38 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:429</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is a reminder that the Microsoft Unified Communications Virtual User Group will be holding it&amp;#39;s last quarterly meeting of 2009 tomorrow at 2:00 PM Eastern (-5 GMT). We&amp;#39;ve had a great year getting UCVUG off the ground and look forward to ending the year with an awesome presentation by Chris Norman from Microsoft. Chris will be presenting on Response Groups in OCS 2007 R2.&amp;#160; You can register for the event at &lt;a href="http://ucvugdec2009.eventbrite.com/"&gt;http://ucvugdec2009.eventbrite.com/&lt;/a&gt;.&amp;#160; The Live Meeting link is also posted on the UCVUG website.&lt;/p&gt;  &lt;p&gt;We will also be testing our new chat room on the UCVUG website prior to the meeting. Just logon to &lt;a href="http://www.ucvug.org"&gt;http://www.ucvug.org&lt;/a&gt; at 1:30 PM Eastern (-5 GMT) and click on the &amp;quot;Chat&amp;quot; tab to join us for a &amp;quot;meet and greet&amp;quot; chat session.&lt;/p&gt;  &lt;p&gt;Thanks again for your continued support of UCVUG and we look forward to seeing you at the meeting tomorrow!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=429" width="1" height="1"&gt;</description></item><item><title>OCS R2 Integration with Exchange 2010 OWA</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/11/12/ocs-r2-integration-with-exchange-2010-owa.aspx</link><pubDate>Thu, 12 Nov 2009 20:05:03 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:428</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Exchange 2010 includes the ability to add presence and IM integration right into the OWA experience.&amp;#160; This adds a number of handy features:&lt;/p&gt;  &lt;p&gt;- Presence for internal and federated OCS contacts&lt;/p&gt;  &lt;p&gt;- Ability to start and maintain chat sessions directly from OWA&lt;/p&gt;  &lt;p&gt;- OCS contact list integration, including add/remove contacts and groups&lt;/p&gt;  &lt;p&gt;- Ability to control your presence state from OWA&lt;/p&gt;  &lt;p&gt;Now for some screenshots…&lt;/p&gt;  &lt;p&gt;Presence integration including context menu additions:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/2766.image_5F00_730792E3.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/3252.image_5F00_thumb_5F00_124A39B7.png" width="627" height="145" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5852.image_5F00_2E274EC9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5481.image_5F00_thumb_5F00_46B6EC19.png" width="222" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Chat window and the ability to control multiple simultaneous chat sessions:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/7462.image_5F00_541CFF1F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8561.image_5F00_thumb_5F00_2C7682F5.png" width="378" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/2781.image_5F00_32BD5983.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/3201.image_5F00_thumb_5F00_4B4CF6D3.png" width="447" height="272" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Your presence and presence control:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4784.image_5F00_2AC5B721.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/2234.image_5F00_thumb_5F00_1C873E31.png" width="133" height="53" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/1050.image_5F00_031F3AF7.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/0027.image_5F00_thumb_5F00_30A05ABA.png" width="167" height="212" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Contact list integration with groups and presence (the contact list is in the left pane below your folders):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/0511.image_5F00_303427C5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/1104.image_5F00_thumb_5F00_74085C1C.png" width="152" height="124" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4657.image_5F00_7ABB659F.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8877.image_5F00_thumb_5F00_134B02F0.png" width="157" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Installation and configuration was fairly straight forward, only a few items to point out.&amp;#160; First of all, here’s the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=ca107ab1-63c8-4c6a-816d-17961393d2b8" target="_blank"&gt;download link&lt;/a&gt; and link to &lt;a href="http://technet.microsoft.com/en-us/library/ee633458(EXCHG.140).aspx" target="_blank"&gt;documentation&lt;/a&gt;.&amp;#160; Right now there’s a missing link in the documentation for a UCMA update for Windows 2008 R2.&amp;#160; That update is part of the 968802 package &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B3B02475-150C-41FA-844A-C10A517040F4&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; All you need for this integration is to apply the UCMARedist.msp update to your Exchange 2010 server.&lt;/p&gt;  &lt;p&gt;Now, a few things to point out in terms of the integration process.&amp;#160; First, make sure to put the spaces in between each pair of characters in the IMCertificateSerialNumber web.config value.&amp;#160; If you don’t the integration won’t work and you’ll get an error in your event log:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application      &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MSExchange OWA       &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 11/12/2009 11:36:28 AM       &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 87       &lt;br /&gt;Task Category: InstantMessage       &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error       &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic       &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A       &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; excassrv1.corp.evangelyze.net       &lt;br /&gt;Description:       &lt;br /&gt;An exception was thrown while attempting to load the IM provider .dll file. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;File: C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\OWA\bin\Microsoft.Rtc.UCWeb.dll      &lt;br /&gt;The local certificate specified was not found in the store for local computer.&lt;/em&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Next, when you run the command to add the InstantMessagingType value to your OWA virtual directory (&lt;code&gt;Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InstantMessagingType OCS&lt;/code&gt;) you will get errors for any CAS servers that are not running Exchange 2010:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Property InstantMessagingType can&amp;#39;t be set on this object because it requires the object to have version 0.10 (14.0.100.0) or later. The object&amp;#39;s current version is 0.1 (8.0.535.0).      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; + CategoryInfo&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : NotSpecified: (0:Int32) [Set-OwaVirtualDirectory], InvalidObjectOperationException       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; + FullyQualifiedErrorId : 79956A7E,Microsoft.Exchange.Management.SystemConfigurationTasks.SetOwaVirtualDirectory&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This can be safely ignored – the value will be set on Exchange 2010 servers.&amp;#160; If you want to be sure just run get-owavirtualdirectory –server &amp;lt;Ex2010CASSrvName&amp;gt; |fl where &amp;lt;Ex2010CASSrvName&amp;gt; is the name of your Exchange 2010 CAS Server.&amp;#160; Among the output you should see this: InstantMessagingType: Ocs&lt;/p&gt;  &lt;p&gt;Lastly, the documentation doesn’t seem to be complete in the “Configure Office Communications Server” section.&amp;#160;&amp;#160; You’ll need to add the FQDN of the certificate that you specified in the web.config as a trusted host to your OCS environment.&amp;#160; To do so, right click your pool and select Properties –&amp;gt; Front End Properties.&amp;#160; Click the Host Authorization tab and then click Add.&amp;#160; Add the FQDN of your CAS and check the “Throttle as server” and “Treat as authenticated” check boxes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4760.image_5F00_40CC22B3.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/1452.image_5F00_thumb_5F00_27641F79.png" width="312" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It will take a few minutes for your OCS front end(s) to pick up this change.&amp;#160; Depending on your level of impatience (mine is high) You can force it by restarting the front end service but this will disconnect all your users from OCS, so do this with caution if you are working in a production environment.&lt;/p&gt;  &lt;p&gt;Lastly, in case you’re curious which user agent this connection uses, here you go:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8105.image_5F00_4175B179.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8228.image_5F00_thumb_5F00_7A205B86.png" width="484" height="78" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That should do it.&amp;#160; The entire process took about 5 minutes and works perfectly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=428" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Exchange+2010/default.aspx">Exchange 2010</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS+2007+R2/default.aspx">OCS 2007 R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OWA/default.aspx">OWA</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Office+Communications+Server+2007+R2+Web+Service+Provider/default.aspx">Office Communications Server 2007 R2 Web Service Provider</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Web+Service/default.aspx">Web Service</category></item><item><title>Moving the OCS 2007 Databases to a new SQL 2005 Server</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/11/11/moving-the-ocs-2007-databases-to-a-new-sql-2005-server.aspx</link><pubDate>Wed, 11 Nov 2009 22:33:39 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:427</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;***Update – I’ve tested this process with OCS 2007 R2 as well and it works as expected.&amp;#160; The only difference is that you need to repeat the backup/restore processes on the acddyn and rtcab databases.***&lt;/p&gt;  &lt;p&gt;In this post I&amp;#39;ll go over the relatively easy process of moving the OCS databases from one SQL 2005 server to another using only SQL Management Studio.&amp;#160; Of course there are many options for how you perform backups and restores, but given the small size of the core OCS databases I find that it&amp;#39;s usually fastest to use the built in tools.&amp;#160; The entire process usually takes under 15 minutes.&lt;/p&gt;  &lt;p&gt;Before you begin, stop all the OCS services on all servers in the pool.&amp;#160; Now you are ready to take a backup of your existing rtc, rtconfig, and rtcdyn databases.&amp;#160; To do so, open SQL Management Studio, right click on the database you wish to backup, and select Tasks/Backup:&lt;/p&gt;  &lt;p&gt;&lt;img style="float:left;" src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Backup.png" width="522" height="278" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You will be presented with some backup options:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Backup%20Options.png" width="706" height="632" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;All you need to do here is note the file location of the .bak file (or change it to a location of your choosing) then click OK.&amp;#160; This will start the backup and the circle in the bottom left will show the backup progress.&amp;#160; You will need to perform these steps on the rtc, rtcconfig, and rtcdyn databases.&amp;#160; When you are done you can either copy the .bak files to the new server or note the location and access them via \\servername\share\location from the new SQL server.&lt;/p&gt;  &lt;p&gt;Next you must restore the databases to the new SQL server.&amp;#160; On the new SQL server right click Databases and select Restore Database:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;You will be presented with a restore options window:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%201.png" width="720" height="645" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Enter the name of the database you are restoring (rtc, rtcconfig, or rtcdyn only).&amp;#160; Next click the &amp;quot;From device&amp;quot; option to indicate that you would like to restore from a file and click the [...] button to specify the file.&amp;#160; Once you have selected it it will be listed in the Backup location list.&amp;#160; Click OK to continue:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%202.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You must check the box next to the restore set to continue:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%203.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;On the options page you have the ability to specify the restore location.&amp;#160; By default it displays the original location of the files.&amp;#160; Modify these as appropriate to match the desired location of the mdf and ldf files on the new SQL server.&amp;#160; It is a best practice to place the database files on a separate spindle set from the log files.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%204.png" width="706" height="630" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Now click OK and the database will restore.&amp;#160; Complete this step for the rtc, rtcconfig, and rtcdyn databases.&amp;#160; If you are doing this with an OCS 2007 R2 pool then you will also need to get the acddyn and rtcab databases.&lt;/p&gt;  &lt;p&gt;At this point we&amp;#39;re more than halfway done.&amp;#160; There are a few other items to complete before we are ready to start the services up again.&amp;#160; SQL databases retain their permissions during a restore, but the SQL server login information is stored in the master database on each SQL server, so we will need to give the appropriate RTC groups access to the new SQL server.&amp;#160; Also, the rtc and rtcdyn databases require database chaining to be enabled.&amp;#160; I&amp;#39;ve included the SQL query that you need to execute to handle all of this at once.&amp;#160; To execute this query, open SQL Management Studio and click the New Query button in the top left:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Query1.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Modify the query below so that &amp;lt;domain&amp;gt; matches your actual domain name (for example, CORP) and paste it into the query window&lt;/p&gt;  &lt;p&gt;&lt;i&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCArchivingUniversalServices] FROM WINDOWS WITH DEFAULT_DATABASE=master;      &lt;br /&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCComponentUniversalServices] FROM WINDOWS WITH DEFAULT_DATABASE=master;       &lt;br /&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCHSUniversalServices] FROM WINDOWS WITH DEFAULT_DATABASE=master;       &lt;br /&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCUniversalReadOnlyAdmins] FROM WINDOWS WITH DEFAULT_DATABASE=master;       &lt;br /&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCUniversalServerAdmins] FROM WINDOWS WITH DEFAULT_DATABASE=master;       &lt;br /&gt;CREATE LOGIN [&amp;lt;domain&amp;gt;\RTCUniversalUserAdmins] FROM WINDOWS WITH DEFAULT_DATABASE=master;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;EXEC sp_dboption &amp;#39;rtc&amp;#39;, &amp;#39;db chaining&amp;#39;, TRUE      &lt;br /&gt;EXEC sp_dboption &amp;#39;rtcdyn&amp;#39;, &amp;#39;db chaining&amp;#39;, TRUE&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Query2.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Now click the Execute button.&amp;#160; In the messages pane you should see the following:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Query3.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Updating OCS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now you are at the last step - updating the OCS pool configuration to point to the new database.&amp;#160; To perform this step you need to be on a system that has OCS or the OCS administrative tools installed.&amp;#160; One of your pool servers is a likely candidate.&lt;/p&gt;  &lt;p&gt;Open a command prompt and navigate to the location of lcscmd.exe, which is usually in C:\Program Files\Common Files\Microsoft Office Communications Server 2007.&amp;#160; Next run lcscmd with the appropriate switches to update the pool backend:    &lt;br /&gt;    &lt;br /&gt;&lt;i&gt;lcscmd /forest /action:updatepoolbackend /poolname:mypool /poolbe:mysqlserver\rtc&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Note that the &amp;quot;poolname&amp;quot; option must be entered the same way it is displayed in the OCS admin console rather than using the FQDN like you are probably used to.&amp;#160; In the example above I specified &amp;quot;mysqlserver\rtc&amp;quot; as the pool backend.&amp;#160; This indicates that I&amp;#39;ve restored my databases to the SQL server &amp;quot;mysqlserver&amp;quot; that is running an &amp;quot;rtc&amp;quot; instance.&amp;#160; If you are using the default (unnamed) instance you would simply specify &lt;i&gt;/poolbe:mysqlserver&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;Once you have the command line options set to match your environment push enter and you should receive something similar to this:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;     &lt;br /&gt;Microsoft Office Communications Server 2007 Deployment Command Console       &lt;br /&gt;Copyright (c) Microsoft Corporation.&amp;#160; All rights reserved.       &lt;br /&gt;      &lt;br /&gt;Executing &amp;quot;Initialize Forest Object&amp;quot;       &lt;br /&gt;Executing &amp;quot;Initialize Active Directory Connections&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Pools Container&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Active Directory Object CN=Pools&amp;quot;       &lt;br /&gt;Executing &amp;quot;Update Pool Backend&amp;quot;       &lt;br /&gt;Executing &amp;quot;Update Attribute msRTCSIP-BackEndServer of Pool pool1&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Pool Active Directory Objects&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Active Directory Object CN=pool1&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Active Directory Object CN=Microsoft&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Active Directory Object CN=LC Services&amp;quot;       &lt;br /&gt;Executing &amp;quot;Check Active Directory Object CN=LS WebComponents Services&amp;quot;       &lt;br /&gt;Executing &amp;quot;Read Attribute msRTCSIP-BackEndServer&amp;quot;       &lt;br /&gt;Executing &amp;quot;Update Attribute msRTCSIP-BackEndServer&amp;quot;       &lt;br /&gt;Executing &amp;quot;Read Attribute msRTCSIP-BackEndServer&amp;quot;       &lt;br /&gt;Check the log file &amp;quot;C:\DOCUME~1\mike\LOCALS~1\Temp\3\updatepoolbackend[2008_02_       &lt;br /&gt;27][10_47_51].html&amp;quot; for details.       &lt;br /&gt;Action completed successfully       &lt;br /&gt;      &lt;br /&gt;Execution time = 750 ms&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Now you&amp;#39;re finished!&amp;#160; Depending on your Active Directory environment it may take a few minutes for this change to replicate to all the DCs in the site where OCS resides.&amp;#160; Allow enough time for this to take place and then start all the OCS services back up on each pool server.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=427" width="1" height="1"&gt;</description></item><item><title>Polycom HDX 4000 and RMX 2000 with OCS</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/11/06/polycom-hdx-4000-and-rmx-2000-with-ocs.aspx</link><pubDate>Fri, 06 Nov 2009 15:47:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:426</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I spent a good amount of time the other day working on the setup, integration, and various scenarios of Polycom&amp;rsquo;s HDX endpoints and RMX bridges with OCS.&amp;nbsp; Previously I had provided assistance to customers who needed help getting an HDX to work with OCS but I hadn&amp;rsquo;t had the opportunity to do everything from start to finish.&amp;nbsp; Overall the HDX integration was straight forward, even easy (it took about 5 minutes) while the RMX could use some help in a few areas.&lt;/p&gt;
&lt;p&gt;First of all, a quick description in case you are not familiar with these devices.&amp;nbsp; The HDX is primarily targeted as a room-based videoconferencing system but the 4000, with its incnluded monitor, could also be used as a personal video conferencing system though the price point will probably reserve that right primarily for CxOs, videoconferencing system architects, and Polycom employees.&amp;nbsp; :)&amp;nbsp; Like the other video systems on the market the HDX does not yet support RTAudio/RTVideo and therefore, with regards to OCS, can only be used for PC to PC calling (MOC &amp;lt;-&amp;gt; HDX).&amp;nbsp; This limits the calls to CIF quality only, which is ok for use on a PC but of course doesn&amp;rsquo;t show off the HD capabilities of the HDX.&lt;/p&gt;
&lt;p&gt;Setup was very simple &amp;ndash; just create a user account (or use your own) and configure the HDX settings to point to OCS.&amp;nbsp; From there you can choose to get your contacts from Active Directory (using the LDAP configuration) or from your OCS contact list.&amp;nbsp; The benefit of the latter is that you get presence information from your contacts as well. It would be great to have access to search AD as well as have presence from your contacts but unfortunately there is currently no way to access both of these at the same time yet.&amp;nbsp; Another thing to consider is that the HDX doesn&amp;rsquo;t support enhanced presence, so if you create an OCS account for the conference room you need to disable enhanced presence, otherwise it will always show as offline.&amp;nbsp; Polycom&amp;rsquo;s HDX documentation outlines all this for you. &lt;/p&gt;
&lt;p&gt;The RMX is a bridge that (among many other features) hosts audio and/or video conferences.&amp;nbsp; With the OCS integration a MOC user (including an OCS-connected HDX) can call via audio, video, or both into a conference room that exists on the RMX.&amp;nbsp; Obviously you could do this with OCS alone but the RMX extends the capability to standards-based systems so that you can have a mix of endpoints in your conference.&amp;nbsp; You can also integrate PRIs into the RMX to enable PSTN audio participation.&lt;/p&gt;
&lt;p&gt;However, the RMX integration was not without its issues.&amp;nbsp; First, the requirements to get TLS working with OCS aren&amp;rsquo;t well documented or explained.&amp;nbsp; Through quite a bit of trial and error you can make it work but the most minor changes, like modifying certain fields to use an FQDN instead of an IP address, unexpectedly cause the integration to fail despite the apparent support of name entry.&amp;nbsp; Especially when you are dealing with TLS this is counterintuitive.&amp;nbsp; Second, the certificate upload process is quite a hassle, to say the least.&amp;nbsp; Despite the UI providing acknowledgement of certificate uploads, pfx files fail to load properly and in the end you are forced to use external utilities to break down your certificate into a combination of .pem and password files.&amp;nbsp; Even then you have to perform the upload from the web client (there is an installable desktop client as well) and apparently not from Windows 2008 or Windows 7.&amp;nbsp; I had to boot my XP mode system and connect from IE within the VM before the certificates actually took, despite receiving verification from the other upload methods.&lt;/p&gt;
&lt;p&gt;However, once this was all sorted the process to connect to a conference was very simple.&amp;nbsp; There are also options to register conference rooms but I haven&amp;rsquo;t had the chance to try this with OCS yet.&amp;nbsp; I haven&amp;rsquo;t begun to touch on all the capabilities of the RMX in particular (check the Polycom site for that), but I hope that Polycom investigates the OIP program for the RMX 2000 as well as the upcoming RMX 4000.&amp;nbsp; It would be great for customers to have an all-in-one OCS voice gateway and video conferencing bridge option.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=426" width="1" height="1"&gt;</description></item><item><title>9 Months of OCS 2007 R2</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/10/19/9-months-of-ocs-2007-r2.aspx</link><pubDate>Mon, 19 Oct 2009 23:24:01 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:424</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I’m writing this from the plane on the way from Denver to NYC to spend a week with a customer of ours.&amp;#160; This particular customer is in the Enterprise Lighthouse program, which means that they are moving to OCS 2007 R2 as the voice platform for at least 2000 users.&amp;#160; In addition to this they are also migrating from Sametime to OCS for IM, presence, and web conferencing for their entire user population (150,000+ users).&amp;#160; It’s my second project of this scale for OCS and, from what I can gather from my records, around my 65th OCS project altogether.&amp;#160; Of those ~65 projects 52 included voice for at least a subset of the users.&amp;#160; The customers have ranged in size from 50 users to 160K users, with most falling in the middle – a bunch of companies in the 3000-20000 user range.&amp;#160; I was just sitting here reflecting on these projects and thought I’d capture some of these thoughts.&amp;#160; First, a some charts of various data points:&lt;/p&gt;  &lt;p&gt;As you can see, we used primarily NET/Quintum gateways, with Direct SIP connections coming in at a close second.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/7041.image_5F00_7DCCA312.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/6114.image_5F00_thumb_5F00_2D3B11DF.png" width="364" height="229" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nothing surprising here, the PBX market leaders are reflected in our implementation stats as well.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8171.image_5F00_164C1A96.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4774.image_5F00_thumb_5F00_4626BC57.png" width="364" height="204" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m curious how our CallManager version integration breakdown matches up to Cisco’s worldwide deployment percentages.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/0842.image_5F00_692707FA.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/1376.image_5F00_thumb_5F00_1C82CB57.png" width="364" height="205" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now, some less data-specific observations.&amp;#160; In general we saw faster voice adoption by organizations who a) were running an older PBX and b) had little to no call center staff.&amp;#160; This manifested itself in a few ways – expanded pilot group, addition of capacity to voice components, and/or a more accelerated move to production.&amp;#160; Not surprisingly smaller organizations were more likely to move towards production, which was typically because those organizations were more nimble and had a more manageable political environment.&lt;/p&gt;  &lt;p&gt;As a consulting organization, predictability of the platform is a major consideration for us and has been a strong point of OCS to date.&amp;#160; It allowed us to create a standard fixed price model for almost all our services, which in turn reduced customer’s fear in moving to the platform since they knew we stood behind our work and would, if something went awry, share in their pain.&amp;#160; Happily for both us and our customers this did not happen – all issues/complications/etc. were properly accounted for in the engagements and covered as expected by our pricing models.&lt;/p&gt;  &lt;p&gt;So where does everything stand today?&amp;#160; The obvious state of things related to voice is the lack of features as compared to traditional PBXs.&amp;#160; This is no secret, and will largely be addressed in the OCS Wave 14 product which we’re expecting to see in about a year.&amp;#160; Despite some of these feature deficiencies, there are numerous organizations for whom we’ve helped deploy OCS as a replacement to one or more PBXs.&amp;#160; By and large users need to be able to make/receive phone calls and subsequently forward, transfer, or conference those calls.&amp;#160; OCS can easily handle all of that and display presence all the while.&amp;#160; Reuse of existing telephony endpoints was a showstopper for a number of customers but the introduction of SmartSIP earlier this year had started to break down those deployment barriers.&amp;#160; &lt;/p&gt;  &lt;p&gt;What’s missing is a better story for geographic redundancy for larger organizations.&amp;#160; The recent resiliency white paper attempts to address some of that but the latency requirements are too stringent for most organizations, even those with deep pockets, since global organizations will likely have datacenters that are more than 15ms apart.&amp;#160; Luckily I’ve been architecting around those shortfalls since the LCS days so there’s not much we can’t deal with as long as you can handle a ~15 minute outage in the event that one of your datacenters is completely destroyed.&amp;#160; So far that has been viewed as a reasonable recovery time.&amp;#160; However, I’m hoping that additional work is done to complete this story in Wave 14.&lt;/p&gt;  &lt;p&gt;The other major missing items such as Mac/Linux support are already expected in Wave 14 so there’s not much point to hash them out here.&amp;#160; One thing I haven’t heard much about but would really like to see is a better story around video integration.&amp;#160; The lack of codec support in the MCU today is a severely limiting factor, and the recent announcement of Cisco to purchase Tandberg might make things difficult for Microsoft if Polycom is the only remaining integration partner.&lt;/p&gt;  &lt;p&gt;Overall though one of the most difficult concepts to convey is the paradigm shift from “the phone on my desk” to integrated, presence-enabled communication.&amp;#160; It’s hugely powerful and Microsoft’s vision and ambition to get there is right on target.&amp;#160; The extensibility of the platform dramatically strengthens this vision.&amp;#160; Every time we bring on a new customer that does not yet have OCS you realize how much easier your communication with existing OCS-enabled internal, partner, and customer contacts is.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=424" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Mitel/default.aspx">Mitel</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Cisco/default.aspx">Cisco</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Call+Manager/default.aspx">Call Manager</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Direct+SIP/default.aspx">Direct SIP</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Office+Communications+Server/default.aspx">Office Communications Server</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/2007/default.aspx">2007</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS+2007+R2/default.aspx">OCS 2007 R2</category></item><item><title>WM 6.1 Outlook Mobile Update for Exchange 2010</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/10/06/wm-6-1-outlook-mobile-update-for-exchange-2010.aspx</link><pubDate>Wed, 07 Oct 2009 00:15:38 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:423</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I noticed today that even folks “in the know” are having a hard time finding the update to Outlook Mobile that supports some new features of Exchange 2010, so I thought I’d post it.&amp;#160; The update is included in Windows Mobile 6.5 (which I hope to have soon now that a bunch of new devices are out – most likely the HTC Pure, aka Touch Diamond2) but is also available on Windows Mobile 6.1 via download.&amp;#160; Here is the link:&amp;#160; &lt;a title="OutlookLiveSetup.cab" href="https://update.outlook.com/cabs/OutlookLiveSetup.cab" target="_blank"&gt;https://update.outlook.com/cabs/OutlookLiveSetup.cab&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For an overview of the new features check out the videos &lt;a href="http://pocketnow.com/tech-news/exchange-2010-outlook-mobile-windows-mobile-65-awesome" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; The most noticeable differences are the new view (which includes a conversation view, if you’re into that), and integrated UM playback.&amp;#160; The UM playback is great – no more downloading attachments and playing them in Windows Media anymore.&amp;#160; Everything is integrated right into the message.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=423" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/UM/default.aspx">UM</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/WM+6.1/default.aspx">WM 6.1</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Unified+Messaging/default.aspx">Unified Messaging</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Exchange+2010/default.aspx">Exchange 2010</category></item><item><title>Microsoft releases XMPP Gateway for OCS 2007 R2, enables free AOL connectivity</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/10/01/microsoft-releases-xmpp-gateway-for-ocs-2007-r2-enables-free-aol-connectivity.aspx</link><pubDate>Thu, 01 Oct 2009 17:46:35 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:422</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today Microsoft released the XMPP gateway for OCS R2 (&lt;a href="http://www.microsoft.com/presspass/features/2009/oct09/10-01ucinterop.mspx" target="_blank"&gt;press release&lt;/a&gt;, &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=aa560bfe-9960-473a-bfb8-53bff678cec4" target="_blank"&gt;download page&lt;/a&gt;).&amp;#160; This gateway enables connectivity to systems such as Google Talk and Jabber.&amp;#160; Simultaneously Microsoft has also announced that Public IM Connectivity (PIC) with AOL is now included in the licensing price, along with Windows Live, which was announced a few months ago.&amp;#160; Folks that need connectivity to Yahoo! will still require licensing but the license will be half price.&lt;/p&gt;  &lt;p&gt;This significantly opens the connectivity options for OCS customers.&amp;#160; Albert Kooiman gives an architectural overview in a &lt;a href="http://channel9.msdn.com/posts/jccim/Instant-Messaging-Interoperability-extended-through-XMPP-Jabber/" target="_blank"&gt;Channel9 interview&lt;/a&gt; (skip to the 4:00 mark to see the whiteboard architecture session).&amp;#160; More details forthcoming once I have a chance to install and configure the gateway…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=422" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/PIC/default.aspx">PIC</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Edge/default.aspx">Edge</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Google/default.aspx">Google</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/GTalk/default.aspx">GTalk</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Jabber/default.aspx">Jabber</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/XMPP/default.aspx">XMPP</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Google+Talk/default.aspx">Google Talk</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Gateway/default.aspx">Gateway</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/AOL/default.aspx">AOL</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Yahoo_2100_/default.aspx">Yahoo!</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Yahoo/default.aspx">Yahoo</category></item><item><title>Are you really Away?</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/08/31/are-you-really-away.aspx</link><pubDate>Mon, 31 Aug 2009 19:52:09 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:420</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Having been working with presence for some time now it’s hard to remember a time when I didn’t know in advance if a coworker or business partner was available before trying to contact them.&amp;#160; Unfortunately there are people out there who are interested in obfuscating their availability, presumably to confuse people into not communicating with them.&amp;#160; Most commonly people like this set their status to “Away” when they are really there.&amp;#160; In the beginning it causes people not to communicate with them but over time people figure out that they may be there anyway, which eventually causes the more annoying situation of trying to communicate with someone who actually &lt;u&gt;is&lt;/u&gt; away.&amp;#160; It’s not overly pleasant to always wonder if the person on the other end is available.&lt;/p&gt;  &lt;p&gt;I’ll stop the soapbox there.&amp;#160; To address this, at least with regards to internal users, you can leverage the DiagShowPublisherPresence stored procedure in SQL.&amp;#160; To do so, open SQL Management Studio, expand Databases/rtc/Programmability/Stored Procedures:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/3618.image_5F00_3A503A6C.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5381.image_5F00_thumb_5F00_60B21DB7.png" width="182" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You’ll find a lot of stored procedures here (aka stored procs) and if you browse through them you’ll start to see how OCS works under the covers.&amp;#160; It’s &lt;em&gt;&lt;strong&gt;&lt;u&gt;very important&lt;/u&gt;&lt;/strong&gt;&lt;/em&gt; not to modify any of the stored procs - doing so could cause major problems with OCS.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With that aside, scroll down to the dbo.DiagShowPublisherPresence, right click, and select Execute Stored Procedure:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5126.image_5F00_195CC7C5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8877.image_5F00_thumb_5F00_18F094D0.png" width="389" height="99" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A dialog with options will appear.&amp;#160; In the Value field enter the SIP address of the user whose presence you wish to see and click OK:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8715.image_5F00_063B9B19.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4604.image_5F00_thumb_5F00_3E7A1231.png" width="697" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This will return a fair amount of data, as you can see below.&amp;#160; The column we’re interested in is the one titled Data.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/7268.image_5F00_24A5DC02.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/8666.image_5F00_thumb_5F00_27D7C3EA.png" width="730" height="237" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the Data column you’ll see the raw XML of the presence data.&amp;#160; You’ll see a lot of data here, especially if the user is logged on to multiple places.&amp;#160; The “aggregateState” entries will reference the overall presence state of the user.&amp;#160; You’ll also see “userState” and “machineState” entries:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/6204.image_5F00_7F4BC8EE.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/1263.image_5F00_thumb_5F00_378A4007.png" width="839" height="42" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Notice the difference between the availability of the userState and the machineState (15500 and 3500 respectively).&amp;#160; 15500 represents an Away state whereas 3500 represents an Available state (see &lt;a title="http://msdn.microsoft.com/en-us/library/bb878933.aspx" href="http://msdn.microsoft.com/en-us/library/bb878933.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb878933.aspx&lt;/a&gt; for reference on the presence state integers).&amp;#160; I can tell since the machineState is Available but the userState is Away and set to manual=”true” that this user has manually set their presence to Away.&lt;/p&gt;  &lt;p&gt;Admittedly it’s not an elegant solution to finding this information.&amp;#160; I may write a quick tab extension to show this right in Communicator but in the meantime it highlights the usefulness of the stored procs that you’ll find in SQL.&amp;#160; Thanks to Simon Booth, our UC developer extraordinaire for some insight on the presence data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=420" width="1" height="1"&gt;</description></item><item><title>Calling Name in OCS 2007 R2</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/08/12/calling-name-in-ocs-r2.aspx</link><pubDate>Wed, 12 Aug 2009 17:51:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:418</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A couple weeks ago Microsoft released an &lt;a href="http://support.microsoft.com/kb/968802"&gt;array of updates&lt;/a&gt; for OCS 2007 R2.&amp;nbsp; In addition to addressing various issues, one somewhat less publicized but highly anticipated change was the support of calling name for inbound and outbound calls.&amp;nbsp; Applying these updates to your OCS environment will automatically add calling name to inbound calls.&amp;nbsp; Here&amp;rsquo;s a before and after screen shot:&lt;/p&gt;
&lt;p&gt;Before:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/4431.nocallerid6907.22_5F00_52C12C36.png"&gt;&lt;img height="77" width="244" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5025.nocallerid6907.22_5F00_thumb_5F00_2B1AB00C.png" alt="no caller id - 6907.22" border="0" title="no caller id - 6907.22" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;After:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/5554.callerid6907.37_5F00_0A93705A.png"&gt;&lt;img height="77" width="244" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike.metablogapi/3302.callerid6907.37_5F00_thumb_5F00_17F98360.png" alt="caller id - 6907.37" border="0" title="caller id - 6907.37" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I also noticed on the test PC where I ran this that it was necessary to update Communicator to the &lt;a href="http://support.microsoft.com/kb/969695"&gt;July 2009 update&lt;/a&gt; (6907.37) for calling name to appear.&amp;nbsp; When I was running the May update (6907.22) Communicator did not show the calling name.&lt;/p&gt;
&lt;p&gt;For outbound calling name you will need to add the forwardDisplayName setting to the MediationServer.exe.config file.&amp;nbsp; Details on this can be found &lt;a href="http://support.microsoft.com/default.aspx/kb/972721/EN-US"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=418" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/communicator/default.aspx">communicator</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/mediation/default.aspx">mediation</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/calling+name/default.aspx">calling name</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/caller+id/default.aspx">caller id</category></item><item><title>Using Forefront for OCS to block large file transfers</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/05/17/using-forefront-for-ocs-to-block-large-file-transfers.aspx</link><pubDate>Mon, 18 May 2009 02:26:52 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:378</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Customers ask me all the time if it is possible to file transfers over a certain amount, and I’m happy to see this feature in Forefront for OCS.&amp;#160; It’s pretty easy to configure this particular feature.&lt;/p&gt;  &lt;p&gt;There are two ways to configure file filtering – either directly in the file filter area or by configuring a list.&amp;#160; Using a list allows you to group multiple settings into one as well as have more control over the rule name.&amp;#160; For the latter reason I opted to use a list in my example.&amp;#160; To start, I went to the Filter Lists item under the Filtering section and selected Files from the List Types option:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_436D38F0.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_1BC6BCC6.png" width="327" height="242" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At the bottom I clicked Add and created a list called 1MB File Transfer Limit:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_3B096399.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_3A9D30A4.png" width="329" height="195" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next select the list and click the Edit button to bring up the Include/Exclude options.&amp;#160; For this basic rule I simply created a filter for *.*&amp;gt;=1MB to match files which are greater than or equal to 1MB:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_60FF13EF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_5973A482.png" width="328" height="217" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Since we’re using a filter list you could choose different sizes for different types of files or choose to exclude particular file types altogether.&amp;#160; Next, head back to the main File area in the Filtering section.&amp;#160; You’ll see your new list under the lists section at the bottom.&amp;#160; On the right side make sure to enable the file filter and the action you wish to take when a matching file is encountered.&amp;#160; In my case I selected to block the file and send a notification:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_31CD2858.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_05B02B67.png" width="808" height="185" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This resulted in an IM to the person sending the file:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_046B9288.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_5CC5165D.png" width="314" height="189" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Combining this with the virus scanning, content filtering, and other features of Forefront I’d say this appears to be a pretty useful tool for almost all OCS deployments.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=378" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/security/default.aspx">security</category></item><item><title>How not to make a T1 crossover cable</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/05/11/how-not-to-make-a-t1-crossover-cable.aspx</link><pubDate>Mon, 11 May 2009 16:38:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:356</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;For those of you who work a lot with T1 media gateways like the ones we use to connect OCS and Exchange to PBXs, you are probably familiar with the connection of a T1 crossover cable between the gateway and the PBX.&amp;nbsp; Sometimes the gateway comes with one in the box and sometimes customers have them on hand, but every now and then one has to be made by hand.&amp;nbsp; This attached photo shows the outcome of that activity at a customer I worked with recently.&amp;nbsp; Unfortunately the telecom guy that was doing the T1 connection didn&amp;rsquo;t have access to plugs and a crimper so a straight-through Ethernet cable fell prey to a pair of scissors and some electrical tape.&amp;nbsp; From what I understand this took place around 1:30am.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/PIC0007_5F00_00AA5216.jpg"&gt;&lt;img height="284" width="378" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/PIC0007_5F00_thumb_5F00_45E2A93F.jpg" alt="PIC-0007" border="0" title="PIC-0007" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To his credit it worked great and allowed us to finish the pilot.&amp;nbsp; They assure me it will be replaced with a proper cable soon.&amp;nbsp; &lt;img src="http://www.evangelyze.net/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=356" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/T1/default.aspx">T1</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/funny/default.aspx">funny</category></item><item><title>UC Virtual User Group Kickoff</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/05/07/uc-virtual-user-group-kickoff.aspx</link><pubDate>Fri, 08 May 2009 02:38:13 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:355</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’m excited to let everyone know about the kickoff meeting of the UC Virtual User Group (UCVUG), coming up on May 21st at 7pm Eastern time.&amp;#160; There will be some great content and even some giveaways!&amp;#160; Many thanks to fellow MVP Dustin Hannifin for organizing the group/event.&amp;#160; I’ll be presenting our &lt;a href="http://www.evangelyze.net/products.asp#SMARTSIP"&gt;SmartSIP&lt;/a&gt; solution, which will hit RTM on May 20, and another fellow MVP, Jeff Schertz, will will be presenting on new features in OCS 2007 R2.&lt;/p&gt;  &lt;p&gt;The UCVUG website is &lt;a title="http://ucvug.org/" href="http://ucvug.org/"&gt;http://ucvug.org/&lt;/a&gt; or you can jump straight to the registration page at &lt;a title="http://ucvuglaunch.eventbrite.com/" href="http://ucvuglaunch.eventbrite.com/"&gt;http://ucvuglaunch.eventbrite.com/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=355" width="1" height="1"&gt;</description></item><item><title>Communicator cannot login, 0x80090308 SEC_E_INVALID_TOKEN</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/05/06/communicator-cannot-login-0x80090308-sec-e-invalid-token.aspx</link><pubDate>Wed, 06 May 2009 17:29:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:354</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today I hit an issue at a customer where Communicator could not login with TLS.&amp;nbsp; In the event log and a Communicator trace we would see 0x80090308 errors, which translates to SEC_E_INVALID_TOKEN.&amp;nbsp; Also, communication between the existing OCS R1 and the new R2 server would fail in one direction &amp;ndash; R1 users could not reply to R2 IMs.&amp;nbsp; The R1 servers reported the same 80090308 error.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Communicator&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5/6/2009 9:32:16 AM&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Task Category: None&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Computer:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Computer Name&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Description:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Communicator could not connect securely to server &amp;lt;ocspool&amp;gt; because the certificate presented by the server was not trusted due to validation error 0x80090308.&amp;nbsp; The issuing certificate authority (CA) for the server&amp;#39;s certificate may not be locally trusted by the client, the certificate may be revoked, or the certificate may have expired.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Upon further investigation we discovered the following error in the System event log of the R2 server:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Event Type:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Warning&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Event Source:&amp;nbsp;&amp;nbsp;&amp;nbsp; Schannel&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Event Category:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 36885&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5/6/2009&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Time:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:42:26 AM&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Computer:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Server Name&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Description:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;When asking for client authentication, this server sends a list of trusted certificate authorities to the client. The client uses this list to choose a client certificate that is trusted by the server. Currently, this server trusts so many certificate authorities that the list has grown too long. This list has thus been truncated. The administrator of this machine should review the&amp;nbsp; certificate authorities trusted for client authentication and remove those that&amp;nbsp; do not really need to be trusted.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The Trusted Root certificate store had almost 300 certificates listed because this customer had been diligent in applying the root certificate updates that are published periodically.&amp;nbsp; We deleted a large number of certificates that were not needed and ended up with around 120.&amp;nbsp; Once this was done all communication completed successfully.&lt;/p&gt;
&lt;p&gt;Subsequently we discovered a KB article related to IAS that also addresses this issue:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;933430" title="http://support.microsoft.com/default.aspx?scid=kb;EN-US;933430"&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;933430&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We did not contact PSS to acquire the hotfix so I can&amp;rsquo;t speak to whether or not it would have corrected the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=354" width="1" height="1"&gt;</description></item><item><title>Periodic Audio Drops during a call through the A/V Edge</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/04/30/periodic-audio-drops-during-a-call-through-the-a-v-edge.aspx</link><pubDate>Thu, 30 Apr 2009 15:20:09 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:350</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This week I hit an issue at a customer where audio would drop periodically for external users.&amp;#160; The call would stay up but audio would disappear.&amp;#160; This happened in 2 situations…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- The user was in a quiet environment and was silently listening to the other caller&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;- The user was on mute&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;We could replicate this at will by calling a line with hold music and staying on mute.&amp;#160; It made no difference Initially we thought that silence detection of some sort was coming into play.&amp;#160; However, Netmon traces indicated that the A/V Edge was sending RTP packets the entire time but on the client side we would see large gaps in inbound RTP packets, each time lasting about 15 seconds.&lt;/p&gt;  &lt;p&gt;After doing some research on this customer’s firewall, a Checkpoint, I noticed that Checkpoint includes a default UDP “Virtual Session Timeout” setting of 40 seconds.&amp;#160; Comparing this to the client side netmon I noticed that the first audio drop occurred 40 seconds into the call.&amp;#160; In fact, thinking back to the testing the audio drops would occur when the call timer in Communicator was around 37-38 seconds (the timer doesn’t start until the audio stream is fully up and running).&amp;#160; Following this we would get a break of ~15 seconds and then the audio would drop again around 1:34 into the call, or about 40 seconds after the audio was reestablished.&amp;#160; Now that I knew the default Checking timeout was 40 seconds it seemed unlikely that this was a coincidence. &lt;/p&gt;  &lt;p&gt;The max setting for the Virtual Session Timeout is 3600 seconds on this customer’s version of Checkpoint, but you don’t want to needlessly crank this setting to the max.&amp;#160; There are implications on firewall performance based on the number of open sessions.&amp;#160; In our case we set this to 300 seconds:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_27834FE5.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="214" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_0CC68DFF.png" width="285" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This can be set as a global setting or on a per service basis.&amp;#160; We only changed it on the specific service that was created for OCS so as not to impact other firewall services.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=350" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Edge/default.aspx">Edge</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Checkpoint/default.aspx">Checkpoint</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/A_2F00_V/default.aspx">A/V</category></item><item><title>Watch out for underscores in OCS Pool FQDN</title><link>http://evangelyze.net/cs/blogs/jose/archive/2009/04/28/watch-out-for-underscores-in-ocs-pool-fqdn.aspx</link><pubDate>Tue, 28 Apr 2009 15:10:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:337</guid><dc:creator>jose</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;m not much of a blogger but I&amp;#39;ve been thinking about contributing to the UC community because I run across a ton of valuable information in my line of work and I figured this would be a good one to start with.&lt;br /&gt;&lt;br /&gt;So I recently ran into an issue with a customer who decided to name their OCS 2007 R2 pool with an underscore (e.g. ocs_pool1). Based on the fact that we received NO errors or warnings during the install and EVERYTHING in OCS worked (including Enterprise Voice, Remote Access, Federation, etc) we didn&amp;rsquo;t see a problem with this configuration.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Enter Exchange UM&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;During the Exchange UM installation process when we ran the exchucutil.ps1 script to create the UM IP Gateway objects we received the following error:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Configuring UMIPGateway objects... Pool:&amp;nbsp; OCS_R2_pool.domain.com UMIPGateway: Not Found, creating...&lt;br /&gt;Failed to create Exchange UMIPGateway objects. Please verify you are a member of the Exchange Organization Administrators group or have sufficient privilege to write to this Active Directory container. Additional information follows: Cannot convert value &amp;quot;OCS_R2_pool.domain.com&amp;quot; to type &amp;quot;Microsoft.Exchange.Data.UMSmartHost&amp;quot;. &lt;b&gt;Error: &amp;quot;&amp;quot;OCS_R2_pool.domain.com&amp;quot; is not a valid IP address or host name. Parameter name: SmartHost&amp;quot;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;We checked DNS and obviously everything was fine. A google search led to zero hits on this specific issue (though TomL did have a post on LCS pools not supporting underscores for PIC: &lt;a target="_blank" href="http://blogs.technet.com/toml/archive/2006/06/20/437862.aspx"&gt;http://blogs.technet.com/toml/archive/2006/06/20/437862.aspx&lt;/a&gt;) however nothing like this exists for OCS.&lt;br /&gt;&lt;br /&gt;Bottom line, you CANNOT have underscores in your OCS 2007 R2 Pool Name. My Microsoft buddies tell me it&amp;#39;s not a limitation with OCS but rather DNS. However I find that a little difficult to understand since DNS supports underscores in Hostnames. I&amp;#39;m going to be doing some more research on this.&lt;br /&gt;&lt;br /&gt;Anyway, if you plan on using Exchange UM &lt;b&gt;DON&amp;#39;T USE UNDERSCORES IN YOUR POOLNAMES OR SERVERNAMES&lt;/b&gt;. In fact it&amp;#39;s probably a good thing to steer clear of using underscores altogether as part of your OCS deployment .&lt;br /&gt;&lt;br /&gt;If you have encountered this issue your best option is to:&lt;br /&gt;&lt;br /&gt;Create a new pool - without underscores &lt;img src="http://www.evangelyze.net/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;Add new server(s) to this pool&lt;br /&gt;Move users to the new pool&lt;br /&gt;Deactivate servers from previous pool&lt;br /&gt;Delete Pool&lt;br /&gt;&lt;br /&gt;Obviously there will be some cleanup you&amp;rsquo;ll need to do if you have an edge, mediation server, etc. But I&amp;#39;m sure you&amp;#39;ve got it from here...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=337" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/jose/archive/tags/Underscores+in+OCS+Pool+FQDN/default.aspx">Underscores in OCS Pool FQDN</category></item><item><title>Updating the OCS R2 Internal URLs</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/04/21/updating-the-ocs-r2-internal-urls.aspx</link><pubDate>Tue, 21 Apr 2009 12:40:05 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:329</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Last year I posted the process for &lt;a href="http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/28/changing-the-ocs-internal-urls.aspx" target="_blank"&gt;updating the internal OCS URLs&lt;/a&gt;.&amp;#160; From time to time I’ve found it necessary to do this for various reasons.&amp;#160; Most commonly this is necessary if a customer does not have a reverse proxy in place and/or is not using a SAN certificate that includes both the external web farm FQDN as well as the pool FQDN.&lt;/p&gt;  &lt;p&gt;The biggest difference with R2 is that you have to enter the WMI string in a query in order to find and edit it.&amp;#160; This was done for performance reasons since enumerating all the instances of some classes can be a CPU-intensive operation.&lt;/p&gt;  &lt;p&gt;First, here are the URLs you will modify:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPAddressBookSetting - InternalURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPClientUpdaterSetting- InternalURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPDataMCUCapabilitySetting - InternalClientContentDownloadURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPGroupExpansionSetting - InternalDLExpansionWebURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPPSTNConferencingSetting- InternalURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;MSFT_SIPUpdatesServerSetting - InternalUpdatesDownloadURL, InternalUpdatesStoreURL&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;To find and modify the settings I decided to use CIM Studio since the interface is more intuitive than wbemtest.&amp;#160; CIM Studio is part of the WMI Tools package, which can be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=6430f853-1120-48db-8cc5-f2abdc3ed314&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; Once installed, launch CIM Studio from the Start/Programs menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_4CCA3587.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="102" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_41347848.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It launches in a browser using an ActiveX control, which you may need to allow depending on your security settings:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_6BA0A965.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="80" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_3F17797F.png" width="406" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once it is open it will prompt you for the namespace.&amp;#160; If you are running this from the OCS front end then the default (root\CIMv2) is accurate.&amp;#160; You can also connect to a remote machine using &lt;a&gt;\\&lt;em&gt;machinename&lt;/em&gt;\root\cimv2&lt;/a&gt;.&amp;#160; You will be prompted to logon as the current user or specify credentials:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_28E15E2D.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="100" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_2F9467B0.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now that you are connected the main screen will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_683F11BD.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="285" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_3CCACAF6.png" width="444" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now, because of the changes in R2 we can’t just find the class and click the Instances button like we used to.&amp;#160; You need to run a WQL query to find the specific instance that you want to use.&amp;#160; To do this, click the WQL Query button towards the top right of the window.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_09225E98.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="63" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_76D997D5.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Your query is a simple SELECT statement that finds the instance you need to work with.&amp;#160; In OCS this is derived from the backend pool information.&amp;#160; For an enterprise pool the backend will be &lt;em&gt;SQLServer\\SQLInstance &lt;/em&gt;(yes, the double backslashes are correct).&amp;#160; For Standard Edition you can use &lt;em&gt;OCSServerName\\rtc&lt;/em&gt; or (local)\\rtc.&amp;#160; Therefore your SELECT statement will look something like this:&lt;/p&gt;  &lt;p&gt;SELECT * from msft_sipaddressbooksetting where backend=&amp;quot;evan-terra1\\rtc&amp;quot;&lt;/p&gt;  &lt;p&gt;If successful, this will return a result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_1A92BF70.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="56" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_3A419938.png" width="406" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Double click that result and the properties will be displayed.&amp;#160; This one area where CIM Studio is much easier to use than wbemtest.&amp;#160; Simply modify the appropriate property (InternalURL in this case) and click the Save button.&lt;/p&gt;  &lt;p&gt;Repeat this find/modify process for the class/property values that I mentioned at the beginning of the post and you will be all set.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=329" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/WMI/default.aspx">WMI</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/ABS/default.aspx">ABS</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/URL/default.aspx">URL</category></item><item><title>Exchange UM Fails to Validate Certificate</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/03/29/exchange-um-fails-to-validate-certificate.aspx</link><pubDate>Mon, 30 Mar 2009 02:52:09 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:260</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Last week I hit an issue where Play on Phone was not working.&amp;#160; After entering the phone number in the appropriate field, Outlook would try for 30 seconds and then give the generic error indicating that it could not connect to the UM server.&amp;#160; As a starting point I checked the URL that was being sent to the client (https://&amp;lt;CAS URL&amp;gt;/unifiedmessaging/service.asmx) to ensure there were no connectivity or certificate issues.&amp;#160; Everything checked out fine there.&lt;/p&gt;  &lt;p&gt;Next I looked at the UM server and found an event 1113 with the following description:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The Unified Messaging server failed to exchange the required certificates with an IP gateway to enable Transport Layer Security (TLS) for an incoming call. Check that this is a configured TLS peer and that the correct certificates are being used. More information: A TLS failure occurred because the certificate that was presented by the remote server is not trusted. The error code was &amp;quot;-2146762487&amp;quot; and the message was &amp;quot;A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider&amp;quot;.&lt;/em&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt; This particular customer has separate servers for the mailbox, hub transport, CAS, and UM roles.&amp;#160; Since the client connection goes through the CAS server this would indicate that the UM server was rejecting the certificate that was presented by the CAS server.&amp;#160; A quick check of the certificates on the CAS server via get-exchangecertificate showed the certificate that we expected, and we could successfully browse to the same /unifiedmessaging/service.asmx URL from the UM server without any issues.&amp;#160; A netmon trace further confirmed that the certificate presented to the UM server was the one we expected.&amp;#160; Despite all this, the CAS server insisted that it was not able to find a valid UM server:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Event Type: Warning      &lt;br /&gt;Event Source: MSExchange Unified Messaging       &lt;br /&gt;Event Category: Shell       &lt;br /&gt;Event ID: 1083       &lt;br /&gt;Description:       &lt;br /&gt;The Unified Messaging Web service was unable to process a &amp;quot;PlayOnPhone&amp;quot; request for user &amp;quot;Doe, John&amp;quot;. The error was &amp;quot;A valid Unified Messaging server could not be found for dial plan NorthAmerica.&amp;quot;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Since the CAS server was configured with a Verisign certificate this really didn’t make sense, but for the sake of completeness I checked each certificate in the chain and verified that it existed in the UM server’s local computer certificate store.&amp;#160; What I found was that the Verisign root certificate was indeed in the Trusted Root Certification Authorities store but the intermediate CA, from which the CAS server’s certificate was issued, was not in the Intermediate Certification Authorities store.&amp;#160; This didn’t seem to cause any problems from IE but just to be safe I added the intermediate certificate into the store.&amp;#160; Sure enough, this caused UM to begin accepting the connections from the CAS server.&lt;/p&gt;  &lt;p&gt;I haven’t had a chance to research whether or not this is documented/expected behavior but it’s certainly interesting to note this, especially as certificate vendors are beginning to use new 2048 bit based CAs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=260" width="1" height="1"&gt;</description></item><item><title>EC SmartSIP</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/03/17/ec-smartsip.aspx</link><pubDate>Wed, 18 Mar 2009 03:12:17 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:232</guid><dc:creator>mike</dc:creator><slash:comments>13</slash:comments><description>&lt;p&gt;About 2 weeks ago we opened a private beta of our upcoming product called SmartSIP, and so far the response has been amazing!&amp;#160; It’s really exciting to hear from customers about their success connecting OCS to an array of SIP providers and IP PBXs.&lt;/p&gt;  &lt;p&gt;If you’re not familiar with SmartSIP, it’s a product we’re releasing soon to extend the capabilities of OCS.&amp;#160; The first version, due in April, will allow you to connect OCS with virtually any SIP system – TCP or UDP.&amp;#160; The most common use is to connect a Mediation server to a customer’s existing ITSP, but it can also connect to other IP gateways, SBCs, IP PBXs, etc.&amp;#160; We will also simplify phone number management by integrating with Active Directory to automatically route calls rather than burden administrators with additional phone number to SIP user mapping.&lt;/p&gt;  &lt;p&gt;What’s really interesting is how creative our customers have been with the new possibilities.&amp;#160; Because SmartSIP can connect to multiple IP systems, we have the flexibility to have failover routes.&amp;#160; For example, we are working with one of our customers on an architecture where we will have primary routes through a T1/E1 media gateway, inbound routing through a SIP trunk for OCS Conferencing (many ITSPs provide free incoming minutes), and can also route outbound calls through the SIP trunk in the event of a PSTN outage.&amp;#160; Scenarios become even more compelling (and cost effective) as this architecture expands to multiple sites for geographical redundancy.&lt;/p&gt;  &lt;p&gt;Our first update to the product is scheduled for May and will extend the capability to register standard SIP phones as OCS endpoints.&amp;#160; The cost savings here is huge – one of our smaller customers (about 350 users) would have had to spend $60,000-100,000 on new endpoints to fully leverage their Microsoft UC deployment but since we can reuse their Nortel 1120E phones they will have only costs of approximately $8,000 to roll out a complete solution with their existing endpoints.&lt;/p&gt;  &lt;p&gt;If you are interested in SmartSIP drop us a line at &lt;a href="mailto:smartsip@evangelyze.net"&gt;smartsip@evangelyze.net&lt;/a&gt;, and stay tuned here for updates!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=232" width="1" height="1"&gt;</description></item><item><title>Entrust UC Certificates</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/02/13/entrust-uc-certificates.aspx</link><pubDate>Fri, 13 Feb 2009 13:00:29 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:154</guid><dc:creator>mike</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve favorably referenced the UC certs from Entrust a few times over on the &lt;a href="http://social.microsoft.com/Forums/en-US/category/officecommunicationsserver/" target="_blank"&gt;OCS Forums&lt;/a&gt; and I noticed recently that they’ve had a pretty significant price drop.&amp;#160; They used to be priced at $1099 for 2 years but are now &lt;a href="http://www.entrust.net/ssl-certificates/unified-communications.htm" target="_blank"&gt;available in 1, 2, 3, and 4 year versions&lt;/a&gt;, all of which have been reduced in price.&amp;#160; Definitely worth a look if you are doing an OCS installation or getting ready to renew your certificates.&lt;/p&gt;  &lt;p&gt;Microsoft actually worked with the certificate providers when they created the &lt;a href="http://support.microsoft.com/kb/929395" target="_blank"&gt;UC Cert program&lt;/a&gt;, which includes other providers as well (check the link for the current list).&amp;#160; Any time I’m working with a customer on an Edge deployment I use these certificates – they are simple to obtain, well priced, and can be easily reissued if your names change.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=154" width="1" height="1"&gt;</description></item><item><title>OCS 2007 R2 Live Meeting content fails to download</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/02/13/ocs-2007-r2-live-meeting-content-fails-to-download.aspx</link><pubDate>Fri, 13 Feb 2009 12:49:23 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:153</guid><dc:creator>mike</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;When running OCS 2007 R2 on Windows 2008, users are able to upload content to the Live Meeting session but receive the following error after the download:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“Content failed to download due to a problem with the Conference Center configuration. Contact your administrator”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;To figure out what what happening I decided to browse down into one of the content folders to see if I could load the pages.&amp;#160; To do so I expanded Etc/Place/Null/FileTree/&amp;lt;branch1&amp;gt;/&amp;lt;branch2&amp;gt;/slidefiles in IIS on the front end server and switched to the content view:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_6E199EA7.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="373" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_3F53E605.png" width="408" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now in the right pane I can see at least a default.htm and an index.html file (if you don’t see these select another &amp;lt;branch2&amp;gt; folder until you find one that contains them), right clicked, and selected the browse option.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_569EEA76.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="346" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_4B092D37.png" width="412" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sure enough, that presented a 500.19 error in IE.&amp;#160; An inspection of the IIS logs showed a number of these errors from my testing.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_293D54A6.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="88" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_27F8BBC7.png" width="593" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A quick search turned up &lt;a href="http://blogs.technet.com/jenstr/archive/2009/01/08/http-error-500-19-when-accessing-ocpe-firmware-urls-on-windows-2008.aspx" target="_blank"&gt;Jens’ blog&lt;/a&gt; which indicates that this problem also manifests itself in the device update URLs.&amp;#160; Applying those steps to the FileTree folder solved the problem (I also did an iisreset for good measure).&amp;#160; One addition to his article – if you are looking for Basic Settings it’s on the far right in the Actions pane when you click on FileTree:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_5FCAFFEA.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="107" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_4662FCB0.png" width="209" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you don’t see it over there you are probably in the Content View.&amp;#160; To fix this, right click on FileTree and select Switch to features view:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_7F0DA6BD.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="254" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_458A96C6.png" width="272" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=153" width="1" height="1"&gt;</description></item><item><title>OCS R2 CDR Database schema</title><link>http://evangelyze.net/cs/blogs/simon/archive/2009/02/11/ocs-r2-cdr-database-schema.aspx</link><pubDate>Thu, 12 Feb 2009 01:54:55 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:152</guid><dc:creator>simon</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Seems the R2 documentation is either incomplete or just hard to find at this time, so I dumped the schema out of the database. For descriptions, most of this is in the R1 documentation (&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=52627734-B354-4F74-A6ED-E298259CDA19&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=52627734-B354-4F74-A6ED-E298259CDA19&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=52627734-B354-4F74-A6ED-E298259CDA19&amp;amp;displaylang=en&lt;/a&gt;)&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:bbb98664-a798-4515-a2d2-c21a2145ba75" class="wlWriterEditableSmartContent"&gt;&lt;p&gt; &lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/simon/OCS_5F00_R2_5F00_CDR_5F00_Schema_5F00_6403A8C9.pdf" target="_blank"&gt;OCS R2 Schema Diagram&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;  &lt;p&gt;Tables / Columns :&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;TableName&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;ColumnName&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;DataType&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;Length&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Application&lt;/td&gt;        &lt;td&gt;ApplicationId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Application&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;514&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Application&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;514&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ClientVersions&lt;/td&gt;        &lt;td&gt;VersionId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ClientVersions&lt;/td&gt;        &lt;td&gt;Version&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ClientVersions&lt;/td&gt;        &lt;td&gt;Version&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Computers&lt;/td&gt;        &lt;td&gt;ComputerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Computers&lt;/td&gt;        &lt;td&gt;Computer&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;32&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Computers&lt;/td&gt;        &lt;td&gt;Computer&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;32&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ConferenceMessageCount&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ConferenceMessageCount&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ConferenceMessageCount&lt;/td&gt;        &lt;td&gt;UserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ConferenceMessageCount&lt;/td&gt;        &lt;td&gt;MessageCount&lt;/td&gt;        &lt;td&gt;smallint&lt;/td&gt;        &lt;td&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;ConferenceUri&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;ConferenceUri&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;Checksum&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;ConfInstance&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;ConferenceStartTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;ConferenceEndTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;PoolId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Conferences&lt;/td&gt;        &lt;td&gt;OrganizerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigDateTime&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;64&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigDateTime&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;64&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigDateTime&lt;/td&gt;        &lt;td&gt;Value&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigInt&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;64&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigInt&lt;/td&gt;        &lt;td&gt;Name&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;64&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbConfigInt&lt;/td&gt;        &lt;td&gt;Value&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbErrorMessage&lt;/td&gt;        &lt;td&gt;Id&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbErrorMessage&lt;/td&gt;        &lt;td&gt;Severity&lt;/td&gt;        &lt;td&gt;tinyint&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbErrorMessage&lt;/td&gt;        &lt;td&gt;Text&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;510&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;DbErrorMessage&lt;/td&gt;        &lt;td&gt;Text&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;510&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Dialogs&lt;/td&gt;        &lt;td&gt;DialogId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Dialogs&lt;/td&gt;        &lt;td&gt;ExternalChecksum&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Dialogs&lt;/td&gt;        &lt;td&gt;ExternalId&lt;/td&gt;        &lt;td&gt;varbinary&lt;/td&gt;        &lt;td&gt;775&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorDef&lt;/td&gt;        &lt;td&gt;ErrorId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorDef&lt;/td&gt;        &lt;td&gt;ResponseCode&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorDef&lt;/td&gt;        &lt;td&gt;MsDiagId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorDef&lt;/td&gt;        &lt;td&gt;RequestType&lt;/td&gt;        &lt;td&gt;varbinary&lt;/td&gt;        &lt;td&gt;33&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorDef&lt;/td&gt;        &lt;td&gt;ContentType&lt;/td&gt;        &lt;td&gt;varbinary&lt;/td&gt;        &lt;td&gt;257&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;ErrorTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;ErrorId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;FromUserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;ToUserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;DialogId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;MsDiagHeader&lt;/td&gt;        &lt;td&gt;image&lt;/td&gt;        &lt;td&gt;16&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ErrorReport&lt;/td&gt;        &lt;td&gt;ClientVersionId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;FileName&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;FileName&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;Cookie&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;Accept&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;Reject&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FileTransfers&lt;/td&gt;        &lt;td&gt;Cancel&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserInstance&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;IsUserInternal&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserRole&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserJoinTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserLeaveTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;FocusJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;ClientVerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Gateways&lt;/td&gt;        &lt;td&gt;GatewayId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Gateways&lt;/td&gt;        &lt;td&gt;Gateway&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Gateways&lt;/td&gt;        &lt;td&gt;Gateway&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserInstance&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;IsFromPstn&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;McuId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserJoinTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;McuJoinsAndLeaves&lt;/td&gt;        &lt;td&gt;UserLeaveTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Mcus&lt;/td&gt;        &lt;td&gt;McuId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Mcus&lt;/td&gt;        &lt;td&gt;McuUri&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Mcus&lt;/td&gt;        &lt;td&gt;McuUri&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Mcus&lt;/td&gt;        &lt;td&gt;McuType&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Mcus&lt;/td&gt;        &lt;td&gt;McuType&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;MediaId&lt;/td&gt;        &lt;td&gt;tinyint&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;StartTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;EndTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;MediaList&lt;/td&gt;        &lt;td&gt;MediaId&lt;/td&gt;        &lt;td&gt;tinyint&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;MediaList&lt;/td&gt;        &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;MediaList&lt;/td&gt;        &lt;td&gt;Media&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Phones&lt;/td&gt;        &lt;td&gt;PhoneId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Phones&lt;/td&gt;        &lt;td&gt;PhoneUri&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Phones&lt;/td&gt;        &lt;td&gt;PhoneUri&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Pools&lt;/td&gt;        &lt;td&gt;PoolId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Pools&lt;/td&gt;        &lt;td&gt;PoolFQDN&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Pools&lt;/td&gt;        &lt;td&gt;PoolFQDN&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ProgressReport&lt;/td&gt;        &lt;td&gt;ErrorTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ProgressReport&lt;/td&gt;        &lt;td&gt;ErrorId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ProgressReport&lt;/td&gt;        &lt;td&gt;ProgressReportSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ProgressReport&lt;/td&gt;        &lt;td&gt;ApplicationId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ProgressReport&lt;/td&gt;        &lt;td&gt;Detail&lt;/td&gt;        &lt;td&gt;image&lt;/td&gt;        &lt;td&gt;16&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Roles&lt;/td&gt;        &lt;td&gt;RoleId&lt;/td&gt;        &lt;td&gt;tinyint&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Roles&lt;/td&gt;        &lt;td&gt;Role&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Roles&lt;/td&gt;        &lt;td&gt;Role&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;DialogId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;CorrelationId&lt;/td&gt;        &lt;td&gt;uniqueidentifier&lt;/td&gt;        &lt;td&gt;16&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;ReplacesDialogId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User1Id&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User2Id&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;TargetUserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;SessionStartedById&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;OnBehalfOfId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;ReferredById&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;ComputerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;PoolId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User1ClientVerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User2ClientVerId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;IsUser1Internal&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;IsUser2Internal&lt;/td&gt;        &lt;td&gt;bit&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;InviteTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;ResponseTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;ResponseCode&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;DiagnosticId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User1MessageCount&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;User2MessageCount&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;SessionDetails&lt;/td&gt;        &lt;td&gt;SessionEndTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;UserAuthTypes&lt;/td&gt;        &lt;td&gt;AuthTypeId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;UserAuthTypes&lt;/td&gt;        &lt;td&gt;AuthType&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;UserAuthTypes&lt;/td&gt;        &lt;td&gt;AuthType&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;512&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Users&lt;/td&gt;        &lt;td&gt;UserId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Users&lt;/td&gt;        &lt;td&gt;UserUri&lt;/td&gt;        &lt;td&gt;nvarchar&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Users&lt;/td&gt;        &lt;td&gt;UserUri&lt;/td&gt;        &lt;td&gt;sysname&lt;/td&gt;        &lt;td&gt;900&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Users&lt;/td&gt;        &lt;td&gt;AuthTypeId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;SessionIdTime&lt;/td&gt;        &lt;td&gt;datetime&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;SessionIdSeq&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;FromNumberId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;ConnectedNumberId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;FromGatewayId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;ToGatewayId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;DisconnectedByURIId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;VoipDetails&lt;/td&gt;        &lt;td&gt;DisconnectedByPhoneId&lt;/td&gt;        &lt;td&gt;int&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=152" width="1" height="1"&gt;</description></item><item><title>Communicator does not prompt for logon credentials</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/02/10/communicator-does-not-prompt-for-logon-credentials.aspx</link><pubDate>Tue, 10 Feb 2009 22:53:18 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:149</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Today I hit an extremely unusual issue where any external user could logon to any OCS account without entering any credentials whatsoever.&amp;#160; It had no bearing on whether the machine was domain joined or not.&amp;#160; In my case I used a PC that was a member of a workgroup running MOC 2007 R2 but we reproduced the issue in a few places.&amp;#160; The issue was relatively straight forward to fix but a specific set of circumstances led up to the behavior…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Background&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The customer had previously installed OCS 2007 R1 on their own and was never able to get everything working right.&amp;#160; They called us to help out with installing R2 once it was released.&amp;#160; We installed and configured R2 without issue then added a Mediation server.&amp;#160; Everything was working great until the Edge server installation was complete.&amp;#160; When we added the Edge server’s internal FQDN to the Edge Servers tab of the Forest properties we received the following error message:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_0540091B.png"&gt;&lt;img title="Trusted entry breaks the FQDN, Port, or Version uniqueness constraint" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="149" alt="Trusted entry breaks the FQDN, Port, or Version uniqueness constraint" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_04D3D626.png" width="388" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Quite an unusual error.&amp;#160; A discussion with the customer revealed that the Edge server has the same FQDN as the original R1 server, which it turns out was not properly removed.&amp;#160; When they went to remove the R1 server they hit a permissions error and simply rebuilt the system rather than properly deactivate the services.&amp;#160; A quick export of the RTC Service container (CN=RTC Service,CN=Microsoft,CN=System,DC=&lt;em&gt;domain&lt;/em&gt;,DC=&lt;em&gt;com&lt;/em&gt;) with ldifde did in fact show the same server name in 3 containers:&lt;/p&gt;  &lt;p&gt;CN=Trusted MCUs,CN=RTC Service,CN=Microsoft,CN=System,DC=&lt;em&gt;domain&lt;/em&gt;,DC=&lt;em&gt;com&lt;/em&gt; (msRTCSIP-MCUType: meeting)&lt;/p&gt;  &lt;p&gt;CN=Trusted MCUs,CN=RTC Service,CN=Microsoft,CN=System,DC=&lt;em&gt;domain&lt;/em&gt;,DC=&lt;em&gt;com&lt;/em&gt; (msRTCSIP-MCUType: audio-video)&lt;/p&gt;  &lt;p&gt;CN=Trusted WebComponentsServers,CN=RTC Service,CN=Microsoft,CN=System,DC=&lt;em&gt;domain&lt;/em&gt;,DC=&lt;em&gt;com&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Solution&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Since the Edge server name matched these orphaned trusted server entries its traffic was being seen as an trusted application and therefore OCS was not requiring credentials.&amp;#160; Removing these entries and restarting the front end services cleared up this problem.&amp;#160; The actual item you will be deleting looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_25809BBF.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="315" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_15252406.png" width="602" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Warning&lt;/font&gt;&lt;/strong&gt;:&amp;#160; Deleting objects from Active Directory can cause irreparable harm to OCS and/or other applications.&amp;#160; Always take a proper backup of Active Directory before deleting items with ADSI Edit or any other application.&lt;/p&gt;  &lt;p&gt;Once these 3 items were deleted and we restarted the OCS services everything worked as expected.&amp;#160; I can’t emphasize strongly enough that administrators should take their time when removing old systems.&amp;#160; This is a great example of the issues that can arise when steps are skipped.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=149" width="1" height="1"&gt;</description></item><item><title>OCS 2007 R2 Edge Management Tools</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/02/05/ocs-2007-r2-edge-management.aspx</link><pubDate>Thu, 05 Feb 2009 17:10:05 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:144</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Now that more folks have their hands on OCS 2007 R2 a common question I’ve heard is “How do I manage my Edge server?”&amp;#160; If you’ve installed R2 one thing you’ve noticed is that Microsoft no longer automatically installs the OCS admin tools on any server role.&amp;#160; You must install these from the amd64/Setup folder on the OCS R2 media by running admintools.msi.&amp;#160; This applies to the Edge server as well.&amp;#160; Once that is complete you can find the Edge server tools right were they were before under Computer Management.&amp;#160; In Windows 2008 you can no longer access this by right clicking “Computer” and selecting “Manage” from the start menu (this brings up the new Server Manager interface now).&amp;#160; Instead you have to launch Computer Management from Administrative Tool or using Start/Run/compmgmt.msc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=144" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/Edge/default.aspx">Edge</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category></item><item><title>OCS R2 Licensing Explained</title><link>http://evangelyze.net/cs/blogs/mike/archive/2009/02/02/ocs-r2-licensing-explained.aspx</link><pubDate>Tue, 03 Feb 2009 03:14:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:139</guid><dc:creator>mike</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Interestingly the second most viewed post I have is the one on &lt;a target="_blank" href="http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/29/ocs-2007-licensing.aspx"&gt;OCS 2007 licensing&lt;/a&gt;.&amp;nbsp; Based on this I thought I&amp;rsquo;d post an equivalent post for OCS 2007 R2 licensing based on the licensing session that MS held for UC MVPs recently.&lt;/p&gt;
&lt;p&gt;Overall the updates are good news.&amp;nbsp; Microsoft heard the complaints from R1 customers and set a primary goal of simplification.&amp;nbsp; Using the relative terms of Microsoft licensing, where almost nothing is easy, I&amp;rsquo;d say they succeeded.&amp;nbsp; Here are the main takeaways:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No price change.&lt;/strong&gt;&amp;nbsp; R2 has no price change for either servers or CALs.&amp;nbsp; Given all the new features and the fact that the platform has really evolved to at least a basic PBX replacement, this is pretty phenomenal in itself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Office Communicator R2 License.&lt;/strong&gt;&amp;nbsp; No real change here &amp;ndash; the OC R2 license is still separate.&amp;nbsp; It&amp;rsquo;s worth highlighting that it is still included in Office Pro Plus and Office Enterprise &amp;ndash; many people aren&amp;rsquo;t aware of this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CAL versions.&lt;/strong&gt;&amp;nbsp; You can still mix and match CALs within your organization in order to provide the right licensing options to the users that need specific features.&amp;nbsp; As before there is no correlation between server and CAL versions (standard and enterprise).&amp;nbsp; The CAL is still additive, meaning that you need to buy the standard CAL to be able to purchase an enterprise CAL (the same is not true with servers).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Desktop Sharing.&lt;/strong&gt;&amp;nbsp; Ok, there was no way we were going to get through a licensing explanation with at least one funky MS nuance.&amp;nbsp; The new Communicator R2 includes built-in desktop sharing without the need to launch the Live Meeting client.&amp;nbsp; It&amp;rsquo;s a really cool feature and is included in the Standard CAL, sort of.&amp;nbsp; As long as you are just viewing a shared desktop then you are covered by the Standard CAL.&amp;nbsp; However, if you are the one sharing your desktop, regardless of whether or not you are sharing control, then you must be licensed with an Enterprise CAL.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;R2 rights.&lt;/strong&gt;&amp;nbsp; OCS R2 is a new version all around, so in order to have upgrade rights you must have licensed your servers, CALs, and client software with Software Assurance.&amp;nbsp; If this is not the case then you must purchase updated licensing.&amp;nbsp; Interestingly, if you purchased LCS CALs under SA, your SA is still active, and you never upgraded them to OCS R1 CALs then congratulations &amp;ndash; you own OCS 2007 R2 &lt;em&gt;Enterprise&lt;/em&gt; CALs.&amp;nbsp; Awesome deal, especially if you bought them under the IC promo deal that was going on back in 2005 or so.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Non-core licenses are included.&lt;/strong&gt;&amp;nbsp; The only servers for which you must purchase OCS R2 server licenses are your front ends (be they Standard or Enterprise) and your Edge servers (always purchase Standard Edition server licenses for your Edge servers).&amp;nbsp; All other OCS server roles are included with the front end server licensing.&amp;nbsp; Similarly, Office Communicator is the only client software you are required to purchase.&amp;nbsp; The official term for this inclusion is &amp;ldquo;Additional Software&amp;rdquo;&amp;nbsp; (I would like to suggest that Microsoft rename this to &amp;ldquo;Included Software&amp;rdquo;).&amp;nbsp; The list of Additional Software (from &lt;a href="http://www.microsoft.com/communicationsserver/en/us/pricing-licensing.aspx" title="http://www.microsoft.com/communicationsserver/en/us/pricing-licensing.aspx"&gt;&lt;span style="color:#669966;"&gt;http://www.microsoft.com/communicationsserver/en/us/pricing-licensing.aspx&lt;/span&gt;&lt;/a&gt;) is:&lt;/p&gt;
&lt;h5&gt;&lt;span style="font-size:x-small;"&gt;The clients:&lt;/span&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Office Communicator Web Access 2007 R2&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Communicator Mobile for Java 2007 R2&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Communicator Mobile for Windows Mobile 2007 R2&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Communications Server2007 R2 Group Chat Console&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Communicators Server 2007 R2 Attendant Console&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Office Live Meeting Console&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;span style="font-size:x-small;"&gt;The Office Communications Server 2007 R2&amp;nbsp;server roles:&lt;/span&gt;&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Monitoring Server role&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Director Server role&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mediation Server role&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Archiving Server role &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Web Components (includes CWA Server role)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;strong&gt;External Connectors.&lt;/strong&gt;&amp;nbsp; Given that the platform continues to provide a high ROI based on the built-in web conferencing, MS has decided to drop the need for External Connector licensing altogether.&amp;nbsp; This is great for organizations who want to extend their infrastructure to the web via web conferencing, external telephony conferencing, or a bolt-on solution such as our SmartChat product, which enables live chat from your website right to Communicator.&amp;nbsp; You do still need CALs for any user in your organization who will be using OCS.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://evangelyze.net/cs/aggbug.aspx?PostID=139" width="1" height="1"&gt;</description><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/licensing/default.aspx">licensing</category><category domain="http://evangelyze.net/cs/blogs/mike/archive/tags/R2/default.aspx">R2</category></item></channel></rss>