<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Cristiano WebLog</title><subtitle type="html">Microsoft Infrastructure &amp; Development Tips and Tricks</subtitle><id>http://blogs.msdn.com/crisag/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/crisag/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-09-25T20:29:00Z</updated><entry><title>Exporting and Importing CS2007 Marketing Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2008/06/13/exporting-and-importing-cs2007-marketing-data.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="138076" href="http://blogs.msdn.com/crisag/attachment/8594383.ashx" /><id>http://blogs.msdn.com/crisag/archive/2008/06/13/exporting-and-importing-cs2007-marketing-data.aspx</id><published>2008-06-13T14:54:00Z</published><updated>2008-06-13T14:54:00Z</updated><content type="html">Are you looking for a way to import and/or export Commerce Server 2007 Marketing data? The following code samples show how to to export and import all CS2007 Marketing System data. The first sample uses the MarketingPup.Export method to extract the data and create a XML file with all content. 1: using System; 2: using System.IO; 3: using Microsoft.CommerceServer.Internal.Marketing; 4: using Microsoft.CommerceServer.Runtime.Configuration; 5: 6: namespace ExportMarketingData 7: { 8: class ExportMarketingData...(&lt;a href="http://blogs.msdn.com/crisag/archive/2008/06/13/exporting-and-importing-cs2007-marketing-data.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8594383" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Product Relationship Names: Easier for Business Users</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2008/05/06/product-relationship-names-easier-for-business-users.aspx" /><id>http://blogs.msdn.com/crisag/archive/2008/05/06/product-relationship-names-easier-for-business-users.aspx</id><published>2008-05-06T19:09:00Z</published><updated>2008-05-06T19:09:00Z</updated><content type="html">If you are following my posts you probably have noticed the one showing how to create bundles for Commerce Server 2007. Bundles are created using product relationships with a specific name. Some of my customers believe it is too complicated for business users to create relationships with a particular name in order to create bundles. So they asked to make a small change on the Catalog Manager to create combo boxes with enumeration options on the relationship name column of the product relationships...(&lt;a href="http://blogs.msdn.com/crisag/archive/2008/05/06/product-relationship-names-easier-for-business-users.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8463350" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Commerce Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Commerce+Server/default.aspx" /></entry><entry><title>Unit testing and Commerce Server 2007 Contexts</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2008/03/13/unit-testing-and-commerce-server-2007-contexts.aspx" /><id>http://blogs.msdn.com/crisag/archive/2008/03/13/unit-testing-and-commerce-server-2007-contexts.aspx</id><published>2008-03-13T15:40:48Z</published><updated>2008-03-13T15:40:48Z</updated><content type="html">Hi there... after a long time, I'm back. Let's talk a little about unit testing and commerce server... I've been helping one of our parters with a CS2007 website development and they were facing problems with unit testing and commerce server contexts created by the httpmodules. As you probably know, test driven development and unit testing require a lot from the architecture. In order to do effective unit tests, the system need to be divided in units and those units need to be tested under a set...(&lt;a href="http://blogs.msdn.com/crisag/archive/2008/03/13/unit-testing-and-commerce-server-2007-contexts.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8180244" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Commerce Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Commerce+Server/default.aspx" /></entry><entry><title>Programming Display Windows - Static Version [Part II]</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-display-windows-static-version-part-ii.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="11516" href="http://blogs.msdn.com/crisag/attachment/3677088.ashx" /><id>http://blogs.msdn.com/crisag/archive/2007/07/03/programming-display-windows-static-version-part-ii.aspx</id><published>2007-07-04T01:09:00Z</published><updated>2007-07-04T01:09:00Z</updated><content type="html">If you followed the last post you now have a brand new DisplayTemplate on the marketing system with three properties: ProductImage, ProductTitle and ProductPrice. Before creating new advertisements and associate the new DisplayTemplate we will need an expression. This expression will be used to filter only advertisements for a determined display window. To do that, we need two steps: Create a new targeting context attribute called BillBoard using the Commerce Server Manager. Create a new global expression...(&lt;a href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-display-windows-static-version-part-ii.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3677088" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Programming Display Windows - Static Version [Part I]</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-static-version-part-i.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="43787" href="http://blogs.msdn.com/crisag/attachment/3666275.ashx" /><id>http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-static-version-part-i.aspx</id><published>2007-07-03T05:35:00Z</published><updated>2007-07-03T05:35:00Z</updated><content type="html">In order to create a static display window supported by the Commerce Server 2007 Marketing System we need a custom DisplayTemplate. I'll use the DisplayTemplate to format a set of DIVs for each shopping window position. An associated CSS file will be used on the future ASCX control to format the appearance of the window according to your taste. Let's use the following code to create the DisplayTemplate. Remember, I'm using a vanilla StarterSite installation and all webservices referenced are pointing...(&lt;a href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-static-version-part-i.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3666275" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Programming Display Windows - Introduction</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-introduction.aspx" /><id>http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-introduction.aspx</id><published>2007-07-03T05:17:00Z</published><updated>2007-07-03T05:17:00Z</updated><content type="html">Hi there, On the next posts I'd like to show how to build display windows using Commerce Server 2007 Marketing and Catalog Systems. A display window is a webstore requirement of 10 in 10 customers I have worked. In general customers require a lot more features than a simple display window (including a lot of dynamic integration). But let's start simple and finish with a dynamic marketing display window with integration to the catalog system. I intend to publish two series: The first one will show...(&lt;a href="http://blogs.msdn.com/crisag/archive/2007/07/03/programming-shopping-windows-introduction.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3666148" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Commerce Server Catalog Manager and SOAP Limits</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/06/26/commerce-server-catalog-manager-and-soap-limits.aspx" /><id>http://blogs.msdn.com/crisag/archive/2007/06/26/commerce-server-catalog-manager-and-soap-limits.aspx</id><published>2007-06-26T15:14:16Z</published><updated>2007-06-26T15:14:16Z</updated><content type="html">If your customer has a lot of categories or products and when using the Catalog Manager to change the sequence you are getting the following error message (I got it today! :)): "There was an exception running the extensions specified in the config file. Maximum request length exceeded." Don't worry. The request length can be modified by adding the following info to the catalog webservice System.Web configuration file: &amp;lt;system.web&amp;gt; &amp;lt;httpRuntime maxRequestLength="30270" /&amp;gt; &amp;lt;/system.web&amp;gt;...(&lt;a href="http://blogs.msdn.com/crisag/archive/2007/06/26/commerce-server-catalog-manager-and-soap-limits.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3544675" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Commerce Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Commerce+Server/default.aspx" /></entry><entry><title>Cool Tools for Commerce Server (now 2007)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/06/21/cool-tools-for-commerce-server-now-2007.aspx" /><id>http://blogs.msdn.com/crisag/archive/2007/06/21/cool-tools-for-commerce-server-now-2007.aspx</id><published>2007-06-22T04:46:09Z</published><updated>2007-06-22T04:46:09Z</updated><content type="html">Hi there, Up in Redmond last week attending the Commerce Server 2007 bootcamp I told Max that would be great to have all the tools demonstrated during the training in a kind of resource kit. I now about all the difficulties to pack an official resource kit, meanwhile I'm revamping the Nihit Kaul work on Cool Tools for Commerce Server 2002 now for the 2007 version. Kudos to Max Akbar , Colin Bowern and others... Commerce Server Best Practices Analyzer : This is the Microsoft tool to check your Commerce...(&lt;a href="http://blogs.msdn.com/crisag/archive/2007/06/21/cool-tools-for-commerce-server-now-2007.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3451146" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Broadcom BCM5708 and Virtual Server Issues</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2007/05/03/broadcom-bcm5708-and-virtual-server-issues.aspx" /><id>http://blogs.msdn.com/crisag/archive/2007/05/03/broadcom-bcm5708-and-virtual-server-issues.aspx</id><published>2007-05-03T22:37:00Z</published><updated>2007-05-03T22:37:00Z</updated><content type="html">&lt;P&gt;I was helping one of our customers with Microsoft Virtual Server Host Clustering and we faced a strange problem with network connectivity.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As per Broadcom their BCM5708 (NetXtreme_II) has issues with the Virtual Server and they have a workaround which is disable IPMI using a Broadcom utility.&lt;/P&gt;
&lt;P&gt;We did that and everything was working ok when just couple days after Broadcom came up with a new version of their card driver correcting the problem.&lt;/P&gt;
&lt;P&gt;So if you are facing problems with broadcom cards and virtual server, please check their website and download the latest driver version.&lt;/P&gt;
&lt;P&gt;Regards, Cris.&lt;/P&gt;
&lt;H4&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/H4&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2398578" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Vitual Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Vitual+Server/default.aspx" /></entry><entry><title>Inventorying Microsoft Softgrid Streamed Applications</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/12/14/inventorying-microsoft-softgrid-streamed-applications.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/12/14/inventorying-microsoft-softgrid-streamed-applications.aspx</id><published>2006-12-14T15:09:59Z</published><updated>2006-12-14T15:09:59Z</updated><content type="html">&lt;p&gt;Microsoft Softgrid is a new subject to me, but you guys cannot imagine how well impressed I am. It is the killer application of the century! No more administrative pains with application updates and no more DLL hell on the user's workstation.&amp;nbsp;Cool!&lt;/p&gt; &lt;p&gt;I'm just finishing my first training on the Microsoft Softgrid solution and during&amp;nbsp;the class&amp;nbsp;one of my friends came up with a question on how to&amp;nbsp;get inventory information&amp;nbsp;about the streamed applications being executed on the workstations.&amp;nbsp;My colleague Plínio Queiroz came also&amp;nbsp;with the idea of&amp;nbsp;a sms_def.mof extension to deal with this issue. That's great. We can use the mof extension to collect the softgrid information on the client using WMI and the registry provider and send to the SMS site database. After the inventory collection we can get historical information of applications being executed, when a particular application was deleted, when it was streamed, etc...&lt;/p&gt; &lt;p&gt;The result? We developed a simple mof extension to be used with SMS2003 in order to get the inventory information. If you want to use it, just follow the steps below:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Get the default sms_def.mof from the SMS 2003 \SMS\inboxes\clifiles.src\hinv.  &lt;li&gt;Include the following code at the end of the sms_def.mof file.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;#pragma namespace("\\\\.\\root\\CIMv2")&lt;br&gt;[dynamic, provider("RegProv"),&lt;br&gt;ClassContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Softricity\\SoftGrid Client\\CurrentVersion\\Applications")&lt;br&gt;]&lt;br&gt;class Win32Reg_SoftGridApplications&lt;br&gt;{&lt;br&gt;[key]&lt;br&gt;string ApplicationName;&lt;br&gt;[PropertyContext("DescriptionURL")]&lt;br&gt;string DescriptionURL;&lt;br&gt;[PropertyContext("OriginalDescriptionURL")]&lt;br&gt;string OriginalDescriptionURL&lt;br&gt;}; &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;#pragma namespace("\\\\.\\root\\CIMv2\\sms")&lt;br&gt;[SMS_Report(TRUE),&lt;br&gt;SMS_Group_Name("SoftGridApplications"),&lt;br&gt;SMS_Class_ID("MICROSOFT|SOFTGRIDAPPLICATIONS|1.0")]&lt;br&gt;class Win32Reg_SoftGridApplications : SMS_Class_Template&lt;br&gt;{&lt;br&gt;[SMS_Report(TRUE),key]&lt;br&gt;string ApplicationName;&lt;br&gt;[SMS_Report(TRUE)]&lt;br&gt;string DescriptionURL;&lt;br&gt;[SMS_Report(TRUE)]&lt;br&gt;string OriginalDescriptionURL;&lt;br&gt;};&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;To ensure that your extension is working, compile the MOF file on one workstation with SMS and the Softgrid clients installed. To do that use the mofcomp.exe tool.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;font face="Courier New" size="2"&gt;mofcomp sms_def.mof&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;If you are using SMS2003 you need to create a package to compile the mof file on each SMS client. If you are using SMS 2.0 just wait.&amp;nbsp;During the next appropriate cycle the clients will get the updated mof file.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Wait for the SMS client policy update and you can use the Resource Explorer or the report features of SMS to get all the information you need about which applications are running on your Microsoft Softgrid enabled workstations. &lt;/p&gt; &lt;p&gt;Note: We are getting only the name of the application and the location of the OSD, you can extend the sample to get more information. If you improve the extension or if you create cool reports, please send to us...&lt;/p&gt; &lt;p&gt;Curious to see some results? Check the following screenshots:&lt;/p&gt; &lt;p&gt;The SMS Resource Explorer listing the Softgrid streamed applications&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms15.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="347" src="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms1_thumb3.jpg" width="500" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The SMS Resource Explorer historical data showing an application deletion (yes, you will know when someone removes a streamed application)&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms23.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="347" src="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms2_thumb1.jpg" width="500" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms34.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="348" src="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms3_thumb2.jpg" width="500" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A simple SMS report on Softgrid streamed applications&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms43%5B1%5D.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="361" src="http://blogs.msdn.com/blogfiles/crisag/WindowsLiveWriter/InventoryingMicrosoftSoftgridStreamedApp_12B7E/sms43%5B1%5D_thumb.jpg" width="501" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The SMS report was created using the following SQL statement:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;SELECT v_R_System.Netbios_Name0, v_GS_SOFTGRIDAPPLICATIONS.ApplicationName0 AS 'SoftGrid Application', &lt;br&gt;v_GS_SOFTGRIDAPPLICATIONS.DescriptionUrl0&lt;br&gt;FROM v_R_System INNER JOIN&lt;br&gt;v_GS_SOFTGRIDAPPLICATIONS ON v_R_System.ResourceID = v_GS_SOFTGRIDAPPLICATIONS.ResourceID&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Regards, Cris.&lt;/p&gt; &lt;p&gt;&lt;font size="4"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1283360" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author></entry><entry><title>Subscribing to the refresh cache event in Commerce Server 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/11/30/subscribing-to-the-refresh-cache-event-in-commerce-server-2007.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/11/30/subscribing-to-the-refresh-cache-event-in-commerce-server-2007.aspx</id><published>2006-11-30T16:21:02Z</published><updated>2006-11-30T16:21:02Z</updated><content type="html">&lt;p&gt;Are you looking a way to extend the refresh cache webservice method to refresh ASP .Net cache on your Commerce Server 2007 website? If you are using ASP .Net output cache extensively and need to refresh the cache together with CS caches you can subscribe to the CacheRefresh event using the following code. &lt;p&gt;&lt;u&gt;Subscription&lt;/u&gt;&lt;/p&gt; &lt;p&gt;SiteCacheRefresh.CacheRefresh += new System.EventHandler&amp;lt;SiteCacheRefreshEventArgs&amp;gt;(SiteCacheRefresh_CacheRefresh);&lt;/p&gt; &lt;p&gt;&lt;u&gt;Event Handler&lt;/u&gt; &lt;p&gt;public void SiteCacheRefresh_CacheRefresh(object sender, SiteCacheRefreshEventArgs e) &lt;p&gt;{ &lt;p&gt;} &lt;p&gt;As a recommendation, use Global.Asax to subscribe to the event. ASP.NET compiles&amp;nbsp;global.asax&amp;nbsp;into a class derived from the HttpApplication class, and then uses the derived class to represent the application.  &lt;p&gt;If you are using a CS farm the event is triggered at all servers! &lt;p&gt;Regards! Cris. &lt;p&gt;&lt;font size="4"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1178135" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Commerce Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Commerce+Server/default.aspx" /></entry><entry><title>The Page Appearance Framework.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/10/03/The-Page-Appearance-Framework_2E00_.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/10/03/The-Page-Appearance-Framework_2E00_.aspx</id><published>2006-10-03T22:37:00Z</published><updated>2006-10-03T22:37:00Z</updated><content type="html">&lt;P&gt;Are you curious on how to control the appearance of an ASP .Net pages using design time properties? Guys from Commerce Server team have shown how to deal with this problem. On a preliminary version of the CS2007 Starter Site (that one with came with CS2007 Beta) they use class properties to deal with the appearance of the sample store page framework.&lt;/P&gt;
&lt;P&gt;First step is create a new masterpage with a set of DIV files that can be enabled or disabled according with different page layout statuses.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The second step is create a base class with a property to control the presentation&lt;/P&gt;
&lt;P&gt;public abstract class SiteMasterPage : System.Web.UI.MasterPage&lt;BR&gt;{&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;Layout property: Control the appearance of the DIV areas inside the masterpage. Depending on context, the background code can change the layout of the page.&lt;/P&gt;
&lt;P&gt;Now you need to create a new masterpage and insert code to deal with the properties:&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;OnPreRender event: Deal with layout. Activating or deactivating DIVs according to the Layout properties&lt;/P&gt;
&lt;P&gt;protected override void OnPreRender(EventArgs e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;switch (this.LayoutStyle)&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;//se for mínimo, remove o banner, os sidebars, o menu e o rodapé. &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; // deixa só o mainpagecontent&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; case PageLayoutStyle.Minimal:&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; this.adbanner.Visible = false;&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; this.sidebar_a.Visible = false;&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; this.sidebar_b.Visible = false;&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; this.footer.Visible = false;&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; this.menu.Visible = false;&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; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;case PageLayoutStyle.Full:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.adbanner.Visible = true;&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; this.sidebar_a.Visible = true;&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; this.sidebar_b.Visible = true;&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; this.footer.Visible = true;&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; this.menu.Visible = true;&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; break;&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; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Page.Title = this.title; //ajusta o título da página&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; base.OnPreRender(e); //executa a base do prerender&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;To get the design time class properties you can use a piece of code like the following one:&lt;/P&gt;
&lt;P&gt;settings = PageSettings.GetPageSettings(HttpContext.Current.CurrentHandler.GetType());&lt;/P&gt;
&lt;P&gt;internal static PageSettings GetPageSettings(Type type)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (type == null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ArgumentNullException("type");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!type.IsSubclassOf(typeof(Page)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ArgumentException("SubClass", "type");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!PageSettings.typeCache.ContainsKey(type))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock(typeCache)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; // Não está em cache, temos que popular.&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; if (!PageSettings.typeCache.ContainsKey(type))&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; {&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; string pageGroup = null;&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; bool isSecure = false;&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; PageLayoutStyle layoutStyle = PageLayoutStyle.Full;&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; object[] attributes = type.GetCustomAttributes(true);&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; foreach (Attribute attribute in attributes)&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; {&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (typeof(PageLayoutAttribute).IsInstanceOfType(attribute))&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layoutStyle = ((PageLayoutAttribute)attribute).LayoutStyle;&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; }&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; PageSettings.typeCache.Add(type, new PageSettings(layoutStyle, isSecure, pageGroup));&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; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return PageSettings.typeCache[type];&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;At design time, we just need to tell how the page will look using the following approach:&lt;/P&gt;
&lt;P&gt;[PageLayout(PageLayoutStyle.Full)]&lt;BR&gt;public partial class _Default : System.Web.UI.Page&lt;BR&gt;{&lt;BR&gt;…&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Remember that your ASPX page must be based on a MasterPage created from the custom base class.&lt;/P&gt;
&lt;P&gt;public partial class StandardLayout : SiteMasterPage&lt;BR&gt;{&lt;BR&gt;...&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Regards, Cris.&lt;BR&gt;&lt;SPAN minmax_bound="true" deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Verdana size=3 minmax_bound="true"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN minmax_bound="true" deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Verdana size=3 minmax_bound="true"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR minmax_bound="true"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=787690" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Visual Studio 2005" scheme="http://blogs.msdn.com/crisag/archive/tags/Visual+Studio+2005/default.aspx" /></entry><entry><title>The Visual Studio 2005 Code-Beside Dilemma!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/09/29/The-Visual-Studio-2005-Code_2D00_Beside-Dilemma_2100_.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/09/29/The-Visual-Studio-2005-Code_2D00_Beside-Dilemma_2100_.aspx</id><published>2006-09-29T16:50:00Z</published><updated>2006-09-29T16:50:00Z</updated><content type="html">&lt;P&gt;Did you know that? With Visual Studio 2003 we were able to extend the System.Web.UI.Page class and create new properties for WebForms. Test yourself, using VS2003, create a new property for your class (derived from System.Web.UI.Page), create a new ASP .Net page based on your new class and you will see the created property it on the Visual Studio properties page for the ASPX.&lt;/P&gt;
&lt;P&gt;When saving the page, you will see that the code behind is automatically changed to include the property values. It is a very easy approach to create custom properties on ASP .Net web pages.&lt;/P&gt;
&lt;P&gt;A couple of weeks ago I was working with one of our customers and I said that he could use the properties approach to easily customize the appearance of his ASP .Net web pages. But what’s my surprise when I noticed that this is not working on Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;Ok. Know the reason for such thing not work anymore became a question of honor. After post some questions on our internal lists and search a little bit on the Internet I figured out the reason.&lt;/P&gt;
&lt;P&gt;Before begin the explanation, I’d like to let you know that it is a known issue reported at &lt;A href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=105510" mce_href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=105510"&gt;http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=105510&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Let’s try to explain.&lt;/P&gt;
&lt;P&gt;According to my research there was a design change in the product. Basically in Visual Studio 2005 RTM, the code behind file and the generated stub are compiled into the base class, and the actual ASP .Net page inherits the base class. &lt;/P&gt;
&lt;P&gt;The V1.X code behind model (seen on the Visual Studio 2003) is still supported by the runtime, however, you cannot use Visual Studio 2005 for editing the V1.X style pages.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The code that was being generated by Visual Studio 2003 IDE is now moved to the partial class that is automatically generated during compilation. If you just want to see what is in the generated class, you can set the page to debug mode and look for the generated files under the ASP.NET temporary folder.&lt;/P&gt;
&lt;P&gt;The model is changed to allow updatable pages after compilation. To achieve this, the product group came up with the current model which is very similar to V1.X that the codes behind files are still compiled into the base classes. The only difference is that the control field declarations and the class constructor are now automatically generated instead of injected at design time. &lt;/P&gt;
&lt;P&gt;So the collateral effect appeared. As the control field declarations are automatically generated at the compilation time we cannot store the adjusted values for custom properties on the appropriate place. Therefore we need a different approach to implement this kind of functionality.&lt;/P&gt;
&lt;P&gt;I managed to implement (with the help of a sort of samples) a mechanism that can be used to coordinate the appearance of ASP .Net pages at design time using class properties injected manually on the code. I’ll show how to do that on another post. Stay tuned!&lt;/P&gt;
&lt;P&gt;Bye!!&lt;/P&gt;
&lt;P&gt;&lt;SPAN minmax_bound="true" deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Verdana size=3 minmax_bound="true"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR minmax_bound="true"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=776918" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Visual Studio 2005" scheme="http://blogs.msdn.com/crisag/archive/tags/Visual+Studio+2005/default.aspx" /></entry><entry><title>How to setup Live Communications Server 2005 and Cisco Call Manager 4.1 to VoIp –PSTN convergence</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/09/28/how-to-setup-live-communications-server-2005-and-cisco-call-manager-4-1-to-voip-pstn-convergence.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/09/28/how-to-setup-live-communications-server-2005-and-cisco-call-manager-4-1-to-voip-pstn-convergence.aspx</id><published>2006-09-28T16:48:00Z</published><updated>2006-09-28T16:48:00Z</updated><content type="html">&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Hello! Now I want to share with you some tips on configuring LCS and its client&amp;nbsp; Office Communicator to originate VoIp calls to a Cisco SCCP IP Phone or conventional PSTN phones through a Cisco Call Manager 4.1 SR3.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Many companies setup Cisco Telephony over IP environments and don’t know they can use Office Communicator and LCS 2005 to place calls to the VoIp and PSTN clouds just using the already in-place Cisco infrastructure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;I mean, the companies do not need a special gateway just to make VoIP and PSTN calls from Office Communicator using their in-place Cisco Call Manager 4.1. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;In fact, they still need a gateway if the goal is to make signaling (3PCC/CSTA) integration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Actually I have a customer using Cisco Call Manager 4.1 to place VoIP calls to all their IP and PSTN phones using the integration already made between the CCM 4.1 and the corporative PBX. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Before to start with the configuration steps I’d like to list what will work after the setup:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul style="margin-top: 0cm" type="disc"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Calls can be placed from LCS (Office Communicator) to another VoIP phone “connected” through CCM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Calls can be placed from LCS (Office Communicator) to PSTN phones through CCM.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;What will not work?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul style="margin-top: 0cm" type="disc"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Transfer, conferencing and call forwarding from Office Communicator (LCS) side. [Requires a CSTA/3PCC gateway]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;First let’s check the network topology.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://blogs.msdn.com/photos/crisag/picture775429.aspx" target="_blank"&gt;&lt;img height="459" src="http://blogs.msdn.com/photos/crisag/images/775429/original.aspx" width="540" border="0"&gt;&lt;/a&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;Now the steps.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol style="margin-top: 0cm" type="1"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Open the Microsoft Office Live Communications Server 2005 MMC administrative console. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Expand the forest node, the domain node and the Live Communications Servers and Pools node.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Click with the right button on the LCS Pool and create an outbound static route pointing to the Cisco Call Manager with the following information:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;ul style="margin-top: 0cm" type="a"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;User: *&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Domain: &amp;lt;LCS POOL FQDN&amp;gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Next Hop IP address: the IP address used by Cisco Call Manager&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Next Hop Transport: TCP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Port: 5060&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;Phone URI: Checked&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;On the Host Authorization Tab, include the IP of the Cisco Call Manager as a Authorized Host. Use the following options:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;ol style="margin-top: 0cm" type="a"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Server IP Address: the IP address used by Cisco Call Manager&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Settings:&lt;/span&gt;  &lt;ul&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana; mso-fareast-font-family: verdana; mso-bidi-font-family: verdana"&gt;&lt;span style="mso-list: ignore"&gt;i.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Throttle as Server: Checked&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Treat as Authenticated: Checked&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Open the CCM Administration web page and create an incoming partition (probably it will already have one).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Create a new SIP Trunk with the following options:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 36pt; text-align: justify"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Device Information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 36pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol style="margin-top: 0cm" type="1" start="6"&gt; &lt;ol style="margin-top: 0cm" type="a"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Device name: LCSSIP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Device Pool: Default&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Call Classification: Use System Default&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Media Resource Group List: Select appropriate list.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Location: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;AAR Group: None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Media termination point required: Checked&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Destination address: the IP address used by LCS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Destination port: 5060&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Incoming port: 5060&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Outgoing transport type: TCP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level2 lfo1; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Preferred Originating codec: 711ulaw&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 36pt; text-align: justify"&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Call Routing Information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt; text-align: justify; mso-list: l0 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana; mso-fareast-font-family: verdana; mso-bidi-font-family: verdana"&gt;&lt;span style="mso-list: ignore"&gt;a.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Significant Digits: All&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt; text-align: justify; mso-list: l0 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana; mso-fareast-font-family: verdana; mso-bidi-font-family: verdana"&gt;&lt;span style="mso-list: ignore"&gt;b.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Connected Line ID Presentation: Default&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 72pt; text-indent: -18pt; text-align: justify; mso-list: l0 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana; mso-fareast-font-family: verdana; mso-bidi-font-family: verdana"&gt;&lt;span style="mso-list: ignore"&gt;c.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Connected Name Presentation: Default&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol style="margin-top: 0cm" type="1" start="7"&gt; &lt;li class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Create a Media Termination Point using the Add Media Termination Point on the CCM web administration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;You also need to setup a registry key (manually or using Group Policies) to enable the PC2Phone functionality on your Office Communicator. &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]&lt;br&gt;"EnablePC2Phone"=dword:00000001&lt;br&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;On the COMMUNICATOR.ADM template this configuration is named "Enable Computer to Phone Calls". &lt;/p&gt;&lt;/span&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Now go to the Office Communicator and just type the phone number on the Find box, click on Call to&amp;nbsp;place Voip or PSTN calls through the CCM 4.1. You will also notice that the combo box on the side of your contacts is now enabled.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify"&gt;&lt;span style="font-size: 10pt; font-family: verdana"&gt;Regards, Cris.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;span deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;font face="Verdana" size="3"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://blogs.msdn.com/photos/crisag/picture775429.aspx" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=775438" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Live Communicatios Server 2005" scheme="http://blogs.msdn.com/crisag/archive/tags/Live+Communicatios+Server+2005/default.aspx" /></entry><entry><title>Credential delegation and IIS Kerberos authentication</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/crisag/archive/2006/09/25/Credential-delegation-and-IIS-Kerberos-authentication.aspx" /><id>http://blogs.msdn.com/crisag/archive/2006/09/25/Credential-delegation-and-IIS-Kerberos-authentication.aspx</id><published>2006-09-26T01:29:00Z</published><updated>2006-09-26T01:29:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I’m back. I’d like to share with you some tips on how to enable Kerberos authentication and credential delegation on IIS6.0. I’ve been beating my head against the wall to see this thing working on one of our customers.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I didn’t know how much this kind of integrated authentication with Kerberos has to do with DNS and reverse resolution. When you find yourself with problems setting up Kerberos, ALWAYS check the DNS before start. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;One good KB article showing how to setup Kerberos and delegation is &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0cm" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Kerberos authentication and troubleshooting delegation issues http://support.microsoft.com/default.aspx?scid=kb;en-us;907272&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you are using ServerXMLHttp COM component as my customer was, keep in mind that you also need setup the WinInet proxy using proxycfg. The following articles show how to do that&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0cm" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;How To Use Kerberos with the ServerXMLHTTP Component in MSXML http://support.microsoft.com/default.aspx?scid=kb;en-us;314404 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You may need to run the Proxycfg tool for ServerXMLHTTP to work http://support.microsoft.com/kb/289481/EN-US/ &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Have you followed all the instructions and Kerberos is not working? I have another tip:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Call PSS and ask them for a copy of the DelegConfig Tool. It’s a great tool developed by Brian Murphy-Booth that check all the related settings to have Kerberos and delegation working.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Best Regards, Cris.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;SPAN deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Verdana size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;SPAN deactivatedstyle="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'MS Mincho'; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA"&gt;&lt;FONT face=Verdana size=3&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=771233" width="1" height="1"&gt;</content><author><name>crisag</name><uri>http://blogs.msdn.com/members/crisag.aspx</uri></author><category term="Internet Information Server" scheme="http://blogs.msdn.com/crisag/archive/tags/Internet+Information+Server/default.aspx" /></entry></feed>