<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Am I Done?</title><subtitle type="html">Unified Communications for Developers</subtitle><id>http://blogs.msdn.com/midunn/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/midunn/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-06-21T09:53:00Z</updated><entry><title>Server Side Speech Recognition</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/11/05/server-side-speech-recognition.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/11/05/server-side-speech-recognition.aspx</id><published>2009-11-05T02:46:00Z</published><updated>2009-11-05T02:46:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Last week I learned something, well I learned many things but one that was particularly interesting. Lets say you wanted to do server side speech recognition&amp;nbsp;but you &lt;STRONG&gt;don't&lt;/STRONG&gt; want the transport to be SIP.&amp;nbsp; This obviously eliminates using UCMA 2.0 as by default it will rely on OCS and therefore SIP. Well I learned that this isn't entirely true, you can actually use the Microsoft.Speech assembly that comes with the UCMA 2.0 SDK outside a UCMA application.&amp;nbsp;&amp;nbsp; This&amp;nbsp;has been&amp;nbsp;staring me in the face and it didn't ever cross my mind to do it.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;What kind of scenario does this open? One example improved desktop experience.&amp;nbsp;Well SAPI is the obvious first choice when&amp;nbsp;creating a desktop application, but the&amp;nbsp;SAPI experience is really dependant on the OS. &lt;STRONG&gt;IE:&lt;/STRONG&gt; TTS voices are different from XP to Vista.&amp;nbsp;The benefit to having a server side solution you can control the experience of the end user has. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;While looking to build something&amp;nbsp;there are some problems to overcome, for me building&amp;nbsp;a simple sample solution, two main problems stick out.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;1.) Streaming Audio - I don't really want to pass around and process WAV files. You could but the experience wouldn't be as nice&amp;nbsp;as you couldn't do &lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-bidi-language: AR-SA"&gt;immediate&lt;/SPAN&gt; speech recognition.&lt;BR&gt;2.) As I won't be using System.Speech or SAPI, I am going to have to access hardware resources such as the microphone and speakers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;For streaming audio there are alot of different options, but being a big fan of WCF, this is first avenue I looked at and sure enough you can stream content to/from WCF. Is there anything WCF can't do!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/library/ms731913.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms731913.aspx&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&amp;nbsp;Next access microphone and speakers via .NET, I don't want to write low level code I want something down and dirty. I found a very cool CodePlex project, NAudio. It abstracts a lot of the audio APIs into a single, easy to use API. This will work perfectly for my client side application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&lt;A href="http://www.codeplex.com/naudio"&gt;http://www.codeplex.com/naudio&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Here is a simple diagram of what I am building, and actually very close to having something running.&lt;STRONG&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&lt;STRONG&gt;&lt;EM&gt;Note:&lt;/EM&gt;&lt;/STRONG&gt; &lt;EM&gt;If this was something which I was planning to actually put in a production environment, I'd separate the Synthesizer and Recognizer. These will be independent calls and would benefit from being on their own servers.&lt;/EM&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/9917449/original.aspx" mce_src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/9917449/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Code Sample&amp;nbsp;will be available soon, hoping to have it up on MSDN samples by November 16th.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917714" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Speech Recognition" scheme="http://blogs.msdn.com/midunn/archive/tags/Speech+Recognition/default.aspx" /></entry><entry><title>Custom Disclaimer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/08/02/custom-disclaimer.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/08/02/custom-disclaimer.aspx</id><published>2009-08-02T10:56:00Z</published><updated>2009-08-02T10:56:00Z</updated><content type="html">&lt;P&gt;A lot of businesses want to add disclaimers to external communications. Using MSPL on the Edge servers we can create something to simply add this disclaimer to an IM Conversation.&lt;/P&gt;
&lt;P&gt;Since MSPL hasn't really changed from LCS to OCS,&amp;nbsp;we can use the sample provided for LCS to implement a custom disclaimer for OCS.&amp;nbsp; You can download the sample from: &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=ee41345b-836c-4dcf-9810-32709ae9f5c4&amp;amp;displaylang=en&amp;amp;tm"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=ee41345b-836c-4dcf-9810-32709ae9f5c4&amp;amp;displaylang=en&amp;amp;tm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You'll have to make some project modifcations because it doesn't compile out of the box. These are easy like missing references etc.. &lt;/P&gt;
&lt;P&gt;If you want to first run the console application, for debugging and/or learning purposes, you'll notice that the application manifest,&amp;nbsp;".am", &amp;nbsp;is missing. Just copy the the DisclaimerService.am from the service proejct, open it in notepad and change the AppUri to &lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;A href="http://www.microsoft.com/LC/Disclaimer/Console"&gt;http://www.microsoft.com/LC/Disclaimer/Console&lt;/A&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Finally when you are ready to install the service portion of the solution, you'll have to&amp;nbsp;change the ServicesDependsOn property on serviceInstaller1 in ProjectInstaller.cs as it is currently set to "LCSProxy.exe".&amp;nbsp; Just set this to be blank.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;After these minor changes, simply continue following the instructions included with the sample.&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9855567" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="MSPL" scheme="http://blogs.msdn.com/midunn/archive/tags/MSPL/default.aspx" /></entry><entry><title>UCMA WF Application Host</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/05/11/ucma-wf-application-host.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/05/11/ucma-wf-application-host.aspx</id><published>2009-05-11T19:42:00Z</published><updated>2009-05-11T19:42:00Z</updated><content type="html">&lt;P&gt;As promised I've released some code that shows you how to create a reusable application host that will run your UCMA 2.0 Workflow Applications.&lt;/P&gt;
&lt;P&gt;You can find the code, binaries and an initial "How To":&lt;BR&gt;&lt;A href="http://code.msdn.microsoft.com/ucmahost"&gt;http://code.msdn.microsoft.com/ucmahost&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The home page of the project site gives a basic walk through. One item I sort of mentioned on the site was the ability to interface with the service via MSMQ. Instead of specifying a Inbound or Outbound workflow, you can just provide the name of a private queue. This will watch that queue and send an alert via a default Outbound WF or&amp;nbsp;the provided&amp;nbsp;Outbound WF.&lt;/P&gt;
&lt;P&gt;To use this simply write this string to MSMQ,&amp;nbsp;sipuri={0}&amp;amp;message={1}&amp;amp;type={2}, providing the details of who you want to send the message to, the actual message and type. The type can be 1, Audio, or 2, IM.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9603502" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="OCS R2" scheme="http://blogs.msdn.com/midunn/archive/tags/OCS+R2/default.aspx" /><category term="UCMA v2.0" scheme="http://blogs.msdn.com/midunn/archive/tags/UCMA+v2.0/default.aspx" /><category term="WF" scheme="http://blogs.msdn.com/midunn/archive/tags/WF/default.aspx" /></entry><entry><title>Unified Communications Managed API v2.0 Workflow Applications</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/04/30/ucma-v2-0-workflow-applications.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/04/30/ucma-v2-0-workflow-applications.aspx</id><published>2009-04-30T23:28:00Z</published><updated>2009-04-30T23:28:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;UCMA v2.0 includes a great abstraction layer, Communication Workflows, based on the&amp;nbsp;Windows Workflow Foundation (WF). &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;These workflows are great for those needing to great simple yet powerful UC enabled applications. The workflow activities themselves are pretty self explanatory. I'll cover the activities themselves in another post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;The "difficult" portion of creating a UCMA workflow application isn't the actual workflow, but creating the host. Yes the default template wraps your&amp;nbsp;WF application is nice little console application, but this is really only for debugging purposes.&amp;nbsp;Are you really&amp;nbsp;going to deploy your console application in production?&amp;nbsp;Those familiar with Speech Server&amp;nbsp;are probably scratching their heads, while Speech Server had a nice service and administrator console that allow you to easily point it to your Speech WF application, UCMA does not. You need to build it yourself and build it for every UC application you build, and to truly do that we need to know at least a little bit about the UCMA Core API. Joe Calev has a great blog which walks you through the Signaling portion of the Core API. For the WF API&amp;nbsp;you really should have some understanding of the Collaboration portion of the Core API.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;First you will need to make sure that you have a certificate on for your application and you will need to provision an application on the OCS Front End. You can do this by using the Application Provisioner and following these instructions: &lt;A href="http://msdn.microsoft.com/en-us/library/dd253360(office.13).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd253360(office.13).aspx"&gt;&lt;FONT color=#0000ff&gt;http://msdn.microsoft.com/en-us/library/dd253360(office.13).aspx&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;This is the key information that our application will need:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Application Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Application Port&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Application SIP URI&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Application Server FQDN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;OCS Pool FQDN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;OCS Pool Port&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;GRUU&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Certificate Information&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Note:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; You should never call the asynchronous methods, synchronously. IE object.End(object.Begin). You'll see some of this in sample code and blog posts, do not use this is a production application!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Armed with the necessary information, we can start looking at some code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;First we need to use create an instance of the CollaborationPlatform, for this post the importance of this object is that it is used to describe our application. It has two constructors, one that takes a ClientPlatformSettings parameter and the other that takes a ServerPlatformSettings.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The different here is the ClientPlatformSettings will use an AD account, while a ServerPlatformSettings will use a Contact Object. We reference the Contact Object via the GRUU provided by the Application Provisioning tool. There are some features lost if you use the ClientPlatformSettings, such as Impersonation. I typically draw the line, if the application is going to consume the Audio or Instant Message call and perform some logic based on the input I use the ServerPlatformSettings. &lt;B style="mso-bidi-font-weight: normal"&gt;IE:&lt;/B&gt; Response Bots. If my application is just providing an abstraction method for a user that already has credentials to sign in and message users, then I would use the ClientPlatformSettings. &lt;B style="mso-bidi-font-weight: normal"&gt;IE: &lt;/B&gt;Build your own &lt;I style="mso-bidi-font-style: normal"&gt;authenticated&lt;/I&gt; Web Messaging.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;For this post, we will use the ServerPlatformSettings.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Arial','sans-serif'"&gt;ServerPlatformSettings &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;platformSettings = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;ServerPlatformSettings&lt;/SPAN&gt;(appName, appServerFqdn, applicationPort, gruu, cert);&lt;BR&gt;&lt;SPAN style="COLOR: #2b91af"&gt;CollaborationPlatform &lt;/SPAN&gt;collabPlatform = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;CollaborationPlatform&lt;/SPAN&gt;(platformSettings);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;collabPlatform.EndStartup(collabPlatform.BeginStartup(&lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Once the CollaborationPlatform object has completed starting up, we need to setup our EndPoint. There are two choices, ApplicationEndPoint and UserEndPoint, if you are using the ClientPlatformSettings then you need to use the UserEndPoint, since we are using the ServerPlatformSettings we need to use the ApplicationEndPoint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Arial','sans-serif'"&gt;ApplicationEndpointSettings&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; settings = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;ApplicationEndpointSettings&lt;/SPAN&gt;(applicationUri, ocsFqdn, ocsTlsPort);&lt;BR&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ApplicationEndpoint &lt;/SPAN&gt;endpoint = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;ApplicationEndpoint&lt;/SPAN&gt;(collabPlatform, settings);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;If our WF application is an Inbound application, we need to register for the type of calls the WF will handle, but remember that the WF can only accept AV and IM calls and can't accept conferencing calls. That’s not to say you couldn’t register to receive a conference invite, and handle the conferencing features using the Core API itself, but that is another post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;endpoint.RegisterForIncomingCall&amp;lt;&lt;SPAN style="COLOR: #2b91af"&gt;AudioVideoCall&lt;/SPAN&gt;&amp;gt;(AudioVideoCallReceived);&lt;BR&gt;endpoint.RegisterForIncomingCall&amp;lt;&lt;SPAN style="COLOR: #2b91af"&gt;InstantMessagingCall&lt;/SPAN&gt;&amp;gt;(InstantMessagingCallReceived);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Once we have done that, we can establish our endpoint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;endpoint.EndEstablish(endpoint.BeginEstablish(&lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;, endpoint));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Next we need to start the Workflow Runtime and add the UCMA WF Services, this isn’t so much related to UCMA as it is to WF itself. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;WorkflowRuntime&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;workflowRuntime = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;WorkflowRuntime&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;workflowRuntime.AddService(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;CommunicationsWorkflowRuntimeService&lt;/SPAN&gt;());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;workflowRuntime.AddService(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;TrackingDataWorkflowRuntimeService&lt;/SPAN&gt;());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;workflowRuntime.StartRuntime();&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Finally we need to route the call to our workflow, via the handler methods we registered for earlier. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;AudioVideoCallReceived&lt;BR&gt;InstantMessagingCallReceived&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;When a call comes in, we need to pass the call to our workflow application and from there the Workflow handles the rest:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;WorkflowInstance&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; workflowInstance = workflowRuntime.CreateWorkflow(&lt;SPAN style="COLOR: #2b91af"&gt;WorkflowType&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;CommunicationsWorkflowRuntimeService&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; communicationsWorkflowRuntimeService = (&lt;SPAN style="COLOR: #2b91af"&gt;CommunicationsWorkflowRuntimeService&lt;/SPAN&gt;)workflowRuntime.GetService(&lt;SPAN style="COLOR: blue"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;CommunicationsWorkflowRuntimeService&lt;/SPAN&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;communicationsWorkflowRuntimeService.EnqueueCall(workflowInstance.InstanceId, &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;call&lt;/I&gt;&lt;/B&gt;); &lt;SPAN style="COLOR: green"&gt;//Call object is passed by the receiving handler&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;communicationsWorkflowRuntimeService.SetEndpoint(workflowInstance.InstanceId, &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;endpoint&lt;/I&gt;&lt;/B&gt;);&lt;SPAN style="COLOR: green"&gt; //Endpoint object is a local variable&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;communicationsWorkflowRuntimeService.SetWorkflowCulture(workflowInstance.InstanceId, &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;CultureInfo&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"en-US"&lt;/SPAN&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;workflowInstance.Start();&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I was thinking about it and all of this is pretty repetitive code from one workflow to another workflow application, this all has to be done, everytime for every WF project. I’ve created a solution that I will release on CodePlex last this week. Basically the solution is a Windows Service that will take the parameters, GRUU, port, etc… log into OCS and route calls to the workflow you provide as a compiled assembly. Also part of this solution utilizes MSMQ, in much the same way Speech Server did. You can associate a MSMQ name to an application, if a message is in that queue if will fire off the workflow you specify or use the default built in WF application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The Jist of it is, instead of worrying about writing all the code above, you can concentrate on just the workflow portion. Compile the WF as an Assembly instead of a Console application, add the application parameters to the App.Config of this UCMA Application Host service and you are done! A picture is worth a thousand words, so here is a high level picture of the solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&lt;IMG style="WIDTH: 508px; HEIGHT: 309px" height=304 src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/9581194/original.aspx" width=476 mce_src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/9581194/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;I am also working on releasing the following solutions on CodePlex:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Updated Web Chat sample. The current released Web Chat uses UC AJAX, this updated one will use UCMA 2.0, WCF &amp;amp; SilverLight.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;EM&gt;&lt;STRONG&gt;Client Framework. An abstraction layer to both UC Client and Communicator Automation.&lt;/STRONG&gt;&lt;/EM&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9570468" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="UCMA v2.0" scheme="http://blogs.msdn.com/midunn/archive/tags/UCMA+v2.0/default.aspx" /><category term="WF" scheme="http://blogs.msdn.com/midunn/archive/tags/WF/default.aspx" /></entry><entry><title>OCS 2007 R2 Virtual Launch</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/01/28/ocs-2007-r2-virtual-launch.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/01/28/ocs-2007-r2-virtual-launch.aspx</id><published>2009-01-28T19:02:00Z</published><updated>2009-01-28T19:02:00Z</updated><content type="html">&lt;DIV class=Section1&gt;
&lt;P class=MsoNormal&gt;Sign up for the OCS 2007 R2 Virtual Launch on Feburary 3rd.&lt;BR&gt;&lt;A class="" href="http://www.microsoft.com/communicationsserver/virtualevent/languageselect.aspx" mce_href="http://www.microsoft.com/communicationsserver/virtualevent/languageselect.aspx"&gt;http://www.microsoft.com/communicationsserver/virtualevent/languageselect.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;And just to keep entertain until Feburary 3rd, here are some R2 launch teaser videos:&lt;BR&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" href="http://www.youtube.com/profile?user=OCSR2Launch&amp;amp;view=videos" mce_href="http://www.youtube.com/profile?user=OCSR2Launch&amp;amp;view=videos"&gt;http://www.youtube.com/profile?user=OCSR2Launch&amp;amp;view=videos&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9381271" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="OCS R2" scheme="http://blogs.msdn.com/midunn/archive/tags/OCS+R2/default.aspx" /></entry><entry><title>Windows Speech Recognition Macros Tools have Shipped!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/01/28/windows-speech-recognition-macros-tools-have-shipped.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/01/28/windows-speech-recognition-macros-tools-have-shipped.aspx</id><published>2009-01-28T19:00:00Z</published><updated>2009-01-28T19:00:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;I blogged about these earlier and they have finally shipped. You can download them here:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT color=#0000ff&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fad62198-220c-4717-b044-829ae4f7c125&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fad62198-220c-4717-b044-829ae4f7c125&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=fad62198-220c-4717-b044-829ae4f7c125&amp;amp;displaylang=en&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9381259" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Speech Recognition" scheme="http://blogs.msdn.com/midunn/archive/tags/Speech+Recognition/default.aspx" /></entry><entry><title>Status Update</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2009/01/12/status-update.aspx" /><id>http://blogs.msdn.com/midunn/archive/2009/01/12/status-update.aspx</id><published>2009-01-12T10:03:00Z</published><updated>2009-01-12T10:03:00Z</updated><content type="html">&lt;P&gt;I've been MIA for a couple months mainly for Office Communications Server 2007 R2 to RTM, but I've also been busy at work. &lt;/P&gt;
&lt;P&gt;I promise I will get the the UCMA 2.0 Workflow post I promised, but those of you wanting to get a taste of UCMA now, check out Joe Calev's blog, he currently has a full seris on UCMA 2.0 Core right now. &lt;A href="http://blogs.msdn.com/jcalev/default.aspx" mce_href="http://blogs.msdn.com/jcalev/default.aspx"&gt;http://blogs.msdn.com/jcalev/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Right now I am in Redmond for 3 weeks for the first rotation of Microsoft Certified Master program for Office Communications Server 2007 R2. All I can say it that it will be &lt;STRONG&gt;very very&lt;/STRONG&gt; long days, including doing training on the weekend. As much as I am looking forward to it, I am also dreading it. 3 weeks away from home, actually 4 weeks as I will also be attending TechReady, our internal conference, and probably 11-12 hours in a classroom...&amp;nbsp; This class probably is not for the faint of heart.&lt;/P&gt;
&lt;P&gt;If are not sure what it is MCM is, you can read more here: &lt;A href="http://www.microsoft.com/learning/mcp/master/OCS/default.mspx" mce_href="http://www.microsoft.com/learning/mcp/master/OCS/default.mspx"&gt;http://www.microsoft.com/learning/mcp/master/OCS/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The long time away from home will actually give me some time to finally blog.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9307134" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="UCMA v2.0" scheme="http://blogs.msdn.com/midunn/archive/tags/UCMA+v2.0/default.aspx" /><category term="MCM" scheme="http://blogs.msdn.com/midunn/archive/tags/MCM/default.aspx" /></entry><entry><title>Speech Server 2007 vs UCMA v2.0 WF activites</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/10/15/speech-server-2007-vs-ucma-v2-0-wf-activites.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/10/15/speech-server-2007-vs-ucma-v2-0-wf-activites.aspx</id><published>2008-10-15T08:10:00Z</published><updated>2008-10-15T08:10:00Z</updated><content type="html">&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;I am planning a series of blog post&lt;/SPAN&gt;&lt;/I&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA"&gt;s&lt;/SPAN&gt;&lt;/I&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt; that will show you how to create UCMA WF applications that can answer the telephone with speech recognition and speech synthesis abilities. However before I do that I &lt;B style="mso-bidi-font-weight: normal"&gt;HAVE&lt;/B&gt; to explain the differences between UCMA and Speech Server so that there is no confusion.&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;/SPAN&gt;&lt;/I&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;STRONG&gt;&lt;U&gt;Speech Server vs UCMA&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-language: JA"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;With OCS 2007 R2 there has been an update to UCMA (Unified Communications Managed API), simply named UCMA 2.0. This new and approved API has a lot of new features, support for presence, telephony, speech recognition&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;speech synthesis&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;, etc… In R2 there is &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;NO&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt; update for Speech Server, that being said you can continue to run Speech Server as is in tandem with your R2 environment.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;On top of the &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;ore API is a new WF API,&amp;nbsp;which abstracts a lot of&amp;nbsp;common "activities" that a UCMA application might do.&amp;nbsp;At first glance it may appear that this WF API is a replacement for Speech Server, but there are a few &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;major &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;differences &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;that you need to consider when&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt; deciding if an application should be a Speech Server application or a UCMA application.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here are what I consider the 4 &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;major&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt; deciding factors when choosing between Speech Server or UCMA.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo1; tab-stops: list .5in"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;Platform vs. API&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;The main difference between these two is that Speech Server is not only an API, but is also an enterprise grade IVR&amp;nbsp; to host these applications. With Speech Server you only have to worry about developing the front end, SALT, VoiceXML or Speech WF application. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;UCMA 2.0 WF is simply an API, you need to build the front end of the application as well as building the host application. You can host these applications in a Windows Form, Console application, Windows Service, etc.. Obviously a Windows Service makes the most sense.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; UCMA 2.0 does NOT have built-in activities for VXML nor SALT.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;OL type=1 start=2&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list .5in"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;Infrastructure&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;The big difference here is Speech Server typically sits off as its own branch from your PBX or Media Gateway, while UCMA 2.0 sits behind the mediation server. At first this seems trivial and maybe even a good idea, but there is a reason a typical IVR application sits outside of the voice network that you use for day to day communications. &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;IE:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt; &lt;I style="mso-bidi-font-style: normal"&gt;Do you want your IVR to take up internal bandwidth and/or the lines that you use to for your telephone communications?&lt;/I&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;If you are only expecting a small amount calls, then deploying a UCMA 2.0 application shouldn’t be a big issue, but if you are building a UCMA 2.0 application that is going to continuously use 50+ ports, you need to do some planning and additional infrastructure work before deploying behind your existing OCS environment. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; 50 simultaneous ports is a relative number. The key takeaway here is don’t expect to simply throw a UCMA application behind your existing mediation server and not expect to consider the impact. You can add additional mediation servers and gateways to solve scaling problems. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL type=1 start=3&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l3 level1 lfo3; tab-stops: list .5in"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;Developer Tools&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;Speech Server contains developer tools that abstract things like SRGS grammars with a nice visual grammar editor. UCMA does not yet have these tools, so be prepared to write some of your own SRGS by hand. Small feature, but it can save a lot of development effort. I’ve said it before and I’m saying it again, most of you development effort&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;with any speech enabled solution &lt;B&gt;will&lt;/B&gt; be spent on grammars. In a UCMA application, SRGS is not only used to recognized speech, but also text from instant messaging conversations.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;UCMA also does not have the SIP Debugging Phone as Speech Server does, this means that in order to debug a UCMA application you need to call the application via Communicator and/or an actual telephone. Also with the infrastructure requirements of having an actual OCS environment with mediation server, you won’t be able to debug application very easily “offline”. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-weight: bold; mso-bidi-font-size: 11.0pt"&gt;Don’t expect to write and debug UCMA 2.0 applications sitting on a plane like you did with Speech Server. Yes you can create a virtualized OCS 2007 R2 environment but it is going to require HyperV and at least 8 GB of RAM. I’ve finally upgraded so I can do just that, but I realize that not everyone is going to be able to.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL type=1 start=4&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo4; tab-stops: list .5in"&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 11.0pt"&gt;Reporting &amp;amp; Tuning&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;B&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;Speech Server has the Tuning &amp;amp; Analysis tools, which comes in handy for simple reports like “How many calls did my application get?”, “How many times did a grammar fail?”. This reporting is absolutely necessary and for any enterprise class IVR solution. If you want some of this reporting for UCMA 2.0, you are going to have to build it yourself. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA; mso-fareast-font-family: 'Times New Roman'"&gt;Outside of the reporting side, are the tuning tools, which allow you to test grammar changes on actual callers recorded audio, before deploying.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-language: JA"&gt;I hope this post as helped you understand the differences between Speech Server and UCMA. UCMA 2.0 clearly is a step on the roadmap to include speech tightly into the UC platform and OCS. Expect that things like the speech tools will be available by the next release in the not too distant future.&lt;/P&gt;
&lt;DIV id=imcontent style="MARGIN-LEFT: 12px; POSITION: relative"&gt;&lt;SPAN&gt;&lt;FONT face="MS Shell Dlg 2" color=#000000 size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;Next post will talk about the features of UCMA…&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9000408" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Speech Server" scheme="http://blogs.msdn.com/midunn/archive/tags/Speech+Server/default.aspx" /><category term="OCS R2" scheme="http://blogs.msdn.com/midunn/archive/tags/OCS+R2/default.aspx" /><category term="UCMA v2.0" scheme="http://blogs.msdn.com/midunn/archive/tags/UCMA+v2.0/default.aspx" /></entry><entry><title>Office Communications Server 2007 R2 Unveiled at VoiceCon Amsterdam</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/10/14/office-communications-server-2007-r2-unveiled-at-voicecon-amsterdam.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/10/14/office-communications-server-2007-r2-unveiled-at-voicecon-amsterdam.aspx</id><published>2008-10-14T16:45:00Z</published><updated>2008-10-14T16:45:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;News Article here:&lt;/EM&gt;&lt;/STRONG&gt; &lt;A href="http://biz.yahoo.com/prnews/081014/aqtu055.html?.v=76"&gt;http://biz.yahoo.com/prnews/081014/aqtu055.html?.v=76&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This announcement allows me to start blogging about R2 development features. Expect many UCMA v2.0 blog posts soon!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999497" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="OCS R2" scheme="http://blogs.msdn.com/midunn/archive/tags/OCS+R2/default.aspx" /></entry><entry><title>CTI (Computer Telephony Integration) w/ Office Communications Server</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/10/14/cti-computer-telephony-integration-illrevelvance.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/10/14/cti-computer-telephony-integration-illrevelvance.aspx</id><published>2008-10-14T04:26:00Z</published><updated>2008-10-14T04:26:00Z</updated><content type="html">&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;Side Note:&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; &lt;EM&gt;I know I haven’t blogged much recently, but I’ve changed roles within Microsoft, been on parental leave and busy working with customers. However I am planning a series of post about creating UC solutions&lt;/EM&gt;.. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I get this question a lot, &lt;I style="mso-bidi-font-style: normal"&gt;"Does Office Communications Server integrate with CTI?"&lt;/I&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;The Answer:&lt;/B&gt; It depends&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Why do I say that? Well when most people ask about CTI, they are typically asking about CSTA applications. &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'"&gt;IE:&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'"&gt;ACD, Predictive Dialing, Screen Pops, etc..&lt;/SPAN&gt;&lt;/EM&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;And it depends on your OCS implementation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;U&gt;Remote Call Control&lt;/U&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;You can run your current CSTA based CTI application in tandem with your OCS environment in a Remote Call Control scenario as your CTI server will sit as a branch off the PBX.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;However &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;the&amp;nbsp;Remote Call Control scenario has&amp;nbsp;no real interaction between OCS and the CTI server&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Th&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;erefore &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;you can't call that &lt;I style="mso-bidi-font-style: normal"&gt;real&lt;/I&gt; integration. Besides the Remote Call Control scenario doesn't utilize the full potential of &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;our&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; UC platform&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;IMG style="WIDTH: 400px; HEIGHT: 201px" height=201 src="http://i.technet.microsoft.com/cc194410.fig01(en-us).gif" width=400 mce_src="http://i.technet.microsoft.com/cc194410.fig01(en-us).gif"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;Enterprise Voice with PBX Integration&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;With a&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; OCS deployment with Enterprise Voice, can it support your CSTA based CTI&amp;nbsp;applications? No for the fact that &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;your internal telephones&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; are &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;no longer "&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;directly"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&amp;nbsp;linked&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; to the PBX, but instead all telephone calls are routed through your OCS infrastructure. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;IMG style="WIDTH: 400px; HEIGHT: 201px" height=201 src="http://i.technet.microsoft.com/cc194410.fig02(en-us).gif" width=400 mce_src="http://i.technet.microsoft.com/cc194410.fig02(en-us).gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Does this mean OCS doesn't support CTI applications?&lt;/B&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;No, it just means that it doesn't support CSTA based CTI applications. CTI doesn't have to be based on CSTA. If you look at what CSTA is&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;,&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; it is&amp;nbsp;essentially a schema&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; schema that defines what a telephone call is&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; and from&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; a software developer perspective this is antiq&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;uated&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; approach to solving a common problem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; Why don't we have predefined schemas for everything, such as customer data, financial transactions etc... ?&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; All business have customers and money changing hands, yet we don't commonly see standardize schemas. Yes having predefined schemas for everything would solve a lot of problems, but businesses are &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;unique&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;J&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;ust because you run a bakery doesn't mean all bakeries care about the same data. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;EM&gt;I know it seems like a Microsoft employee bashing "standards" but keep reading.&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Let's take "Screen Pops" for example, when a call is transferred from the IVR application to an agent, the agent should get the customer's &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;information from the data the IVR collected&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;. In a traditional CSTA environment the call information and relevant data is written to the CTI server. When the call gets transferred to the agent, the agent has a piece of software sitting on the desktop which either queries or gets notified with the appropriate data&amp;nbsp;from the CTI server.&amp;nbsp; If you remove the context of the telephone, it simply is a client application that gets notification from &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;a server application&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; that an event has occurred and passes the data to the client. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.NET and/or Java developers create client/server applications every day!&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; As a .NET developer I'd create a WCF service which the IVR application could call and pass in the data it collected, along with the who it is transferring the call to. On the agent's desktop I would have a small application that would register it's endpoint with the service and listen for any events that pertain to it. The &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;client &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;application could even integrate directly with a CRM application, &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;provided that the CRM application has some sort of API.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I know you are probably reading this and wondering what does this have to do with OCS? Well nothing&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;and that's just the point…&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;In this Screen Pop solution, the actual Screen Pops have nothing to do with OCS. The OCS APIs could be used to create the front end IVR application and provide business logic presence information for agents, so that the IVR knows who to route the call t&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;o.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;NOT to display Screen Pops. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I know what I am saying goes against&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; what others have suggested such as the&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=84AC7DD7-99D3-48F7-99D7-A281BD616407&amp;amp;displaylang=en"&gt;UC Client API - Screen Pop Sample&lt;/A&gt;. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;It is however&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;just a sample &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;and is only &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;one way to solve a problem&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;In&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; my opinion &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;creating a custom OCS client to display “Screen Pops”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;does&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; "lock" you down to OC&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;S, not to mention the increase investment of time to develop the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;You shouldn't try and reinvent the wheel using the UC APIs, but use them for something that doesn't already &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;exist&lt;/SPAN&gt;. My rule of thumb is that the UC APIs should be used to serve two purposes: &lt;STRONG&gt;1.)&lt;/STRONG&gt; Provide modalities to your applications. &lt;STRONG&gt;IE:&lt;/STRONG&gt; &lt;EM&gt;Telephony and IM&lt;/EM&gt;&amp;nbsp; &lt;STRONG&gt;2.)&lt;/STRONG&gt; Provide your application with presence data.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;Conclusion&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CSTA defines a "standard" so that you aren't &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;“locked” down&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; to use prop&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;rietary&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; extensions&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;y applying &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;modern &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;SOA techniq&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;ues&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; to your solution you create a solution&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; that is loosely coupled and &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;could easily be adapted to any other OCS&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; ish &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;product&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt;s&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; out there&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; and therefore not forever committing you to a single product and/or platform&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'MS Mincho'; mso-fareast-language: JA"&gt; Believe it or not as a Microsoft employee, I don’t want you to feel that you are “locked” into our products, I want you to buy our products because they are the best in the industry and will give you the greatest return on your investment.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999133" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Unified Communications" scheme="http://blogs.msdn.com/midunn/archive/tags/Unified+Communications/default.aspx" /><category term="OCS" scheme="http://blogs.msdn.com/midunn/archive/tags/OCS/default.aspx" /><category term="SOA" scheme="http://blogs.msdn.com/midunn/archive/tags/SOA/default.aspx" /></entry><entry><title>New UC API Samples Released!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/09/11/new-uc-api-sample-released.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/09/11/new-uc-api-sample-released.aspx</id><published>2008-09-11T05:07:00Z</published><updated>2008-09-11T05:07:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;A few new code samples&amp;nbsp;have been&amp;nbsp;released on various UC APIs. I haven't checked them all our yet, but I can speak a little to the "Integrating Web Chat Functionality" as I know the guy who wrote it...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The Web Chat Functionality sample&amp;nbsp;shows you how you can have anonymous web users have an IM conversation with an OCS end user, without the web user providing any credentials. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;&lt;U&gt;&amp;nbsp;Web Chat&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Think about visiting a web&amp;nbsp;site,&amp;nbsp;for example an ecommerce website, and the customer has a question about a product, while they could email and/or&amp;nbsp;call, the customer would have to leave the computer and make the extra effort. This Web Chat samples tries and solves&amp;nbsp;that problem by allows the customers to simply click on a link and&amp;nbsp;have an IM conversation via thier browser with&amp;nbsp;a representative&amp;nbsp;and/or a bot&amp;nbsp;from the ecommerce website.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;This is one example of "Click to Chat".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The&amp;nbsp;technology behind the solution is farily simple,&amp;nbsp;combining the &amp;nbsp;UC AJAX API into a service, in this case a WCF service which logs into CWA via a single UC Enabled account. The WCF service is the only application that is comunicates with CWA. The browser application uses .NET 3.5 WebHTTPBinding and JSON to communicate directly to the WCF service.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;The WCF controls which browser endpoints get which messages it has receieved, by assigning web users a GUID. The Browser application using a polling technique to get the messages from the service.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;&lt;U&gt;&amp;nbsp;WPF Presence&amp;nbsp;Controls&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Another exciting sample are the WPF Presence Controls. While we had the WinForms controls we didn't have WPF controls and it was something requested by everyone who looked at the WinForm controls. Download them and check out George Durzi's blog post about these controls.&lt;BR&gt;&lt;A href="http://blogs.claritycon.com/blogs/george_durzi/archive/2008/09/08/wpf-presence-controls-for-microsoft-office-communicator.aspx"&gt;http://blogs.claritycon.com/blogs/george_durzi/archive/2008/09/08/wpf-presence-controls-for-microsoft-office-communicator.aspx&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Integrating Web Chat Functionality - Microsoft Unified Communications AJAX API Sample&lt;BR&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C8C3F762-7BE4-4541-9B18-82499DB61293&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=C8C3F762-7BE4-4541-9B18-82499DB61293&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;WPF Presence Controls for Microsoft Office Communicator 2007 - Microsoft Office Communicator 2007 SDK Sample&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5001D612-533A-4721-91EA-DA990D94FF0F&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=5001D612-533A-4721-91EA-DA990D94FF0F&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;Dynamics CRM Integration with Office Communications Server&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6E2EA762-A6C9-43BD-8C84-BF610073765C&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=6E2EA762-A6C9-43BD-8C84-BF610073765C&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;U&gt;&lt;STRONG&gt;Customer Relationship Management (CRM) Activity - Microsoft Unified Communications Managed API 1.0 Sample&lt;/STRONG&gt;&lt;/U&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=16303459-DD75-451F-B7C0-FB2EB0D9A84A&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=16303459-DD75-451F-B7C0-FB2EB0D9A84A&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;Communicator 2007 Custom Tabs - Microsoft Office Communicator 2007 Sample&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=621C675C-46B7-4F68-ADDC-9F44E5594BFB&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=621C675C-46B7-4F68-ADDC-9F44E5594BFB&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8942746" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="UC AJAX" scheme="http://blogs.msdn.com/midunn/archive/tags/UC+AJAX/default.aspx" /><category term="UC API" scheme="http://blogs.msdn.com/midunn/archive/tags/UC+API/default.aspx" /></entry><entry><title>Sending SMS messages via Communicator</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/07/31/sending-sms-messages-via-communicator.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/07/31/sending-sms-messages-via-communicator.aspx</id><published>2008-07-31T14:51:00Z</published><updated>2008-07-31T14:51:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;If you are using PIC (Public IM Connectivity) in OCS, you can send SMS messages to any capable phone in North America, via AOL's SMS Gateway simply by sending a message to an E.164 normalized phone number. IE: +16128591899 and appending the AOL domain name, &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;aol.com&lt;/I&gt;&lt;/B&gt;.&lt;BR&gt;&lt;BR&gt;&lt;IMG style="WIDTH: 371px; HEIGHT: 373px" height=373 src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/8793244/original.aspx" width=371 mce_src="http://blogs.msdn.com/photos/midunnmicrosoftcom/images/8793244/original.aspx"&gt;&lt;A href="mailto:+6128591899@aol.com" mce_href="mailto:+6128591899@aol.com"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;While this is fairly useful by itself, for it to be extremely useful you'd have to take advantage of this via one of the UC APIs. For example, you could use the UC AJAX API and Speech Server to send a SMS message to caller confirmation details of their call OR maybe you create an IM bot with UCMA v 1.0&amp;nbsp;that sends a transcript of the chat to the user’s SMS device. The possibilities are endless...&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8793235" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="UC API" scheme="http://blogs.msdn.com/midunn/archive/tags/UC+API/default.aspx" /><category term="SMS" scheme="http://blogs.msdn.com/midunn/archive/tags/SMS/default.aspx" /></entry><entry><title>Unified Communications Developer Labs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/07/21/unified-communications-developer-labs.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/07/21/unified-communications-developer-labs.aspx</id><published>2008-07-21T19:37:00Z</published><updated>2008-07-21T19:37:00Z</updated><content type="html">&lt;P&gt;I was checking out the &lt;A class="" href="http://msdn.microsoft.com/en-us/office/aa905374.aspx" mce_href="http://msdn.microsoft.com/en-us/office/aa905374.aspx"&gt;UC Developer Portal&lt;/A&gt; recently and It seems&amp;nbsp;it is&amp;nbsp;not up to date on the available Virtual Labs for UC Developers, as it only list 5.&lt;/P&gt;
&lt;P&gt;For a more up to date list, you can visit this URL:&lt;A class="" title=http://msevents.microsoft.com/CUI/AdvancedSearch.aspx?culture=en-US#culture=en-US;advanced=true;sortKey=;sortOrder=;pageEvent=false;startDate=7/21/2008;endDate=12/31/2008;kwdAny=;countryId=US;languageCode=en;audience=2;products=170;eventType=4;searchcontrol=yes;s=1 href="http://msevents.microsoft.com/CUI/AdvancedSearch.aspx?culture=en-US#culture=en-US;advanced=true;sortKey=;sortOrder=;pageEvent=false;startDate=7/21/2008;endDate=12/31/2008;kwdAny=;countryId=US;languageCode=en;audience=2;products=170;eventType=4;searchcontrol=yes;s=1" mce_href="http://msevents.microsoft.com/CUI/AdvancedSearch.aspx?culture=en-US#culture=en-US;advanced=true;sortKey=;sortOrder=;pageEvent=false;startDate=7/21/2008;endDate=12/31/2008;kwdAny=;countryId=US;languageCode=en;audience=2;products=170;eventType=4;searchcontrol=yes;s=1"&gt;http://msevents.microsoft.com/CUI/AdvancedSearch.aspx?culture=en-US#culture=en-US;advanced=true;sortKey=;sortOrder=;pageEvent=false;startDate=7/21/2008;endDate=12/31/2008;kwdAny=;countryId=US;languageCode=en;audience=2;products=170;eventType=4;searchcontrol=yes;s=1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It looks like these Vitual Labs cover the UC AJAX and Communicator Automation in depth.&amp;nbsp;I think there is one lab on UCMA, but there doesn't appear to be one on the UC Client API. Overall very good materal and if you are new to using any of these APIs, take the time and go through the labs, best of all they are free to use.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8762007" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Labs" scheme="http://blogs.msdn.com/midunn/archive/tags/Labs/default.aspx" /><category term="UC API" scheme="http://blogs.msdn.com/midunn/archive/tags/UC+API/default.aspx" /></entry><entry><title>Re: Presence in WPF </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/06/27/re-presence-in-wpf.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/06/27/re-presence-in-wpf.aspx</id><published>2008-06-27T20:56:00Z</published><updated>2008-06-27T20:56:00Z</updated><content type="html">&lt;P&gt;Michiel van Oudheusden from e-office, has taken the challenge to actually hook up the the WPF Presence bubble screensaver to Communicator to show presence of your contacts! &lt;/P&gt;
&lt;P&gt;&lt;A href="http://unified-communications-development.blogspot.com/"&gt;http://unified-communications-development.blogspot.com/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The blog belongs to &lt;SPAN id=naamLabel&gt;Joachim Farla and Marc Wetters of e-office. Make sure to check out some of the other post.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8662406" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Presence" scheme="http://blogs.msdn.com/midunn/archive/tags/Presence/default.aspx" /><category term="Communicator Automation API" scheme="http://blogs.msdn.com/midunn/archive/tags/Communicator+Automation+API/default.aspx" /><category term="WPF" scheme="http://blogs.msdn.com/midunn/archive/tags/WPF/default.aspx" /></entry><entry><title>Presence in WPF</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/midunn/archive/2008/06/21/presence-in-wpf.aspx" /><id>http://blogs.msdn.com/midunn/archive/2008/06/21/presence-in-wpf.aspx</id><published>2008-06-21T11:53:00Z</published><updated>2008-06-21T11:53:00Z</updated><content type="html">&lt;P&gt;A very interesting article on using WPF to display presence by Erik Klimczak from Clarity Consulting. It goes more into the WPF side, than the actual presence, but you need to know how to make your presence bubbles look good too! I love the example of creating a screen saver out of it, It doesn't currently show actual users presence, but&amp;nbsp;the article challenges you to&amp;nbsp;add that your self. I'd&amp;nbsp;also like to extend that challenge!&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;Hint:&lt;/STRONG&gt; I'd look into using the Communicator Automation API first. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Article:&lt;/EM&gt;&lt;/STRONG&gt; &lt;A href="http://blogs.msdn.com/coding4fun/archive/2008/06/20/8626294.aspx"&gt;http://blogs.msdn.com/coding4fun/archive/2008/06/20/8626294.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8630321" width="1" height="1"&gt;</content><author><name>midunn@microsoft.com</name><uri>http://blogs.msdn.com/members/midunn%40microsoft.com.aspx</uri></author><category term="Presence" scheme="http://blogs.msdn.com/midunn/archive/tags/Presence/default.aspx" /><category term="WPF" scheme="http://blogs.msdn.com/midunn/archive/tags/WPF/default.aspx" /></entry></feed>