<?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>Confused Amused &#187; Office Communications Server 2007 R2</title>
	<atom:link href="http://www.confusedamused.com/categories/microsoft/office-communications-server-2007-r2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.confusedamused.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 02:58:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Migrating OCS conference directories to Lync the hard way</title>
		<link>http://www.confusedamused.com/notebook/migrating-ocs-conference-directories-to-lync-the-hard-way/</link>
		<comments>http://www.confusedamused.com/notebook/migrating-ocs-conference-directories-to-lync-the-hard-way/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 02:58:20 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Lync Server 2010]]></category>
		<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[dbimpexp]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[lync]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[pool]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=1198</guid>
		<description><![CDATA[A few evenings ago I ran into a scenario where moving a conference directory from OCS to Lync failed, and the conference directory ended up in this limbo state where it wasn&#8217;t on Lync, I couldn&#8217;t move it back to OCS, and the conferencing attendant wouldn&#8217;t recognize any PSTNs IDs which were part of the [...]]]></description>
			<content:encoded><![CDATA[<p>A few evenings ago I ran into a scenario where moving a conference directory from OCS to Lync failed, and the conference directory ended up in this limbo state where it wasn&#8217;t on Lync, I couldn&#8217;t move it back to OCS, and the conferencing attendant wouldn&#8217;t recognize any PSTNs IDs which were part of the directory. Not a great scenario.</p>

<p>After running Move-CsConferenceDirectory I could verify the move was in progress, but it never completed. The status would show it was trying to move, and OCS eventually started throwing errors that it no longer had a conference directory, but it never fully made it to Lync. The TargetServerIfMoving parameter stayed populated:</p>

<p><pre><code>Get-CsConferenceDirectory -Identity 5
Identity: 5
ServiceId: UserServer:OCSPOOL.ptown.local
TargetServerIfMoving: UserServer:LYNCPOOL.ptown.local</pre></code></p>

<p>Trying to run Move-CsConferenceDirectory again would consistently fail with the following errors:</p>

<blockquote>WARNING: Move operation failed for conference directory with ID "5". Cannot
perform a rollback because data migration might have already started. Retry the
 operation.<br />
WARNING: Before using the -Force parameter, ensure that you have exported the
conference directory data using DBImpExp.exe and imported the data on the
target pool. Refer to the DBImpExp-Readme.htm file for more information.<br />
Exception from HRESULT: 0xC3EE7950, Microsoft.Rtc.Management.ConferenceDirectoryCmdlets.MoveConferenceDirectoryCmdlet</blockquote>

<p>In the end I needed to export the data from the OCS directory via DbImpExp, force the directory to move, and then import the data. Not the cleanest route, but it works. The order is important, so be patient.</p>

<p>On the OCS pool and database export the conference directory data:</p>

<p><pre><code>DbImpExp.exe /hrxmlfile:C:\Temp\OCSDirectory5.xml /SQLServer:OCS-SQL.ptown.local /restype:confdir</pre></code></p>

<p>Only once you're positive you have a good export (Read: opened the file and checked!), and made a copy of it you can force the Move-CsConferenceDirectory operation:</p>

<p><pre><code>Move-CsConferenceDirectory 5 -TargetPool LYNCPOOL.ptown.local -Force</pre></code></p>

<p>Congrats. You've moved the directory to Lync, but it's empty. Copy the .xml export file to a FE in the Lync pool. On the Lync pool and database import the directory data while specifying the conference directory ID to recover the old data:</p>

<p><pre><code>DbImpExp.exe /import /hrxmlfile:C:\Temp\OCSDirectory5.xml /SQLServer:LYNC-SQL.ptown.local /restype:confdir /dirid:5</pre></code></p>

<p>At this point I could see the directory was no longer moving because TargetServerIfMoving was empty, and the conference attendant was now recognizing PSTN IDs which had been created against this directory.</p>

<p><pre><code>Get-CsConferenceDirectory -Identity 5
Identity: 5
ServiceId: UserServer:LYNCPOOL.ptown.local
TargetServerIfMoving: </pre></code></p>

<p>Again, this is a good reason to always do a DbImpExp.exe dump before moving directories or databases around. Those .XML files can save your skin!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/migrating-ocs-conference-directories-to-lync-the-hard-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring OCS and Lync Peak Call Capacity</title>
		<link>http://www.confusedamused.com/notebook/monitoring-ocs-and-lync-peak-call-capacity/</link>
		<comments>http://www.confusedamused.com/notebook/monitoring-ocs-and-lync-peak-call-capacity/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 04:28:03 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Lync Server 2010]]></category>
		<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[lync]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[perfmon]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=1045</guid>
		<description><![CDATA[Recently I had a customer interested in checking how many concurrent calls a particular OCS Mediation Server was handling. The challenge with this is that separate perfmon counters exist for inbound calls and for outbound calls, but there is not a built-in counter which measures both. So while we could monitor the peak capacity of [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had a customer interested in checking how many concurrent calls a particular OCS Mediation Server was handling. The challenge with this is that separate perfmon counters exist for inbound calls and for outbound calls, but there is not a built-in counter which measures both. So while we could monitor the peak capacity of each we had no guarantee that these peak values were occurring at the same time.</p>

<p>In order to track this usage I&#8217;ve come up with a Powershell script which grabs these two counters, parses their values, adds them together, and dumps the output into a CSV file. At the end of the monitoring period you can take this CSV into Excel and easily find the peak total call count.</p>

<p><p>Here are some notes on the behavior:</p:
<ul>
<li>The CSV output is date and time, inbound calls, outbound calls, and total calls.</li>
<li>Data is output to the console and to CSV for real-time monitoring.</li>
<li>The default values track usage for a week, polling the counters every 15 seconds. You can change the total number of loops in the script to your liking if you need a longer track record.</li>
<li>If you run the script again it will detect if previous data exists and rename the old file so you don&#8217;t lose anything.</li>
<li>I&#8217;ve run this as a logged in user account, but I imagine you could set it up as a scheduled task to run in the background.</li>
<li>In order to run the script you should first run Set-ExecutionPolicy Unrestricted</li>
</ul></p>

<p>The caveat with the Lync version is now that a Mediation server can use multiple gateways we can&#8217;t see which gateway is being used for each inbound or outbound call. But this still gives an idea of concurrent call capacity flowing through each Mediation role.</p>

<ul>
<li>OCS Version: <a href="http://www.confusedamused.com/downloads/OCSCallData.ps1">OCSCallData.ps1</a></li>
<li>Lync Version: <a href="http://www.confusedamused.com/downloads/LyncCallData.ps1">LyncCallData.ps1</a></li>
</ul>

<p>I hope to improve this in the future, but wanted to make it available for everyone sooner than later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/monitoring-ocs-and-lync-peak-call-capacity/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OCS Create Pool Wizard Error: Invalid database parameter</title>
		<link>http://www.confusedamused.com/notebook/ocs-create-pool-wizard-error-invalid-database-parameter/</link>
		<comments>http://www.confusedamused.com/notebook/ocs-create-pool-wizard-error-invalid-database-parameter/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 01:31:20 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[pool]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[sp2]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=987</guid>
		<description><![CDATA[Recently I had a project where we were moving the OCS databases to a new clustered SQL 2008 (R1) with SP2 Back-End and ran into a lovely new error I&#8217;d never seen before &#8211; also not seen before anywhere on Google!

For starters, we followed the steps outlined on Technet. After we had successfully detached and [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had a project where we were moving the OCS databases to a new clustered SQL 2008 (R1) with SP2 Back-End and ran into a lovely new error I&#8217;d never seen before &#8211; also not seen before anywhere on Google!</p>

<p>For starters, we followed <a href="http://technet.microsoft.com/en-us/library/dd572422(office.13).aspx">the steps outlined on Technet</a>. After we had successfully detached and attached all databases and ran the LCSCMD.exe step, we launched the Create Pool wizard and attempted to plug in the info for the new SQL cluster. We got this error back:</p>

<blockquote>
An error occurred during the pool backend detection:<br /><br />

Pool backend discovery failed.<br /><br />

Invalid database parameter.
</blockquote>

<p>I double-checked the server name, instance, and FQDN and all looked well. We verified the SQL server was accessible via TCP 1433 and no firewall rules were preventing access, so the error didn&#8217;t make a lot of sense. Obviously there was some kind of parameter that the wizard GUI was not cool with. I thought maybe this was the <a href="http://support.microsoft.com/kb/961944">SQL allow updates issue</a>, but that solution had no effect on this error. There was definitely some validation check the UI was failing on against our new DB.</p>

<p>Since I couldn&#8217;t locate anyone else with this issue I figured my options were to call PSS and extend this process by a few hours, or pull out the ol&#8217; LCSCMD.exe again and try this operation via command line. The Create Pool wizard really is just collecting a bunch of information and then using it to execute the LCSCMD.exe commands in the background so while doing it manually is not fun, it works just as well.</p>

<p>The <a href="http://technet.microsoft.com/en-us/library/dd572972(office.13).aspx">entire syntax for LCSCMD.exe can be found on Techet</a>, but here is the command we ended up running. Please note, conferencing archiving was not implemented so that paramter is not present.</p>

<p><pre><code>LCSCMD.exe /Forest /Action:CreatePool /PoolName:MyOCSPool /PoolBE:MySQLServer.ptown.local\OCSInstance /PoolFQDN:MyOCSPool.ptown.local /InternalWebFQDN:MyOCSPool.ptown.local /ExternalWebFQDN:PublicOCSWebComponents.confusedamused.com /RefDomain:ptown.local /ABOutputlocation:&#92;&#92;MyFileServer\AddressBook /MeetingContentPath:&#92;&#92;MyFileServer\MeetingContent /MeetingMetaPath:&#92;&#92;MyFileServer\MeetingMetadata /AppDataLocation:&#92;&#92;MyFileServer\AppData /ClientUpdateLocation:&#92;&#92;MyFilerServer\ClientUpdates /DBDataPath:"D:\Databases" /DBLogPath:"L:\Logs" /DynDataPath:"D:\Databases" /DynLogPath:"L:\Logs" /ABSDataPath:"D:\Databases" /ABSLogPath:"L:\Logs" /ACDDataPath:"D:\Databases" /ACDLogPath:"L:\Logs"</code></pre></p>

<p>After running the command manually it succeeded with absolutely no issues. The new cluster has been running for over a week now without any issues so I think this is an problem specific to the UI. I&#8217;m not sure exactly what causes it, but our environment was running SQL 2008 with SP2 on top of a 2008 R2 SP1 operating system.</p>

<p>As a sidenote, this process seems to undo any changes made by the OCS2009-DBUpgrade.msi patches. You&#8217;ll need to re-run the patch version which lines up with your FE patch levels before the FE services will be able to start.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/ocs-create-pool-wizard-error-invalid-database-parameter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCS Create Pool Step Failure Drops Conference Directories</title>
		<link>http://www.confusedamused.com/notebook/ocs-create-pool-step-failure-drops-conference-directories/</link>
		<comments>http://www.confusedamused.com/notebook/ocs-create-pool-step-failure-drops-conference-directories/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 21:41:03 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbimexp]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[pstn]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=980</guid>
		<description><![CDATA[Something to keep in mind before you ever move an OCS database is that you&#8217;ll want to grab backups of the user data and conference directories so that you can restore the data just in case anything goes wrong with your move operation. The conference directory objects map conference IDs and passcodes used by PSTN [...]]]></description>
			<content:encoded><![CDATA[<p>Something to keep in mind before you ever move an OCS database is that you&#8217;ll want to grab backups of the user data and conference directories so that you can restore the data just in case anything goes wrong with your move operation. The conference directory objects map conference IDs and passcodes used by PSTN dial-in users to a specific Live Meeting instance. These objects are stored in Active Directory and not in the OCS back-end database like you might expect, but you can still back up all the data these objects hold.</p>

<p>You can export all user data and conference directories with the following command:</p>

<p><pre><code>dbimpexp.exe /hrxmlfile:everything.xml /sqlserver:SQL.ptown.local\OCS</code></pre></p>

<p>I usually also grab a separate backup of just the conference directories from the pool:</p>

<p><pre><code>dbimpexp.exe /hrxmlfile:confdirs.xml /sqlserver:SQL.ptown.local\OCS /restype:confdir</code></pre></p>

<p>After these run successfully you can copy these files off to a safe place and then proceed with your database operations. </p>

<p>As you are moving the databases around one of the steps on Technet will have you re-run the Create Pool wizard, but if this step fails for any reason the installer will kick into its rollback mode and remove any configuration changes it made. What&#8217;s not terribly apparent is that part of <b>this rollback process removes all conference directories on the pool without any warning.</b> </p>

<p>So say this step fails on something silly like a file share permission you&#8217;ll suddenly find you dropped all your conference directories. The end result of that is users calling in to meetings via PSTN will no longer be able to enter conference ID and passcode to join the meetings hosted on that pool. </p>

<p>I recently ran a DB move and the user account we used did not explicityly have Full Access rights to one of the OCS file shares (it had been removed at some point for an unknown reason), but the result was the Create Pool operation kicked into rollback mode and removed the pool&#8217;s conference directories. We had a solid backup of these to restore from, but this customer had previously lost the directory the first time they tried this operation on their own because of the same problem.</p>

<p>If the directories are dropped and you don&#8217;t have a backup via DBImpExp.exe you&#8217;ll need to recreate the conference directories on the admin side, but the big pain point is that all users will need to reschedule their meetings (because the previous ID/Passcode mappings are no longer valid). It&#8217;s a really ugly user experience and likely to not go over very well. If only you had backed these up in advance!</p>

<p>I would imagine you could restore the conference directory object stored in AD and possibly get that hooked back up to OCS, but your best bet is really to be using DbImpExp.exe instead. A general best practice for any OCS environment is to be taking regular backups of your OCS data and conference directories via DbImpExp.exe so that way you&#8217;ll never find yourself in this situation.</p>

<p>If your Create Pool step does fail at least one time you&#8217;ll need to restore the directories because they&#8217;ve been dumped. After you work out the Create Pool step issue and succeed in starting up your Front-End services  you can proceed with the conference diretory restore.</p>

<p>The syntax to restore just the conference directories from the pool is:</p>

<p><pre><code>dbimpexp.exe /import /hrxmlfile:confdirs.xml /sqlserver:SQL.ptown.local\OCS /restype:confdir</code></pre></p>

<p>After running this you should be able to dial in via PSTN and enter a conference ID and passcode from a pre-existing meeting again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/ocs-create-pool-step-failure-drops-conference-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook Integration Error in Communicator 2007 R2 when Exchange System Manager is installed</title>
		<link>http://www.confusedamused.com/notebook/outlook-integration-error-in-communicator-2007-r2-when-exchange-system-manager-is-installed/</link>
		<comments>http://www.confusedamused.com/notebook/outlook-integration-error-in-communicator-2007-r2-when-exchange-system-manager-is-installed/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 18:59:33 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[communicator]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[mapi]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[R2]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=776</guid>
		<description><![CDATA[Working on an OCS migration project a few weeks ago I ran into everyone&#8217;s favorite error:

There was a problem connecting to Microsoft Office Outlook. Your Outlook profile is not configured correctly. Contact your system administrator with the information.

After double checking the lengthy KB 2373585 article discussing Outlook/Communicator errors and ruling out the usual suspects I [...]]]></description>
			<content:encoded><![CDATA[<p>Working on an OCS migration project a few weeks ago I ran into everyone&#8217;s favorite error:</p>

<p><blockquote>There was a problem connecting to Microsoft Office Outlook. Your Outlook profile is not configured correctly. Contact your system administrator with the information.</blockquote></p>

<p>After double checking the lengthy <a href="http://support.microsoft.com/kb/2373585">KB 2373585 article</a> discussing Outlook/Communicator errors and ruling out the usual suspects I was stumped. After some digging around on the workstation I found the user had the Exchange 2003 System Manager and tools installed on the machine. Since the System Manager uses a slightly different version of MAPI components Communicator would generate this error immediately upon signing in.</p>

<p>The solution is to open a command prompt and just run the command: <b>fixmapi</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/outlook-integration-error-in-communicator-2007-r2-when-exchange-system-manager-is-installed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCS 2007 R2 Cumulative Update 6 and Stored Procedure Mismatches</title>
		<link>http://www.confusedamused.com/notebook/ocs-2007-r2-cumulative-update-6-and-stored-procedure-mismatches/</link>
		<comments>http://www.confusedamused.com/notebook/ocs-2007-r2-cumulative-update-6-and-stored-procedure-mismatches/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 03:03:12 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[cu6]]></category>
		<category><![CDATA[cumulative]]></category>
		<category><![CDATA[LCS]]></category>
		<category><![CDATA[OCS]]></category>
		<category><![CDATA[R2]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=762</guid>
		<description><![CDATA[Something not mentioned in the release notes of Cumulative Update (CU6) is that there is a dependency on running the new OCS2009-DBUpgrade.msi before any server updates.  If you try to run the ServerUpdateInstaller.exe and apply the server updates without first running the database package you may see an error like this:


Event ID: 30968
Source: Live [...]]]></description>
			<content:encoded><![CDATA[<p>Something not mentioned in the release notes of Cumulative Update (CU6) is that there is a dependency on running the new OCS2009-DBUpgrade.msi <em>before</em> any server updates.  If you try to run the ServerUpdateInstaller.exe and apply the server updates without first running the database package you may see an error like this:</p>

<blockquote>
<b>Event ID</b>: 30968<br />
<b>Source</b>: Live Communications User Services<br />
<b>Details</b>: The component Live Communications User Services reported a critical error: code C3EE78F8 (Enterprise Edition Server successfully registered with the back-end, but a stored procedure version mismatch was detected. The service will not start until this problem is resolved. Cause: The database schema and the Enterprise Edition Server were updated by different installation packages. Resolution: Ensure both the Enterprise Edition Server and back-end were installed or modified by the same installation package. The service has to stop.
</blockquote>

<p>Obviously the error verbiage is a bit outdated with references to LCS, but the error is correct &#8211; there is a mismatch between the stored procedure versions which makes the Front-End service to fail to start.</p>

<p>To avoid the issue be sure to apply the latest OCS2009-DBUpgrade.msi package <em>before </em>updating any Front-End servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/ocs-2007-r2-cumulative-update-6-and-stored-procedure-mismatches/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>OCS 2007 R2 and .NET Framework 4.0</title>
		<link>http://www.confusedamused.com/notebook/ocs-2007-r2-and-net-framework-4-0/</link>
		<comments>http://www.confusedamused.com/notebook/ocs-2007-r2-and-net-framework-4-0/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 03:06:07 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=756</guid>
		<description><![CDATA[Executive summary here is don&#8217;t install .NET Framework 4.0, or at least not before you install your OCS 2007 R2 bits. If you build up a fully patched new Server 2008 R2 server the .NET 4.0 updates will be included and when you run an OCS install you&#8217;ll get:




Microsoft Office Communications Server 2007 R2, Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Executive summary here is don&#8217;t install .NET Framework 4.0, or at least not before you install your OCS 2007 R2 bits. If you build up a fully patched new Server 2008 R2 server the .NET 4.0 updates will be included and when you run an OCS install you&#8217;ll get:</p>

<p><a href="http://www.confusedamused.com/wp-content/pictures/2010/07/7-22-2010-9-48-54-AM.jpg"><img src="http://www.confusedamused.com/wp-content/pictures/2010/07/7-22-2010-9-48-54-AM.jpg" alt="" title="7-22-2010 9-48-54 AM" width="341" height="132" class="alignnone size-full wp-image-757" /></a></p>

<blockquote>
Microsoft Office Communications Server 2007 R2, Microsoft Unified Communications Managed API 2.0 Core Redist 64-bit installation requires Microsoft .NET Framework version 3.5. Installation can not continue.</blockquote>

<p>The solution here is to go in to Programs and Features, and then remove the Microsoft .NET Framework Extended and Microsoft .NET Client Profile packages. Restart the system and you should be good to continue with your installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/ocs-2007-r2-and-net-framework-4-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Activating the OCS 2007 R2 voice Applications after installation</title>
		<link>http://www.confusedamused.com/notebook/activating-the-ocs-2007-r2-voice-applications-after-installation/</link>
		<comments>http://www.confusedamused.com/notebook/activating-the-ocs-2007-r2-voice-applications-after-installation/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 03:00:29 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007 R2]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=753</guid>
		<description><![CDATA[Today I had the fun of trying to figure out how to activate the voice applications on a 2007 R2 Front-End after the installation has already occurred. You know that checkbox screen during the install that asks if you want to activate the Conferencing Attendant, Conference Announcement Service, Outside Voice Control, and Response Group Service [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had the fun of trying to figure out how to activate the voice applications on a 2007 R2 Front-End after the installation has already occurred. You know that checkbox screen during the install that asks if you want to activate the Conferencing Attendant, Conference Announcement Service, Outside Voice Control, and Response Group Service that everyone leaves checked by default? Well, it was unchecked during this install for some reason and now we needed it on for a dial-in conferencing pilot.</p>

<p>These services are always all installed by default, but just left in an un-activated state if you untick those checkboxes. To activate them you can use LCSCMD.exe following the documentation on <a href="http://technet.microsoft.com/en-us/library/dd572320(office.13).aspx">Technet</a>, and when you do you&#8217;ll see this error:</p>

<blockquote>
Failed to activate Microsoft.Rtc.Application.Caa on machine <SERVERNAME><br />
Error: Unable to determine the location of the manifest file.<br />
Description: The registry key Software\Microsoft\Real-Time Communications\Applications\Microsoft.Rtc.Application.Caa does not exist.<br /> 
</blockquote>

<p>And then you&#8217;ll wisely open up Regedit and verify this key <i>does</i> exist and be further confused. After pondering it some more you&#8217;ll squint real hard and realize the key is slightly off because the folks who wrote the documentation forgot an &#8220;S&#8221; in the name of the applications. </p>

<p>Be sure to include the &#8220;S&#8221; in each application ID to make the activation process succeed. For example, use Microsoft.Rtc.Applications.Caa as the ApplicationID for the Conferencing Attendant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/activating-the-ocs-2007-r2-voice-applications-after-installation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your OCS A/V Authentication Certificate Subject Name Doesn&#8217;t Matter</title>
		<link>http://www.confusedamused.com/notebook/your-ocs-av-authentication-certificate-subject-name-doesnt-matter/</link>
		<comments>http://www.confusedamused.com/notebook/your-ocs-av-authentication-certificate-subject-name-doesnt-matter/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 02:31:55 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Office Communications Server 2007]]></category>
		<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[av]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[mtls]]></category>
		<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=722</guid>
		<description><![CDATA[A few months back I was involved in a discussion about what the subject name of an OCS Edge Server&#8217;s A/V authentication certificate should be. Some folks were saying to use the Edge server&#8217;s internal FQDN and others were saying to use the external, public FQDN you define for A/V. I was in the camp [...]]]></description>
			<content:encoded><![CDATA[<p><p>A few months back I was involved in a discussion about what the subject name of an OCS Edge Server&#8217;s A/V authentication certificate should be. Some folks were saying to use the Edge server&#8217;s internal FQDN and others were saying to use the external, public FQDN you define for A/V. I was in the camp using the external name, but the odd thing was both sides said their approach worked. There is definitely some confusion about what name you should use and Microsoft has actually published directly conflicting information which further confuses the issue. Some testing I&#8217;ve recently done clears up <i>why</i> so many documents and people contradict each other &#8211; <b>the subject name doesn&#8217;t matter</b>. Really. You could put whatever you want in that subject name, assign it to A/V authentication and it will work flawlessly. The purpose of this certificate per the Technet documentation: </p>  <blockquote>The private key of the A/V authentication certificate is used to generate authentication credentials. </blockquote>  <p>Specifically, it&#8217;s not used for encryption or MTLS even if that&#8217;s not made clear anywhere. Let&#8217;s take a step back and clarify a few things for some background:</p>  <ul>   <li>There are two services that run on the Edge server with &quot;A/V&quot; in the name. If you’re not familiar with the difference, Jeff Schertz’s <a href="http://blogs.pointbridge.com/Blogs/schertz_jeff/Pages/Post.aspx?_ID=79">More on OCS Edge Server Certificates</a> article has a good explanation for some background on what the difference is between the A/V Authentication and A/V Edge services, but basically &#8211; the A/V Authentication service is internal facing and A/V Edge Service is external facing. </li>    <li>There is no certificate assigned to the A/V Edge service because encryption for external A/V traffic is provided by SRTP. </li>    <li>The certificate for A/V Authentication is only used by internal clients when trying to communicate with an external or federated client. This means you can (and should) use an internal certificate authority to issue this certificate. There is no benefit or need to use a public certificate for A/V authentication. </li> </ul>  <p>Let&#8217;s walk through a little example here as if I was trying to figure out what name to use for my A/V authentication certificate. I have the following environment:</p>  <ul>   <li>Public Domain: confusedamused.com </li>    <li>Internal AD Domain: ptown.local </li>    <li>SIP Domain: confusedamused.com </li>    <li>Edge Server Internal FQDN: edge.ptown.local </li>    <li>A/V Edge Service FQDN: av.confusedamused.com </li> </ul>  <p>So with that information what should I use as the certificate name for the A/V authentication certificate? If you consult the Technet documentation topic <a href=" http://technet.microsoft.com/en-us/library/dd425147(office.13).aspx">Set up Certificates for A/V Authentication</a> you’ll find this note (emphasis is mine): </p>  <blockquote>The subject name should match the fully qualified domain name (FQDN) of the <i>A/V Edge Service</i> published by the <i>external</i> firewall, or the FQDN of the VIP used by the A/V Edge Service array on the <i>external</i> load balancer (that is, if the Edge Servers are load balanced). </blockquote>  <p>So based on that blurb, my A/V authentication certificate subject name should be av.confusedamused.com. Fair enough.</p>  <p>I ran through the <a href="http://www.microsoft.com/Downloads/details.aspx?familyid=EC4B960C-3FE2-41BD-ABDF-AE89CFCB8C6C&amp;displaylang=en">OCS 2007 R2 Edge Planning Tool</a> for a sanity check. You can see the result below, but the tool follows the Technet documentation and uses the external FQDN I defined for the A/V Edge Service when it asked. </p>  <p><a href="http://www.confusedamused.com/wp-content/pictures/2010/02/toolav.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="tool-av" border="0" alt="tool-av" src="http://www.confusedamused.com/wp-content/pictures/2010/02/toolav_thumb.png" width="600" height="402" /></a><br /><a href="http://www.confusedamused.com/wp-content/pictures/2010/02/toolresults.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="tool-results" border="0" alt="tool-results" src="http://www.confusedamused.com/wp-content/pictures/2010/02/toolresults_thumb.png" width="600" height="402" /></a> </p>  <p>A group of MVPs and Microsoft employees published a document called <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=e9f86f96-aa09-4dca-9088-f64b4f01c703">Deploying Certificates in Office Communications Server 2007</a> which says the following about the A/V authentication certificate (emphasis is mine again): </p>  <blockquote>Must be the FQDN of Audio/Video <i>authentication server</i> in DNS.</blockquote>  <p>Well that calls out the name of the authentication server, not the A/V Edge Service. I think this comes down to really just poor wording in the document which contributes to confusion, but what is the name of our A/V Authentication server? It would be the same name as the internal Edge interface, right? The A/V Authentication server is the Edge server, not the external FQDN. So now we&#8217;re being told to use the internal FQDN, edge.ptown.local as the subject name.</p>  <p>Also released by Microsoft was a document called <a href=" http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=e9f86f96-aa09-4dca-9088-f64b4f01c703&amp;displaylang=en ">OCS 2007 R2 Walkthrough &#8211; Scale to Load Balanced Edge Server</a> which completely contradicts Technet and the Edge Planning Tool (emphasis mine):</p>  <blockquote>   <ul>     <li>Access Edge Internal (Corporate Certificate). In our sample topology, the subject name would be set to ocsedge.contoso.com, the FQDN of the Edge Server internal interface. </li>      <li><i>A/V Authentication Internal</i> (Corporate Certificate). In our sample topology, the subject name would be set to ocsedge.contoso.com, the <i>FQDN of the Edge Server internal interface.</i> </li>   </ul> </blockquote>  <p>This seems to match up with the certificates document and is somewhat backed by the exact same Technet article I referenced earlier which says:</p>  <blockquote>As a security precaution, you should not use the same certificate for A/V authentication that you use for the internal interface of the Edge Server.</blockquote>  <p>This begs the question &quot;Why would I ever even <i>try</i> to use the same certificate?&quot; The only logical reason would be perhaps because they use the same subject name. That jives with the Scale to a Load Balanced Edge Server documentation. If we&#8217;re thinking about this in terms of MTLS connections, you would have to think that this makes the most sense. In your OCS Forest properties if you added an A/V Edge server with the name edge.ptown.local for port 5062, it&#8217;s reasonable that you&#8217;d expect the A/V Authentication service operating on port 5062 of the internal interface to offer a certificate matching this name. If it presented something wrong, say maybe the external FQDN of the A/V Edge service it should fail, right?</p>  <p>Well, the truth is the name doesn&#8217;t matter. There isn&#8217;t MTLS validation happening on port 5062 the same way you&#8217;d expect MTLS between servers on 5061. I think the reason the certificate requirement issue hasn&#8217;t been pointed out yet is because it&#8217;s never caused a problem &#8211; it works either way. I can use a certificate with a subject name gobblygook.confusedamused.com and media relay authentication through the Edge server works just fine. It just needs <i>a</i> certificate to generate authentication credentials for the media relay process. Go ahead and try it out &#8211; put whatever name you want on the certificate and it will still work.</p>  <p>So while the subject name doesn&#8217;t really matter, if you&#8217;re still interested in adhering to best practices I would recommend using the external facing, public A/V Edge name. In the example earlier this would be av.confusedamused.com. Hopefully Microsoft will update the certificate and scaling documents with a clarification and make them more consistent with the rest of Technet.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/your-ocs-av-authentication-certificate-subject-name-doesnt-matter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blackberry Enterprise Server Express &amp; OCS</title>
		<link>http://www.confusedamused.com/notebook/blackberry-enterprise-server-express-ocs/</link>
		<comments>http://www.confusedamused.com/notebook/blackberry-enterprise-server-express-ocs/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 17:05:51 +0000</pubDate>
		<dc:creator>Tom Pacyk</dc:creator>
				<category><![CDATA[Blackberry Enterprise Server Express]]></category>
		<category><![CDATA[Office Communications Server 2007]]></category>
		<category><![CDATA[Office Communications Server 2007 R2]]></category>
		<category><![CDATA[bes]]></category>
		<category><![CDATA[im]]></category>
		<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://www.confusedamused.com/?p=702</guid>
		<description><![CDATA[While this probably meets the needs of most places (up to 2000 Blackberry email users) if you take a look at the comparison chart you’ll find this freebie version does not support instant messaging for OCS. Bummer.
]]></description>
			<content:encoded><![CDATA[<p>While this probably meets the needs of most places (up to 2000 Blackberry email users) if you take a look at the <a href="http://na.blackberry.com/eng/services/business/server/express/ComparisonChart_NA_012110.pdf" target="_blank">comparison chart</a> you’ll find this freebie version does not support instant messaging for OCS. Bummer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.confusedamused.com/notebook/blackberry-enterprise-server-express-ocs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

