<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.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 /><link>http://www.evangelyze.net/cs/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Evangelyze announces SmartVoIP</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/11/13/evangelyze-announces-smartvoip.aspx</link><pubDate>Thu, 13 Nov 2008 05:21:11 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:107</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today we, in conjunction with NET/Quintum, announced our SmartVoIP solution (press release &lt;a href="http://www.marketwire.com/press-release/Network-Equipment-Technologies-NYSE-NWK-919957.html" target="_blank"&gt;here&lt;/a&gt;) that brings together OCS 2007 and Microsoft Response Point.&amp;nbsp; The premise for SmartVoIP is to provide a single integrated solution for customers with a corporate office and small offices/stores/branches.&amp;nbsp; Take for example a retail chain - typically there is a headquarters in one location with a large group of employees.&amp;nbsp; Additionally this organization will have retail stores in various locations.&amp;nbsp; With SmartVoIP, customers can deploy OCS with Enterprise Voice in the corporate HQ and a low cost Response Point system in the retail stores but tie them together to allow extension dialing between the systems.&amp;nbsp; Because we can do a combination of routing with POTS, SIP trunking, and OCS, customers are able to leverage the cheapest and most efficient call routing mechanism for their remote locations.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For more info see &lt;a title="http://www.evangelyze.net/products.asp#SmartVoIP" href="http://www.evangelyze.net/products.asp#SmartVoIP"&gt;http://www.evangelyze.net/products.asp#SmartVoIP&lt;/a&gt; or contact me directly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=107" width="1" height="1"&gt;</description></item><item><title>Cisco Call Manager 7 Direct SIP Connectivity</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/11/06/cisco-call-manager-7-direct-sip-connectivity.aspx</link><pubDate>Thu, 06 Nov 2008 15:12:52 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:105</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today I&amp;#39;ll outline how to connect Cisco Call Manager 7 to OCS via Direct SIP.&amp;nbsp; For ease of explanation I am using an environment with 3 digit extensions.&amp;nbsp; The extensions in OCS are 1XX and the Cisco extensions are 2XX.&lt;/p&gt; &lt;p&gt;First, create a SIP Trunk to your OCS Mediation server in CUCM:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5F00_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="205" alt="clip_image001" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5F00_thumb.png" width="229" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Other than selecting items for the required fields, there are only a couple things to ensure.&amp;nbsp; First, make sure to check the box for &amp;quot;Media Termination Point Required.&amp;quot;&amp;nbsp; After that all you need to do is set the Destination Address to the FQDN or IP address of your Mediation server and click Save.&amp;nbsp; You will receive a warning about resetting the SIP Trunk - just click ok.&amp;nbsp; Since no one is using the trunk yet it&amp;#39;s safe to reset it.&amp;nbsp; Here are some reference screen shots (click on the image to see it full size): &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_10_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="232" alt="clip_image001[10]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_10_5D005F00_thumb.png" width="404" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_12_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="133" alt="clip_image001[12]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_12_5D005F00_thumb.png" width="406" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_14_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="254" alt="clip_image001[14]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_14_5D005F00_thumb.png" width="455" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Next, create a new Route Pattern: &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_16_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="168" alt="clip_image001[16]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_16_5D005F00_thumb.png" width="398" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;In my case OCS is using 3 digit extensions that start with a 1, so I enter a pattern of 1XX.&amp;nbsp; In the Gateway/Route List field I select the SIP Trunk that I just created.&amp;nbsp; Click Save. &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_18_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="310" alt="clip_image001[18]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_18_5D005F00_thumb.png" width="533" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;You will receive a warning that the Authorization Code will not be activated.&amp;nbsp; Click OK to continue. &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_20_5D00_.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="132" alt="clip_image001[20]" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/clip_5F00_image001_5B00_20_5D005F00_thumb.png" width="330" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;That&amp;#39;s it for the Cisco side.&amp;nbsp; If you had multiple Mediation servers for different route patterns then you would create a new SIP trunk and route pattern for each.&amp;nbsp; If you have multiple Mediation servers to which you can route the same digit patters then you would use Route Groups and Route Lists instead.&amp;nbsp; Further information on this is available in the &lt;a href="http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/admin/7_0_1/ccmcfg/701-cmcfg.html" target="_blank"&gt;Cisco documentation&lt;/a&gt;.&amp;nbsp; Now we move on to the OCS side of things. &lt;p&gt;First, I configure my Mediation server to use Call Manager as the PSTN gateway. &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="139" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_1.png" width="303" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;If you have multiple mediation servers you may need to specify the route for the Cisco extensions.&amp;nbsp; In my case I&amp;#39;m using this Mediation server only to connect to Cisco because I have another Mediation server that is already providing PSTN routing, so I specify a route for the 2XX pattern to go through this specific mediation server. &lt;p&gt;&lt;a href="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_6.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="409" alt="image" src="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_2.png" width="271" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;Depending on your AD and OCS topology it may take a little while for the changes to be picked up by all the OCS servers, but once this occurs you should be good to go. &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=105" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/CUCM/default.aspx">CUCM</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Cisco/default.aspx">Cisco</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Call+Manager/default.aspx">Call Manager</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Direct+SIP/default.aspx">Direct SIP</category></item><item><title>OCS SQL Query - Show last OCS logon</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/11/05/ocs-sql-query-show-last-ocs-logon.aspx</link><pubDate>Wed, 05 Nov 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:104</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I wrote this one a while back to help someone on the forums.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;select res.UserAtHost as &amp;quot;SIP Address&amp;quot;, hud.LastNewRegisterTime as &amp;quot;Last Logon&amp;quot; from rtcdyn.dbo.HomedUserDynamic hud join&lt;br /&gt;(Select ResourceId, UserAtHost from rtc.dbo.Resource&lt;br /&gt;group by ResourceId, UserAtHost)&lt;br /&gt;res&lt;br /&gt;on hud.OwnerId=res.ResourceId&lt;br /&gt;order by &amp;quot;Last Logon&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=104" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SQL/default.aspx">SQL</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/users/default.aspx">users</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/query/default.aspx">query</category></item><item><title>OCS SQL Query - Return Archive User Settings</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/11/05/ocs-sql-query-return-archive-user-settings.aspx</link><pubDate>Wed, 05 Nov 2008 16:52:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:101</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;From time to time I&amp;#39;ll be posting SQL queries that I use for various reasons.&amp;nbsp; I don&amp;#39;t claim to be a SQL query expert and so I won&amp;#39;t guarantee that these are written with the best syntax or performance characteristics.&lt;/p&gt;
&lt;p&gt;This query will list your users by SIP address and return their archive settings.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt;
res.UserAtHost &lt;span class="kwrd"&gt;as&lt;/span&gt; &amp;quot;SIP Address&amp;quot;,

&lt;span class="kwrd"&gt;case&lt;/span&gt;
&lt;span class="kwrd"&gt;when&lt;/span&gt; (resdir.ArchivingFlags = 4) &lt;span class="kwrd"&gt;then&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; 
&lt;span class="kwrd"&gt;when&lt;/span&gt; (resdir.ArchivingFlags = 12) &lt;span class="kwrd"&gt;then&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; 
&lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;&amp;#39;&lt;/span&gt; 
&lt;span class="kwrd"&gt;end&lt;/span&gt;
&lt;span class="kwrd"&gt;as&lt;/span&gt; &amp;quot;&lt;span class="kwrd"&gt;Internal&lt;/span&gt;&amp;quot;,
&lt;span class="kwrd"&gt;case&lt;/span&gt;
&lt;span class="kwrd"&gt;when&lt;/span&gt; (resdir.ArchivingFlags = 8) &lt;span class="kwrd"&gt;then&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; 
&lt;span class="kwrd"&gt;when&lt;/span&gt; (resdir.ArchivingFlags = 12) &lt;span class="kwrd"&gt;then&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;
&lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="str"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="kwrd"&gt;end&lt;/span&gt;
&lt;span class="kwrd"&gt;as&lt;/span&gt; &amp;quot;&lt;span class="kwrd"&gt;Federated&lt;/span&gt;&amp;quot;

&lt;span class="kwrd"&gt;from&lt;/span&gt; rtc.dbo.ResourceDirectory resdir &lt;span class="kwrd"&gt;join&lt;/span&gt;
(&lt;span class="kwrd"&gt;Select&lt;/span&gt; ResourceId, UserAtHost &lt;span class="kwrd"&gt;from&lt;/span&gt; rtc.dbo.Resource
&lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; ResourceId, UserAtHost)
res
&lt;span class="kwrd"&gt;on&lt;/span&gt; resdir.ResourceId=res.ResourceId
&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; &amp;quot;SIP Address&amp;quot;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=101" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SQL/default.aspx">SQL</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/query/default.aspx">query</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/archive/default.aspx">archive</category></item><item><title>Find innovation where ever it exists, and make it a part of your business and brand.</title><link>http://www.evangelyze.net/cs/blogs/ted/archive/2008/10/20/find-innovation-where-ever-it-exists-and-make-it-a-part-of-your-business-and-brand.aspx</link><pubDate>Tue, 21 Oct 2008 05:41:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:99</guid><dc:creator>ted</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;For those of you who aren&amp;rsquo;t familiar with me, I&amp;rsquo;m an Information Architect who&amp;rsquo;s been designing systems both inside of Microsoft HQ, for Enterprise Customers, and for Government agencies for the past 6 years.&amp;nbsp; My job has been streamlining how information workers can improve their productivity and improve the corporate bottom line.&amp;nbsp; As a part of my many projects, I&amp;rsquo;m frequently developing a variety of custom solutions based on the SharePoint Platform that allow companies to work more effectively internally and with their external partners so that they can tap into each other with a collaborative workflow process.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;As you know, there is no way for a single department, or in many cases, an entire company to do everything it needs to do on its own.&amp;nbsp; I often ask business leaders if they are considering innovation in terms of making collaboration and communications tools a more seamless part of their business and brand.&amp;nbsp; Not surprisingly, the answer is quite often, a resounding &amp;ldquo;YES!&amp;rdquo;&amp;nbsp;&amp;nbsp; With today&amp;rsquo;s enterprise communications products and technologies its easier than ever to partner with companies and organizations which may have otherwise threatened your success in the past.&amp;nbsp; This can lead to new discoveries and enhanced revenues.&amp;nbsp; Take for example, last year, the Pharmaceutical Sector alone forged $27B from collaboration activities. &lt;br /&gt;&lt;br /&gt;Have you looked into what it would take to allow your team to become a part of your customers and partners solutions?&amp;nbsp; If not, I would appreciate the opportunity to discuss this with you.&amp;nbsp; I&amp;rsquo;d like to share these links below with you, and would appreciate the opportunity to discuss any services I can provide to you.&lt;/p&gt;
&lt;p&gt;&lt;a href="mailto:ted@evangelyze.net"&gt;&lt;img height="21" width="21" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image001_5F00_283B4FA5.jpg" alt="clip_image001" border="0" title="clip_image001" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;display:inline;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;a href="mailto:ted@evangelyze.net"&gt;E-Mail&lt;/a&gt; &lt;a href="http://mce_host/cs/controlpanel/blogs/posteditor.aspx/sip:ted@evangelyze.net"&gt;&lt;img height="22" width="23" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image002_5F00_6AADF1DB.jpg" alt="clip_image002" border="0" title="clip_image002" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;display:inline;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://mce_host/cs/controlpanel/blogs/posteditor.aspx/sip:ted@evangelyze.net"&gt;IM&lt;/a&gt; &lt;a href="http://www.evangelyze.net/cs/controlpanel/blogs/posteditor.aspx/tel:+14254582909"&gt;&lt;img height="21" width="22" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image003_5F00_5C6F78EB.jpg" alt="clip_image003" border="0" title="clip_image003" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;display:inline;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.evangelyze.net/cs/controlpanel/blogs/posteditor.aspx/tel:+14254582909"&gt;Voice&lt;/a&gt; &lt;a href="https://calendars.office.microsoft.com/en-us/pubcal/viewer.aspx?path=/pubcalstorage/rxtzyrwz7755/Ted_Green_Calendar.ics&amp;amp;stdOff=-480&amp;amp;dstOff=-420&amp;amp;smn=3&amp;amp;sdy=9&amp;amp;emn=11&amp;amp;edy=2"&gt;&lt;img height="20" width="23" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image004_5F00_3EFD27DF.jpg" alt="clip_image004" border="0" title="clip_image004" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;display:inline;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;a href="https://calendars.office.microsoft.com/pubcalstorage/rxtzyrwz7755/Ted_Green_Calendar.htm"&gt;Calendar&lt;/a&gt; &lt;a href="http://www.evangelyze.net/Ted%20Green.vcf"&gt;&lt;img height="18" width="23" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image005_5F00_739D841A.jpg" alt="clip_image005" border="0" title="clip_image005" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;display:inline;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.evangelyze.net/Ted%20Green.vcf"&gt;Contact&lt;/a&gt; &lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image007_5F00_134C5DE3.gif"&gt;&lt;img height="18" width="18" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ted/clip_5F00_image007_5F00_thumb_5F00_47ECBA1E.gif" alt="clip_image007" border="0" title="clip_image007" style="display:inline;" /&gt;&lt;/a&gt; &lt;a href="http://www.evangelyze.net/"&gt;Web&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;It&amp;#39;s easier than you think to empower your employees, partners, and customers to work together and collaborate more effectively. Evangelyze Communications specializes in deploying and customizing Microsoft&amp;rsquo;s groundbreaking software to improve your business insight and productivity by quickly connecting employees with the right information and expertise. &lt;/p&gt;
&lt;p&gt;Is your organization ready to manage information and knowledge across islands of information in a security-enhanced environment?&amp;nbsp; If you&amp;rsquo;re not sure, give me a call and I would be happy to walk you through the high level steps towards pointing you in the right direction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=99" width="1" height="1"&gt;</description></item><item><title>Eight Tenants of Partner (Extranet) Collaboration</title><link>http://www.evangelyze.net/cs/blogs/ted/archive/2008/10/20/eight-tenants-of-partner-extranet-collaboration.aspx</link><pubDate>Tue, 21 Oct 2008 04:16:21 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:100</guid><dc:creator>ted</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve said this before.&amp;#160; “There is no way a single company can do everything on it’s own.”&amp;#160; So what if you do decide to allow your team to be a part of your customer’s (or partner’s) solution.&amp;#160; What if another organization is working with you?&amp;#160; Well, first, let me convey to you that email is really an inefficient method of collaboration, not to mention it’s not secure.&amp;#160;&amp;#160; I’m recommending to my customers that they look to products such as Microsoft Office SharePoint Server 2007 to meet the needs from the technology side.&amp;#160; However on the business side, I think it’s just as important to discuss and consider these issues prior to executing without a plan.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Be sure to create a clear vision for your extranet sites.&amp;#160; Agree with your partner before setting up a site on what the mission of the site is going to be and define what it is not going to be.&amp;#160; Post the goals of the collaborative group within the site, and help this team to understand when the job is going well, when it’s not, and when it’s completed it’s lifecycle.&lt;/li&gt;    &lt;li&gt;Keep these virtual teams/committees small and focused on tasks.&amp;#160; Be sure to empower them.&lt;/li&gt;    &lt;li&gt;Version control all content.&amp;#160; You may want to better understand how content evolved over time, change management is going to be important in this process.&amp;#160; This is a fantastic way to follow that.&lt;/li&gt;    &lt;li&gt;Have a cynical persona in the group.&amp;#160; You want to be notified when and if the virtual team is being inefficient.&lt;/li&gt;    &lt;li&gt;If you can, DRM (Digital Rights Management) the site and it’s content.&lt;/li&gt;    &lt;li&gt;Figure out a shared governance model.&amp;#160; &lt;/li&gt;    &lt;li&gt;Prepare for the pitfalls.&lt;/li&gt;    &lt;li&gt;Plan an exit strategy.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With this said, I recommend you download the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=105114"&gt;External Collaboration Toolkit for SharePoint&lt;/a&gt; if you are considering this as a potential solution for your business.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=100" width="1" height="1"&gt;</description></item><item><title>Tanjay firmware will not update</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/10/05/tanjay-firmware-will-not-update.aspx</link><pubDate>Mon, 06 Oct 2008 01:58:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:97</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Recently I was working on an issue where Tanjays (Polycom CX700 or LG-Nortel IP8540) would not update their firmware.&amp;nbsp; There were a variety of issues but there was one in particular that I noticed some open questions about on the forums so I thought I&amp;#39;d share the solution.&lt;/p&gt;
&lt;p&gt;In this case the company&amp;#39;s Tanjays all resided outside the organization because the workforce is mobile.&amp;nbsp; All the ports and NATs seemed to be fine and indeed we could see a connection in the IIS logs to the Web Components server.&amp;nbsp; However, the IIS log revealed the following:&lt;/p&gt;
&lt;p&gt;2008-10-05 21:45:10 W3SVC1 10.1.1.13 POST /RequestHandler/ucdevice.upx - 80 - &amp;lt;user&amp;#39;s external IP&amp;gt; Microsoft+UCPhone+Device &lt;strong&gt;&lt;em&gt;500&lt;/em&gt;&lt;/strong&gt; 0 0&lt;/p&gt;
&lt;p&gt;The 500 error code is the relevant item here.&amp;nbsp; When the RequestHandler receives a connection from the Tanjay it then connects to the WSS site that holds the firmware using the internal FQDN that was specified during the configuration of the UC Update Service.&amp;nbsp; Originally the configuration was done with different internal and external FQDNs but when an external certificate was purchased for the WSS site the Alternate Access Mappings, which basically tell WSS which URLs to use, were configured only for the external FQDN since the thought was that only external users would be using the service.&amp;nbsp; However, since the RequestHandler needs to access WSS with the internal FQDN the connections were failing.&lt;/p&gt;
&lt;p&gt;The fix was pretty simple - always make sure that WSS is accessible by both the internal and external names that you specify in the configuration.&amp;nbsp; I&amp;#39;ve attached a vbs script that you can run on your OCS web components server to view the URLs that are configured for the update service.&amp;nbsp; There may be another place to see this info but it was easier to just use WMI to show these values rather than figure out the lcscmd syntax if in fact that&amp;#39;s even possible.&amp;nbsp; A quick review of the validation output indicated that these values are not listed there.&amp;nbsp; Just rename the file from .txt to .vbs and run it with &amp;quot;cscript updsrvurls.vbs&amp;quot; from a command line and it will list the URLs associated with the update server configuration on that OCS server.&amp;nbsp; You can also run it remotely by changing the strComputer = &amp;quot;.&amp;quot; line to strComputer = &amp;quot;&amp;lt;yourocsfeinternalfqdn&amp;gt;&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=97" width="1" height="1"&gt;</description><enclosure url="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.00.97/updsrvurls.txt" length="801" type="text/plain" /><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Tanjay/default.aspx">Tanjay</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/update+server/default.aspx">update server</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/WSS/default.aspx">WSS</category></item><item><title>Live Meeting 2007 On-Premise Web Conference Connectivity</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/28/live-meeting-2007-on-premise-web-conference-connectivity.aspx</link><pubDate>Mon, 29 Sep 2008 03:28:52 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:96</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I was recently assisting an OCS admin at another company with Live Meeting connectivity issues, during the process of which I explained how Live Meeting connectivity works for on-premise conferences (located on OCS rather than the externally hosted service).&amp;nbsp; He felt like it was good info so I thought I&amp;#39;d share it.&lt;/p&gt; &lt;p&gt;As you&amp;#39;re aware, OCS is SIP based in its communications, with the most obvious SIP client being Communicator 2007.&amp;nbsp; What is not as obvious is that Live Meeting is also a SIP client.&amp;nbsp; OCS delivers various pieces of necessary information via SIP, which means that the Live Meeting client must understand how to communicate with OCS over SIP to retrieve the information needed to operate.&amp;nbsp; This is why if you must specify your OCS Access Edge/pool FQDN rather than your Web Conferencing Edge/internal FQDN if your Live Meeting settings are configured manually (example below).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="225" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb.png" width="481" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you think about the infrastructure considers of this for a moment you&amp;#39;ll also realize that for users to be able to connect to Live Meetings without any configuration settings you must deploy the necessary SRV records for your pool and Access Edge, even if you have no intention of deploying IM to some or all users (this is a somewhat rare but not entirely unusual request from some customers I&amp;#39;ve worked with).&lt;/p&gt; &lt;p&gt;So, how does this all come together?&amp;nbsp; First, the Live Meeting client (hereafter referred to as &amp;quot;LM&amp;quot;) queries DNS for the appropriate SRV records of the domain it extracted from the conference location URI.&amp;nbsp; An example of a conference URI is sip:user@domain.com;gruu;opaque=app:conf:focus:id:1652DEC23E5AE243882614D3B42600B6.&amp;nbsp; It receives an INFO message back from OCS that contains a variety of information in XML format.&amp;nbsp; Among this information is the FQDN and port of the Web Conferencing Edge server:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;entry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;proxy[0].FQDN&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;meetings.evangelyze.net&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;entry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;entry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;proxy[0].Port&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;443&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="kwrd"&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span class="kwrd"&gt;&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/font&gt;  &lt;p&gt;This information is derived from the Web Conferencing properties of the pool:&lt;/p&gt; &lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_4.png"&gt;&lt;font face="ta" color="#000000"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="362" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb_5F00_1.png" width="326" border="0" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="ta"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;After this point LM sends a SIP UPDATE message to OCS every 7 minutes to confirm connectivity.&amp;nbsp; This is one of the reasons why it&amp;#39;s important to have your firewall timeouts set properly - unexpectedly disconnecting LM sessions are a somewhat common side effect of improperly set timeout values on the firewall.&lt;/p&gt; &lt;p&gt;&lt;font face="ta"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="ta"&gt;&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=96" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Edge/default.aspx">Edge</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Web+Conference/default.aspx">Web Conference</category></item><item><title>Exchange 2007 UM SIP Integration with Mitel 3300</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/16/exchange-2007-um-sip-integration-with-mitel-3300.aspx</link><pubDate>Tue, 16 Sep 2008 17:19:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:95</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Rather than individually send out this Mitel document to everyone that asks for it on &lt;a href="http://forums.microsoft.com/unifiedcommunications/ShowPost.aspx?PostID=3773893&amp;amp;SiteID=57"&gt;the forums&lt;/a&gt; I figured I&amp;#39;d just post it here for people to download.&amp;nbsp; I don&amp;#39;t claim that this is the latest version or that it is accurate for all versions, etc., but since this document seems to have avoided all known search engines I&amp;#39;ve attached it here.&amp;nbsp; Also be aware that Microsoft has some &lt;a href="http://technet.microsoft.com/en-us/library/cc411323(EXCHG.80).aspx#mitel"&gt;Mitel configuration notes&lt;/a&gt; for other connectivity options.&lt;/p&gt; &lt;p&gt;You&amp;#39;ll find the document in the attachment link below.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=95" width="1" height="1"&gt;</description><enclosure url="http://www.evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.00.95/MitelTechNoteForExchangeUM.doc" length="1123328" type="application/msword" /><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/UM/default.aspx">UM</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SIP+trunk/default.aspx">SIP trunk</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Mitel/default.aspx">Mitel</category></item><item><title>OT: Blackjack 2 does not connect to WMDC</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/15/ot-blackjack-2-does-not-connect-to-wmdc.aspx</link><pubDate>Mon, 15 Sep 2008 22:47:14 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:94</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Now that the official release of Windows Mobile 6.1 is finally &lt;a href="http://ars.samsung.com/customer/usa/jsp/faqs/faqs_view.jsp?SITE_ID=22&amp;amp;PG_ID=557&amp;amp;PROD_SUB_ID=558&amp;amp;PROD_ID=957&amp;amp;AT_ID=132707"&gt;out for the Blackjack 2&lt;/a&gt;, I discovered that I could not connect my phone to Vista&amp;#39;s Windows Mobile Device Center (WMDC), which is a requirement for the upgrade.&amp;nbsp; I always connect as a modem or via bluetooth, so I hadn&amp;#39;t actually come across this before.&amp;nbsp; I saw a number of other folks that had complained about the same thing and had not gotten resolution so rather than create logons and posts on each forum I figured I&amp;#39;d post here and hope that the search engines picked it up.&amp;nbsp; The fix was pretty easy - just install the WMDC driver update from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=46F72DF1-E46A-4A5F-A791-09F07AAA1914&amp;amp;displaylang=en"&gt;here&lt;/a&gt; (or, if you run 64 bit like I do, &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=4F68EB56-7825-43B2-AC89-2030ED98ED95&amp;amp;displaylang=en"&gt;here&lt;/a&gt;).&amp;nbsp; Once that was complete my phone was immediately recognized by WMDC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=94" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Vista/default.aspx">Vista</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Blackjack+2/default.aspx">Blackjack 2</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/windows+mobile+6.1/default.aspx">windows mobile 6.1</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SGH-i617/default.aspx">SGH-i617</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/WM+6.1/default.aspx">WM 6.1</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Blackjack+II/default.aspx">Blackjack II</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/WMDC/default.aspx">WMDC</category></item><item><title>Voice Impact Event in Houston - Sept. 29</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/12/voice-impact-event-in-houston-sept-29.aspx</link><pubDate>Fri, 12 Sep 2008 18:34:42 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:93</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you are in the Houston area and would like to learn how a Microsoft-powered voice platform can benefit your organization, please register for our Houston Voice Impact event session &lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032387290"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=93" width="1" height="1"&gt;</description></item><item><title>Community Server blogs images not working from Live Writer</title><link>http://www.evangelyze.net/cs/blogs/simon/archive/2008/09/04/community-server-blogs-images-not-working-from-live-writer.aspx</link><pubDate>Thu, 04 Sep 2008 14:33:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:90</guid><dc:creator>simon</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;So according to &lt;a href="http://dev.communityserver.com/forums/p/497051/611717.aspx#611717"&gt;this post&lt;/a&gt; there &lt;span style="text-decoration:line-through;"&gt;is&lt;/span&gt; was an issue with the encoding of underscore characters (_) they get partially translated to _5F00_ - meaning they get translated everywhere except in the file system, which means they end up as broken links. Im sure CS will get fixed in due course, but I got thinking how can I quickly fix this.&lt;/p&gt;
&lt;p&gt;I found this great &lt;a href="http://urlrewriter.net/"&gt;open source url rewriter tool&lt;/a&gt; which will allow me to change the _5F00_ back to _ .&lt;/p&gt;
&lt;p&gt;This was tested and worked under IIS 7 on windows 2008, let me know if you test it on other versions and I will update the post.&lt;/p&gt;
&lt;p&gt;I decided to install the re-writer in the root of the site so I could add other rules, but it will also work just in the CS application.&lt;/p&gt;
&lt;p&gt;1. Download the package and copy the dll file into the bin directory:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/simon/image_5F00_6.png"&gt;&lt;img height="184" width="244" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/simon/image_5F00_thumb_5F00_2.png" alt="image" border="0" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;2. Modify the web.config to use the re-writer (&lt;a href="http://urlrewriter.net/index.php/support/configuration"&gt;full info here&lt;/a&gt;) - take care when copying text into here with quotes, you should always retype the quotes &amp;quot; using the keyboard as the funny web quotes will break your site. here is my minimal web.config :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;configSections&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;section&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name=&amp;quot;rewriter&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; requirePermission=&amp;quot;false&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=&amp;quot;Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/configSections&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&amp;quot;UrlRewriter&amp;quot; type=&amp;quot;Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/modules&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;rewriter&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;lt;rewrite url=&amp;quot;^(.*)cfs-file.ashx/__key(.*)&amp;quot; to=&amp;quot;$1filestorage$2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rewrite url=&amp;quot;^(.*)_5[fF]00_(.*)&amp;quot; to=&amp;quot;$1_$2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rewrite url=&amp;quot;^(.*)_5[fF]00_(.*)&amp;quot; to=&amp;quot;$1_$2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rewrite url=&amp;quot;^(.*)_5[fF]00_(.*)&amp;quot; to=&amp;quot;$1_$2&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;lt;/rewriter&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;compilation defaultLanguage=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblies&amp;gt;&lt;br /&gt;&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;lt;clear /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;mscorlib&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;*&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; /&amp;gt;&lt;br /&gt;&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;lt;add assembly=&amp;quot;Intelligencia.UrlRewriter.RewriterHttpModule&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblies&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/compilation&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;3. On a side note it turned out this was not the only issue it seems the file handler was broken so I also added a replacement for &amp;#39;cfs-file.ashx/__key&amp;#39; -&amp;gt;&amp;nbsp; &amp;#39;filestorage&amp;#39; &lt;/p&gt;
&lt;p&gt;4. Because I configured this in the root site, I had to &lt;a href="http://www.arcware.net/archive/2008/04/08/Use-a-Single-Web.Config-for-IIS6-and-IIS7.aspx"&gt;make sure that CS was using IIS integrated mode&lt;/a&gt; as well (it was previously set to classic) &lt;/p&gt;
&lt;p&gt;5. I ran my rewrite 3 times (to handle multiple instances of the _) im sure there must be a better way than that but it worked so I left it.&lt;/p&gt;
&lt;p&gt;[edit] So it turned out to that the problem was fixed simply by setting up CS to use IIS&amp;nbsp;in integrated mode.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=90" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/simon/archive/tags/Development/default.aspx">Development</category><category domain="http://www.evangelyze.net/cs/blogs/simon/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://www.evangelyze.net/cs/blogs/simon/archive/tags/IIS+7/default.aspx">IIS 7</category><category domain="http://www.evangelyze.net/cs/blogs/simon/archive/tags/Hacks/default.aspx">Hacks</category><category domain="http://www.evangelyze.net/cs/blogs/simon/archive/tags/News/default.aspx">News</category></item><item><title>Send/Receive never finishes</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/03/send-receive-never-finishes.aspx</link><pubDate>Wed, 03 Sep 2008 22:05:29 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:84</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today I finally decided to look into an issue that I&amp;#39;d noticed for some time.&amp;nbsp; In Outlook 2007 a manual send/receive (F9) would never complete.&amp;nbsp; If I looked at the send/receive details I would see:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="207" alt="image" src="http://evangelyze.net/cs/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mike/image_5F00_thumb.png" width="319" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;An Exchange task would forever say &amp;quot;Offline address book Connecting to Microsoft Exchange.&amp;quot;&amp;nbsp; When I looked at Outlook&amp;#39;s Connection Status the last line is &amp;quot;Synchronizing Views.&amp;quot;&amp;nbsp; I decided to take a look at the IIS logs and found this:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;2008-09-03 21:05:52 10.1.1.3 GET /OAB/3ebf24ed-43dc-4a50-a2a9-cc6ef51ebf84/oab.xml - 80 - 74.73.235.66 Microsoft+BITS/7.0 500 19 64 63&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Indeed, browsing to that location returns a 500.19 Internal Server Error in IE.&amp;nbsp; While reviewing the root OAB folder in the file system (C:\Program Files\Microsoft\Exchange Server\ClientAccess\OAB\) I noticed a web.config file.&amp;nbsp; I checked another Exchange 2007 server and noticed that it did not have a web.config file in that location.&amp;nbsp; I moved the web.config to another location and that corrected the issue.&lt;/p&gt; &lt;p&gt;On a side note, this also corrects an issue with RSS feeds not updating automatically.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=84" width="1" height="1"&gt;</description></item><item><title>Cannot upload cab file to UC Device Update Management Console</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/09/02/cannot-upload-cab-file-to-uc-device-update-management-console.aspx</link><pubDate>Tue, 02 Sep 2008 08:15:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:81</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:12pt;color:#000000;font-family:verdana;"&gt;&lt;font size="2"&gt;One of the best documented reasons for a cab file upload to fail is due to timeout settings in IIS.&amp;nbsp; For an overview of this please see &lt;/font&gt;&lt;/span&gt;&lt;a href="http://blogs.technet.com/jenstr/archive/2008/02/28/uploading-of-a-cab-file-to-update-server-wss-site-fails-with-an-exception-and-the-message-thread-was-being-aborted.aspx"&gt;&lt;span style="font-size:small;color:#000000;"&gt;&lt;font face="Verdana"&gt;http://blogs.technet.com/jenstr/archive/2008/02/28/uploading-of-a-cab-file-to-update-server-wss-site-fails-with-an-exception-and-the-message-thread-was-being-aborted.aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;color:#000000;"&gt;&lt;font face="Verdana"&gt;.&amp;nbsp; In the case of the timeout issue the upload will process for a while before the error is returned.&amp;nbsp; However, there is another reason you may see the same error:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&amp;quot;The file upload was unsuccessful due to an unknown error. Please try again&amp;quot;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;color:#000000;font-family:verdana;"&gt;&lt;font size="2"&gt;In this case the error will be thrown about 10 seconds after the upload process begins.&amp;nbsp; If you check the corresponding debug logs (&lt;span id="ctl00_PlaceHolderTitleBreadcrumb_ContentMap"&gt;&lt;span&gt;UpdateServer&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;Logs&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;Debug&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span class="ms-sitemapdirectional"&gt;UpdatePackageHandler&lt;/span&gt;&lt;/span&gt;), you&amp;#39;ll see the following:&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:xx-small;"&gt;Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;br /&gt;09/02/2008 07:08:52, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : -------------------------------------&lt;br /&gt;09/02/2008 07:08:52, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Started Upload Updates From Cab Call&lt;br /&gt;09/02/2008 07:08:52, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;br /&gt;#Sharepoint Server Path : &lt;/span&gt;&lt;a href="http://wss.domain.com/sites/ucupdateserver/"&gt;&lt;span style="font-size:xx-small;"&gt;http://wss.domain.com/sites/ucupdateserver/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:xx-small;"&gt;#Updates Path : Updates/&lt;br /&gt;#Approval Path : Server/DB/&lt;br /&gt;#Temp Extract Path : C:\Program Files (x86)\Microsoft Office Communications Server 2007\Web Components\UC Device Updates\Management Console\LCS&lt;br /&gt;#Log Path : Logs/Server/Debug/UpdatePackageHandler/&lt;br /&gt;09/02/2008 07:08:52, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Started Reading Cab file C:\Program Files (x86)\Microsoft Office Communications Server 2007\Web Components\UC Device Updates\Management Console\LCS/633559361262490130\UCUpdates.cab&lt;br /&gt;09/02/2008 07:08:53, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Extracted all files under temp location C:\Program Files (x86)\Microsoft Office Communications Server 2007\Web Components\UC Device Updates\Management Console\LCS\a7992c72-7fb3-4f6f-b4c3-a2494f984ad1&lt;br /&gt;09/02/2008 07:08:53, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Converted UpdatesInfo.xml into new format &lt;br /&gt;09/02/2008 07:08:55, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbt&lt;span style="background-color:#ffff99;"&gt;The request failed with HTTP status 401: Unauthorized.&lt;/span&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:08:57, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:00, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:02, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:04, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:06, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:09, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:11, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: Exception While Uploading file Updates/CPE.nbtThe request failed with HTTP status 401: Unauthorized.&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at Microsoft.RTC.UCUPDATESSERVER.SHAREPOINTSERVICES.Service.UploadFileToSharepoint(String SPSiteUrl, String FolderPath, Boolean CreateFolder, String FileName, Byte[] content, Boolean Publish, Boolean CheckIn, Boolean overwrite)&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadToSharepoint(String TempExtractedPath, DataSet dsUpdateInfo)&lt;br /&gt;09/02/2008 07:09:11, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Completed Upload to sharepoint server&lt;br /&gt;09/02/2008 07:09:11, Exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : Exception: UploadUnApprovedXMLToSharepoint Method Collection was modified; enumeration operation might not execute.&amp;nbsp;&amp;nbsp; at System.Data.RBTree`1.RBTreeEnumerator.MoveNext()&lt;br /&gt;&amp;nbsp;&amp;nbsp; at UPHService.UploadUnApprovedXMLToSharepoint(String TempExtractedPath)&lt;br /&gt;09/02/2008 07:09:11, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Deleted all files under temp location&amp;nbsp; C:\Program Files (x86)\Microsoft Office Communications Server 2007\Web Components\UC Device Updates\Management Console\LCS\a7992c72-7fb3-4f6f-b4c3-a2494f984ad1&lt;br /&gt;09/02/2008 07:09:11, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Calling Clear Cache for Image Updates&lt;br /&gt;09/02/2008 07:09:11, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : End Upload Updates From Cab Call&lt;br /&gt;09/02/2008 07:09:11, Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : -------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;color:#000000;font-family:verdana;"&gt;&lt;font size="2"&gt;I&amp;#39;ve highlighted the relevant section above which you&amp;#39;ll see is repeated a number of times.&amp;nbsp; When the Sharepoint UC Update package is installed it creates a site called ucupdateserver that contains 2 document libraries - Logs and Updates.&amp;nbsp; The issue in this case is that the ucupdateserver site has the appropriate permissions set, and these permissions are inherited by the Logs document library (which allowed for the above log to be created).&amp;nbsp; However, the Updates document library is set to use custom permissions and there the cab file upload is failing.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;span style="font-size:12pt;color:#000000;font-family:verdana;"&gt;&lt;font size="2"&gt;To fix this I first set the appropriate permissions at the ucupdateserver site level (I gave full permissions to RTCComponentServices and read permissions to NT AUTHORITY\Authenticated Users).&amp;nbsp; Next I navigated to the Updates library and clicked Settings/Document Library Settings.&amp;nbsp; Now click Permissions for this document library.&amp;nbsp; When the permissions appear click Actions -&amp;gt; Inherit Permissions.&amp;nbsp; You will get a prompt verifying that you want to overwrite the custom permissions.&amp;nbsp; Once you select OK you will see the page update with the permissions that are set at the site level.&amp;nbsp; This fixes the upload problem and also enables you to make easy site-wide permissions changes in the future if necessary.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=81" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Tanjay/default.aspx">Tanjay</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/update+server/default.aspx">update server</category></item><item><title>SQL Query to return number of users per Front End</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/08/29/sql-query-to-return-number-of-users-per-front-end.aspx</link><pubDate>Fri, 29 Aug 2008 14:37:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:78</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="color:#000000;font-family:&amp;#39;Helvetica&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;In the last couple weeks myself and some other folks I&amp;#39;ve spoken with have had the need to know how many users were connected to a particular front end.&amp;nbsp; Unfortunately there&amp;#39;s no interface to provide this sort of information, so I decided to poke around SQL to figure out what I needed to read to determine this info.&amp;nbsp; With a little help from my co-worker and UC developer extrordinaire Simon Booth, we whipped up a query in a couple minutes that gives you that data:&lt;/span&gt;&lt;span style="font-size:8.5pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;span style="color:#000000;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;select fe.Fqdn,c.connections from rtcdyn.dbo.FrontEnd fe join&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;i&gt;&lt;span style="color:#000000;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;em&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;"&gt;(Select COUNT(*) as connections, FrontEndId from rtcdyn.dbo.DeliveryContext &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;"&gt;group by FrontEndId)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;"&gt; c &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;"&gt;on fe.FrontEndId=c.FrontEndId&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:8.5pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color:#000000;font-family:&amp;#39;Helvetica&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;To execute this, open SQL Management Studio and connect to the instance which contains your OCS databases.&amp;nbsp; Click the &amp;quot;New Query&amp;quot; button and paste in the text above.&amp;nbsp; Click &amp;quot;Execute&amp;quot; and you&amp;#39;ll receive output that shows the number of connections per front end.&lt;/span&gt; &lt;p&gt;&lt;span style="font-size:small;color:#000000;"&gt;Of course you could extend this to tell you users names or other information, but it&amp;#39;s a good base query to see what it takes to pull info from the OCS databases.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=78" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/pool/default.aspx">pool</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/database/default.aspx">database</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SQL/default.aspx">SQL</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/users/default.aspx">users</category></item><item><title>Common Certificate issue with Vista</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/08/22/common-certificate-issue-with-vista.aspx</link><pubDate>Fri, 22 Aug 2008 13:15:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:75</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I got a call from an industry colleague yesterday who was trying to set up an OCS lab environment.&amp;nbsp; He hit what has become an increasingly common issue as Vista becomes more heavily adopted in the enterprise.&amp;nbsp; The scenario is almost always the same - &amp;quot;My XP computers can&amp;nbsp;download the address book&amp;nbsp;without a problem but Vista cannot.&amp;quot;&amp;nbsp; User Account Control is commonly suspected as the problem, but in this case it has nothing to do with the actual issue.&amp;nbsp; In fact, the issue is actually a default setting in IE7:&amp;nbsp; Check for server certificate revocation.&lt;/p&gt;
&lt;p&gt;The error that you&amp;#39;ll see is: &lt;br /&gt;&amp;quot;Cannot Synchronize with the corporate address book. This may be because the proxy server setting in your web browser does not allow access to the address book. If the problem persists, contact your system administrator.&amp;quot; &lt;/p&gt;
&lt;p&gt;The error message is a bit misleading.&amp;nbsp; What is actually happening is that IE is checking the CRL Distribution Points property of the certificate that is provided by the web conferencing server and trying to connect to the paths specified.&amp;nbsp; If it cannot connect to any of these it will fail with the above error message.&amp;nbsp; The reason this does not cause Communicator logons to fail is because the the address book download process uses the WinInet API just like IE since the connection is https.&amp;nbsp; Communicator does not use WinInet for its logon, so the logon succeeds as long as the certificate is trusted by the client.&lt;/p&gt;
&lt;p&gt;This scenario is most common in lab environments because the lab will often use a separate AD environment but users whose machines are joined to the production AD forest will try to connect with Communicator.&amp;nbsp; Without any trusts and/or DNS replication of the test forest, the client will not be able to connect to either the LDAP or HTTP paths referenced in the CRL Distribution Points property.&amp;nbsp; Here is an example of a CRL DP from a certificate generated by a Windows CA:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:courier new,courier;"&gt;[1]CRL Distribution Point&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:20px;"&gt;&lt;span style="font-family:courier new,courier;"&gt;Distribution Point Name: &lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:40px;"&gt;&lt;span style="font-family:courier new,courier;"&gt;Full Name: &lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span style="font-family:courier new,courier;"&gt;URL=ldap:///CN=EVAN-CA,CN=EVAN-DC1,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=corp,DC=evangelyze,DC=net?certificateRevocationList?base?objectClass=cRLDistributionPoint &lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span style="font-family:courier new,courier;"&gt;URL=http://evan-dc1.corp.evangelyze.net/CertEnroll/EVAN-CA.crl&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;You can imagine by looking at the paths above that a computer without any knowledge of the namespaces used would have a problem connecting to them.&amp;nbsp; This problem can also manifest itself in a production environment if you have machines that are not members of the same forest or for any other reason cannot resolve or connect to the paths referenced in the CRL DP.&amp;nbsp; In any case there are only 3 options:&lt;/p&gt;
&lt;p&gt;1) Disable certificate revocation checking in IE.&amp;nbsp; This can be done manually or via group policy.&amp;nbsp; The setting can be found in the Security section of the Advanced tab in Internet Options.&lt;/p&gt;
&lt;p&gt;2) Modify your infrastructure in such a way as to make the CRL DP accessible to all users.&lt;/p&gt;
&lt;p&gt;3) Use a public CA to issue the certificate rather than an internal CA.&amp;nbsp; This is the best solution if you have non-domain joined users connecting to your internal pool.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=75" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/certificate/default.aspx">certificate</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/pool/default.aspx">pool</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/ABS/default.aspx">ABS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/address+book/default.aspx">address book</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Vista/default.aspx">Vista</category></item><item><title>The OCS Director - reasons, benefits and dependencies</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/08/21/the-ocs-director-reasons-benefits-and-dependencies.aspx</link><pubDate>Thu, 21 Aug 2008 14:32:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:74</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I field a fair amount of questions from my customers and users on the Technet forums about the Director role - why is it needed, how does it play into a global architecture, etc.&amp;nbsp; I thought I&amp;#39;d address a few of these topics for other folks with the same questions.&lt;/p&gt;
&lt;p&gt;The first thing to know about the Director role is that it&amp;#39;s built into OCS Standard and Enterprise - it is not a separate installation like an Edge or Mediation server.&amp;nbsp; Every Standard server and Enterprise pool acts as a Director by default.&amp;nbsp; So why do we need to dedicate one or more servers to this role?&amp;nbsp; First let&amp;#39;s review the purpose of a Director.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;ve ever configured an Edge server you noticed that it needs to know it&amp;#39;s next hop.&amp;nbsp; The Edge server is pretty intelligent when it comes to blocking traffic that is not permitted and taking care of other OCS security functions, but by design it does not have knowledge of where users are homed and how to authenticate them (which is why it can and should be deployed without being a member of Active Directory).&amp;nbsp; The Edge relies on the next hop server to handle these items.&amp;nbsp; Once it confirms that a set of communication should be passed to the inside, the next hop server can do a few things.&amp;nbsp; Two major steps take place when a user logs on to Communicator:&lt;/p&gt;
&lt;p&gt;1) Match the SIP address to a user account in AD and perform authentication&lt;/p&gt;
&lt;p&gt;2) After authentication succeeds, route the traffic to the pool specified in the user&amp;#39;s AD properties&lt;/p&gt;
&lt;p&gt;These steps are basically the same whether the user connects via the Edge (remote access) or from the internal network, though the benefits are slightly different.&amp;nbsp; In both cases the Director provides the benefit of offloading authentication from the pool.&amp;nbsp; This is most helpful if you are pushing the limits on capacity.&amp;nbsp; In an Edge scenario you have the added benefit of an extra security boundary.&amp;nbsp; In the event that an attacker is able to pass through an Edge server or initiate a successful DoS attack, your internal pool environment would not be impacted.&lt;/p&gt;
&lt;p&gt;So far, this all sounds pretty good.&amp;nbsp; If you&amp;#39;ve made the decision to deploy a Director all you have to do is deploy a Standard server, Enterprise pool, or array of Standard servers and disable the services you don&amp;#39;t need (Web Conferencing, A/V Conferencing, and Web Components - see page 48 of the Edge Server Deployment Guide for more details), change the next hop on your Edge server, and modify your _sipinternaltls._tcp SRV record to point to the new Director(s).&lt;/p&gt;
&lt;p&gt;Now, if you are in the process of architecting a global topology complete with redundancy, you&amp;#39;ll pause about the time you think about the contents of the SRV record.&amp;nbsp; Since there can be only one _sipinternaltls._tcp record per domain and it can only point to a single FQDN, where do you put the Director(s)?&amp;nbsp; For simplicity&amp;#39;s sake let&amp;#39;s assume you have pools in North America, Europe, and Asia.&amp;nbsp; We&amp;#39;re also going to assume you have a fully replicated DNS infrastructure (AD or otherwise).&amp;nbsp; If you place a pool of Directors in North America and the connection between Europe and NA goes down (another freight ship somehow ran over the transatlantic fiber run that your telco uses &lt;img src="http://evangelyze.net/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;), your European users will be unable to login to Communicator until the SRV record is modified or the connection is re-established.&amp;nbsp; To guard against that you can deploy an array of Standard servers in all your data centers, but now comes the major dependency - global redundancy.&amp;nbsp; Because this is now at the network layer there&amp;#39;s nothing we can do within OCS to design for this.&amp;nbsp; GSLB (global server load balancing) is basically your only option.&amp;nbsp; Various vendors can employ this (F5, Foundry, Cisco, etc.), and the exact deployment requirements are defined by those vendors, so check with them for details.&amp;nbsp; However, no matter which vendor you choose you&amp;#39;ll need this capability to accomodate for such a scenario.&lt;/p&gt;
&lt;p&gt;There are other topologies and options.&amp;nbsp; Some customers I&amp;#39;ve worked with have separate internal DNS zones for each country, so we were able to deploy regional SRV records.&amp;nbsp; This only works if you will not use PIC or federation since most internal DNS namespaces are not internet routable.&amp;nbsp; In another instance it was decided to use group policy to deploy the server settings to the clients and forego autodiscovery altogether (political, regional, and technical complexities all played into this decision).&lt;/p&gt;
&lt;p&gt;I hope you&amp;#39;ll find this information helpful.&amp;nbsp; &lt;a target="_blank" href="http://blogs.msdn.com/byrons/default.aspx"&gt;Byron Spurlock&lt;/a&gt; also has some related information on his blog as well if you&amp;#39;d like to read up a little more on Directors.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=74" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/pool/default.aspx">pool</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/director/default.aspx">director</category></item><item><title>Hyper-V RTM</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/06/27/hyper-v-rtm.aspx</link><pubDate>Fri, 27 Jun 2008 05:10:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:27</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;We have a good amount of our infrastructure running on the Hyper-V release candidate, which has worked very well for us to date, so I was happy to see when Hyper-V RTM&amp;#39;d yesterday.&amp;nbsp; We have already upgraded our Windows 2008 Hyper-V hosts to RTM and things are going smoothly so far.&amp;nbsp; The full details on upgrading can be found &lt;a target="_blank" href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-install.aspx" class="null"&gt;here&lt;/a&gt;, but the short version is that you need to install KB 950050 (&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f3ab3d4b-63c8-4424-a738-baded34d24ed&amp;amp;DisplayLang=en" class="null"&gt;x64 link&lt;/a&gt;, &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6f69d661-5b91-4e5e-a6c0-210e629e1c42&amp;amp;DisplayLang=en" class="null"&gt;x86 link&lt;/a&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=27" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/Hyper-V/default.aspx">Hyper-V</category></item><item><title>Hosted Gateway/SIP Trunk with OCS</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/06/16/hosted-gateway-sip-trunk-with-ocs.aspx</link><pubDate>Mon, 16 Jun 2008 14:56:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:23</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I thought I&amp;#39;d share a cool solution that I&amp;#39;m starting to work on with a SIP trunk partner of ours.&amp;nbsp; As you probably know,&amp;nbsp;OCS Enterprise Voice integration is generally done with an existing PBX via a media gateway.&amp;nbsp; Many business&amp;nbsp;are starting to take advatage of hosting SIP trunking to reduce cost and complexity now that these offerings have matured into business-class solutions.&amp;nbsp; For organizations that are looking for all the collaborative benefits of Microsoft&amp;#39;s UC stack without having to also manage a PBX, potential solutions are on the horizon.&lt;/p&gt;
&lt;p&gt;In our configuration the Mediation server (in Houston) has a public IP address.&amp;nbsp; The gateway address in the Mediation server configuration is directed to a&amp;nbsp;SIP Express Router (SER) system at our provider in Denver.&amp;nbsp; TCP ports 5060 and 60000-64000 are allowed between the Mediation server and the IP address of the SER.&amp;nbsp; At the provider&amp;#39;s location SER receives a SIP trunk from a Broadsoft platform.&amp;nbsp; The Broadsoft is also configured with an alias SIP domain that matches the internal FQDN of our Mediation server since by default it only accepts outbound calls from tel:+&amp;lt;phone number&amp;gt;@&amp;lt;broadsoft IP&amp;gt;.&lt;/p&gt;
&lt;p&gt;Voice quality has been great so far even without QoS and all in all this looks to be a great solution.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=23" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/UM/default.aspx">UM</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SIP+trunk/default.aspx">SIP trunk</category></item><item><title>Filtering Contacts from the Address Book</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/06/12/filtering-contacts-from-the-address-book.aspx</link><pubDate>Thu, 12 Jun 2008 13:04:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:19</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Last night I was working with my friend and fellow UC architect, Peter Pawlak, on a customer design item.&amp;nbsp; This particular customer is a subsidiary of a larger organization.&amp;nbsp; The subsidiary is deploying OCS but the parent company is not.&amp;nbsp; Not a problem since each of them have their own forests.&amp;nbsp; However, the parent company pushes down it&amp;#39;s users as contacts via an LDAP replication tool.&amp;nbsp; The issue was that the subsidiary is deploying telephony integration in their OCS deployment and the contacts that are coming from the parent company include phone numbers that are not formatted in such a way that they could be accounted for in the normalization rules (too many different formats).&amp;nbsp; There were also duplicate phone numbers and other similar issues.&amp;nbsp; In the end it was decided that the best plan of action was to simply exclude these contacts from the address book altogether.&lt;/p&gt;
&lt;p&gt;To do this we used address book filtering.&amp;nbsp; If you aren&amp;#39;t familar with address book filtering, check the section around Table 19 of the OCS Technical Reference (page 78).&amp;nbsp; What we had to do was find an attribute that did not exist for contacts but did exist for users and groups.&amp;nbsp; We settled on SAMAccountName and Peter made the appropriate changes to the AbUserEntry table in SQL, excluding objects that do not have a SAMAccountName attribute by setting the 0x8000 flag for that attribute.&amp;nbsp; This ensured that all users and groups were still included in the ABS.&lt;/p&gt;
&lt;p&gt;Unfortunately the address book filtering capability for OCS is very basic, so you can&amp;#39;t do things like string comparisons or value matching.&amp;nbsp; There is a resource kit tool that provides a UI for updating the AbUserEntry table, but I have seen that tool cause problems so I don&amp;#39;t recommend using it unless you are extremely uncomfortable making the changes in SQL yourself (make sure to take a backup first if you do this in a production environment!).&lt;/p&gt;
&lt;p&gt;Hopefully MS will consider more advanced filtering capabilities as this is a common request from customers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=19" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/SQL/default.aspx">SQL</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/ABS/default.aspx">ABS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/address+book/default.aspx">address book</category></item><item><title>Moving the OCS 2007 Databases to a new SQL 2005 Server</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/30/moving-the-ocs-2007-databases-with-sql-2005-s-management-studio.aspx</link><pubDate>Fri, 30 May 2008 19:23:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:14</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>0</slash:comments><description>&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;nbsp; 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;nbsp; 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;nbsp; Now you are ready to take a backup of your existing rtc, rtconfig, and rtcdyn databases.&amp;nbsp; 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://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Backup.png" height="278" width="522" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You will be presented with some backup options:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Backup%20Options.png" height="472" width="528" 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;nbsp; This will start the backup and the circle in the bottom left will show the backup progress.&amp;nbsp; You will need to perform these steps on the rtc, rtcconfig, and rtcdyn databases.&amp;nbsp; 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;nbsp; On the new SQL server right click Databases and select Restore Database:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.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://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%201.png" height="474" width="529" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Enter the name of the database you are restoring (rtc, rtcconfig, or rtcdyn only).&amp;nbsp; 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;nbsp; Once you have selected it it will be listed in the Backup location list.&amp;nbsp; Click OK to continue:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%202.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.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;nbsp; By default it displays the original location of the files.&amp;nbsp; Modify these as appropriate to match the desired location of the mdf and ldf files on the new SQL server.&amp;nbsp; 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://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Restore%20Options%204.png" height="485" width="544" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now click OK and the database will restore.&amp;nbsp; Complete this step for the rtc, rtcconfig, and rtcdyn databases.&lt;/p&gt;
&lt;p&gt;At this point we&amp;#39;re more than halfway done.&amp;nbsp; There are a few other items to complete before we are ready to start the services up again.&amp;nbsp; 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;nbsp; Also, the rtc and rtcdyn databases require database chaining to be enabled.&amp;nbsp; I&amp;#39;ve included the SQL query that you need to execute to handle all of this at once.&amp;nbsp; 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://www.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://www.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;nbsp; In the messages pane you should see the following:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CSQL%20Backup/Query3.png" alt="" /&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;nbsp; To perform this step you need to be on a system that has OCS or the OCS administrative tools installed.&amp;nbsp; 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;nbsp; 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
tc&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;nbsp; In the example above I specified &amp;quot;mysqlserver
tc&amp;quot; as the pool backend.&amp;nbsp; 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;nbsp; 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;nbsp; 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;nbsp; 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;nbsp; 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://www.evangelyze.net/cs/aggbug.aspx?PostID=14" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/lcscmd/default.aspx">lcscmd</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/restore/default.aspx">restore</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/pool/default.aspx">pool</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/database/default.aspx">database</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/backup/default.aspx">backup</category></item><item><title>OCS Capacity and Bandwidth Planner</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/30/ocs-capacity-and-bandwidth-planner.aspx</link><pubDate>Fri, 30 May 2008 17:46:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:12</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I wrote a very quick and dirty capacity and bandwidth planner and figured I&amp;#39;d share it out.&amp;nbsp; The basic features are:&lt;/p&gt;
&lt;p&gt;- Calculate the number of users that n Enterprise servers can hold (both consolidated and expanded)&lt;/p&gt;
&lt;p&gt;- Calculate the bandwidth used by n% concurrent audio and n% concurrent video users based on the user count supported by n servers&lt;/p&gt;
&lt;p&gt;The top section is for a consolidated topology and the bottom section
is for expanded.&amp;nbsp; The grayed out portions are for reference only - all
you have to do is modify one of more of the green cells to update the
count.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sure I&amp;#39;ll make updates over time and will post those here along with the updated Excel file as they are made.&lt;/p&gt;
&lt;p&gt;UPDATE:&amp;nbsp; The attachment link wasn&amp;#39;t working, so here is the correct &lt;a href="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5COCS%20Capacity%20and%20Bandwidth%20Planning.xls"&gt;link to the calculator&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=12" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/bandwidth/default.aspx">bandwidth</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/capacity/default.aspx">capacity</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/calculator/default.aspx">calculator</category></item><item><title>The PIC Provisioning Process</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/30/the-pic-provisioning-process.aspx</link><pubDate>Fri, 30 May 2008 14:37:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:11</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Introduced in LCS 2005 SP1 and continued in OCS 2007, Public IM Connectivity (PIC) provides organizations the ability to federate with MSN, AOL, and Yahoo! IM users.&amp;nbsp; There are a few things that are useful to know about the provisioning process before you get started.&lt;/p&gt;
&lt;p&gt;Before you can even begin, you must have a licensing agreement in place with Microsoft.&amp;nbsp; These are coordinated through Microsoft&amp;#39;s reseller channel, so whomever sells you your regular Microsoft licenses can verifiy whether or not you have a licensing agreement in place.&amp;nbsp; Examples of licensing agreement types are Open Value, Select, and Enterprise Agreement (EA).&amp;nbsp; Once you have this in place you can purchase PIC licenses.&amp;nbsp; I&amp;#39;ve found that many resellers are not familiar with PIC licenses, and you can help them find them by instructing them to search for the phrase &amp;quot;pblc&amp;quot; in their system.&amp;nbsp; Microsoft&amp;#39;s license description does not spell out the word &amp;quot;public&amp;quot; in the name of the product, so if they search for that they will receive little to no results (see &lt;a target="_blank" href="http://www.cdw.com/shop/search/results.aspx?key=pblc"&gt;http://www.cdw.com/shop/search/results.aspx?key=pblc&lt;/a&gt; as an example).&amp;nbsp; Once they find the licenses you will have various options of the duration to purchase (12 months, 36 months, etc.).&amp;nbsp; &lt;i&gt;For more details on licensing see my &lt;a target="_blank" href="http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/29/ocs-2007-licensing.aspx"&gt;OCS 2007 Licensing Explained&lt;/a&gt; post.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Once the licenses are purchased and processed through Microsoft your license management area on Microsoft&amp;#39;s licensing site will have a new form available to fill out to begin the provisioning process.&amp;nbsp; To complete that form you need a few pieces of information:&lt;/p&gt;
&lt;p&gt;- The SIP domain which will be used for PIC federation (example, evangelyze.net)&lt;br /&gt;
- The external FQDN of the Access Proxy (LCS) or Access Edge (OCS) that will handle the PIC connectivity.&amp;nbsp; While it&amp;#39;s not necessary for this server to be up and running yet, it&amp;#39;s very important to get this right - each PIC provider will establish federation to your domain name via the FQDN you specify here.&amp;nbsp; If you change the name later you will have to wait for each provider to update it.&lt;br /&gt;
- Contact information.&amp;nbsp; The e-mail address you specify here will be used for all PIC provisioning communication.&lt;br /&gt;
- Which PIC providers to federate with.&amp;nbsp; You can choose any or all of the three providers.&lt;/p&gt;
&lt;p&gt;Once this is complete you will begin receiving e-mails from the PIC provisioning team.&amp;nbsp; One of the first things they check is whether or not your domain is being used for any EASI (e-mail as sign in) MSN Messenger accounts.&amp;nbsp; An example of an EASI account is when someone registers for MSN Messenger using an @myisp.net or @mycompany.com address.&amp;nbsp; Users who have MSN Messenger accounts at your domain will receive an e-mail stating that their account will need to be changed if they would like to continue using MSN Messenger.&amp;nbsp; If they don&amp;#39;t do this proactively then the first time they sign on after the change has been made they will be led through the process of changing their MSN sign-in.&amp;nbsp; This does not impact people who are only using their MSN Passport for non-IM use.&amp;nbsp; As a side note, you can request the PIC team to provide you with the number of EASI ids in your domain but they will not supply any identifying information about the accounts due to the privacy agreement in place with the end user.&lt;/p&gt;
&lt;p&gt;Once all this is has happened the provisioning process begins.&amp;nbsp; Officially it takes up to 30 days for it to complete, but historically AOL will complete in 24-48 hours, Yahoo! in 2-4 days, and MSN in 5-10 days.&amp;nbsp; As each one gets enabled you can start to use it, but you will not get a notification from Microsoft that provisioning is complete until all 3 have reported back as complete.&lt;/p&gt;
&lt;p&gt;To actually have this working in OCS all you have to do is enable and define a route for federation (in the global settings federation tab) that points to the internal interface of your Edge server and ensure that the PIC providers are enabled on your Edge server properties.&amp;nbsp; Here are a some screen shots of those areas:&lt;/p&gt;
&lt;p&gt;Edge Server IM Providers&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CPIC/PIC-Edge.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Global Settings - Edge Servers&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CPIC/PIC-Global.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.evangelyze.net/cs/filestorage%5CCommunityServer.Blogs.Components.WeblogFiles%5Cmike%5CPIC/PIC-Settings.png" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=11" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/licensing/default.aspx">licensing</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/PIC/default.aspx">PIC</category></item><item><title>OCS 2007 Licensing Explained</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/29/ocs-2007-licensing.aspx</link><pubDate>Thu, 29 May 2008 15:18:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:8</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>7</slash:comments><description>&lt;p&gt;Licensing of software products can be quite confusing, but hopefully this post clears up licensing for OCS specifically.&amp;nbsp; In general, there are 3 items you need to license for OCS - server, CALs, and Communicator.&amp;nbsp; Each can be purchased a different way.&amp;nbsp; Lastly, there are options for External Connector and PIC licensing.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Servers&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;OCS 2007 is available in Standard and Enterprise versions.&amp;nbsp; Server versions have no correspondance to features or functionality.&amp;nbsp; The basic rule of thumb for OCS 2007 server licensing is that you purchase Enterprise Edition for Front End servers that will be using a SQL backend located on another machine (note that Enterprise Edition does not support a local SQL Server installation), will be deployed behind a load balancer, and/or will be deployed in an expanded topology.&amp;nbsp; This includes Directors that are deployed as a pool.&amp;nbsp; All other servers can be licensed as Standard Edition servers.&amp;nbsp; You do not need an OCS 2007 Server license for the backend SQL server or CWA, nor do you need a SQL license for OCS 2007 Standard since it can only use SQL 2005 Express.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;CALs (Client Access Licenses)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The CAL grants the licensing authority to a user to connect to OCS with a specific set of capabilities (limited by licensing agreements, not by application enforcement).&amp;nbsp; A Standard CAL grants the user the authority to connect to OCS for anything that does not involve conferencing or telephony.&amp;nbsp; That leaves IM and presence as well as point to point audio and video through Communicator.&amp;nbsp; For anything else you must have an Enterprise CAL.&amp;nbsp; Enterprise CALs are additive, meaning that you must buy both the Standard and the Enterprise CAL to be licensed for Enterprise capabilities.&amp;nbsp; You can choose to purchase Enterprise CALs for only those users that require them.&amp;nbsp; For example, if all of your organization is using IM and presence but only half the company will use telephony integration then you only need to buy Enterprise CALs for that half.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Communicator&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Lastly, you must license the client software to connect to OCS - Communicator (Live Meeting is free).&amp;nbsp; Communicator can be licensed per user on its own or as part of one of the top two Office 2007 suites - Office 2007 Professional Plus or Office 2007 Enterprise.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;External Connector&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The external connector (EC) license has nothing whatsoever to do with public IM connectivity (PIC).&amp;nbsp; It is a per-server license that grants an unlimited number of external users (limited by your hardware/bandwidth constraints) access to the OCS 2007 services.&amp;nbsp; It must be purchased for each server with which external users interface.&amp;nbsp; The EC license is available in Standard and Enterprise versions - you would select the one based on the services the users will access (just like CALs above).&amp;nbsp; It&amp;#39;s important to note that an &amp;quot;external user&amp;quot; must be someone that is not an employee of your organization (I&amp;#39;m not sure if contract employees fall under that or not).&amp;nbsp; The typical example is providing an IM service to business partners so they can interact with employees of your company.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Public IM Connectivity (PIC)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Public IM Connectivity licenses are sold per user and cost roughly $1/user/month.&amp;nbsp; These fees are low because it is a cost recovery mechanism for the royalties Microsoft pays to the public IM providers.&amp;nbsp; PIC licenses are typically sold in packs of 12/24/36 months.&amp;nbsp; Like CALs, you only need to purchase PIC licenses for users that are using PIC services.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The pricing for all these varies based on whether you are purchasing Open Value, Select A-D, or through an EA so I won&amp;#39;t touch that.&amp;nbsp; Retail pricing is available on Microsoft&amp;#39;s site as a reference&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=8" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/licensing/default.aspx">licensing</category></item><item><title>Changing the OCS Internal URLs</title><link>http://www.evangelyze.net/cs/blogs/mike/archive/2008/05/28/changing-the-ocs-internal-urls.aspx</link><pubDate>Wed, 28 May 2008 17:00:00 GMT</pubDate><guid isPermaLink="false">e99d0b66-7c3d-48f6-a7f8-df8f414b967b:7</guid><dc:creator>Mike Stacy</dc:creator><slash:comments>1</slash:comments><description>&lt;div&gt;Recently I was working with a customer who needed to change the Internal URLs that he had specified during setup.&amp;nbsp; Since there is no lcscmd command for this, I thought I&amp;#39;d share the resolution:&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;- Run wbemtest (Start/Run/wbemtest)&lt;/div&gt;
&lt;div&gt;- Click the Connect button, set the namespace to root\cimv2, and click Connect&lt;/div&gt;
&lt;div&gt;- Click Enum Classes.&amp;nbsp; Leave the superclass name blank and click ok.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;First change the internal ABS URL.&amp;nbsp; Find the
MSFT_SIPAddressBookSetting and double click it.&amp;nbsp; Click the Instances
button.&amp;nbsp; A new window will appear with a single instance in the list.&amp;nbsp;
Double click it.&amp;nbsp; When you do so, &lt;span style="text-decoration:underline;"&gt;it will look like you just went back
to the previous window&lt;/span&gt; because wbemtest put an identical looking one on
top of the original one.&amp;nbsp; Find the InternalURL property, double click
it, and set it to what you want.&amp;nbsp; Click Save Property.&amp;nbsp; On the next
screen click Save Object (this is very important).&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Repeat this for the following WMI settings:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;MSFT_SIPDataMCUCapabilitySetting\Instances\&amp;lt;Backend&amp;gt;\InternalClientContentDownloadURL&lt;/div&gt;
&lt;div&gt;MSFT_SIPGroupExpansionSetting\Instances\&amp;lt;Backend&amp;gt;\InternalDLExpansionWebURL&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.evangelyze.net/cs/aggbug.aspx?PostID=7" width="1" height="1"&gt;</description><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/OCS/default.aspx">OCS</category><category domain="http://www.evangelyze.net/cs/blogs/mike/archive/tags/WMI/default.aspx">WMI</category></item></channel></rss>