<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Rui Silva - UCspotting</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ucspotting/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ucspotting/feed.xml</link>
    <description>Useful stuff about Unified Communications</description>
    <lastBuildDate>Tue, 16 Apr 2019 06:18:47 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Lync Conference 2014</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/lync-conference-2014</link>
      <pubDate>Thu, 03 Oct 2013 04:12:47 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2013/10/03/lync-conference-2014/</guid>
      <description><![CDATA[Registration is LIVE for Lync Conference 2014.   Microsoft Lync Conference is the largest global...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/3223.image_24DAB5AA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/3223.image_5F00_24DAB5AA.png"><img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/2161.image_thumb_5B4B67AC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/2161.image_5F00_thumb_5F00_5B4B67AC.png" width="600" height="124" /></a></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1423.clip_image001_5FC47924.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/1423.clip_5F00_image001_5F00_5FC47924.png"><img title="clip_image001" style="float: right; display: inline; background-image: none;" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1234.clip_image001_thumb_055317E8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/1234.clip_5F00_image001_5F00_thumb_5F00_055317E8.png" width="244" align="right" height="173" /></a>Registration is LIVE for Lync Conference 2014. </p>  <p>Microsoft Lync Conference is the largest global Lync event giving you access to the top Lync product experts and partners in the world. </p>  <p>We're excited to announce that REGISTRATION IS LIVE for Lync Conference 2014 at <a href="www.lyncconf.com">www.lyncconf.com</a>! </p>  <p>Lync Conference is coming to Las Vegas on February 18, 2014 at the Aria Resort &amp; Casino in the heart of the Las Vegas Strip. We are keeping you in mind as we approach Lync Conference 2014 where you'll hear Lync content from around the world. The Keynote will give you a sneak peek at Microsoft's vision for the future of Unified Communications, and the breakout sessions will offer you a technical and business perspective of Lync and how it can impact your business every day. </p>  <p>The worldwide Lync Conference is back. </p>  <p>Be the first to register today! </p>  <table cellspacing="0" cellpadding="0" border="0"><tbody>     <tr>       <td>         <p><a href="www.lyncconf.com/Register.aspx">Register Here &gt;</a></p>       </td>     </tr>   </tbody></table>]]></content:encoded>
    </item>
    <item>
      <title>This video is going to be LEGEN… WAIT FOR IT… DARY!</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/this-video-is-going-to-be-legen-wait-for-it-dary</link>
      <pubDate>Wed, 19 Dec 2012 02:28:19 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2012/12/19/this-video-is-going-to-be-legen-wait-for-it-dary/</guid>
      <description><![CDATA[Forgive my enthusiasm, but sometimes we can’t help feeling amazed by the creativity and passion some...]]></description>
      <content:encoded><![CDATA[<p>Forgive my enthusiasm, but sometimes we can’t help feeling amazed by the creativity and passion some people put into their work.</p>  <p>This is a small marketing video about Windows 8, made in Portugal, that shows how surprisingly simple it is to work (and have fun) with this new operating system.</p> <iframe height="270" src="https://www.youtube.com/embed/_ODFvy1mjoY" frameborder="0" width="480" allowfullscreen="allowfullscreen"></iframe>   <p><em>“Is Windows 8 really that simple? Find out the answer in a surprisingly simple stunt that took place in December 7th, in a Fnac store in Lisbon. The moment speaks for itself.”</em></p>]]></content:encoded>
    </item>
    <item>
      <title>Ports and Protocols for Lync Server 2010</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/ports-and-protocols-for-lync-server-2010</link>
      <pubDate>Tue, 09 Aug 2011 06:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2011/08/09/ports-and-protocols-for-lync-server-2010/</guid>
      <description><![CDATA[Recently I had the opportunity of participating in a Pilot of Lync Server in a customer that has the...]]></description>
      <content:encoded><![CDATA[<p>Recently I had the opportunity of participating in a Pilot of Lync Server in a customer that has the internal network segregated by firewalls. So, one of the first questions was about the ports and protocols used by Lync Server.</p>  <p>The requirements of this pilot included:</p>  <ul>   <li>Co-existence with OCS 2007 R2 </li>    <li>Exchange 2010 Unified Messaging </li>    <li>External Access </li>    <li>Integration with existing video-conference infrastructure </li>    <li>All the UC workloads </li> </ul>  <p>The ports and protocols used by Lync are pretty well documented in the following TechNet pages:</p>  <ul>   <li><a href="http://technet.microsoft.com/en-us/library/gg398833.aspx" target="_blank">Ports and Protocols for Internal Servers</a> </li>    <li><a href="http://technet.microsoft.com/en-us/library/gg425891.aspx" target="_blank">Reference Architecture 1: Port Summary for Single Consolidated Edge</a> </li> </ul>  <p>Additionally, the <a href="http://www.microsoft.com/download/en/details.aspx?id=6797" target="_blank">Microsoft Lync Server 2010 Protocol Workloads Poster</a> does a very good job illustrating not only the ports and protocols used by each UC workload, but also their dependencies and relationships.</p>  <p>Instead of letting the customer compile and aggregate all the provided technical information, we decided to provide some Visio drawings, in order to facilitate the configuration tasks of the security team. In the end we delivered the following schematics:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/2273.lync-internal-ports-protocols_411D8D66.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/2273.lync_2D00_internal_2D00_ports_2D00_protocols_5F00_411D8D66.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="lync-internal-ports-protocols" border="0" alt="lync-internal-ports-protocols" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5707.lync-internal-ports-protocols_thumb_086ECF5A.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/5707.lync_2D00_internal_2D00_ports_2D00_protocols_5F00_thumb_5F00_086ECF5A.png" width="553" height="364" /></a></p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8176.lync-polycom-ports-protocols_0F215B7C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/8176.lync_2D00_polycom_2D00_ports_2D00_protocols_5F00_0F215B7C.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="lync-polycom-ports-protocols" border="0" alt="lync-polycom-ports-protocols" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4774.lync-polycom-ports-protocols_thumb_229E9550.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-68-06-metablogapi/4774.lync_2D00_polycom_2D00_ports_2D00_protocols_5F00_thumb_5F00_229E9550.png" width="522" height="322" /></a></p>  <p><span style="background-color: #ffff99">Please note that these were built for a pilot and not for a Production environment, thus minor errors/inconsistencies may have been depicted</span>. If you find one, please let me know.</p>  <p>If you want the Visio document, it can be downloaded <a href="https://skydrive.live.com/?cid=14c0c285a7c3c24e&amp;sc=documents&amp;uc=1&amp;id=14C0C285A7C3C24E%212656#" target="_blank">here</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>A Post from the Past: Normalizing Company Rules without the “+” Sign in OCS 2007 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/a-post-from-the-past-normalizing-company-rules-without-the-sign-in-ocs-2007-r2</link>
      <pubDate>Thu, 24 Feb 2011 02:56:24 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2011/02/24/a-post-from-the-past-normalizing-company-rules-without-the-sign-in-ocs-2007-r2/</guid>
      <description><![CDATA[This is what I like to call a “Jurassic post”. Now that Lync is widely available, it’s uncool to...]]></description>
      <content:encoded><![CDATA[<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8228.jurassic-ocs_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8228.jurassic_2D00_ocs_5F00_2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-ocs" border="0" alt="jurassic-ocs" align="right" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1781.jurassic-ocs_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1781.jurassic_2D00_ocs_5F00_thumb.png" width="240" height="180" /></a>   <p>This is what I like to call a “Jurassic post”. Now that Lync is widely available, it’s uncool to still blog about OCS 2007 R2 :-)</p>  <p>But since there are still so many organizations using OCS 2007 R2 (I’m sure they all have plans to migrate to Lync) I decided to blog about one of the most common requests I (used to) get: how to normalize company rules without the plus sign?</p>  <p>Let me tell you that I recommend full E.164 normalization throughout all the OCS configuration settings. Nevertheless, I understand that user experience is a key factor for a success deployment, thus, if people are used to dial “0” to get an outside line and if they never used the “+” sign, that could be a good reason to configure similar normalization rules.</p>  <p>Another reason could be the fact that the legacy PBX is also configured that way, “0” for outside lines and no “+” signs accepted. Instead of configuring additional translation rules, we can make OCS provide the expected number configuration.</p>  <p>So, imagine our fictitious company Contoso, which has a location profile <em>HQ.contoso.com</em>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1781.jurassic-01_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1781.jurassic_2D00_01_5F00_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-01" border="0" alt="jurassic-01" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4034.jurassic-01_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/4034.jurassic_2D00_01_5F00_thumb.png" width="307" height="340" /></a></p>  <p>This location profile has 2 normalization rules, one for internal extensions (6-digit) and another one for external numbers (9-digit):</p>  <table border="1" cellspacing="0" cellpadding="2" width="500"><tbody>     <tr>       <td valign="top" width="80"><strong>Rule name</strong></td>        <td valign="top" width="113"><strong>Number pattern</strong></td>        <td valign="top" width="71"><strong>Translation</strong></td>        <td valign="top" width="236"><strong>Example</strong></td>     </tr>      <tr>       <td valign="top" width="80">6-digit</td>        <td valign="top" width="113">^(\d{6})$</td>        <td valign="top" width="71">$1</td>        <td valign="top" width="236">123456 is translated to 123456</td>     </tr>      <tr>       <td valign="top" width="80">9-digit</td>        <td valign="top" width="113">^(\d{9})$</td>        <td valign="top" width="71">0$1</td>        <td valign="top" width="236">123456789 is translated to 0123456789</td>     </tr>   </tbody></table>  <p>If a user on Communicator dials any of these number patterns, the translation result will still look familiar, much like what he/she has used his/her entire life:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6661.jurassic-06_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6661.jurassic_2D00_06_5F00_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-06" border="0" alt="jurassic-06" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4428.jurassic-06_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/4428.jurassic_2D00_06_5F00_thumb.png" width="247" height="370" /></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5516.jurassic-07_4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/5516.jurassic_2D00_07_5F00_4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-07" border="0" alt="jurassic-07" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8540.jurassic-07_thumb_1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8540.jurassic_2D00_07_5F00_thumb_5F00_1.png" width="247" height="371" /></a></p>  <p>But besides the normalization rules from the location profile there is also the company normalization rules that convert the numbers stored in Active Directory. This set of translation rules is defined on the <em>Company_Phone_Number_Normalization_Rules.txt</em> file, stored on the Address Book share (more information at <a href="http://technet.microsoft.com/en-us/library/dd572368(office.13).aspx" target="_blank">Configuring Address Book Server Phone Normalization</a>).</p>  <p>The problem with configuring translation rules that don’t include the “+” sign is that they are not E.164 compliant, thus OCS will not import those numbers into the Address Book. So, what’s the trick? The trick is to prepend to the translation pattern “<em>;phone-context=&lt;location profile&gt;</em>”.</p>  <p>Here’s what the rules might like in our example:</p>  <p><strong><em>(\d{9})        <br />0$1;phone-context=HQ.contoso.com</em></strong></p>  <p><strong><em>(\d{6})        <br />$1;phone-context=HQ.contoso.com</em></strong></p>  <p>Let’s take a look at the properties of the user Administrator in Active Directory:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/3750.jurassic-08_4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/3750.jurassic_2D00_08_5F00_4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-08" border="0" alt="jurassic-08" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8640.jurassic-08_thumb_1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8640.jurassic_2D00_08_5F00_thumb_5F00_1.png" width="315" height="402" /></a></p>  <p>Notice the numbers all have 9-digit because they represent outside lines. With the previous rules on the <em>Company_Phone_Number_Normalization_Rules.txt</em> file, when the OCS Address Book service runs it will translate them appropriately and showing them to users as expected, as depicted in the following picture:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4540.jurassic-02_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/4540.jurassic_2D00_02_5F00_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-02" border="0" alt="jurassic-02" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/0247.jurassic-02_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/0247.jurassic_2D00_02_5F00_thumb.png" width="403" height="412" /></a></p>  <p>By opening the local <em>GalContacts.db</em> file on the user’s computer, we can confirm that the translation rule was applied.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5444.jurassic-04_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/5444.jurassic_2D00_04_5F00_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jurassic-04" border="0" alt="jurassic-04" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6433.jurassic-04_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6433.jurassic_2D00_04_5F00_thumb.png" width="454" height="72" /></a></p>  <p>And now the good news: this “trick” also works with Lync Server 2010. But beware with the changes regarding the translation patterns, certain type of expressions no longer work with Lync. For more information read <a href="http://technet.microsoft.com/en-gb/library/gg412801.aspx" target="_blank">Migrate Address Book</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Outbound Dial Control and Authorization (or how OCS implements its own Checkpoint Charlie)</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/outbound-dial-control-and-authorization-or-how-ocs-implements-its-own-checkpoint-charlie</link>
      <pubDate>Mon, 02 Aug 2010 07:23:13 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2010/08/02/outbound-dial-control-and-authorization-or-how-ocs-implements-its-own-checkpoint-charlie/</guid>
      <description><![CDATA[&#160;  &#160;  &#160;  &#160;  &#160;  &#160;  &#160;  &#160;  &#160;  &#160;  Dialing...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5707.DirectionSigns_2.gif" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/5707.DirectionSigns_5F00_2.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="DirectionSigns" border="0" alt="DirectionSigns" align="right" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6303.DirectionSigns_thumb.gif" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6303.DirectionSigns_5F00_thumb.gif" width="220" height="476" /></a></p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>Dialing authorization is definitely one of the main concerns of any PBX Administrator, maybe even more now that the economy is forcing most companies to reduce costs.</p>  <p>Since Office Communications Server (OCS) 2007 R2 has all the necessary telephony capabilities to replace the PBX, it should offer the same dialing control as those legacy PBX’s… And it does!</p>  <p>Before diving into further detail, let’s first introduce some terminology and concepts associated with OCS:</p>  <table border="1" cellspacing="1" cellpadding="1" width="513"><tbody>     <tr>       <td valign="top" width="85"><align  ="CENTER"><strong>Object</strong> </align></td>        <td valign="top" width="423"><strong>Description</strong></td>     </tr>      <tr>       <td valign="top" width="85"><align  ="CENTER">Location profile </align></td>        <td valign="top" width="423">A location profile defines all phone numbers that can be dialed from a named location. A location contains one or, typically, more normalization rules. </td>     </tr>      <tr>       <td valign="top" width="85"><align  ="CENTER">Normalization rule </align></td>        <td valign="top" width="423">A normalization rule is a .NET regular expression that defines a phone number pattern. A set of normalization rules associated with a particular location constitutes a location profile. </td>     </tr>      <tr>       <td valign="top" width="85"><align  ="CENTER">Phone usage record </align></td>        <td valign="top" width="423">A phone usage record specifies a class of call (such as internal, local, or long distance) that can be made by various users, or groups of users, in an organization. </td>     </tr>      <tr>       <td valign="top" width="85"><align  ="CENTER">Voice policy </align></td>        <td valign="top" width="423">A voice policy associates one or more phone-usage records with one user or a group of users. </td>     </tr>      <tr>       <td valign="top" width="85"><align  ="CENTER">Route </align></td>        <td valign="top" width="423">A voice route associates target phone numbers with particular IP-PSTN gateways and phone usage records. </td>     </tr>   </tbody></table>  <p>In order to define different levels of dialing privileges, we must create different Voice Policies (that must be assigned to the different users), which in turn control the access to the outbound Routes. And in the end, it’s all about the Routes, Routes act as the <a href="http://en.wikipedia.org/wiki/Checkpoint_Charlie" target="_blank">Checkpoint Charlie</a> of outbound calls: if a user is configured with a Voice Policy, that contains a certain Phone Usage, that is associated with a Route for the dialed number, then the call is successfully placed.</p>  <p>Confused? I’ll give you an example shortly, but before, take a look at this diagram from Microsoft TechNet site <a href="http://technet.microsoft.com/en-us/library/dd425155(office.13).aspx" target="_blank">User Authorization and Outbound Call Routing Requirements</a>:</p>  <p><img alt="Dd425155.37df1bae-c892-4f65-8fc1-837502949388(en-us,office.13).gif" src="http://i.technet.microsoft.com/Dd425155.37df1bae-c892-4f65-8fc1-837502949388(en-us,office.13).gif" width="483" height="510" /></p>  <h3>A practical example</h3>  <p>From my field experience, I noticed there is more or less a pattern from all my customers regarding the types of outbound call privileges, which is:</p>  <ul>   <li>Internal Extensions – These kind of users can only place calls to internal extensions. </li>    <li>National Land Lines – Users with this policy defined may dial internal extensions and national land lines. </li>    <li>National Mobile Numbers – These will be the users allowed to dial the previous type of numbers plus national mobile phones. </li>    <li>International Numbers – For those users who need to place international calls, as well as national, of course, this will be the appropriate level of authorization. This policy doesn’t allow dialing value added numbers. </li>    <li>All Calls – The lucky ones assigned with this level of authorization may dial any number they want. </li> </ul>  <p>This simple practical example will cover a single location with a single point of exit to the PSTN. It will be relatively easy to derivate from this sample example and build more complex scenarios.</p>  <p>If you noticed the above diagram, the first step is to define the location profile(s) and to configure normalization rules, which I won’t cover in this post (if you want to know the details, please read <a href="http://technet.microsoft.com/en-us/library/dd425158(office.13).aspx" target="_blank">Location Profiles</a> and <a href="http://technet.microsoft.com/en-us/library/dd425124(office.13).aspx" target="_blank">Normalization Rules</a>).</p>  <p>So I’ll start instead from the Phone Usage Records definition. The picture below depicts the 5 phone usage records created in this practical example, one for each of the outbound calling privileges described previously.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1104.phone-usage_4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1104.phone_2D00_usage_5F00_4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="phone-usage" border="0" alt="phone-usage" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/2086.phone-usage_thumb_1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/2086.phone_2D00_usage_5F00_thumb_5F00_1.png" width="404" height="448" /></a> </p>  <p>The next step is to create the corresponding voice policies. Once again there is a voice policy for each of the phone usage created previously, as depicted in the following picture:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8546.voice-policy_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8546.voice_2D00_policy_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="voice-policy" border="0" alt="voice-policy" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8865.voice-policy_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8865.voice_2D00_policy_5F00_thumb.png" width="404" height="448" /></a> </p>  <p>Notice that <strong>Use per user policy</strong> is selected, as opposed to selecting a default global policy, since we want to differentiate the privileges each user has.</p>  <p>Since the users with more dial out privileges must also be able to place less privileged calls (users allowed to dial mobile numbers can also dial internal extensions, for example), the more “advanced” policies must include the less privileged phone usages, as the following pictures illustrate.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6327.mobile-policy_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6327.mobile_2D00_policy_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mobile-policy" border="0" alt="mobile-policy" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4276.mobile-policy_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/4276.mobile_2D00_policy_5F00_thumb.png" width="288" height="238" /></a> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/2438.universal-policy_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/2438.universal_2D00_policy_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="universal-policy" border="0" alt="universal-policy" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1537.universal-policy_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1537.universal_2D00_policy_5F00_thumb.png" width="288" height="238" /></a> </p>  <p>The final step is to create the voice routes, and once again, there will be one route for each phone usage, plus one for the emergency number. The following table provides a brief explanation of the different routes configured:</p>  <table border="1" cellspacing="1" cellpadding="1" width="517"><tbody>     <tr>       <td valign="top" width="103"><align  ="CENTER"><strong>Route</strong></align></td>        <td valign="top" width="178"><strong>Target Regular Expression</strong></td>        <td valign="top" width="230"><strong>Comment</strong></td>     </tr>      <tr>       <td valign="top" width="103">Internal Extensions</td>        <td valign="top" width="178">^\+?(\d{4})$</td>        <td valign="top" width="230">Internal extensions with 4 digits</td>     </tr>      <tr>       <td valign="top" width="103">National Land Lines</td>        <td valign="top" width="178">^\+351(2|3|8)(\d{8})$</td>        <td valign="top" width="230">The expression matches the country code for Portugal (+351) followed by 9 digit numbers starting with 2, 3 or 8</td>     </tr>      <tr>       <td valign="top" width="103">National Mobile Numbers</td>        <td valign="top" width="178">^\+3519(\d{8})$</td>        <td valign="top" width="230">The expression matches the country code for Portugal (+351) followed by 9 digit numbers starting with 9</td>     </tr>      <tr>       <td valign="top" width="103">International Calls</td>        <td valign="top" width="178">^\+?(?!(351(760|761|762)))(\d*)$</td>        <td valign="top" width="230">The pattern matches any kind of number, except the valued added numbers for Portugal: anything that begins with either 760, 761 or 762, plus the country code.</td>     </tr>      <tr>       <td valign="top" width="103">Universal Calls</td>        <td valign="top" width="178">^\+?(\d*)$</td>        <td valign="top" width="230">The pattern used is the universal route, so any number can be used</td>     </tr>      <tr>       <td valign="top" width="103">Emergency Number</td>        <td valign="top" width="178">^\+?112</td>        <td valign="top" width="230">The national emergency number for Portugal is 112</td>     </tr>   </tbody></table>  <p>Here’s an image of the Routes tab from the OCS Voice Properties dialog box:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/7713.voice-routes_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/7713.voice_2D00_routes_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="voice-routes" border="0" alt="voice-routes" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6758.voice-routes_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6758.voice_2D00_routes_5F00_thumb.png" width="404" height="448" /></a> </p>  <p>Each route has only the corresponding phone usage associated, except the emergency route, which has all the configured phone usages, as illustrated below:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1464.international-route_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1464.international_2D00_route_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="international-route" border="0" alt="international-route" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6170.international-route_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6170.international_2D00_route_5F00_thumb.png" width="240" height="368" /></a> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/4604.emergency-route_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/4604.emergency_2D00_route_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="emergency-route" border="0" alt="emergency-route" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8738.emergency-route_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8738.emergency_2D00_route_5F00_thumb.png" width="240" height="368" /></a> </p>  <h3>Testing and validation</h3>  <p>Now that everything is in place, we need to test if the different configured user profiles work as expected. There is a neat tool, part of the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9E79A236-C0DF-4A72-ABA6-9A9602A93ED0&amp;displaylang=en" target="_blank">Microsoft Office Communications Server 2007 Resource Kit Tools</a> that really suits this task: Enterprise Voice Route Helper. For detailed instructions on how to use the tool, there is a comprehensive <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cc5bd675-b91b-4339-8b4b-a11378061c95&amp;displaylang=en" target="_blank">user’s guide</a> available to download.</p>  <p>All the different combinations between voice policies and the different possible outbound numbers should be tested, but for demonstration purposes I’ll use only 2 test cases:</p>  <ol>   <li>A user with the Default Policy dials the emergency number</li>    <li>A user with international call privileges dials a value added number</li> </ol>  <p>For the first scenario the call is permitted and routed out, as you can see in the following picture:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6366.route-helper-emergency_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6366.route_2D00_helper_2D00_emergency_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="route-helper-emergency" border="0" alt="route-helper-emergency" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5611.route-helper-emergency_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/5611.route_2D00_helper_2D00_emergency_5F00_thumb.png" width="410" height="310" /></a> </p>  <p>As for the second test case, the call is blocked, with the message “Unable to route”.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1488.route-helper-value-added_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1488.route_2D00_helper_2D00_value_2D00_added_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="route-helper-value-added" border="0" alt="route-helper-value-added" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/0841.route-helper-value-added_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/0841.route_2D00_helper_2D00_value_2D00_added_5F00_thumb.png" width="410" height="310" /></a> </p>  <h3>Recommended reading</h3>  <p>For more details regarding Enterprise Voice planning and configuration, please read the following technical information from the TechNet site:</p>  <ul>   <li><a href="http://technet.microsoft.com/en-us/library/ee323543(office.13).aspx" target="_blank">Walkthrough: Dial Plan Configuration</a></li>    <li><a href="http://technet.microsoft.com/en-us/library/dd425202(office.13).aspx" target="_blank">Enterprise Voice Support</a></li>    <li><a href="http://technet.microsoft.com/en-us/library/bb870419(office.12).aspx" target="_blank">Blocking Calls to Certain Destination Numbers</a></li> </ul>]]></content:encoded>
    </item>
    <item>
      <title>The Ultimate Question of Life, The Universe, and Everything (if time permits, some useful SQL queries about OCS users)</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/the-ultimate-question-of-life-the-universe-and-everything-if-time-permits-some-useful-sql-queries-about-ocs-users</link>
      <pubDate>Wed, 30 Jun 2010 14:39:10 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2010/06/30/the-ultimate-question-of-life-the-universe-and-everything-if-time-permits-some-useful-sql-queries-about-ocs-users/</guid>
      <description><![CDATA[First, let’s take care of the Ultimate Question of Life, The Universe, and Everything, since this...]]></description>
      <content:encoded><![CDATA[<p></p> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8863.Questionmark-polaroid_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8863.Questionmark_2D00_polaroid_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Questionmark-polaroid" border="0" alt="Questionmark-polaroid" align="right" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/3073.Questionmark-polaroid_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/3073.Questionmark_2D00_polaroid_5F00_thumb.png" width="209" height="240" /></a>First, let’s take care of the Ultimate Question of Life, The Universe, and Everything, since this one is really, really easy. Well, the answer is <a href="http://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#Answer_to_the_Ultimate_Question_of_Life_the_Universe_and_Everything_.2842.29" target="_blank">42</a>.   <p>Now, on with the useful (so I hope) SQL queries that will let you know a little bit more about your environment.</p>  <p>In order to build valuable SQL queries, one must know the backend data structure that supports Office Communications Server (OCS) 2007 R2.</p>  <p>The TechNet page <a href="http://technet.microsoft.com/en-us/library/dd425133(office.13).aspx" target="_blank">Storage Requirements</a> has a nice table that enumerates the different databases created on a default OCS installation, whether it’s Standard Edition or Enterprise Edition:</p>  <table border="1" cellspacing="0" cellpadding="2" width="514"><tbody>     <tr>       <td valign="top" width="66"><strong>Database</strong></td>        <td valign="top" width="200"><strong>Type of Data</strong></td>        <td valign="top" width="246"><strong>Location</strong></td>     </tr>      <tr>       <td valign="top" width="66">RTC</td>        <td valign="top" width="200"><align  ="LEFT">Persistent user data (for example, ACLs, contacts, home server or pool, scheduled conferences) </align></td>        <td valign="top" width="246">Enterprise Edition, back-end database; Standard Edition, Microsoft SQL Server 2005 Express with SP2. </td>     </tr>      <tr>       <td valign="top" width="66">RTCConfig</td>        <td valign="top" width="200">Persistent Office Communications Server 2007 R2 settings </td>        <td valign="top" width="246">Enterprise Edition, back-end database; Standard Edition, Microsoft SQL Server 2005 Express with SP2. </td>     </tr>      <tr>       <td valign="top" width="66">RTCDyn</td>        <td valign="top" width="200">Transient user data (for example, endpoints and subscriptions, and transient conferencing state)</td>        <td valign="top" width="246">Enterprise Edition, back-end database; Standard Edition, Microsoft SQL Server 2005 Express with SP2. </td>     </tr>      <tr>       <td valign="top" width="66">RTCab</td>        <td valign="top" width="200">Database containing global address information used by Address Book Web query service to support Address Book search queries from Communicator Mobile for Windows clients </td>        <td valign="top" width="246">Enterprise Edition, back-end database; Standard Edition, Microsoft SQL Server 2005 Express with SP2. </td>     </tr>   </tbody></table>  <p>All the information used in the queries resides on these databases. To execute the queries, I’ll use Microsoft SQL Server Management Studio (actually I’ll use the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&amp;displaylang=en" target="_blank">Express Edition</a>, since I have OCS Standard on my test environment).</p>  <h3>Query #1 – List users that have logged in OCS</h3>  <p>For this query, the needed information resides on the RTCDyn database, more specifically at the <em>dbo.HomedResourceDynamic </em>table, which contains the<em> LastNewRegister</em> field (last logon time) and the <em>ResourceId</em> field (ID of the user).</p>  <p>Since we want to display SIP Addresses and not user IDs, we’ll cross information with the <em>UserAtHost</em> field, that resides on the <em>dbo.Resource</em> table from the RTC database.</p>  <p>This is the SQL query…</p>  <div id="codeSnippetWrapper">   <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">SELECT</span> hud.LastNewRegisterTime <span style="color: #0000ff">AS</span> &quot;<span style="color: #0000ff">Last</span> Logon&quot;, res.UserAtHost <span style="color: #0000ff">AS</span> &quot;SIP Address&quot; <br /><span style="color: #0000ff">FROM</span> rtcdyn.dbo.HomedResourceDynamic hud <span style="color: #0000ff">JOIN</span><br />(<span style="color: #0000ff">SELECT</span> ResourceId, UserAtHost <span style="color: #0000ff">FROM</span> rtc.dbo.Resource<br /><span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> ResourceId, UserAtHost)<br />res<br /><span style="color: #0000ff">ON</span> hud.OwnerId=res.ResourceId<br /><span style="color: #0000ff">ORDER</span> <span style="color: #0000ff">BY</span> &quot;<span style="color: #0000ff">Last</span> Logon&quot; DESC</pre>

  <br /></div>

<div>…that will produce the following result:</div>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/3482.logon-users_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/3482.logon_2D00_users_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logon-users" border="0" alt="logon-users" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1016.logon-users_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1016.logon_2D00_users_5F00_thumb.png" width="484" height="340" /></a> </p>

<h3>Query #2 – List users that have at least one contact in Communicator</h3>

<p>Although adding contacts (or buddies) in Office Communicator is not required to take advantage of all the features provided by OCS, an Administrator might find useful to know which users have at least one buddy in their list of contacts.</p>

<p>The information needed resides on the RTC database, more specifically at the <em>dbo.Resource</em> table. The query looks like this:</p>

<div id="codeSnippetWrapper">
  <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">SELECT</span> <font color="#0000ff">DISTINCT</font> r.UserAtHost <span style="color: #0000ff">FROM</span> RTC.dbo.Contact c <span style="color: #0000ff">INNER</span> <span style="color: #0000ff">JOIN</span><br />RTC.dbo.Resource r <span style="color: #0000ff">ON</span> c.OwnerId = r.ResourceId</pre>

  <br /></div>

<p>And here’s a picture of the results obtained.</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/3482.contact-users_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/3482.contact_2D00_users_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="contact-users" border="0" alt="contact-users" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6786.contact-users_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6786.contact_2D00_users_5F00_thumb.png" width="484" height="340" /></a> </p>

<h3>Query #3 – List users that have Enterprise Voice enabled</h3>

<p>OCS stores the configuration of the different user features that are enabled in (at least) 2 locations: in the table <em>dbo.ResourceDirectory</em>, field <em>OptionFlags</em>, on the RTC database; in the Active Directory, in the <em><a href="http://technet.microsoft.com/en-us/library/bb663647(office.12).aspx" target="_blank">msRTCSIP-OptionFlags</a></em> attribute.</p>

<p>In this example I’ll use a SQL query to find that information on the RTC database.</p>

<div id="codeSnippetWrapper">
  <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">SELECT</span> r.UserAtHost <span style="color: #0000ff">FROM</span> RTC.dbo.ResourceDirectory c<br /><span style="color: #0000ff">INNER</span> <span style="color: #0000ff">JOIN</span> RTC.dbo.Resource r <span style="color: #0000ff">ON</span> c.ResourceId = r.ResourceId<br /><span style="color: #0000ff">WHERE</span> (c.OptionFlags &amp; 128) = 128</pre>

  <br /></div>

<p>In my test environment, I have the following “UC Enabled” users:</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6116.ucenabled-users_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6116.ucenabled_2D00_users_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ucenabled-users" border="0" alt="ucenabled-users" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/7282.ucenabled-users_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/7282.ucenabled_2D00_users_5F00_thumb.png" width="484" height="340" /></a> </p>

<h3>Query #4 – List users that organized Live Meeting conferences</h3>

<p>If someone wants to know the users that have organized Live Meeting conferences, that information is stored on the RTC database, <em>dbo.Conference</em> table, <em>OrganizerId</em> field.</p>

<div id="codeSnippetWrapper">
  <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">SELECT</span> <span style="color: #0000ff">DISTINCT</span> r.UserAtHost <span style="color: #0000ff">FROM</span> RTC.dbo.Conference c <br /><span style="color: #0000ff">INNER</span> <span style="color: #0000ff">JOIN</span> RTC.dbo.Resource r <span style="color: #0000ff">ON</span> c.OrganizerId = r.ResourceId</pre>

  <br /></div>

<p>The following image depicts the results from my test environment:</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/6131.conference-users_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/6131.conference_2D00_users_5F00_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="conference-users" border="0" alt="conference-users" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/8875.conference-users_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/8875.conference_2D00_users_5F00_thumb.png" width="484" height="340" /></a></p>

<p>The answer to this question could also be obtained by using the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9e79a236-c0df-4a72-aba6-9a9602a93ed0&amp;displaylang=en" target="_blank">Resource Kit</a> tool DMInside with the option “List organizers”.</p>

<p></p>

<p></p>

<p></p>

<p></p>

<h3>Want more reports?</h3>

<p>OCS records much more information and keeps track of several indicators about pretty much everything related with the different forms of communications available to the users. Deploying <a href="http://technet.microsoft.com/en-us/library/dd441379(office.13).aspx" target="_blank">Monitoring Server</a> will unleash all the potential of OCS reporting.</p>

<p><a href="http://blog.insideocs.com">Curtis Johnstone</a> has written a nice <a href="http://blog.insideocs.com/2009/04/27/ocs-usage-reporting-options/" target="_blank">blog post</a> about other reporting possibilities that I strongly recommend you to read.</p>]]></content:encoded>
    </item>
    <item>
      <title>Dude, Where’s my CDR/Archiving/QoE Data?</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/dude-wheres-my-cdrarchivingqoe-data</link>
      <pubDate>Wed, 16 Jun 2010 13:50:29 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2010/06/16/dude-wheres-my-cdrarchivingqoe-data/</guid>
      <description><![CDATA[Recently I had to troubleshoot a strange case where a recently OCS Archiving + Monitoring server...]]></description>
      <content:encoded><![CDATA[<p>Recently I had to troubleshoot a strange case where a recently OCS Archiving + Monitoring server (collocation of these 2 roles is <a href="http://technet.microsoft.com/en-us/library/dd425201(office.13).aspx" target="_blank">supported</a>) was not collecting any data. I was monitoring the data through the use of this neat <a href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=1&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=b9bf4f71-fb0b-4de9-962f-c56b70a8aecd&amp;u=details.aspx%3ffamilyid%3d9E79A236-C0DF-4A72-ABA6-9A9602A93ED0%26displaylang%3den" target="_blank">Resource Kit</a> tool:</p>  <p><b>ArchivingCDR Reporter (ArchivingCDRReporter.exe, ArchivingCDRReporter_Config.xml)</b>    <br /><em>This reporting tool has built-in SQL queries to retrieve and view information from the Archiving and Call Detail Records (CDR) Backend. The tool enables the user to view Office Communications Server 2007 usage reports based on the Archiving and CDR tables.</em></p>  <p>Everything seemed to be pretty well configured, Archiving and Monitoring were enabled both at the forest level and pool level, as explained in <a href="http://technet.microsoft.com/en-us/library/dd441379(office.13).aspx" target="_blank">Deploying Monitoring Server</a> and <a href="http://technet.microsoft.com/en-us/library/dd425118(office.13).aspx" target="_blank">Deploying Archiving Server</a>.</p>  <p>The Operating System was Windows Server 2008 R2, but since all the steps from <a href="http://support.microsoft.com/kb/982021/" target="_blank">KB982021</a> had been followed, that version of OS is fully supported.</p>  <p>So, I had to stop for a while and think… Looking at the <a href="http://technet.microsoft.com/en-us/library/dd572495(office.13).aspx" target="_blank">archiving and monitoring architecture in Office Communications Server 2007 R2</a> may help a little bit:</p>  <p><img alt="Dd572495.605e901c-fca4-465a-9e46-36d5f5aa987f(en-us,office.13).png" src="http://i.technet.microsoft.com/Dd572495.605e901c-fca4-465a-9e46-36d5f5aa987f(en-us,office.13).png" width="509" height="146" /></p>  <p>Since no data was being delivered to the DB server and the connection between the OCS Archiving + Monitoring server was OK, maybe the problem had to do with the Messaging Queuing (MSMQ) service.</p>  <p>In fact, the Application event log of the server had a couple of error events related with MSMQ:</p>  <p><em>The Message Queuing service rejects incoming messages when it is unable to check whether the sender is allowed access to the queue for sending messages. In this case, the queue affected is OCS-ARCH-MON\private$\lcslog, but note that an event might not be issued every time this problem occurs.     <br /> To perform this access check, Message Queuing needs access to the TokenGroupsGlobalAndUniversal attribute of the sender's user object. Only users with domain administration permissions can add members to the Windows Authorization Access Group, which is allowed access to the TokenGroupsGlobalAndUniversal attribute, in one of two ways:      <br /> 1) For best security practice, add only the computer accounts that need access to the TokenGroupsGlobalAndUniversal attribute to the Windows Authorization Access Group. The domain administrator will repeat this operation for other Message Queuing computers that require the permission, manually adding the relevant accounts to the Windows Authorization Access Group.      <br /> 2) As a less secure practice, add the Authenticated Users group to the Windows Authorization Access group. This grants every authenticated user, including the Message Queuing service on any computer, access to the TokenGroupsGlobalAndUniversal attribute for all users, and requires no further manual administration.</em></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/0511.msmq-2177_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/0511.msmq_2D00_2177_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="msmq-2177" border="0" alt="msmq-2177" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/1680.msmq-2177_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/1680.msmq_2D00_2177_5F00_thumb.png" width="484" height="450" /></a> </p>  <p>I followed the suggested recommendation of adding the MSMQ computer accounts (OCS Frontend, OCS Archiving + Monitoring) to the Windows Authorization Access Group (located in the <strong>Builtin</strong> container).</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/0842.windows-authorization-access-group_2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/0842.windows_2D00_authorization_2D00_access_2D00_group_5F00_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="windows-authorization-access-group" border="0" alt="windows-authorization-access-group" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/68/06/metablogapi/5238.windows-authorization-access-group_thumb.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-06-metablogapi/5238.windows_2D00_authorization_2D00_access_2D00_group_5F00_thumb.png" width="411" height="452" /></a> </p>  <p>After that, in order to correct the problem, you must restart the MSMQ service on the Archiving + Monitoring server (this will also restart the OCS services). On the OCS Frontend you must also restart the MSMQ service, the QoE Agent Service and also the Frontend service. Restarting both servers will also do the trick.</p>]]></content:encoded>
    </item>
    <item>
      <title>How to apply updates for OCS</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/how-to-apply-updates-for-ocs</link>
      <pubDate>Thu, 26 Nov 2009 03:08:39 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2009/11/26/how-to-apply-updates-for-ocs/</guid>
      <description><![CDATA[From times to times, new updates are released for Office Communications Server 2007 R2, in order...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/band-aid_4.gif" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/band-aid_4.gif"><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="band-aid" border="0" alt="band-aid" align="left" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/band-aid_thumb_1.gif" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/band-aid_thumb_1.gif" width="208" height="209" /></a> </p>  <p>From times to times, new updates are released for Office Communications Server 2007 R2, in order to correct bugs or to fix some security vulnerabilities.</p>  <p>As part of the normal operations routine, the IT Administrator should decide whether to apply or not apply these hotfixes, although nowadays it’s practically common sense to reserve a maintenance window to effectively install corrective software.</p>  <p>The first thing to have in mind is the risk associated with this kind of operation, in order to prevent situations like the recent one with the <a href="http://blogs.technet.com/ucspotting/archive/2009/10/15/3287189.aspx" target="_blank">KB974571 hotfix</a>. </p>  <p>But after the planning process and the risk mitigation phase, it’s time to apply those patches. Taking the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=b3b02475-150c-41fa-844a-c10a517040f4" target="_blank">OCS 2007 R2 October 2009 hotfix</a> as an example, the first thing to notice on the download page is there are several files to install:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs2007r2-october-2009-hotfix_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs2007r2-october-2009-hotfix_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ocs2007r2-october-2009-hotfix" border="0" alt="ocs2007r2-october-2009-hotfix" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs2007r2-october-2009-hotfix_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs2007r2-october-2009-hotfix_thumb.png" width="506" height="546" /></a> </p>  <p>These files are intended to be downloaded and installed on the different OCS roles (most of the roles require more than one file to be installed). The question one may ask is <span style="background-color: #ffff99">“Which patches should be applied on a given role?”</span>. Well, fear not, as I’m going to explain 3 different methods that can be used in order to correctly apply the updates with a minimum effort.</p>  <h3>Method #1 – Microsoft Update or WSUS</h3>  <p>Using <a href="http://update.microsoft.com/" target="_blank">Microsoft Update</a> or <a href="http://technet.microsoft.com/en-us/wsus/default.aspx" target="_blank">Windows Server Update Services (WSUS)</a> is by far the simplest method. The main difference between the two is that the first installs the updates directly from the Microsoft site, whether the second goes through an internal approval process by an IT Administrator before downloading and distributing the required updates.</p>  <p>But both methods will automatically deliver the relevant update files to all the OCS roles in your infrastructure. Depending on the update process configured on each server, the updates will then need to be locally approved and given permission to run (or not).</p>  <h3>Method #2 - Cumulative Server Update Installer</h3>  <p>The Cumulative Server Update Installer (ServerUpdateInstaller.exe) is a tool that can be downloaded together with the rest of the patches. This tool applies all updates for the appropriate server role in one click. Nevertheless this is still a manual method run from the command line or from the Windows UI:</p>  <ol>   <li>Download <strong>*ALL*</strong> the files to a local folder and run ServerUpdateInstaller.exe. The Cumulative Server Update Installer can be run using the UI, by double clicking it (see image below), or using the command line.      <br />      <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/server-update-installer_4.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/server-update-installer_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="server-update-installer" border="0" alt="server-update-installer" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/server-update-installer_thumb_1.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/server-update-installer_thumb_1.png" width="484" height="192" /></a>       <p>To run the Installer by using a command prompt, use the following command, together with the appropriate switches: </p>      <p><code></code></p>      <pre>ServerUpdateInstaller.exe [/silent [/forcereboot]] | [/extractall]</pre>

    <p></p>

    <p>The <b>/silent</b><b>/forcereboot</b> switch applies all the applicable updates silently and then automatically restarts the server at the end of the installation process if it is necessary. 

      <br />The <b>/extractall</b> switch the updates from the installer and puts the updates in a subfolder that is named “Extracted” in the folder in which you ran the command.</p>
  </li>

  <li>Since we are using the October 2009 hotfix as an example, this update requires a database upgrade. The database upgrade patch can be applied manually by using the provided OCS2009-DBUpgrade.msi file.&#160; The update should be installed on every front-end and director server running OCS Standard Edition, and/or from any Enterprise Edition front-end or backend (backend preferred). More details and instructions can be found on the corresponding KB article: <a href="http://support.microsoft.com/kb/969834/" target="_blank">Description of the update package for Office Communications Server 2007 R2 Database</a>.</li>
</ol>

<h3>Method #3 – Manual Installation</h3>

<p>And finally the 3rd method, which I don’t recommend but that I’ll explain for academic purposes. </p>

<p>Please keep in mind the following recommendations for manual deployment (from <a href="http://support.microsoft.com/?kbid=968802" target="_blank">KB968802</a> article): </p>

<ul>
  <li><span style="background-color: #ffff99">All updates for a role must be deployed. Additionally, all updates on the same server role must be at the latest update level.</span> </li>

  <li>Communications Server Standard Edition and Communications Server Enterprise Edition Consolidated also require all updates for any roles that are deployed on the server. All updates must also be at the latest update level. </li>

  <li>Additionally, the following recommendations apply to the for Office Communication Server 2007 R2 Distributed Enterprise Edition: 
    <ul>
      <li>Update the whole topology with the latest updates for each component at the same time. This may be possible in smaller environments. </li>

      <li>First, update the pool and the directors who are servicing the pool. Update additional pools as possible with the directors for these pools at the same time. If a director services more than one pool, the director is updated while the first pool that it services is updated. The external pool servers must be updated after the pool that they service is updated. </li>

      <li>(CWA and media) If an external pool server services more than one pool, it will be updated after all the pools that it services are updated.</li>
    </ul>
  </li>
</ul>

<p>Having said that, the following table (click for larger size) helps you determine the mapping between the updates and the different server roles (courtesy of my colleague João Bravo, kudos to him):</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs-updates-jb_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs-updates-jb_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ocs-updates-jb" border="0" alt="ocs-updates-jb" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs-updates-jb_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/HowtoapplyupdatesforOCS_9226/ocs-updates-jb_thumb.png" width="524" height="130" /></a> </p>

<p>Just follow the “greens” and apply the update files to each OCS server role according to the previous table.</p>

<h3>Keeping up with the updates</h3>

<p>If using any of the manual processes described above (methods 2&amp;3), the best way to keep up with the latest OCS updates is to regularly check the new <a href="http://technet.microsoft.com/en-us/office/ocs/ee695846.aspx">Updates Resource Center for Office Communications Server 2007 R2 and Clients</a> on the OCS TechCenter.</p>]]></content:encoded>
    </item>
    <item>
      <title>Tales from the Crypt..oAPI Vulnerability (KB974571)</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/tales-from-the-crypt-oapi-vulnerability-kb974571</link>
      <pubDate>Thu, 15 Oct 2009 15:19:12 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2009/10/15/tales-from-the-crypt-oapi-vulnerability-kb974571/</guid>
      <description><![CDATA[&#160;  &#160;  As much as I would like to catalog the story so far around KB974571 as fiction,...]]></description>
      <content:encoded><![CDATA[<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/Tales-From-The-Crypt-The-Complete-First-Season_2.jpg" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/Tales-From-The-Crypt-The-Complete-First-Season_2.jpg"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Tales-From-The-Crypt-The-Complete-First-Season" border="0" alt="Tales-From-The-Crypt-The-Complete-First-Season" align="right" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/Tales-From-The-Crypt-The-Complete-First-Season_thumb.jpg" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/Tales-From-The-Crypt-The-Complete-First-Season_thumb.jpg" width="172" height="244" /></a>   <p>&#160;</p>  <p>&#160;</p>  <p>As much as I would like to catalog the story so far around <a href="http://support.microsoft.com/kb/974571" target="_blank">KB974571</a> as fiction, the truth is that it resembles more to a horror movie.</p>  <p>Before going any further, I would like to say that <span style="background-color: #ffff99">Microsoft recommends thorough testing of any software patch/hotfix before applying them in a Production environment</span>. Having said that, I would like to invite you all to read <a href="http://technet.microsoft.com/en-us/library/cc750077.aspx" target="_blank">Best Practices for Applying Service Packs, Hotfixes and Security Patches</a>.</p>  <p>The above mentioned TechNet article states the following:</p>  <p><em>The basic rules are:</em></p>  <p><strong><em>&quot;The risk of implementing the service pack, hotfix and security patch should ALWAYS be LESS than the risk of not implementing it.&quot;</em> </strong></p>  <p><em>And,</em></p>  <p><strong><em>&quot;You should never be worse off by implementing a service pack, hotfix and security patch. If you are unsure, then take steps to ensure that there is no doubt when moving them to production systems.&quot;</em> </strong></p>  <p>Whether you’re superstitious, religious or a devoted fan of Murphy Laws, the naked truth is that sh*t happens! And that’s exactly what recently happened with OCS and the release of the security patch KB974571. For more information, please read the post from the OCS Team Blog: <a href="http://communicationsserverteam.com/archive/2009/10/14/632.aspx#comments" target="_blank">Urgent: Known issue under investigation with KB974571 and LCS/OCS</a>.</p>  <p></p>  <p></p>  <p>But the KB974571 hotfix has another side effect that I recently experienced. Besides affecting the services of LCS/OCS, the very same patch can also prevent the installation of new OCS servers.</p>  <p>Recently, I was building a new demo environment, when, nearly at the end of the installation of a standard edition server, during the activation phase of the server, I got the following error:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/failed_4.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/failed_4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="failed" border="0" alt="failed" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/failed_thumb_1.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/failed_thumb_1.png" width="336" height="263" /></a> </p>  <p>The OCS installation logs revealed the following information:</p>  <p><b><font color="#ff0000">Failure        <br />[0xC3EC796C] One or more errors occurred during execution of the wizard; the wizard was unable to complete successfully. Please check the log file for more information.</font></b></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log1_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log1_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="log1" border="0" alt="log1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log1_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log1_thumb.png" width="446" height="389" /></a></p>  <p>After expanding the log, the error pointed out to the Activation Standard Edition Server Log.</p>  <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log2_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log2_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="log2" border="0" alt="log2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log2_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log2_thumb.png" width="446" height="389" /></a></p>  <p>The error in the Activation Standard Edition Server Log was:</p>  <p><b><font color="#ff0000">Failure        <br />[0xC3EC78D8] Failed to read the Office Communications Server version information. This can happen if the computer clock is not set to correct date and time.</font></b></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log3_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log3_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="log3" border="0" alt="log3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log3_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/log3_thumb.png" width="446" height="389" /></a> </p>  <p></p>  <p></p>  <p></p>  <p>After spending some time troubleshooting the issue, with no solution in sight, I started to doubt the health of the virtual machines I was using (first) and then my sanity (last). But then, when I was on a dead end, a customer asked me to help him installing a new Edge Server. Guess what? Same error, same problem.</p>  <p>Since I was getting lots of noise around KB974571 (I already knew it could affect installed LCS/OCS services), I decided to uninstall that specific hotfix from the list of installed patches. That solved the problem!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/uninst_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/uninst_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="uninst" border="0" alt="uninst" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/uninst_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/TalesfromtheCr.oAPIVulnerabilityKB974571_14001/uninst_thumb.png" width="431" height="303" /></a> </p>  <p><span style="background-color: #ffff99"><span style="background-color: #ffff99"><span style="background-color: #ffff99">Microsoft recommends to postpone installing KB974571 on any LCS 2005 / OCS 2007 /OCS 2007 R2 servers.</span></span></span></p>  <p>“<em>Microsoft is investigating this issue, and will determine the most appropriate way to address it. Customers who are not running OCS or LCS server are not affected by this known issue, and can safely ignore this issue.</em></p>  <p><em>Customers who have deployed the OCS or LCS product on a server should assess the risk that is involved to decide whether to install the security update on that server. These customers should revisit this Knowledge Base article often, because this article will be updated as soon as more information and a resolution are available.</em>”</p>  <h3>[UPDATE]</h3> <span style="background-color: #ffff99">   <p><span style="background-color: #ffff99">There is now a fix for this issue, available through the <a href="http://support.microsoft.com/kb/974571" target="_blank">KB974571</a> article. Look under the section “<strong>Resolution for the known issue</strong>”.</span></p>    <p></p> </span>]]></content:encoded>
    </item>
    <item>
      <title>Live Meeting: Best Before Date (See Below)</title>
      <link>https://docs.microsoft.com/archive/blogs/ucspotting/live-meeting-best-before-date-see-below</link>
      <pubDate>Fri, 14 Aug 2009 11:52:49 GMT</pubDate>
      <dc:creator><![CDATA[Rui José Silva]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/ucspotting/2009/08/14/live-meeting-best-before-date-see-below/</guid>
      <description><![CDATA[Although on-premises web conferencing meetings organized with Office Communications Server (OCS)...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/best-before-date_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/best-before-date_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="best-before-date" border="0" alt="best-before-date" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/best-before-date_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/best-before-date_thumb.png" width="500" height="512" /></a> </p>  <p>Although on-premises web conferencing meetings organized with Office Communications Server (OCS) are not perishable products (and thus they don’t require a “best-before date”), there is some configuration involved around meeting life-cycle that I would like to explore a little bit further.</p>  <p>Suppose you organize a web conference using the <a href="http://office.microsoft.com/search/redir.aspx?assetid=DC102549931033&amp;url=http://office.microsoft.com/en-us/help/HA101733831033.aspx&amp;hurl=22AD4AAB1E7C9068011E7459FACBCAAA" target="_blank">Live Meeting client</a> or the <a href="http://office.microsoft.com/search/redir.aspx?assetid=DC102549881033&amp;url=http://office.microsoft.com/en-us/help/HA102368901033.aspx&amp;hurl=D3B0798A3B458BA15D226BF67850A1AA" target="_blank">Conferencing Add-in for Microsoft Outlook</a>. You invite some attendees and during the meeting some content is generated and uploaded (e.g. PowerPoint slides, polls, whiteboard, etc.).</p>  <p>Three weeks after this specific meeting has occurred, you want to review some of the annotations that were made on the slides and some of the brainstorming carved on the whiteboard. “No problem”, you think. After locating the appointment on the Outlook Calendar, you click the “Join the meeting” hyperlink, but suddenly the following error pops-up:</p>  <p><font color="#ff0000">     <br />The meeting has ended or the information you entered was not recognized. Contact the meeting organizer for more information.</font></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/lm-expired_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/lm-expired_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="lm-expired" border="0" alt="lm-expired" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/lm-expired_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/lm-expired_thumb.png" width="437" height="356" /></a> </p>  <p>Before going any further, let’s review some of the concepts associated with meeting life-cycle:</p>  <ul>   <li><strong>Deactivation –</strong> The meeting is deactivated when the organizer terminates it and all the authenticated users leave. When you deactivate a meeting, you end the instance of the meeting, but the meeting continues to exist in the database and can be reactivated and rejoined. </li>    <li><strong>Expiration –</strong> After the meeting is deactivated, the expiration clock starts ticking. When you reach the expiration time, it’s no longer possible to rejoin the conference, unless it’s reactivated. The default expiration time for scheduled meetings is 14 days. </li>    <li><strong>Reactivation</strong> <strong>–</strong> If the meeting still exists in the database, it can be reactivated simply by rescheduling it using Outlook. Since you can reschedule it to occur in the past (although I can’t think on a reason to do this), the meeting will only reactivate if it falls in the last 14 days, because this is the default expiration time. </li>    <li><strong>Content Expiration Grace Period</strong> – Grace period in addition to the expire time, after which the Web Conferencing Server should clean up content for a conference. When you reach the end of the grace period, the meeting and all associated meeting content are deleted from the database. The default grace period is 14 days after the expiration time. </li> </ul>  <p>With the present release of OCS it’s not possible to control the duration of the meeting expiration period (although the content grace period can be extended). This is the default behavior for the meeting expiration time (txs Tarang Mittal):</p>  <ul>   <li>For a single one time scheduled meeting, the conferences expires after 14 days. </li>    <li>For a recurring meeting, the conference expires 14 days after the last instance of that meeting. </li>    <li>For a recurring meeting with no end date, the conference never expires. </li>    <li>For a Meet Now, the session expires in under 8 hours. </li> </ul>  <p>Hopefully, after this explanation we can now understand the error message we got when trying to rejoin a meeting that had ended 3 weeks before. Since the expiration time is 14 days, it’s no longer possible to rejoin it. The good news is that we have an additional 14 days for the content to expire, after the default meeting expiration period. So, by simply rescheduling the meeting using Outlook, we can now successfully reopen it and check the content we were looking for.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/LM_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/LM_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="LM" border="0" alt="LM" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/LM_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/LM_thumb.png" width="484" height="366" /></a> </p>  <p>&#160;</p>  <h3>Managing Meeting Life Cycles with WMI</h3>  <p>There are some parameters in OCS that can only be controlled using WMI, such as the ones involved with meeting life-cycle.</p>  <p>For conference deactivation, there are two pool-level WMI settings that are stored as properties in the <strong>MSFT_SIPMeetingScheduleSetting</strong> WMI class in the root\CIMV2 namespace:</p>  <ul>   <li><strong>UnAuthenticatedUserGracePeriod</strong> [Integer (0~60) minutes] <strong>–</strong> Grace period allowed for anonymous or federated users to stay in the meeting without any authenticated user in the meeting. The default value is 10 minutes. </li>    <li><strong>MaxMeetingLength</strong> [Integer (0 ~ 8760) hours] <strong>–</strong> Maximum length of any meeting without join activity. The default value is 24 hours. </li> </ul>  <p>For conference expiration, there is one pool-level WMI setting that is stored as a property in the <strong>MSFT_SIPDataMCUCapabilitySetting</strong> WMI class in the root\CIMV2 namespace:</p>  <ul>   <li><strong>ContentExpirationGracePeriod</strong> [Integer (0~365) days] <strong>–</strong> Grace period in addition to the expire time, after which the Web Conferencing Server should clean up content for a conference. The default value is 14 days. </li> </ul>  <p><strong>     <br />To use VBScript to modify deactivation and expiration WMI settings</strong></p>  <p>The following 2 scripts will modify the WMI properties previously discussed. They must be run on the OCS Web Conferencing Server using the appropriate administrative permissions.</p>  <div>   <pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">' </span>
<span style="color: #008000">' ContentExpirationGracePeriod</span>
<span style="color: #008000">'</span>

  <span style="color: #0000ff">Dim</span> objLocator
  <span style="color: #0000ff">Dim</span> objService
  <span style="color: #0000ff">Dim</span> objInstances
  <span style="color: #0000ff">Dim</span> objInstance

  Wscript.Echo <span style="color: #006080">&quot;Connecting to local WMI store...&quot;</span>

  <span style="color: #0000ff">Set</span> objLocator = CreateObject(<span style="color: #006080">&quot;WbemScripting.SWbemLocator&quot;</span>)
  <span style="color: #0000ff">Set</span> objService = objLocator.ConnectServer(<span style="color: #006080">&quot;.&quot;</span>, <span style="color: #006080">&quot;root\cimv2&quot;</span>)

  Wscript.Echo <span style="color: #006080">&quot;select * from MSFT_SIPDataMCUCapabilitySetting&quot;</span>
  <span style="color: #0000ff">Set</span> objInstances = objService.ExecQuery _
    (<span style="color: #006080">&quot;select * from MSFT_SIPDataMCUCapabilitySetting where backend=&quot;</span><span style="color: #006080">&quot;(local)\\rtc&quot;</span><span style="color: #006080">&quot;&quot;</span>)
    <span style="color: #008000">' For OCS Enterprise Edition: backend=&quot;&quot;server name\\sql instance&quot;&quot;</span>

  <span style="color: #0000ff">If</span> IsNull(objInstances) <span style="color: #0000ff">Or</span> (objInstances.Count = 0) <span style="color: #0000ff">Then</span>
    Wscript.Echo <span style="color: #006080">&quot;Error: No instance&quot;</span>
  <span style="color: #0000ff">Else</span>
    <span style="color: #0000ff">For</span> <span style="color: #0000ff">Each</span> objInstance <span style="color: #0000ff">in</span> objInstances
      objInstance.Properties_.Item(<span style="color: #006080">&quot;ContentExpirationGracePeriod&quot;</span>).Value = 365
      objInstance.Put_
      wscript.Echo objInstance.Properties_.Item(<span style="color: #006080">&quot;ContentExpirationGracePeriod&quot;</span>).Value
      wscript.Echo <span style="color: #006080">&quot;Done!&quot;</span>
    <span style="color: #0000ff">Exit</span> <span style="color: #0000ff">For</span>
    <span style="color: #0000ff">Next</span>
  <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span>

  Wscript.Echo <span style="color: #006080">&quot;&quot;</span></pre>
</div>

<p></p>

<p>&#160;</p>

<div>
  <pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">' MaxMeetingLength</span>
<span style="color: #008000">'</span>

  <span style="color: #0000ff">Dim</span> objLocator
  <span style="color: #0000ff">Dim</span> objService
  <span style="color: #0000ff">Dim</span> objInstances
  <span style="color: #0000ff">Dim</span> objInstance

  Wscript.Echo <span style="color: #006080">&quot;Connecting to local WMI store...&quot;</span>

  <span style="color: #0000ff">Set</span> objLocator = CreateObject(<span style="color: #006080">&quot;WbemScripting.SWbemLocator&quot;</span>)
  <span style="color: #0000ff">Set</span> objService = objLocator.ConnectServer(<span style="color: #006080">&quot;.&quot;</span>, <span style="color: #006080">&quot;root\cimv2&quot;</span>)

  Wscript.Echo <span style="color: #006080">&quot;select * from MSFT_SIPMeetingScheduleSetting&quot;</span>
  <span style="color: #0000ff">Set</span> objInstances = objService.ExecQuery _
    (<span style="color: #006080">&quot;select * from MSFT_SIPMeetingScheduleSetting where backend=&quot;</span><span style="color: #006080">&quot;(local)\\rtc&quot;</span><span style="color: #006080">&quot;&quot;</span>)
    <span style="color: #008000">' For OCS Enterprise Edition: backend=&quot;&quot;server name\\sql instance&quot;&quot;</span>

  <span style="color: #0000ff">If</span> IsNull(objInstances) <span style="color: #0000ff">Or</span> (objInstances.Count = 0) <span style="color: #0000ff">Then</span>
    Wscript.Echo <span style="color: #006080">&quot;Error: No instance&quot;</span>
  <span style="color: #0000ff">Else</span>
    <span style="color: #0000ff">For</span> <span style="color: #0000ff">Each</span> objInstance <span style="color: #0000ff">in</span> objInstances
      objInstance.Properties_.Item(<span style="color: #006080">&quot;MaxMeetingLength&quot;</span>).Value = 8760
      objInstance.Put_
      wscript.Echo objInstance.Properties_.Item(<span style="color: #006080">&quot;MaxMeetingLength&quot;</span>).Value
      wscript.Echo <span style="color: #006080">&quot;Done!&quot;</span>
    <span style="color: #0000ff">Exit</span> <span style="color: #0000ff">For</span>
    <span style="color: #0000ff">Next</span>
  <span style="color: #0000ff">End</span> <span style="color: #0000ff">If</span>

  Wscript.Echo <span style="color: #006080">&quot;&quot;</span></pre>
</div>

<div>&#160;</div>

<div><strong>
    <br />To use WBEMTest to modify deactivation and expiration WMI settings</strong></div>

<ol>
  <li>Log on to a server with Office Communications Server 2007 R2 administrative tools installed, as a member of the RTCUniversalServerAdmins group or an account with equivalent user rights. </li>

  <li>Click <strong>Start</strong>, click <strong>Run</strong>, type <strong>wbemtest</strong>, and then click <strong>OK</strong>. </li>

  <li>In the <strong>Windows Management Instrumentation Tester</strong> dialog box, click <strong>Connect</strong>. </li>

  <li>In the <strong>Connect</strong> dialog box, in <strong>Namespace</strong>, type <strong>root\cimv2</strong>, and then click <strong>Connect</strong>. </li>

  <li>In the <strong>Windows Management Instrumentation Tester</strong> dialog box, click <strong>Query</strong>. </li>

  <li>In the <strong>Query</strong> dialog box, type the following in the <strong>Enter Query</strong> box according to the WMI class name to be modified and then click <strong>Apply</strong>: 

    <br /><b><strong>MSFT_SIPMeetingScheduleSetting</strong> </b>

    <br />Select * from MSFT_SIPMeetingScheduleSetting where backend=&quot;(local)\\rtc&quot; 

    <br /><b><strong>MSFT_SIPDataMCUCapabilitySetting</strong></b> 

    <br />Select * from MSFT_SIPDataMCUCapabilitySetting where backend=&quot;(local)\\rtc&quot; 

    <br />

    <br />For an OCS Enterprise pool<em> backend=</em>&quot;<var>server name</var>\\<var>sql instance</var>&quot; 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/01-meeting-lifecycle_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/01-meeting-lifecycle_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="01-meeting-lifecycle" border="0" alt="01-meeting-lifecycle" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/01-meeting-lifecycle_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/01-meeting-lifecycle_thumb.png" width="363" height="139" /></a>&#160;&#160; </li>

  <li>In the <strong>Query Result</strong> dialog box, double-click the result. 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/02-meeting-lifecycle_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/02-meeting-lifecycle_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="02-meeting-lifecycle" border="0" alt="02-meeting-lifecycle" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/02-meeting-lifecycle_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/02-meeting-lifecycle_thumb.png" width="365" height="233" /></a> </li>

  <li>In the <strong>Object editor</strong> dialog box for the WMI class, double-click the property you want to edit in <strong>Properties</strong>: </li>

  <li>If you specified the <strong>MSFT_SIPMeetingScheduleSetting</strong> WMI class in step 6 of this procedure, double-click <strong>UnAuthenticatedUserGracePeriod or MaxMeetingLength</strong>. 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/03-meeting-lifecycle_2.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/03-meeting-lifecycle_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="03-meeting-lifecycle" border="0" alt="03-meeting-lifecycle" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/03-meeting-lifecycle_thumb.png" original-url="http://blogs.technet.com/blogfiles/ucspotting/WindowsLiveWriter/MeetingLifeCycle_11769/03-meeting-lifecycle_thumb.png" width="366" height="337" /></a> </li>

  <li>If you specified the <strong>MSFT_SIPDataMCUCapabilitySetting</strong> WMI class in step 6 of this procedure, double-click <strong>ContentExpirationGracePeriod</strong>. </li>

  <li>In the <strong>Property Editor</strong> dialog box, change the value to the new value in the <strong>Value</strong> box, and then click <strong>Save Property</strong>. </li>

  <li>When you are finished with the editing, in the <strong>Object editor</strong> dialog box, click <strong>Save Object</strong>. </li>

  <li>Close all dialog boxes, and then close Windows Management Instrumentation Tester. </li>

  <li>To verify that the change was applied, open Event Viewer and look for event ID 56015. </li>
</ol>

<p>For more information, please read <a href="http://technet.microsoft.com/en-us/library/dd572561(office.13).aspx" target="_blank">Managing Meeting Life Cycles</a>.</p>]]></content:encoded>
    </item>
  </channel>
</rss>