<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Elan Shudnow's Blog &#187; OCS</title>
	<atom:link href="http://www.shudnow.net/tag/ocs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shudnow.net</link>
	<description>Just another IT guy!</description>
	<lastBuildDate>Fri, 30 Jul 2010 18:19:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Forcing Address Book Updates in Communicator 2007 R2</title>
		<link>http://www.shudnow.net/2010/01/20/forcing-address-book-updates-in-communicator-2007-r2/</link>
		<comments>http://www.shudnow.net/2010/01/20/forcing-address-book-updates-in-communicator-2007-r2/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 02:22:18 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=1616</guid>
		<description><![CDATA[Yes, this is old news and there&#8217;s about 462 blog entries (ok, that&#8217;s a made up number, but there are a lot) about how to force Communicator 2007 R2 to do an Address Book (Galcontacts.db) update.  These blog entries will talk about the July 2009 update for Communicator 2007 R2 and how it introduced a [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, this is old news and there&#8217;s about 462 blog entries (ok, that&#8217;s a made up number, but there are a lot) about how to force Communicator 2007 R2 to do an Address Book (Galcontacts.db) update.  These blog entries will talk about the <a href="http://support.microsoft.com/kb/972403/">July 2009 update for Communicator 2007 R2</a> and how it introduced a random delay of 0-60 minutes for Communicator 2007 R2 to download an updated GalContacts.db to prevent the network from getting hammered by so many clients downloading an updated GalContacts.db all at the same time.  And yes, these blog entries also talk about a registry entry you can create called GalDownloadInitialDelay and creating a Dword set to 0 in order to force Communicator to do an instant update.</p>
<p>Some blog articles that talk about this include:</p>
<p><a href="http://www.tincupsandstring.com/2009/12/01/forcing-address-book-download/">http://www.tincupsandstring.com/2009/12/01/forcing-address-book-download/</a></p>
<p><a href="http://www.markc.me.uk/MarkC/Blog/Entries/2009/12/17_Force_Downloading_the_Address_Book_in_OCS.html">http://www.markc.me.uk/MarkC/Blog/Entries/2009/12/17_Force_Downloading_the_Address_Book_in_OCS.html</a></p>
<p>Now I&#8217;m sure you are asking yourself why I am creating this entry?  Is it just to repeat information that&#8217;s already out there?  Of course not!</p>
<p>So, Communicator 2007 R2 is a 32-bit (x86) application.  That registry entry works perfectly fine on x86 systems.  But, if you are running on a x64 system, it won&#8217;t.  Why?  Well, because when you run x86 applications on a x64 based system, it utilizes a system in Windows called Windows on Windows (WOW64).  WOW64 has its own section within the registry called Wow6432Node.</p>
<p>So let&#8217;s say we take the registry key for our Communicator x86 (Communicator x64 not available) and run it on an x86 system.  The following registry key works fine:</p>
<div style="background-color: #dddddd;" dir="ltr">
<p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_CURRENT_USER\Software\Policies\Microsoft\Communicator]<br />
&#8220;GalDownloadInitialDelay&#8221;=dword:00000000</p>
</div>
<p>But let&#8217;s say we have an x64 system.  The above registry key will not work.  We need to utilize the WOW6432Node part of the registry.  The following registry key works for x64 systems:</p>
<div style="background-color: #dddddd;" dir="ltr">
<p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_CURRENT_USER\Software\Wow6432Node\Policies\Microsoft\Communicator]<br />
&#8220;GalDownloadInitialDelay&#8221;=dword:00000000</p>
</div>
<p>Please make sure you back up your registry before making changes as making changes to the registry can be harmful to your system if not done properly.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=1616&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2010/01/20/forcing-address-book-updates-in-communicator-2007-r2/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>OCS 2007 R2 Standard Edition Front End Automated Backups</title>
		<link>http://www.shudnow.net/2010/01/18/ocs-2007-r2-standard-edition-front-end-automated-backups/</link>
		<comments>http://www.shudnow.net/2010/01/18/ocs-2007-r2-standard-edition-front-end-automated-backups/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:22:04 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=1586</guid>
		<description><![CDATA[OCS 2007 R2 Standard Edition Front Ends utilize SQL 2005 Express with SP2 for storing its databases.  Unfortunately, with SQL Express, you will have to backup using SQL Server Management Studio or find an automated way.  This article will detail the steps I utilize to make backing up easier and automated. For information on how [...]]]></description>
			<content:encoded><![CDATA[<p>OCS 2007 R2 Standard Edition Front Ends utilize SQL 2005 Express with SP2 for storing its databases.  Unfortunately, with SQL Express, you will have to backup using SQL Server Management Studio or find an automated way.  This article will detail the steps I utilize to make backing up easier and automated. For information on how to back up OCS, please see the Backup and Restoration Guide <a href="http://go.microsoft.com/fwlink/?LinkID=154160">here</a>.</p>
<p>The following data will ultimately need to be backed up:</p>
<ol>
<li>Global Config</li>
<li>Pool Config</li>
<li>Machine Config</li>
<li>SQL Databases</li>
<li>Standard Edition File Shares</li>
</ol>
<p>The first command specifies the /level to be global and pool.  The second command specifies the /level to be machine.  What we will do is create a batch file (.bat) and place both commands in this .bat and have them run against the server every 6pm using scheduled tasks.</p>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>lcscmd /config /action:export /level:global,pool /configfile:&lt;drive&gt;:\&lt;path&gt;\&lt;filename&gt;.xml /poolname:[name of Standard Edition server, which is used for the pool name]</p>
</div>
</div>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>lcscmd /config /action:export /level:machine /configfile: &lt;drive&gt;:\&lt;path&gt;\&lt;filename&gt;.xml /fqdn:[FQDN of server from which settings are to be exported]</p>
</div>
</div>
<p>Our Servername is SHUD-OCSFE01.  The folder to store the backups is C:\OCSBackup.  We&#8217;ll also be running the batch file from the C:\OCSBackup.  Because the folder which contains lcscmde.exe is not a part of the system variables, we&#8217;ll have to specify the entire path for lcscmd.exe. Taking this information into consideration, our two commands for our batch file will be:</p>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>&#8220;C:\Program Files\Common Files\Microsoft Office Communications Server 2007 R2\LCSCmd.exe&#8221; /config /action:export /level:global,pool /configfile:C:\OCSBackup\SHUD-OCSFE01_GlobalPool_Backup.xml /poolname:SHUD-OCSFE01</p>
</div>
</div>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>&#8220;C:\Program Files\Common Files\Microsoft Office Communications Server 2007 R2\LCSCmd.exe&#8221; /config /action:export /level:machine /configfile:C:\OCSBackup\SHUD-OCSFE01_Machine_Backup.xml /fqdn:SHUD-OCSFE01.shudnow.net</p>
</div>
</div>
<p>After executing this .bat file, we can see the two files have been created.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_01.jpg" alt="" width="712" height="177" /></p>
<h3>SQL Databases</h3>
<p>The following is the list of SQL Databases that an OCS Standard Edition Front End uses:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_02.jpg" alt="" width="519" height="425" /></p>
<p>Because we are utilizing SQL Express, we will have to find some other method other than a backup agent to automate the backups. Much of the SQL Backup information is provided by the SQLDBATips Blog.  The following article I utilized is located <a href="http://www.sqldbatips.com/showarticle.asp?ID=27">here</a>.</p>
<p>Create a file with the extension of sql in our OCSBackup folder.  Also, create a new folder called C:\Reports for script reporting. I created a file C:\OCSBackup\ocssqlbackup.sql with the following text:</p>
<p><em>exec expressmaint<br />
@database      = &#8216;ALL_USER&#8217;,<br />
@optype        = &#8216;DB&#8217;,<br />
@backupfldr    = &#8216;c:\ocsbackup&#8217;,<br />
@reportfldr    = &#8216;c:\reports&#8217;,<br />
@verify        = 1,<br />
@dbretainunit  = &#8216;days&#8217;,<br />
@dbretainval   = 1,<br />
@rptretainunit = &#8216;weeks&#8217;,<br />
@rptretainval  = 1,<br />
@report        = 1</em></p>
<p><em><br />
exec expressmaint<br />
@database      = &#8216;ALL_USER&#8217;,<br />
@optype        = &#8216;LOG&#8217;,<br />
@backupfldr    = &#8216;c:\ocsbackup&#8217;,<br />
@reportfldr    = &#8216;c:\reports&#8217;,<br />
@verify        = 0,<br />
@dbretainunit  = &#8216;days&#8217;,<br />
@dbretainval   = 1,<br />
@rptretainunit = &#8216;days&#8217;,<br />
@rptretainval  = 1,<br />
@report        = 1</em></p>
<p>All of our OCS Databases are User Databases, not System Databases.  We can see this using SQL Server Management Studio which is not installed by default but can be downloaded from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&amp;displaylang=en">here</a>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_03.jpg" alt="" width="283" height="131" /></p>
<p><strong>Note</strong>: Keep in mind that we&#8217;re not using the default SQL Express instance of SQLExpress.  The OCS Front End Standard install will create and utilize an instance of RTC.</p>
<p>We now have our .SQL file created.  We&#8217;ll go ahead and create a new .bat file called ocssqlbackup.bat.  This batch file will run the following command:</p>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>&#8220;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe&#8221; -S.\RTC -i &#8220;c:\OCSBackup\ocssqlbackup.sql&#8221;</p>
</div>
</div>
<p>This won&#8217;t work just yet.  You can see in the .SQL file, it&#8217;s calling the stored procedure &#8220;expressmaint.&#8221;  We need to create this stored procedure within SQL.  SQLDBATips has the vbscript code in order to do that <a href="http://www.sqldbatips.com/displaycode.asp?ID=26">here</a>.  You take this code and save it as storemaint.sql.  Then run the following code:</p>
<div style="background-color: #dddddd;" dir="ltr">
<div style="background-color: #dddddd;" dir="ltr">
<p>&#8220;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe&#8221; -S .\RTC -i c:\ocsbackup\expressmaint.sql</p>
</div>
</div>
<p><strong>Note</strong>: The website that shows these instructions specify the -S.\ as -S.\SQLExpress.  Again, we&#8217;re not using the SQLExpress instance, but rather the RTC instance.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_04.jpg" alt="" width="829" height="329" /></p>
<p>You can delete the expressmain.sql file now.  This is a permanent change in our instance and we won&#8217;t need to run the expressmain.sql script again.</p>
<p>We should now be able to run our SQL backup batch file as our .sql command that specifies our databases and logs has been created and our batch file to call sqlcmd.exe to execute our .sql file has been created.</p>
<p>We can see our ocssqlbackup.bat file successfully runs and creates backups of our databases.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_05.jpg" alt="" width="675" height="539" /></p>
<h3>Scheduled Tasks</h3>
<p>We obviously want to keep backing up our databases every night in case something goes wrong.  We&#8217;ll create two scheduled tasks.  One that runs ocsbackup.bat for our global, pool, and machine specific information.  And the other that runs our SQL Backups.</p>
<p>I am launching the Task Scheduler from Server Manager (I am using Server 2008 but you can access Task Scheduler on Windows 2003 by going to Control Panel).</p>
<p>Create a Basic Task and give it a name.  We&#8217;ll name this OCS Backup.  Click <strong>Next </strong>to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_06.jpg" alt="" width="700" height="481" /></p>
<p>Specify how often you want the task to run.  I typically run it Daily. Utilize whatever method works best for your organization. Click <strong>Next </strong>to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_07.jpg" alt="" width="700" height="482" /></p>
<p>Choose what time the Daily Task will run.  Again, choose whatever time works best for your organization. Click <strong>Next </strong>to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_08.jpg" alt="" width="700" height="221" /></p>
<p>We&#8217;ll want to run the script.  Because of this, choose &#8220;Start a program.&#8221; Click <strong>Next </strong>to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_09.jpg" alt="" width="700" height="240" /></p>
<p>Specify the path to our batch file. Click <strong>Next </strong>to <strong>Continue</strong>. Review the Settings and then <strong>Click Finish</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_10.jpg" alt="" width="700" height="240" /></p>
<p>You can then forcefully run the Scheduled Task to ensure it runs.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_11.jpg" alt="" width="457" height="231" /></p>
<p>Now don&#8217;t forget to create the second scheduled task to run the batch file for SQL Backups!</p>
<p>Your OCSBackup folder should look something like this after your scheduled tasks run and your data is backed up.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_13.jpg" alt="" width="676" height="298" /></p>
<h3>Backing up your data to a remote Backup Server</h3>
<p>Now what good is having all this data backed up onto the OCS File System if OCS crashes?  No good!  We&#8217;ll still want to take your backup system and back up all these files including the OCS Standard Edition File Shares.  Now keep in mind that you will want to back up all of these files at some time after your batch files are set to run in Scheduled Tasks.  For example, my Scheduled Tasks are set to run at 8pm.  The batch files do not take long to run.  You can have your backup set to run at 8:30pm or 9:00pm.  Be sure to test and validate this is working as intended and you are getting successful backups.</p>
<p>The Standard Edition File Shares you will want to backup include:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSFEBackup_12.jpg" alt="" width="661" height="1001" /></p>
<p>So to sum it up, you will want back up all the above file locations and your OCSBackup folder.  Backing up your Reports folder is optional. But again, keep in mind you will want to run this file level backup after all your Scheduled Tasks are successfully run.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=1586&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2010/01/18/ocs-2007-r2-standard-edition-front-end-automated-backups/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>OCS 2007 R2 Load Balancing &#8211; Response Group Service Unavailable</title>
		<link>http://www.shudnow.net/2009/10/19/ocs-2007-r2-load-balancing-response-group-service-unavailable/</link>
		<comments>http://www.shudnow.net/2009/10/19/ocs-2007-r2-load-balancing-response-group-service-unavailable/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 16:09:22 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=1307</guid>
		<description><![CDATA[I ran into an issue where we had two OCS 2007 R2 Front End Servers behind an F5 Load Balancer.  We kept getting &#8220;This service is temporarily unavailable&#8221; from our Communicator Clients after we configured the Communicator 2007 R2 Response Group Tab.  For those that are unfamiliar with this tab, it is a web based [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an issue where we had two OCS 2007 R2 Front End Servers behind an F5 Load Balancer.  We kept getting &#8220;This service is temporarily unavailable&#8221; from our Communicator Clients after we configured the Communicator 2007 R2 Response Group Tab.  For those that are unfamiliar with this tab, it is a web based extension to the Communicator interface that allows users to log in and out of groups.  For more information about the Response Group Tab, click <a href="http://technet.microsoft.com/en-us/library/dd425284(office.13).aspx">here</a>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSRSGHWLB01.jpg" alt="" width="362" height="745" /></p>
<p>If we take a look at the F5 documentation for OCS 2007 R2 <a href="http://www.f5.com/pdf/deployment-guides/f5-ocs-r2-dg.pdf">here</a>, we see the following configuration requires for the Response Group Service (RGS):</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSRSGHWLB02.jpg" alt="" width="708" height="158" /></p>
<p>What this is saying, is that our client will be connecting over 5071 TCP to our Load Balancer in order to communicate with the RGS.  This is incorrect!  5071 TCP is indeed used for Response Group Service communication, but this is only for Front End to Front End server communication.  The RGS has something called a matchmaking service.  The service on the client is just a website that communicates to the Load Balancer over port 443.  So, the million dollar question&#8230; Why do we get a service unavailable?</p>
<p>When you&#8217;re dealing with the RGS, each Front End Server has a Matchmaking service.  From the Technet Documentation:</p>
<blockquote>
<div>Each Front End Server has a Match Making service, which is an internal service that is  responsible for queuing calls and finding available agents. Only one Match Making service per  pool is active at a time&#8211;the others are passive. If a Front End Server with the  active Match Making service becomes unavailable, one of the passive Match Making services  becomes active. The Response Group Service does its best to make sure that call  routing and queuing continues uninterrupted. However, there may be instances  when active calls are lost as a result of the transition. Any calls that are in  transfer when the service transition occurs are lost. If the transition is due  to the Front End Server going down, any calls currently being handled by the  active Match Making service on that Front End Server are also lost.</div>
</blockquote>
<p>The Match Making service is what utilizes 5071 TCP.  But as stated earlier, this is only for Front End Server to Front End Server communication.  Our Front End Servers need to be able to communicate with each other without traversing the load balancer.  This means that that each server must be able to contact DNS, get the IP of the other server, and then communicate with that IP over 5071.  This is key as to why we&#8217;re encountering the issue.</p>
<p>Sometimes, depending on the environment, servers behind load balancers will have multiple IPs assigned.  One for connectivity from the load balancer and another IP for other server operations such as management.  These Front End Servers had their default gateways set to the F5 and each Front End IP that was used for the F5 were on different segments.  The problem here is when one Front End tried to communicate to the other Front End, it would query DNS and get the IP and it would route to the F5.  The F5 would then route it back but the Front End Server saw it coming from the load balancer and think it&#8217;s an unauthorized server for RGS requests.  This is why Communicator would see the service as unavailable.</p>
<p>There are a few ways to fix this issue:</p>
<ul>
<li>Modify hosts file on each Front End Server so they are communicating to the correct IP which are on the same segment</li>
<li>Rework your load balancing configuration so the Front End Servers only use 1 IP which is where the load balancer sends the traffic and have the Front End IPs be able to directly talk to each other.</li>
<li>Modify DNS so all the traffic destined to the FQDN of the Front End Server would go directly to the Front End IP which is on the same segment as the other Front End IP.</li>
<li>If you must keep both Front End Servers on separate subnets and have them route through the load balancer, if possible, modify the load balancer so the requests appear to be coming from the original host that sent the request instead of the load balancer.</li>
</ul>
<p>When it comes down to it, you just need to make sure that when 1 Front End Server talks to another, it needs to appear that it is coming from the other Front End Server instead of the load balancer so that it is an authorized host for RGS requests over 5071 TCP.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=1307&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/10/19/ocs-2007-r2-load-balancing-response-group-service-unavailable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Office Communications Server 2007 R2 Audio/Media Negotiation</title>
		<link>http://www.shudnow.net/2009/08/29/office-communications-server-2007-r2-audiomedia-negotiation/</link>
		<comments>http://www.shudnow.net/2009/08/29/office-communications-server-2007-r2-audiomedia-negotiation/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 22:27:30 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=1203</guid>
		<description><![CDATA[There are several ways in which we can utilize Audio/Video streams in Office Communications Server.  While this article is based off of R2, the same &#8220;should&#8230; but not verified&#8221; work the same in OCS 2007 R1.  There aren&#8217;t really any places out there that describe how the media session works in different circumstances.  For example, [...]]]></description>
			<content:encoded><![CDATA[<p>There are several ways in which we can utilize Audio/Video streams in Office Communications Server.  While this article is based off of R2, the same &#8220;should&#8230; but not verified&#8221; work the same in OCS 2007 R1.  There aren&#8217;t really any places out there that describe how the media session works in different circumstances.  For example, what servers and ports are utilized when doing Audio/Video through the Live Meeting 2007 client when connected to the On-Premise Web Conferencing feature in OCS 2007 R2?  How about when you do a peer to peer with both users being internal to the network?  How about both users being external to the environment and connecting through the Edge?  How about when you do a peer to peer with one user being internal and one user being external?  Want to know?  Read on&#8230;</p>
<h3>Media Ports and Restricting Amount of Ports Being Used</h3>
<p>The first thing to understand is that in OCS 2007 R2 (the same applies for R1), when a user attempts to activate any type of audio and/or video, they first attempt a peer to peer session.  The ports utilized here are TCP/UDP 1024-65535.  You can see what ports are used for OCS 2007 R2 <a href="http://technet.microsoft.com/en-us/library/dd425238%28office.13%29.aspx">here</a> and <a href="http://technet.microsoft.com/en-us/library/dd572230%28office.13%29.aspx">here</a>.  This port range is utilized mainly for users who are internal to the network.  If you want users to utilize peer to peer audio while internal to the network, you must ensure that this port range is open even if users are in different sites.</p>
<p>But what if you don&#8217;t want this entire port range open between your sites?  You can utilize Group Policy to limit the amount of ports that are being used.  These two settings include:</p>
<ul>
<li><strong><span>PortRange/MaxMediaPort </span></strong></li>
<li><span><strong><span><span>PortRange/MinMediaPort</span></span></strong>
<p></span></li>
</ul>
<p>The above group policy settings modify the following three registry keys:</p>
<ul>
<li><strong>HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Communicator\Portrange\Enabled REG_DWORD 1</strong></li>
<li><strong>HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Communicator\Portrange\MaxMediaPort REG_DWORD 40039 (for example)</strong></li>
<li><strong>HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Communicator\Portrange\MinMediaPort REG_DWORD 40000 (for example)</strong></li>
</ul>
<p><strong>Note</strong>: Both clients must have these registry keys set in order for the modified port range to take effect.</p>
<p>You must have at least 40 ports open which is an IETF Interactive Connectivity Establishment (ICE) protocol requirement to ensure that Audio/Video port negotiation works for peer to peer while internal to the network.  ICE is a protocol that provides a mechanism for firewall or NAT traversal.  The RFC draft for this protocol can be found <a href="http://www.rfc-editor.org/internet-drafts/draft-ietf-mmusic-ice-19.txt">here</a>.</p>
<h3>Audio/Video Connectivity Scenarios</h3>
<h4>Two Users Internal to the Network (media ports open)</h4>
<p>When these two users are internal , they will attempt peer to peer.  Because they can successfully connect to each other, they utilize peer to peer media.  This is why OCS scales pretty high; because a lot of connections are one to one which means that peer to peer media connections are never bridged through the server.  Because these users connect directly to each other for media, they have no need to connect to the Edge.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation01.jpg" alt="" width="214" height="331" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h4>Audio/Video through the Web Conferencing Server</h4>
<p>When users are connected through On-Premise Web Conferencing and activate Live Meeting (when internal or external&#8230; doesn&#8217;t matter), they are connecting directly through the Front End&#8217;s Conferencing MCU&#8217;s.  Because of this, even when it&#8217;s two users, the user&#8217;s are still connecting to the Front End MCUs.  If both user&#8217;s are external, they still connect through the Front End MCUs but are proxied through the Edge Server.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation02.jpg" alt="" width="207" height="376" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h4>Two Users Internal to the Network and Any Users External to the Network</h4>
<p>As previously stated, any time you have more than two users, peer to peer is no longer utilized and users always connect directly to the MCU on the Front End Servers.  This means that both users internal to the network will connect to their Front End server(s) and the external user will connect to the Front End server as well utilizing the Edge Server for proxying to the Front End.  There is absolutely no peer to peer connectivity in this situation.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation03.jpg" alt="" width="206" height="375" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h4>Two Users on the Internet</h4>
<p>When these two users are external , they will attempt peer to peer.  Because they can successfully connect to each other, they utilize peer to peer media.  This is why OCS scales pretty high; because a lot of connections are one to one which means that peer to peer media connections are never bridged through the server.  Because these users connect directly to each other for media, they have no need to connect to the Edge for Audio/Video.  You will still see the user connected to the Access/Edge over port 443 and/or 5061 (if these are your remote access port and federation port if you are using federation).  When users are connected through On-Premise Web Conferencing and activate Live Meeting, they are connecting directly through the Front End&#8217;s Conferencing MCU&#8217;s.  The Front End will have a certificate that contains the Pool Name and will/can contain SAN names for additional SIP domains that you may contain.  Because of this, SAN names are supported on Front End Servers.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation04.jpg" alt="" width="213" height="373" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h4>Two Users Internal to the Network (media ports closed)</h4>
<p>When these two users are internal , they will attempt peer to peer.  During their ICE negotiation, as previously stated, they will know the Internal Edge NIC in case their peer to peer connectivity fails. Because they fail to connect to each other, they will connect to the internal Edge NIC over either UDP 3478 or TCP 443.  ICE has a mechanism where it will test a lot of candidates to see where connections should be made.  ICE will test UDP 3478 and TCP 443 in parallel and if UDP 3478 works, the client will receive UDP 3478 due to it having less overhead.  If UDP 3478 does not work, the client will receive TCP 443.   If you anticipate on blocking ports between your users, make sure your Edge Server can scale high enough to deal with the amount of Audio/Video connections it will be handling.  To block one of your sites from doing peer to peer with other sites, block the peer to peer port range (discussed at the beginning of this article) from that site and block that site from communicating over UDP 3478 and TCP 443 to the Edge Server.  This will prevent clients from doing any type of media communication from user&#8217;s outside of their own site.  If you want to allow them to do peer to peer for users in some sites, modify the firewall ACLs accordingly for those sites.</p>
<p><strong>Note</strong>: Diffserv markings for Quality of Service (QoS) are lost through an Audio/Video Edge Server.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation05.jpg" alt="" width="210" height="325" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h4>One User External and One User Internal</h4>
<p>When one user is internal and one user is external , they will attempt peer to peer but not in the same sense as in two internal users. The external user will hit TCP 5061 to the Access Edge Server and will be provided with either UDP 3478 or TCP 443 for the Audio/Video Edge.  As stated earlier, UDP 3478 is preferred even if the connection test for TCP 443 and UDP 3478 were successful in testing.  If you attempt a telnet edgeserver.domain.com over the Internet, telnet will fail to connect.  This is because telnet uses TCP.  You can do a netstat -an to see your server listening on UDP 3478 and utilize a different program such as netcat which can attempt telnet to UDP by using netcat -u host 3478.  More information on netcat <a href="http://en.wikipedia.org/wiki/Netcat">here</a>.</p>
<p>Moving on&#8230; we see that the user will connect to the A/V Edge over UDP 3478 or TCP 443, but what about the internal user?  Because this is technically peer to peer, the internal user will NOT connect to the MCU on the Front End but will instead connect directly to the A/V Edge Server&#8217;s Internal NIC over UDP 3478 or TCP 443 as well.  The Front End A/V MCU will not be used in this scenario.  When you add a 3rd person to the conversation, the external user will connect to the Front End Server&#8217;s A/V MCU in which the A/V Edge will proxy this data for the user, and the internal users will connect to the Front End A/V MCU instead of the Internal Edge NIC.</p>
<p><strong>Note</strong>: Diffserv markings for Quality of Service (QoS) are lost through an Audio/Video Edge Server.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSMediaNegotiation06.jpg" alt="" width="215" height="367" /></p>
<p><strong>Note</strong>: The red arrow signifies a successful media connection only.  The diagram does not reference any other signaling such as SIP.</p>
<h3>Issue to be aware of</h3>
<p>Certain certificate vendors like to add www automatically to the CN of your certificate request with consent from the person requesting the certificate.</p>
<p>So for example, our certificate request for a regular certificate (non SAN) was CN=Servername.domain.com.  These vendors provided the following certificate:</p>
<ul>
<li>CN=Servername.domain.com</li>
<li>SAN=www.Servername.domain.com</li>
</ul>
<p>Now this is where you can run into an issue when doing peer to peer and falling back to the internal Edge NIC or when one person is on the Internet and one person is internal while using Communicator.  Some certificate vendors like to assign a www as a SAN name to your regular (non-SAN) cert.  So if you requested a CN of Servername.domain.com, these vendors will automatically add www in front of your CN.  This messes up peer to peer audio/video negotiation.</p>
<p>This is important to remember when getting a 3rd party certificate for the Internal Edge NIC.  It is not supported to have anything other than a CN for this certificate.  The reason why is ICE negotiation will not work properly.  Because the www.servername.domain.com will be there as a SAN, the client will be provided the www.servername.domain.com name for ICE connectivity to the internal Edge NIC which will obviously fail.  Because of this, the scenarios above which utilize the Internal Edge NIC will fail.  To recap, the following two scenarios end up using the Internal Edge NIC:</p>
<ul>
<li>One user internal to the network and one user external to the network</li>
<li>Internal users attempting to do peer to peer (media ports being closed) and falling back to the Internal Edge NIC</li>
</ul>
<p>There are a few ways to fix/workaround the problem:</p>
<ul>
<li>Use a Windows PKI implementation for Internal Edge NIC</li>
<li>Deal with the SAN name but use a CNAME for www.servername and redirect that to the servername HOST/A record using Internal DNS to do this as you are dealing with the Internal Edge NIC.</li>
<li>If the vendor doesn&#8217;t add www to their SAN certs, you can get a SAN cert only with the CN filled out</li>
<li>Go with a different vendor that doesn&#8217;t automatically add www to their regular certificates.</li>
</ul>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=1203&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/08/29/office-communications-server-2007-r2-audiomedia-negotiation/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Create Pool &#8211; Run on OCS or SQL Server?</title>
		<link>http://www.shudnow.net/2009/06/01/create-pool-run-on-ocs-or-sql-server/</link>
		<comments>http://www.shudnow.net/2009/06/01/create-pool-run-on-ocs-or-sql-server/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 00:54:15 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=1098</guid>
		<description><![CDATA[The guidance around where to create your pool and why can be quite confusing. If you look at the OCS R1 requirements for deploying an Enterprise Pool, it tells you the following: If you are using a 32-bit version of SQL Server, log on to your Office Communications Server Back-end Database server as a member [...]]]></description>
			<content:encoded><![CDATA[<p>The guidance around where to create your pool and why can be quite confusing.</p>
<p>If you look at the OCS R1 requirements for deploying an Enterprise Pool, it tells you the following:</p>
<ul>
<li>If you are using a 32-bit version of SQL Server, log on to your Office Communications Server Back-end Database server as a member of the Domain Admins group.</li>
<li>If you are using a 64-bit version of SQL Server, create the pool by using a computer with a 32-bit processor, such as the computer that you plan to use as the Front End Server. Log on to the 32-bit processor computer as a member of RTCUniversalServerAdmins and Domain Admins group and with user rights to create and modify SQL Server databases.</li>
</ul>
<p>If you look at the OCS R2 requirements for deploying an Enterprise Pool, it tells you the following:</p>
<ul>
<li>If you are using a 64-bit version of SQL Server, log on to your Office Communications Server Back-end Database as a member of RTCUniversalServerAdmins and DomainAdmins group.</li>
<li>If you are using a 32-bit version of SQL Server, create the pool by using the computer that you plan to use as the Front End Server. Log on to this computer as a member of RTCUniversalServerAdmins and Domain Admins group and with user rights to create and modify SQL Server databases.</li>
</ul>
<p>As you can see, it’s a complete 180 between R1 and R2.  To make it easier to digest, here&#8217;s an easier format to see what you should do:</p>
<p>OCS R1 with SQL 32-bit – Create Pool on SQL<br />
OCS R1 with SQL 64-bit – Create pool on OCS FE</p>
<p>OCS R2 with SQL 32-bit – Create Pool on OCS FE<br />
OCS R2 with SQL 64-bit – Create Pool on SQL</p>
<p>The reason why it&#8217;s a complete 180 is because Microsoft wants you to run the installer on the native platform of the installer.  OCS R1 is 32-bit so you always want to run the installer on a 32-bit machine.  OCS R2 is 64-bit so you always want to run the installer on a 64-bit machine.</p>
<p>But the million dollar question is, is it really necessary to run it from the Backend?  Does that mean you have to insert your OCS CD, install .Net Framework, Visual C++, etc&#8230;.  Well, you could, but you  can use LCSCMD to configure your pool instead.  LCSCMD is on your CD and you can just open a cmd prompt, navigate to your cd-rom, and run the LCSCMD command with the appropriate settings to configure your pool without needing to install at the tools the installer GUI would require.  LCSCMD would also bypass the requirement from running the installer on the same processor platform (x86/x64.) You can refer to the following article <a href="http://technet.microsoft.com/en-us/library/dd572486(office.13).aspx">here</a> for information on how to use LCSCMD to create an Enterprise Pool.</p>
<p>But, that doesn&#8217;t really explain why it is recommended running it on the Backend. After talking with Ken Alverson from Microsoft about this, I learned a few things.  The reason they recommend to create the pool on the SQL Server is to minimize the possibility of firewall/permissions from interfering.  The Create Pool requires access to both SQL as well as WMI.  You can technically open up all the ports to SQL as well as WMI and run Configure Your Pool from your OCS Server.  This is what I did but instead of opening it completely, I  ran Network Monitor to determine what ports to open.  You could also disable your Windows Firewall on your SQL Server to ensure access to your SQL Server.  Never disable the firewall service on Server 2008 as this disrupts proper communication.  Either turn the firewall off or go into the advanced firewall in the administrative tools and open everything up.</p>
<p>So in short, you have the following options with OCS R2:</p>
<ol>
<li>Turn off firewall on SQL (don&#8217;t disable firewall service) and install from OCS Server (lowers security but easiest to do.)  After the pool is created, you can re-enable your firewall as long as you follow the OCS documentation (installation guide for Enterprise Edition) and open the necessary ports.)</li>
<li>Allow SQL Ports and WMI to traverse SQL Firewall (more secure than #1 but less easy to do)</li>
<li>Run Create Pool from SQL Server via the GUI Installer (more secure than #1 and #2 but not an option I like due to it installing GUI prerequisites)</li>
<li>Run Create Pool from LCSCMD via the CD which will install a SQL prerequisite I believe (most secure option but requires knowledge of the LCSCMD command.)  You can refer to the following article <a href="http://technet.microsoft.com/en-us/library/dd572486(office.13).aspx">here</a> for information on how to use LCSCMD to create an Enterprise Pool.</li>
</ol>
<p>I would appreciate if readers can make a quick comment on what method you use.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=1098&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/06/01/create-pool-run-on-ocs-or-sql-server/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Office Communications Server 2007 R2 Group Chat Deployment &#8211; Part 2</title>
		<link>http://www.shudnow.net/2009/03/18/office-communications-server-2007-r2-group-chat-deployment-part-2/</link>
		<comments>http://www.shudnow.net/2009/03/18/office-communications-server-2007-r2-group-chat-deployment-part-2/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 03:42:05 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=942</guid>
		<description><![CDATA[Welcome to Part 2 of this article series. In Part 1, we started off by preparing our servers in preparation for OCS Group Chat Installation. We created our services, created our SQL Database, and assigned permissions. In this Part, I will go over the installation of our Group Chat Server and Administrative Tools. Part 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Part 2 of this article series. In Part 1, we started off by preparing our servers in preparation for OCS Group Chat Installation. We created our services, created our SQL Database, and assigned permissions.</p>
<p>In this Part, I will go over the installation of our Group Chat Server and Administrative Tools.</p>
<p><a href="http://www.shudnow.net/2009/03/08/office-communications-server-2007-r2-group-chat-deployment-part-1/">Part 1</a></p>
<p>Part 2</p>
<h3><span style="text-decoration: underline;">Group Chat OCS 2007 R2 Server Installation</span></h3>
<p>When installing OCS R2 Group Chat  and running the setup executable, you will be asked to install several pieces of software to prepare the environment.</p>
<p>You will be asked to install the Microsoft Visual C++ 2008 Redistributable. Click <strong>Yes</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_02.jpg" alt="" width="390" height="138" /></p>
<p>You will then be asked to install the Microsoft .NET Framework 3.5. Click <strong>Yes</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_03.jpg" alt="" width="410" height="139" /></p>
<p>You will then be asked to install the Microsoft Unified Communications Managed API 2.0 Core Redist 64-bit version.  Click <strong>Yes</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC01.jpg" alt="" width="412" height="163" /></p>
<p>Once Microsoft Unified Communications Managed API 2.0 , you will be presented with the Welcome screen which will begin the installation process.  Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>The next screen is the licensing screen.  Make sure you fully read the entire agreement!  Once you have done so (and I know you will, right?) Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>Enter your Username and Company information. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>Enter the installation path you want the binaries installed to. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>When the feature screen appears, you have 2 choices which are both selected at the same time.  Keep in mind, that you must disable one of the options.  You cannot have both the Chat Server and the Compliance Server collocated on the same box.  Make sure the Chat Server is selected and the Compliance Server is not selected.  We will be installing the Compliance Service in the next Part.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><strong><img class="alignnone" src="http://www.shudnow.net/images/OCSGC02.jpg" alt="" width="535" height="423" /></strong></p>
<p>Confirm your installation.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>Installation is ready to proceed.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><strong><img class="alignnone" src="http://www.shudnow.net/images/OCSGC04.jpg" alt="" width="537" height="424" /></strong></p>
<p>During the installation, you will see the Server Configuration wizard appear.  Because we chose the Chat Server to be installed, you will see three Server/Service roles being installed:</p>
<ul>
<li>Lookup Server</li>
<li>Channel Server</li>
<li>Web Service</li>
</ul>
<p>Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC05.jpg" alt="" width="627" height="389" /></p>
<p>We now want to specify what SQL Instance we want to use.  One thing to keep in mind is to take a look at the collocation technet article to see how databases can be collocated on the same SQL box.  You can find this article <a href="http://technet.microsoft.com/en-us/library/dd425201(office.13).aspx">here</a>.  You can see the following databases can be on the same SQL Box:</p>
<ul>
<li>Archiving database</li>
<li>Monitoring database</li>
<li>Group Chat database</li>
<li>Compliance database (for Group Chat)</li>
</ul>
<p>One thing to keep in mind here, is that for each database, it requires its own instance.  In the case of Group Chat database and the Compliance Database, the Compliance Database can be a dedicated database or it can be the same database as the Group Chat database.  In Part 2, we will be using the Group Chat database as the Compliance database.</p>
<p>As you may recall from the OCS R2 Enterprise article series <a href="http://www.shudnow.net/2009/01/05/office-communications-server-2007-r2-enterprise-deployment-part-1/">here</a>, we&#8217;re using a SQL 2008 x64 Back End.  Make sure port 1433 is allowed inbound.  Instructions on how to do this are documented in that article series.</p>
<p>Specify your Server\Instance and Database.  As stated, I&#8217;m just using the default instance for everything since it&#8217;s a lab.  Specify your settings accordingly.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC06.jpg" alt="" width="630" height="390" /></p>
<p>The next screen will just notify you that your databases are empty and that it will create the schema information.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>We will want to specify a Super User.  It&#8217;s pretty obvious what this user is.  It&#8217;s essentially the Administrator account in AD.  The first time you create AD, you will log in with the Administrator account and start creating other Administrator accounts from there.  The Super User is the same thing.  Because this is a lab, I am using the Administrator account to manage everything.  So in the User name field, I specified my Administrator account and clicked Add. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><strong><img class="alignnone" src="http://www.shudnow.net/images/OCSGC14.jpg" alt="" width="630" height="391" /></strong></p>
<p>Specify the name of your pool and the MTLS Certificate that will be used by your Group Chat Server.  You will need to create this certificate beforehand by using LCSCMD, CertSRV website for an internal CA, or using the OCS Administrative Tools.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC15.jpg" alt="" width="630" height="478" /></p>
<p>Remember I said the Lookup Service is the one service that will be utilized across all Group Chat Servers and that it also needs to be SIP Enabled?  Well now is the time to enter in the Lookup Service credentials and SIP information. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC16.jpg" alt="" width="629" height="391" /></p>
<p>Do the same for your Channel Service. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC17.jpg" alt="" width="634" height="391" /></p>
<p>On the next screen, we&#8217;ll be asked for our Compliance settings.  Because this is the first Group Chat Server and we have not yet deployed our Compliance Server, we&#8217;ll leave these settings blank and re-visit the configuration later.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p>Specify the  directory that will be used for uploads to the Web Service.  You will want to use a UNC path, especially if you&#8217;re using multiple Group Chat Servers.  I created a shared folder called WebService.  You will need to ensure your Channel Service has read/write to this share (both Share and NTFS permissions.) Click <strong>Next</strong> to <strong>Continue. </strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC18.jpg" alt="" width="631" height="391" /></p>
<p>Review your settings. Click <strong>Finish</strong> to <strong>Continue. </strong>When finished installing, Click <strong>Close</strong>.</p>
<p>You will want to ensure that Anonymous Authentication is enabled in IIS on your MGCWebService directory in your Default Web Site.  After doing so, you will want to use your Channel Service account as the credentials used for Anonymous Authentication.  It doesn&#8217;t have to be the Channel Account, but just an account that has RTCComponentUniversalServices permissions because the account needs to access the file repository and Message Queuing.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC19.jpg" alt="" width="560" height="459" /></p>
<h3><span style="text-decoration: underline;">Group Chat OCS 2007 R2 Administrative Tools</span></h3>
<p>As most of the other client and administrative tools installations, I won&#8217;t go over the installation procedures as they&#8217;refairly straightforward.  So go ahead and install the Administrative Console.  I have installed it on our SHUD-PG1 Server which is the server we installed the Group Chat Server on.</p>
<p>Once installed, go to <strong>Start </strong>&gt; <strong>Programs</strong> &gt; <strong>Microsoft Office Communications Server R2</strong> &gt; <strong>Microsoft Office Communications Server R2, Group Chat Administration Tool </strong></p>
<p>Once you open it, Group Chat Administration will always be set to do an Automatic Logon and use the existing signed on account.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC20.jpg" alt="" width="440" height="259" /></p>
<p>You may have trouble getting this part to work properly.  This is my 2nd time installing and getting Group Chat to work so I&#8217;ve went through the pain to get everything to work properly and seamlessly off the bat.  The trick is, during Group Chat installation, you gave it a super user.  You&#8217;ll want this to be your Administrator account you&#8217;re using to install Group Chat and the system that you will be loading the Administration Tool.  Only a super user can load up the Administrative Tool.  So if you set your Administrator account that you log onto which is also SIP enabled as the Super User, and are logged onto that account when loading up Administrative Tool, everything will just work.</p>
<p>If Automatic Configuration does not work, you can set the Account to Manual Configuration and manually configure the account to use for log-on, DC to use, etc&#8230;</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC21.jpg" alt="" width="712" height="505" /></p>
<p>You can now create new Chat Rooms on the left, add new Super Users, Chat Room Managers, etc..</p>
<h3><span style="text-decoration: underline;">Summary</span></h3>
<p>Well folks, that is all for Part 2 of this article as well as the 2 part article series.  Hopefully it helps you plan and deploy Group Chat.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=942&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/03/18/office-communications-server-2007-r2-group-chat-deployment-part-2/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Office Communications Server 2007 R2 Group Chat Deployment &#8211; Part 1</title>
		<link>http://www.shudnow.net/2009/03/08/office-communications-server-2007-r2-group-chat-deployment-part-1/</link>
		<comments>http://www.shudnow.net/2009/03/08/office-communications-server-2007-r2-group-chat-deployment-part-1/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 04:09:48 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=928</guid>
		<description><![CDATA[Now that Office Communications Server (OCS) 2007 R2 is RTM, and that I have already created an article series on how to deploy OCS R2 Enterprise Edition Front End Servers and Edge Servers here, I thought it would be nice to create an article on how to deploy a Group Chat Server with Compliance which [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Office Communications Server (OCS) 2007 R2 is RTM, and that I have already created an article series on how to deploy OCS R2 Enterprise Edition Front End Servers and Edge Servers <a href="http://www.shudnow.net/2009/01/05/office-communications-server-2007-r2-enterprise-deployment-part-1/">here</a>, I thought it would be nice to create an article on how to deploy a Group Chat Server with Compliance which is connected to an x64 SQL Server 2008 RTM Back-End Server.</p>
<p>This article series is to guide you through the entire OCS Group Chat deployment process from scratch. Part1 will include the necessary pre-work that is required in order to begin the installation states of the Chat Server. This includes:</p>
<ol>
<li>Creating our SQL Database</li>
<li>Creating our Group Chat Services and assigning the necessary permissions on SQL and our Group Chat Server</li>
</ol>
<p>Part 1</p>
<p><a href="http://www.shudnow.net/2009/03/18/office-communications-server-2007-r2-group-chat-deployment-part-2/">Part 2</a></p>
<h3><span style="text-decoration: underline;">Lab Setup</span></h3>
<h4>Guest Virtual Machines</h4>
<p>There will be two new virtual machines being introduced into the same lab I set up for my OCS R2 Article series which is located <a href="http://www.shudnow.net/2009/01/05/office-communications-server-2007-r2-enterprise-deployment-part-1/">here</a>.  The same exact lab set up you see in that article series still exist in this lab environment.  The only difference is one out of my two Domain Controllers is running Server 2008 R2 Beta.  The Certificate Services Domain Controller is still running Server 2008.</p>
<p>Two new virtual machines will be introduced.  Two Server 2008 Enterprise (Standard can be used) x64 (x64 required) Member Servers.  One server will contain Group Chat and the other server will contain the Compliance Service.  The Compliance Service requires a dedicated server; something I hope changes in the future.  Both servers will contain a single NIC.</p>
<h4>Assumptions</h4>
<ul>
<li>You have a domain that contains at least one Server 2003 SP2 Domain Controller (DC)</li>
<li>You have configured the IP settings accordingly for all servers to be on the same subnet. I have provided the IP scheme of my lab below, but this will vary depending on your needs and Virtualization Software configuration.</li>
<li>You have at least SQL 2005 SP2 server installed. We will be using SQL 2008 installed on Server 2008 Enterprise.</li>
<li>You have a copy of Office Communicator (OC) 2007 R2 Group Chat.  We will be installing our copy of Group Chat client on our Exchange CAS.</li>
</ul>
<h4>Computer Names</h4>
<p>OCS R2 Group Chat Server &#8211; SHUD-OCSPG1</p>
<p>OCS R2 Compliance Server &#8211; SHUD-OCSPG2</p>
<h4>Configuration of OCS 2007 R2 Group Chat Server</h4>
<p><strong>Processor:</strong> 4</p>
<p><strong>Memory: </strong>512MB</p>
<p><strong>Network Type</strong> <strong>-</strong><strong> </strong>External NIC</p>
<h4>Configuration of OCS 2007 R2 Compliance Server</h4>
<p><strong>Processor:</strong> 4</p>
<p><strong>Memory: </strong>512MB</p>
<p><strong>Network Type</strong> <strong>-</strong><strong> </strong>External NIC</p>
<h4>IP Addressing Scheme (Corporate Subnet)</h4>
<h4><span style="text-decoration: underline;"><strong><span style="text-decoration: underline;"><strong> </strong></span></strong></span></h4>
<p><strong>IP Address &#8211; </strong>192.168.1.x</p>
<p><strong>Subnet Mask &#8211; </strong>255.255.255.0</p>
<p><strong>Default Gateway &#8211; </strong>192.168.1.1</p>
<p><strong>DNS Server &#8211; </strong>192.168.1.150 (IP Address of the Domain Controller/DNS Server)</p>
<h3><span style="text-decoration: underline;">Group Chat SQL Database Creation</span></h3>
<p>We will be using the same database for both Group Chat Server as well as the Compliance Server.  It is possible to use a different database for both, but the Compliance Server can also use the Group Chat database.  We will utilizing a single database for both servers.  So let&#8217;s go ahead and create our database.</p>
<p>Load up the SQL Management Studio and logon to your instance with someone who has the following permissions (I&#8217;m using the Administrator account since it&#8217;s a lab):</p>
<ul>
<li>Create Database</li>
<li>Create any Database</li>
<li>Alter Any database</li>
</ul>
<p>Right-Click Databases and create a new database.  I called it PG.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC07.jpg" alt="" width="159" height="167" /></p>
<p>We must also ensure the database collation is set to<strong> </strong>SQL_Latin1_General_CP1_CI_AS by Right-Clicking our database, choosing Properties, going to the Options page, and choosing SQL_Latin1_General_CP1_CI_AS.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC08.jpg" alt="" width="699" height="87" /></p>
<h3><span style="text-decoration: underline;">Group Chat Service Accounts<br />
</span></h3>
<p>Group Chat requires several services which will then need to be manually added to the Local Administrators group.  These accounts then need to be added as SQL Server accounts and be assigned permissions to the SQL Database.</p>
<p>We will be creating 2 services.  You will want to ensure that the Lookup Service is named OCSChat.  The other services can be named anything you want.  Another thing to note, is that if you have multiple Group Chat Servers, OCSChat will be used on all Group Chat Servers as the same Lookup Service needs to be used on all Group Chat Servers.  The Channel Service is unique per server.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC09.jpg" alt="" width="295" height="54" /></p>
<p>OCSChat requires a SIP enabled account.  Because we will need to have an OCS R2 Front End environment already up and running, go ahead and SIP enable the account.  As you can see, I have SIP Enabled this account.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC10.jpg" alt="" width="404" height="448" /></p>
<p>We need to add these two service accounts to our local Administrators group.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC11.jpg" alt="" width="664" height="303" /></p>
<h3><span style="text-decoration: underline;"><span style="text-decoration: underline;">SQL Server Accounts and Permissions</span></span></h3>
<p>Let&#8217;s head back into SQL Server Management Studio.  Under Security, we will<strong> </strong>Right-Click<strong> </strong>and Create a new Login.  Add both of our OCS Group Chat Service Accounts.  As you can see, both OCSChat and OCSChannel have been added.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC12.jpg" alt="" width="280" height="209" /></p>
<p>We will now need to Right-Click on each Service Account, choose Properties, and choose the User Mapping category.  Select our PG database and assign the service account the role of db_owner.  Do this for both service accounts; both OCSChannel and OCSChat.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSGC13.jpg" alt="" width="701" height="628" /></p>
<h3><span style="text-decoration: underline;">Summary</span></h3>
<p>Well folks, that is all for Part 1 of this article. For Part 2, I will go through the OCS R2 Group Chat Server installation as well as the Administrative Tools.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=928&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/03/08/office-communications-server-2007-r2-group-chat-deployment-part-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Default Gateways and Multihomed Edge Boxes</title>
		<link>http://www.shudnow.net/2009/02/01/default-gateways-and-multihomed-boxes/</link>
		<comments>http://www.shudnow.net/2009/02/01/default-gateways-and-multihomed-boxes/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 04:53:18 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[ISA]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=822</guid>
		<description><![CDATA[I seem to encounter this issue quite often and felt this topic warrants a dedicated blog post.  The basic point of this post is to explain that you cannot have more than one default gateway on separate NICS on a multihomed server!  Well, technically you actually can, but things won&#8217;t work correctly. Now I am [...]]]></description>
			<content:encoded><![CDATA[<p>I seem to encounter this issue quite often and felt this topic warrants a dedicated blog post.  The basic point of this post is to explain that you <strong>cannot have more than one default gateway on separate NICS on a multihomed server</strong>!  Well, technically you actually can, but things won&#8217;t work correctly. Now I am not saying that you cannot have multiple Default Gateways on a specific NIC as this is quite possible as Windows will assign metrics so one Default Gateway is given priority over another which provides redundancy.  What I am saying is that you cannot have a Default Gateway on one NIC and then assign a Default Gateway on another NIC.</p>
<p>Any time I have seen Multihomed Servers (OCS Edge, Exchange Edge, ISA, Etc.) malfunctioning, the first thing I&#8217;ll do is a  <strong>ROUTE PRINT</strong>. Quite often, I&#8217;ll see several lines that display:</p>
<p><strong>0.0.0.0</strong></p>
<p><strong>0.0.0.0</strong></p>
<p><strong>0.0.0.0</strong></p>
<p><strong>0.0.0.0</strong></p>
<p>That instantly tells me that multiple Default Gateways are assigned.  You should only be seeing one line with<strong> 0.0.0.0</strong>. The entire point of a Default Gateway is it&#8217;s the last resort on where to send a packet.  Now with that in mind, does it make any sense to have multiple last resorts?  No!</p>
<p>So please, put the Default Gateway on only one NIC.  For OCS, I typically put it on the Access Edge NIC.  For Exchange Edge/ISA, I put it on the Internet Facing NIC.  Ok, so you may be thinking, well my external router doesn&#8217;t allow RDP traffic&#8230;  How am I going to manage my box from the inside since the RDP packets will be blocked at the external firewall?  What I always do on an Edge Server (and you should also be doing this on any multi-homes DMZ/Edge Server including ISA), is create static routes so any internal traffic will go to your internal network from your internal NIC.  It&#8217;s essentially creating a fake Default Gateway for only specific subnets (your internal subnets) set on your Internal NIC.</p>
<p>So let&#8217;s say you&#8217;re setting up an OCS Edge Server and it has 4 NICs:</p>
<p><strong>Access Edge &#8211; 10.10.10.100 (DMZ Subnet) &#8211; Default Gateway Assigned here</strong></p>
<p><strong>Web Conferencing Edge &#8211; 10.10.10.101/24 (DMZ Subnet)</strong></p>
<p><strong>Audio / Video Edge &#8211; 10.10.10.102/24 (DMZ Subnet)</strong></p>
<p><strong>Internal NIC &#8211; 192.168.200.100/24 (Internal Network)</strong></p>
<p>So how can we get all internal traffic to go out directly through the Internal NIC even though the Default Gateway is assigned to the Access Edge?  As stated before, we&#8217;ll create a static route.  So let&#8217;s say your internal router is 192.168.200.1, we&#8217;ll create a static route using the following syntax</p>
<p><strong>route add 192.168.200.0 mask 255.255.255.0 192.168.200.1 -p</strong></p>
<p>So for anything destined to the 192.168.200.x network (due to mask being 255.255.255.0 it will route to the default gateway of 192.168.200.1.  And Windows is smart enough to see that 192.168.200.1 is on the same subnet as your 192.168.200.100 NIC and assign that as the interface it should send it out of.  Problem solved!</p>
<p>Now what if you have a bunch of internal subnets that have similar address ranges?  Simple!  Supernet your internal networks!</p>
<p><strong>route add 192.168.0.0 mask 255.255.0.0 192.168.200.1 -p</strong></p>
<p>This supernet basically says anything that&#8217;s 192.168.x.x (only uses 1st 2 octets since you&#8217;re using a mask of 255.255.0.0 otherwise known as /16), send it to the 192.168.200.1 gateway.  And again, Windows is smart enough to see that 192.168.200.1 is on the same subnet as your 192.168.200.100 NIC and assign that as the interface it should send out of.  So if you have a 192.168.200.x, a 192.168.199.x, or a 192.168.198.x network, all those packets will route to the 192.168.200.1 router which will then send the packet to the appropriate subnet. Problem solved!</p>
<p>And the -p stands for persistent.  It means that the static route will survive a reboot.</p>
<p>All the above applies to ISA as well.  Let&#8217;s say you&#8217;re doing LDAPS authentication which uses port 636.  Your external router may not allow 636.  So by creating the static route to your internal network, the LDAPS traffic won&#8217;t be going through your external router and be blocked. It instead will go through your internal router which would most likely be allowing it as Internal Routers are more relaxed in their restrictions.</p>
<p>One thing to take into consideration is that if you are in an environment where the Default Gateways are assigned to all NICs and you modify your server to be properly configured with a Default Gateway on one NIC, make sure that any services such as remote backup on your server are allowed to access over the internet over the ports required for these services or things such as remote backup will start failing.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=822&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/02/01/default-gateways-and-multihomed-boxes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Office Communications Server 2007 R2 Enterprise Deployment &#8211; Part 5</title>
		<link>http://www.shudnow.net/2009/01/20/office-communications-server-2007-r2-enterprise-deployment-part-5/</link>
		<comments>http://www.shudnow.net/2009/01/20/office-communications-server-2007-r2-enterprise-deployment-part-5/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 16:25:13 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=815</guid>
		<description><![CDATA[Welcome to Part 5 of this article series. So far in this article series, we have deployed an Enterprise Pool, configured our Pool, set up DNS, tested connectivity with Communicator 2007 R2, configured our ISA box, and prepared our Edge Servers. In this Part, I will go through the part of the configuration of our [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Part 5 of this article series. So far in this article series, we have deployed an Enterprise Pool, configured our Pool, set up DNS, tested connectivity with Communicator 2007 R2, configured our ISA box, and prepared our Edge Servers.</p>
<p>In this Part, I will go through the part of the configuration of our Consolidated OCS Edge Server using a separate NIC for each Edge Role.</p>
<p><a href="http://www.shudnow.net/2009/01/05/office-communications-server-2007-r2-enterprise-deployment-part-1/">Part 1</a></p>
<p><a href="http://www.shudnow.net/2009/01/08/office-communications-server-2007-r2-enterprise-deployment-part-2/">Part 2</a></p>
<p><a href="http://www.shudnow.net/2009/01/12/office-communications-server-2007-r2-enterprise-deployment-part-3/">Part 3</a></p>
<p><a href="http://www.shudnow.net/2009/01/18/office-communications-server-2007-r2-enterprise-deployment-part-4/">Part 4</a></p>
<p>Part 5</p>
<h3><span style="text-decoration: underline;">OCS 2007 R2 Edge Server Installation</span></h3>
<p>When installing an OCS 2007 R2 Edge Server, you would perform the following steps:</p>
<p><strong>Note</strong>: Edge Server should not be joined to your Corporate Active Directory.</p>
<ol>
<li>Install Files for Edge Server</li>
<li>Activate Edge Server</li>
<li>Configure Edge Server</li>
<li>Configure Certificates for Edge Server</li>
<li>Start Services</li>
<li>Validate Edge Server</li>
</ol>
<h4>Install Files for Edge Server (Step 1)</h4>
<p>To begin the Edge Server installation process, we can insert our OCS CD (Standard can be used for Edge).  There are some prerequisites for installing OCS such as .Net Framework 3.5 SP1, but this is all taken care of during the installation.</p>
<p>Insert the CD and let’s begin the installation process.  You will be asked to install the Microsoft Visual C++ 2008 Redistributable. Click <strong>Yes</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_02.jpg" alt="" width="390" height="138" /></p>
<p>You will then be asked to install the Microsoft .NET Framework 3.5 SP1. Click <strong>Yes</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_03.jpg" alt="" width="410" height="139" /></p>
<p>Once Microsoft .NET Framework 3.5 SP1 is installed, you will be presented with the Deployment Wizard.  We will want to deploy our Edge Server in a Consolidated fashion..  Click <strong>Deploy Other Server Roles </strong>&gt;<strong> Deploy Edge Server</strong> to <strong>Continue</strong>.</p>
<p>We are now on Step 1 which is to Install Files for Edge Server. Click <strong>Install </strong>for<strong> Install Files for Edge Server</strong> to <strong>Continue </strong>after meeting the Prerequisites (being a local Administrator).</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_66.jpg" alt="" width="669" height="184" /></p>
<p>On the Welcome Screen, Click <strong>Next</strong> to <strong>Continue</strong>. After fully reading the License Agreement, if you agree, Select “<strong>I accept the terms in the license agreement </strong>.”  Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>You will be asked for Customer Information such as Product Key, Name, and your Organization Name.  Enter them appropriately. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>Enter the location you want your files to be installed.  I chose the default location. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>You are now ready to start the Installation.</p>
<p>Once you completed the File Installation, you should see the Installation Interface update the Step 1 Status showing as Completed.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_118.jpg" alt="" width="649" height="80" /></p>
<h4>Activate Edge Server (Step 2)</h4>
<p>Click <strong>Run</strong> for <strong>Active Edge Server</strong><strong> </strong>to<strong> Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_119.jpg" alt="" width="647" height="95" /></p>
<p>On the Welcome Screen, Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>In OCS 2007 R1, you&#8217;d be prompted for what roles to install.  In OCS 2007 R2, there are only Consolidated Edge Servers.  Because of this, you will not be prompted for roles to install.</p>
<p>You will now be prompted to specify passwords for your Service Accounts.  I recommend to use long secure passwords.  You can view <a href="http://blog.econsultant.com/how-to-create-a-strong-password">this</a> and <a href="https://www.grc.com/passwords.htm">this</a> site which assist in choosing strong passwords.  You will have to do this for several Service Account: RTCProxyService</p>
<p>Once you have set a password, Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_121.jpg" alt="" width="502" height="385" /></p>
<p>You are now ready to Activate your Edge Server.  Review your Current Settings.  After satisfied, Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_122.jpg" alt="" width="502" height="387" /></p>
<p>When the Activation is finished, Click<strong> Finish</strong>.  You will be given the option to view the log which I advise you to do to ensure everything went OK.</p>
<p>Once you completed the Activation, you should see the Installation Interface update the Step 2 Status showing as Completed.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_123.jpg" alt="" width="647" height="93" /></p>
<h4>Configure Edge Server (Step 3)</h4>
<p>Click <strong>Run</strong> for <strong>Confingure Edge Server </strong>to<strong> Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_124.jpg" alt="" width="647" height="92" /></p>
<p>On the Welcome Screen, you will be prompted with a warning recommending that you stop all OCS Services.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_67.jpg" alt="" width="308" height="50" /></p>
<p>Go ahead and stop all services (mine were already stopped). Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>The next screen asks us if we have a Configuration File to use.  This file is great to use if we are deploying multiple Edge Servers that will be load balanced.  For example, it would be useful if I was going to be deploying two Edge Servers behind a Hardware Load Balancer.  I would configure my first Edge Server, and at the end of the configuration, it would ask me to export the configuration so I can import it on my second Edge Server.  Nifty!</p>
<p>Because this is our first and only Edge Server, Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_125.jpg" alt="" width="503" height="392" /></p>
<p>We must choose the Internal IP of our Edge Server as well as its&#8217; FQDN.  We are presented with the following options.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_75.jpg" alt="" width="503" height="393" /></p>
<p>You may be wondering which IP to choose.  Remember back in Part 4 we configured four NICs.  One of these NICs was the Internal NIC which we configured as follows. We also configured a dedicated NIC and IP for each Edge Role.  Here is a list of NIC Names, their associated Edge Role, and IPs associated with them</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_68.jpg" alt="" width="457" height="107" /></p>
<p>So in our Edge Configuration, we will want to choose 192.168.1.180 for our Internal NIC.  We will also want to set the FQDN as  shud-ocsedge01.shudnow.net (computername.domain.com).  Because our server is not a domain member, we will need to manually add the DNS record in our Active Directory DNS due to the nature of Active Directory Secure DNS Zones only allowing domain members to add records to our zone. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_69.jpg" alt="" width="502" height="392" /></p>
<p>We now must configure the IPs and FQDNs for all three Edge Roles.  You can refer to the Excel List above to determine what IPs are associated with which role.</p>
<p>When a client connects to the Access Edge Server, the Access Server will return the URLs needed for the client to successfully communicate with services in the OCS organization.  For example, we will configure our Web Conferencing Edge Server to use webconf.exchange.shudnow.net.  Exchange.shudnow.net is our Internet DNS Zone.  So when a Live Meeting Client tries to connect to a web conference, our Access Edge will communicate with the client telling it the FQDN for the web conferencing edge.  The same applies for the A/V Edge Server.</p>
<p>Enter in the IP Configuration and FQDN accordingly.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_70.jpg" alt="" width="502" height="393" /></p>
<p>We will want to use this Edge Server to allow anonymous users to join meetings as well as enable federation.  If you plan on allowing your users to talk with public IM providers such as AOL, MSN, and Yahoo, select those features as you see fit.</p>
<p>Now let me explain why <strong>Allow remote users to communicate with federated contacts</strong> is greyed out.  It is possible to set up two Edge Servers and use one Access Edge for Remote User Access and another for Federation and Public IM connectivity.  If you decide to do this, one one Access Edge you&#8217;ll disable Federation which will light up the currently greyed out option.  On the second Access Edge, you&#8217;ll disable Remote User Access and enable Federation.  Now keep in mind this is optional.  Because we will be utilizing one Consolidated Edge Server, we can choose the options as follows which will enable Remote User Access, Federation, and Public IM Connectivity through our Consolidated Edge. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_71.jpg" alt="" width="501" height="391" /></p>
<p>We want our Edge Server to be able to talk to the internal OCS Servers.  We have a few options.  If we are using a Standard Server as our next hop, we would enter the Standard Pool FQDN which would be the server&#8217;s FQDN.  If we deployed a Director, we would enter the Director (or FQDN of hardware load balancer). Because we deployed an Enterprise Pool, we will use the FQDN of the Enterprise Pool. Enter the Enterprise Pool FQDN OCSPool.shudnow.net. Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_72.jpg" alt="" width="502" height="392" /></p>
<p>Because our SIP Domain will be exchange.shudnow.net, that is what we will choose when specifying what our Authorized Internal SIP Domains are.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_132.jpg" alt="" width="501" height="392" /></p>
<p>We will then want to enter our internal OCS Pool Name for Authorized Internal Servers.  If you have more than one Pool or Standard Edition Server, enter them here.  Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_133.jpg" alt="" width="501" height="392" /></p>
<p>You are now ready to Apply your Edge Server Configuration.  Review your Current Settings.  After satisfied, Click <strong>Next</strong> to <strong>Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_73.jpg" alt="" width="501" height="392" /></p>
<p>You are now ready to apply your configuration.  Review your Current Settings.  After satisfied, Click <strong>Next</strong> to <strong>Continue. </strong></p>
<p>When the Configuration is finished, Click<strong> Finish</strong>.  You will be given the option to view the log which I advise you to do to ensure everything went OK.  This is also where you&#8217;ll have the change to export your configuration if you&#8217;re deploying a second Edge Server for Hardware Load Balancing.</p>
<p>Once you completed the Configuration, you should see the Installation Interface update the Step 3 Status showing as Completed.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_135.jpg" alt="" width="647" height="93" /></p>
<h4>Configure Certificates for Edge Server (Step 4)</h4>
<p>Click <strong>Run</strong> for <strong>Configure Certificates for the Edge Server</strong><strong> </strong>to<strong> Continue.</strong></p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_136.jpg" alt="" width="644" height="92" /></p>
<p>On the Welcome Screen, Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>I&#8217;m going to skip through a lot of this section as it consists of how to obtian a Certificate which I already went through in Part 4 when we discussed configuring our ISA Server.</p>
<p>I will be obtaining three certificates.  One is for our Internal NIC that consists of the FQDN of our Server (shud-ocsedge01.shudnow.net).  The second certificate will consist of  the names of our Access/Web external edge roles. The third certificate will be our A/V Authentication certificate.</p>
<p>Now you may be thinking, well, can&#8217;t I just use two certificates?  One for internal and A/V edge.  Well in our case, probably.  If you have multiple servers, no.  This is because each certificate for the internal interface will be unique due to the name of every server being different.  The A/V Authentication name will be the same and exported/imported on multiple servers.  Also, Microsoft considers it to be insecure by using the same certificate for both the Internal and A/V Authentication services.</p>
<p><strong>Certificate One (Internal Interface):</strong></p>
<p>CN = shud-ocsedge01.shudnow.net</p>
<p><strong>Certificate Two (Access/Web Server Roles):</strong></p>
<p>CN = sip.exchange.shudnow.net</p>
<p>SAN = sip.exchange.shudnow.net</p>
<p>SAN = webconf.exchange.shudnow.net</p>
<p><strong>Note</strong>: Microsoft&#8217;s Official Support Policy requires you to have a separate certificate for each interface.  A SAN certificate for both will work though.</p>
<p><strong>Certificate Three (A/V Authentication)</strong></p>
<p>CN = av.exchange.shudnow.net</p>
<p>Now keep in mind the reason the namespaces our different is because the internal NIC is connected to our internal infrastructure and will be utilized internally only.  Because of that, we will be using our internal namespace that is also used as our default SIP routing domain.  Our edge servers will be contacted using the external DNS namespace.  If you are using split-DNS where your internal namespace is hosted on external DNS, you can use either namespace.</p>
<p>For purposes of this lab, I will obtain all certificates from our internal CA.  Because our Edge Server is not a domain member, you have to ensure it contains the Root Certificate from our Internal CA.  You will also have to submit the request, approve it, and submit the .cer file manually and import it manually due to our Edge server not being a domain member.</p>
<p><strong>Note</strong>: In a production environment, you will be requesting your Access/Web Conferencing Certificates from a Third Party Vendor.  Both your A/V Authentication and Internal Interface NICs will be provided by your Internal CA.  The A/V Edge role doesn&#8217;t need an Internet Facing Certificate.</p>
<p>We will first choose to Create a new Certificate.  One you have done this, you will want to make sure you select only your Edge Server Private Interface.  Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_137.jpg" alt="" width="500" height="443" /></p>
<p>You will want to go through the rest of the configuration which includes entering your Organization Name, Company Name, Etc&#8230;  As I said, when you are at the screen which consists of what FQDN to use, you will use the CN of shud-ocsedge01.shudnow.net.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_74.jpg" alt="" width="502" height="444" /></p>
<p>Once you are finished preparing the request, you will see the Step being partially finished.  Click <strong>Run</strong> again to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_139.jpg" alt="" width="645" height="91" /></p>
<p>You will now want to go through the motions of taking the .Cer file you obtained from your Certificate Authority and binding it to your request.</p>
<p>Follow this procedure with the remaining certificates.  Refer to the certificate CN/SAN names above as to what entries should be on your certificate.</p>
<p>Your Access/Web Conferencing Edge Certificate request will look like:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_140.jpg" alt="" width="503" height="443" /></p>
<p>Your A/V Certificate request will look like:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_141.jpg" alt="" width="502" height="444" /></p>
<p>Once you completed the Certificate Configuration, you should see the Installation Interface update the Step 4 Status showing as Completed.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_142.jpg" alt="" width="652" height="95" /></p>
<h4>Remaining Steps</h4>
<p>I will not be going through the remaining steps.  It consists of Starting Services and Validating your Configuration.</p>
<p>The only remaining steps are to enable users, configure federation, and enable your Front End Servers to talk with your Edge Servers.  All this information is out of the scope of this article.  If you are interested in doing this (and you will have to connect your Front End Servers to your Edge Servers), visit this site <a href="http://technet.microsoft.com/en-us/library/dd425276(office.13).aspx">here</a>.</p>
<p><strong>TIP</strong>: To adminster the Edge Server, type <strong>Start </strong>&gt;<strong> Run</strong> &gt; <strong>Compmgmt.msc</strong>.</p>
<h3><span style="text-decoration: underline;">Summary</span></h3>
<p>Well folks, that is all for not just Part 5, but the entire article series. Hopefully these articles have helped you understand more on how the deployment of OCS works.  There is a lot more to the configuration of OCS and especially the deployment when you get into load balancing.  Much more than what I went into.  But hopefully the article gave you enough knowledge to know where to look and how the overall deployment process works.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=815&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/01/20/office-communications-server-2007-r2-enterprise-deployment-part-5/feed/</wfw:commentRss>
		<slash:comments>146</slash:comments>
		</item>
		<item>
		<title>Office Communications Server 2007 R2 Enterprise Deployment &#8211; Part 4</title>
		<link>http://www.shudnow.net/2009/01/18/office-communications-server-2007-r2-enterprise-deployment-part-4/</link>
		<comments>http://www.shudnow.net/2009/01/18/office-communications-server-2007-r2-enterprise-deployment-part-4/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:40:27 +0000</pubDate>
		<dc:creator>Elan Shudnow</dc:creator>
				<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.shudnow.net/?p=738</guid>
		<description><![CDATA[Welcome to Part 4 of this article series. In Part 1, we started off by discussing the goal of this lab. That goal is how to deploy a single Enterprise Edition OCS 2007 R2 Server which is connected to an x64 SQL Server 2008 Back-End Server. We first discussed what the lab setup is going [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Part 4 of this article series. In Part 1, we started off by discussing the goal of this lab. That goal is how to deploy a single Enterprise Edition OCS 2007 R2 Server which is connected to an x64 SQL Server 2008 Back-End Server. We first discussed what the lab setup is going to be using Hyper-V, and then proceeded to the configuration of our Enterprise Certificate Authority. In Part 2, we went over the Environmental Preparation for our OCS 2007 R2 environment.  In Part 3, we went over the remaining steps required to deploying our Front End Server in an Enterprise Pool Deployment.</p>
<p>In this Part, I will go through the installation of our Office Communicator 2007 R2 client and get it connected through OCS by configuring DNS. I will then begin preparation of our Edge Servers followed by configuring our ISA 2006 Server.</p>
<p><a href="http://www.shudnow.net/2009/01/05/office-communications-server-2007-r2-enterprise-deployment-part-1/">Part 1</a></p>
<p><a href="http://www.shudnow.net/2009/01/08/office-communications-server-2007-r2-enterprise-deployment-part-2/">Part 2</a></p>
<p><a href="http://www.shudnow.net/2009/01/12/office-communications-server-2007-r2-enterprise-deployment-part-3/">Part 3</a></p>
<p>Part 4</p>
<p><a href="http://www.shudnow.net/2009/01/20/office-communications-server-2007-r2-enterprise-deployment-part-5/">Part 5</a></p>
<h3><span style="text-decoration: underline;">Front End OCS 2007 Server Installation</span></h3>
<p>When installing OCS in a consolidated Enterprise Edition deployment, you would perform the following steps:</p>
<ol>
<li>Prepare Environment (Completed in Part 2)
<ol>
<li>Prepare Active Directory (Completed in Part 2)</li>
<li>Create Enterprise Pool (Completed in Part 2)</li>
<li>Deploy Hardware Load Balancer (Completed in Part 2)</li>
<li>Configure Pool (Completed in Part 2)</li>
</ol>
</li>
<li>Add Enterprise Edition Server to Pool (Completed in Part 3)
<ol>
<li>Add Server to Pool (Completed in Part 3)</li>
<li>Configure Certificate (Completed in Part 3)</li>
<li>Configure Web Components Server Certificate (Completed in Part 3)</li>
<li>Verify Replication (Completed in Part 3)</li>
<li>Start Services (Completed in Part 3)</li>
<li>Validate Server and Pool Functionality (Completed in Part 3)</li>
</ol>
</li>
</ol>
<h3><span style="text-decoration: underline;"><span style="text-decoration: underline;">Microsoft Office Communicator (MOC) 2007 R2<br />
</span></span></h3>
<h4>Installing MOC</h4>
<p>Installing MOC is a rather straightforward process.  I won&#8217;t go over the installation steps as it is like installing any other application.</p>
<h4>Logging onto MOC</h4>
<p>In Part 3, we talked about holding off on DNS additions so when we install MOC, we can see what DNS is required to allow our client to log on.  So let&#8217;s try logging on with one of the users we created in Part 3.  The user we will log on as is <strong>OCS User 1</strong> that has a SIP Address of <strong>ocsuser1@exchange.shudnow.net</strong>.</p>
<p>When we try to log on, we will get the following error message:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_49.jpg" alt="" width="587" height="359" /></p>
<p>So let&#8217;s start adding DNS by entering our DNS MMC by going to <strong>Start </strong>&gt; <strong>Administrative Tools</strong> &gt; <strong>DNS</strong>.  We will then create a host record for our Pool (ocspool.shudnow.net).</p>
<p><strong>Note</strong>: If you have multiple Front End Servers and are deploying behind a hardware load balancer, the IP Address in this host file will be pointing to your hardware load balancer.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_50.jpg" alt="" width="348" height="346" /></p>
<p>After that host record has been created, we will need to create an SRV record so MOC clients can find DNS and automatically locate the OCS Front End Server.  But because we are using a separate namespace of exchange.shudnow.net, we will need to create either a new Primary DNS Zone for exchange.shudnow.net or by creating a new domain called exchange within our shudnow.net zone.  I elected to create an entire new zone.</p>
<p>Once your exchange.shudnow.net zone is created, we will then need to create a host record inside our new exchange.shudnow.net zone for sip.exchange.shudnow.net.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_51.jpg" alt="" width="346" height="347" /></p>
<p>Create an SRV record within the exchange.shudnow.net zone that contains the following information.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_52.jpg" alt="" width="404" height="448" /></p>
<p><strong>Note</strong>: Internal clients can connect using either TLS or TCP while external clients can only connect to TLS.  If you want to allow your clients to connect to TCP, change the above to _SipInternal and change the port to 5060.</p>
<p>So let me explain what is going on here.  We created our DNS Pool record in our shudnow.net zone.  OCSPool.shudnow.net points to 192.168.1.163 which is the IP Address of our Front End Server.  Because our users are SIP Enabled for exchange.shudnow.net, we needed to create a new zone.  Typically, if you would have SIP enabled them for shudnow.net, we would just create our OCSPool A Record, and then create the SRV record to point to OCSpool.shudnow.net.</p>
<p>If you recall, when we retreived our certificate, it had DNS names of OCSpool.shudnow.net and sip.exchange.shudnow.net.  Because SRV records have to point to a DNS name within its own domain, we created our sip.exchange.shudnow.net A record within the exchange.shudnow.net zone.  We then created the DNS SRV record for automatic client logon to point to the sip.exchange.shudnow.net name which is a name in our certificate request.</p>
<p>So essentially the following happens in order:</p>
<ol>
<li>Client logs on using automatic logon</li>
<li>Client looks for an SRV record for _sipinternaltls._tcp.SIPDomain (in our case _sipinternaltls._tcp.exchange.shudnow.net)</li>
<li>DNS Server successfully returns sip.exchange.shudnow.net as the service from the SRV record</li>
<li>Client connects to sip.exchange.shudnow.net and resolves that to 192.168.1.163</li>
<li>Client is successfully enable to start communications with the Front End Server</li>
</ol>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_85.jpg" alt="" width="324" height="197" /></p>
<h4>Adding Distribution Groups to MOC</h4>
<p>I have created a universal distribution group named Sales.  Our Sales distribution group was created within Exchange. A user named Simo notified me that a distribution group doesn&#8217;t necessarily have to be created within Exchange.  As long as the distribution group has the e-mail attribute filled in, OCS expansion will function.</p>
<p>Searching for Sales, we will see that it will display our Sales group.  We can add this group to our contacts list and we can expand the group information.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_114.jpg" alt="" width="320" height="384" /></p>
<p>Your Communicator client will refresh the membership information every 24 hours against the web farm FQDN and update the cache file located at the following directory: %LocalAppData%\Microsoft\Communicator\sip_user@domain.com\.</p>
<p>For those that do not know, the Address Book files is what allow our clients to search for SIP enabled users and Distribution Groups.  It also providers other functionality such as Phone Number Normalization when doing Remote Call Control.  This information gets stored on our client as GalContacts.db in “%userprofile%\ Local Settings\Application Data\Microsoft\Communicator\.&#8221;  The Address Book gets updated in OCS every 24 hours which can be expedited by navigating to the following directory and running the following commands:</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_44.jpg" alt="" width="667" height="161" /></p>
<h3><span style="text-decoration: underline;">Preparation of OCS 2007 R2 Edge Node</span></h3>
<h4>Network Interface Card (NIC) Configuration</h4>
<p>In Part 1, I put the Internal NIC on our VMNet8 which is our NAT Network.  I stated that I would put all other NICs on VMNet7.  When bringing up this server, I put all NICs on VMNet8 to ensure that there is IP Connectivity all around.  The reason for this is I don&#8217;t have VMNet7 and VMNet8 routed with each other. In a production network, I would following the OCS Planning Guide to ensure your networks are configured properly.  For example, your Internal NIC would be placed on your Internal Network while external adapters would be on a separate subnet such as a DMZ.</p>
<p>The first thing I always do is rename the NICs appropriately so you know what NIC you are working with.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_65.jpg" alt="" width="705" height="259" /></p>
<p>On our Internal Edge NIC, we want to configure the IP Configuration as follows.  This NIC will contain the default gateway and DNS Settings.  Becuase of this, we will later ensure that this NIC is at the top of the binding order.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_59.jpg" alt="" width="401" height="446" /></p>
<p>Our Audio/Video Edge NIC will be configured as follows.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_61.jpg" alt="" width="403" height="448" /></p>
<p>Our Access Edge NIC will be configured as follows.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_62.jpg" alt="" width="404" height="448" /></p>
<p>Our Web Conferencing Edge NIC will be configured as follows.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_63.jpg" alt="" width="404" height="447" /></p>
<h4>Binding Order</h4>
<p>Set the Internal NIC to be at the top of the binding order.  This is because this is our internal corporations communications NIC.  It is the NIC that has DNS applied to it and will be talking to the rest of the internal servers.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_64.jpg" alt="" width="404" height="448" /></p>
<h3>ISA 2006 Configuration</h3>
<h4>Root Certificate</h4>
<p>The first thing we will want to do is take the root certificate from our internal CA and place it into the Root Computer Certificate Store on ISA.  If your ISA box is part of the domain, if your CA is an Enterprise Root CA, your ISA box will automatically retrieve this certificate upon rebooting.  For any other type of CA configuration, you must manually obtain the Root Certificate.  The reason we we need this Root Certificate is because when we Bridge our external connection to our internal connection via SSL, we will need to trust the internal FQDN which has a certificate requested from our internal CA.</p>
<p>To do this, go onto any domain joined server that has been rebooted since your CA was created.  I am doing this on the SHUD-OCSFE1 server.  Open the Certificates MMC by going to <strong>Start </strong>&gt; <strong>Run </strong>&gt; <strong>MMC</strong>.  Go to <strong>File </strong>&gt; <strong>Add/Remove Snap-In</strong> &gt; <strong>Add </strong>&gt; <strong>Certificates </strong>&gt; <strong>Computer Account</strong>.</p>
<p>Go to our Trusted Root Certification Authorities and find our Root Certificate.  Once you find it, Export the Certificate and transfer this exported certificate to ISA 2006.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_53.jpg" alt="" width="607" height="181" /></p>
<p>Back on our ISA Box, open the Computer Certificates Snap-In just as we did on our CA.  In the same location (Trusted Root Certification Authorities &gt; Certificates), we will import the certificate that we exported on our CA.  Once you choose Import, navigate to the location of the exported certificate and import it.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_93.jpg" alt="" width="366" height="194" /></p>
<h4>External Web Farm Certificate</h4>
<p>Now let&#8217;s go ahead and get a certificate that matches the external Web Farm FQDN that we specified when deploying our Pool.  This name is ExtWebFarm.shudnow.net.  To do this, I installed IIS on ISA to request the certificate.</p>
<p>In IIS, go onto your <strong>Default Website </strong>&gt; <strong>Properties</strong> &gt; <strong>Directory Security Tab</strong>.</p>
<p>You will see a section entitled <strong>Secure Communications</strong>. Click <strong>Server Certificate</strong> to begin the process of requesting a certificate.</p>
<p>Choose <strong>Create New Certificate</strong>. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_95.jpg" alt="" width="484" height="365" /></p>
<p>In a production environment, you will choose to <strong>Prepare the request now, but send it later</strong> and submit the request to a 3rd party certificate authority such as Entrust.  This is because you&#8217;ll want internet clients to be able to automatically trust this certificate.  For purposes of this lab, I will just choose to Send the request imediately to an online certificate authority to expedite the process. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><strong>Note</strong>: I left the <strong>Prepare the request now, but send it later</strong> selected by default.  If you are doing a lab scenario like I am, feel free to select the second option (like me) to expedite the process.  The rest of the screenshots will be using the second expedited method.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_96.jpg" alt="" width="481" height="362" /></p>
<p>By default, the Certificate Name will be set to your web site name.  Change this to the FQDN of the External Web Farm FQDN. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><strong>Note</strong>: The Certificate Name is not the Subject Name (SN) / Common Name (CN) of the certificate, but I always match the SN / CN of the certificate to the Certificate Name.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_97.jpg" alt="" width="479" height="361" /></p>
<p>You will be asked for your Organization information.  Enter it appropriately. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>You will now be asked for your SN / CN.  Specify the name to be ExtWebFarm.shudnow.net Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_98.jpg" alt="" width="481" height="362" /></p>
<p>You will be asked for your Geographical information.  Enter it appropriately. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>Since we specified the OCS Certificate Request to send the request immediately to an online certificate authority, OCS will search for an Issuing CA. The name of our CA (not server name but the name of the CA) is OCS-ROOTCA, OCS will display this server as the CA to use.  Choose OCS-DC1.shudnow.net\OCS-ROOTCA as our CA. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_54.jpg" alt="" width="481" height="361" /></p>
<p>Now in a production environment where you submitted your CSR to a vendor such as Entrust, they will provide you some text information back.  You will take this text, place it into a text file, and save the file as a .cer file.  You will then go back into IIS and Assign the .cer file to your request.  What essentially happens is when you create your CSR, you create a private key on your IIS Server.  The vendor will take some information appropriate to your private key and create a public key that associates itself with your private key.  When you assign your certificate, you essentially bind your public/private key to form a certificate.</p>
<p>Once the certificate is properly assigned, you will see the View Certificate button light up.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_99.jpg" alt="" width="419" height="119" /></p>
<p>If you click on View Certificate, you will see the certificate has a CN of ExtWebFarm.shudnow.net</p>
<p>If you performed these procedures on an IIS instance located on a server that is not your IIS Server, you must ensure you export the certificate with its private key and import it into the Local Computer Certificate Store on ISA.  This will allow you to attach the certificate to the web listener we will be creating.  The procedures for importing a certificate are listed above.  The only difference is the store you import it into.</p>
<p>Once you are finished with your certificate request, if IIS is still enabled on ISA, make sure you turn it off (uninstall) otherwise ISA will fail to proxy due to a port conflict between IIS and the Web Listener.</p>
<h4>ISA Configuration</h4>
<p>We will need to configure ISA to proxy requests for the following three functions:</p>
<ul>
<li> To enable external users to download meeting content for your meetings</li>
<li> To enable external users to expand distribution groups</li>
<li> To enable remote users to download files from the Address Book Service</li>
<li>To enable Communicator Phone Edition to connect to the Software Update Service (documentation says Software Update Service but it&#8217;s actually been renamed to Device Update Service) and update themselves</li>
</ul>
<p>The Web Components Server will use the following directories to allow external clients to connect through using the External Web Farm FQDN.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_55.jpg" alt="" width="806" height="151" /></p>
<p>To start creating the configuration for ISA, we will want to create a Web Site Publishing Rule.  We will name it OCS External Web Farm.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_101.jpg" alt="" width="524" height="322" /></p>
<p>Select <strong>Allow</strong>. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_102.jpg" alt="" width="503" height="482" /></p>
<p>Select <strong>Publish a single Web site or load balancer</strong>. The reason why we only publish a single website is because the server we connect to will be our pool name (Ocspool.shudnow.net).  This will essentially load balance our ISA request to both of our Front End Servers. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_103.jpg" alt="" width="505" height="482" /></p>
<p>Select <strong>Use SSL to connect to the published Web server or server farm</strong>. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_104.jpg" alt="" width="506" height="483" /></p>
<p>Enter our Internal Site name which is the Internal Farm FQDN we specified when we created our Enterprise Pool.  This internal site name should match our pool name. Enter the IP Address for our Enterprise Pool.  Since we only deployed one Front End Server, this IP Address is the address of our Front End.  If we are deploying multiple Front End Servers behind a Hardware Load Balancer, this IP Address would be the Virtual IP (VIP) of our Hardware Load Balancer. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_56.jpg" alt="" width="502" height="479" /></p>
<p>We will want to use /* for our Path so we can create one rule to allow us to proxy all data destined to our External Web Farm FQDN to our Front End Server. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_106.jpg" alt="" width="505" height="481" /></p>
<p>We will want to enter our External Web Farm FQDN as our Public Name. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_107.jpg" alt="" width="503" height="482" /></p>
<p>We are now prompted to select a Web Listener.  Because we haven&#8217;t created one, go ahead and select <strong>New</strong>. Name this Web Listener OCS External Web Farm. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p>We will definitely want to require SSL secured connections with clients. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_108.jpg" alt="" width="504" height="466" /></p>
<p>Select External since we will allowing Internet Clients to use this listener in which the DNS will be pointing to the Selected IP Address for our External connection.  To select the IP Address for our External connection, <strong>Click</strong> the <strong>Select IP Addresses</strong> button.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_109.jpg" alt="" width="503" height="466" /></p>
<p>Select the IP Address that we will be using for our External NIC.  The reason why it doesn&#8217;t show the IP Address for our 192.x.x.x address is because our 192.168.1.x network is selected as our Internal Network.  You select your internal subnets when installing ISA. Click <strong>OK </strong>and then <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_57.jpg" alt="" width="518" height="376" /></p>
<p>We must now choose our ExtWebFarm.shudnow.net certificate for this listener.  Choose Select Certificate and choose our ExtWebFarm.shudnow.net Certificate. Click <strong>OK </strong>and then <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSR2Enterprise_58.jpg" alt="" width="502" height="466" /></p>
<p>No Authentication will be used. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_112.jpg" alt="" width="502" height="465" /></p>
<p>When back in the rule configuration, you will want to ensure that you select <strong>No Delegation, but client may authenticate directly</strong>. Click <strong>Next</strong> to <strong>Continue</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_116.jpg" alt="" width="502" height="480" /></p>
<p>All the remaining options should be left at default.  All you need to do now is configure a HOST (A) record on your external DNS solution so ExtWebFarm.shudnow.net points to the IP Address of your ISA Server whether that is with a public IP Address directly on ISA or through a NAT&#8217;d Address.</p>
<p>The last modification we need to make is to go into the properties of our rule (not listener) and go to the From Tab.  Remove Anywhere and add External.  Click <strong>OK</strong> to <strong>Finish</strong>.</p>
<p><img class="alignnone" src="http://www.shudnow.net/images/OCSEnterprise_113.jpg" alt="" width="402" height="480" /></p>
<p><strong>Note</strong>:  Again, if IIS is still enabled on ISA, make sure you turn it off (uninstall) otherwise ISA will fail to proxy due to a port conflict between IIS and the Web Listener.</p>
<h3><span style="text-decoration: underline;">Summary</span></h3>
<p>Well folks, that is all for Part 4 of this article. For Part 5, I will  go through the installation and configuration of our Consolidated OCS  2007 Edge Server.</p>
<img src="http://www.shudnow.net/?ak_action=api_record_view&id=738&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.shudnow.net/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.shudnow.net/2009/01/18/office-communications-server-2007-r2-enterprise-deployment-part-4/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
	</channel>
</rss>
