<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Gotuc Blog</title><link>http://gotuc.net:80/gotuc-blog</link><description>Gotuc Blog</description><item><title>Lync Caller ID Blocking Demo</title><link>http://gotuc.net:80/gotuc-blog/lync-caller-id-blocking-demo</link><description>&lt;p&gt;Here is a video that demonstrates the caller ID blocking from my &lt;a href="http://www.gotuc.net/gotuc-blog/microsoft-lync-call-blocker" target="_blank"&gt;previous post&lt;/a&gt;.&lt;/p&gt; &lt;style type="text/css"&gt;&lt;!--
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    .fadesome {
        opacity:0.30;
        filter:alpha(opacity=30);
        -moz-opacity: 30%;        
    }
    .fadelots {
        opacity:0.50;
        filter:alpha(opacity=50);
        -moz-opacity: 0.5;        
    }  
    .fadecompletely {
        opacity:0.0;
        filter:alpha(opacity=0);
        -moz-opacity: 0.0;
    }     
    #silverlightcontrolhost {
        height: 100%;
    }
--&gt;&lt;/style&gt; &lt;script type="text/javascript"&gt;// &lt;![CDATA[
        function onSilverlightError(sender, args) {

            var appSource = "";
            if (sender != null &amp;&amp; sender != 0) {
                appSource = sender.getHost().Source;
            }
            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }

        function highlightDownloadArea(fOn) {
            document.getElementById("overlay").className = (fOn) ? "fadeSome" : "fadeLots";            
        }

	function CloseWindow()
	{
	    window.close();
	}
// ]]&gt;&lt;/script&gt;&lt;!-- Runtime errors from Silverlight will be displayed here.     This will contain debugging information and should be removed or hidden when debugging is completed --&gt; &lt;div style="color: gray; font-size: small" id="errorLocation"&gt;&lt;/div&gt; &lt;div id="silverlightControlHost"&gt;&lt;object data="data:application/x-silverlight," type="application/x-silverlight" height="320" width="480"&gt; &lt;param name="source" value="http://wiki.gotuc.net/video/LyncTelFilter/MediaPlayerTemplate.xap" /&gt; &lt;param name="onerror" value="onSilverlightError" /&gt; &lt;param name="autoUpgrade" value="true" /&gt; &lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt; &lt;param name="enableHtmlAccess" value="true" /&gt; &lt;param name="enableGPUAcceleration" value="true" /&gt; &lt;param name="initparams" value="playerSettings =                          &amp;lt;Playlist&amp;gt;                             &amp;lt;AutoLoad&amp;gt;false&amp;lt;/AutoLoad&amp;gt;                             &amp;lt;AutoPlay&amp;gt;false&amp;lt;/AutoPlay&amp;gt;                             &amp;lt;DisplayTimeCode&amp;gt;false&amp;lt;/DisplayTimeCode&amp;gt;                             &amp;lt;EnableOffline&amp;gt;true&amp;lt;/EnableOffline&amp;gt;                             &amp;lt;EnablePopOut&amp;gt;true&amp;lt;/EnablePopOut&amp;gt;                              &amp;lt;EnableCaptions&amp;gt;true&amp;lt;/EnableCaptions&amp;gt;                             &amp;lt;EnableCachedComposition&amp;gt;true&amp;lt;/EnableCachedComposition&amp;gt;                             &amp;lt;StretchNonSquarePixels&amp;gt;NoStretch&amp;lt;/StretchNonSquarePixels&amp;gt;                             &amp;lt;StartMuted&amp;gt;false&amp;lt;/StartMuted&amp;gt;                              &amp;lt;StartWithPlaylistShowing&amp;gt;false&amp;lt;/StartWithPlaylistShowing&amp;gt;                               &amp;lt;Items&amp;gt;                                  								&amp;lt;PlaylistItem&amp;gt; 									&amp;lt;AudioCodec&amp;gt;WmaProfessional&amp;lt;/AudioCodec&amp;gt; 									&amp;lt;Description&amp;gt;&amp;lt;/Description&amp;gt; 									&amp;lt;FileSize&amp;gt;103038665&amp;lt;/FileSize&amp;gt; 									&amp;lt;IsAdaptiveStreaming&amp;gt;true&amp;lt;/IsAdaptiveStreaming&amp;gt; 									&amp;lt;MediaSource&amp;gt;http://wiki.gotuc.net/video/LyncTelFilter/LyncTelFilter.ism%5CManifest&amp;lt;/MediaSource&amp;gt; 									&amp;lt;ThumbSource&amp;gt;http://wiki.gotuc.net/video/LyncTelFilter/LyncTelFilter_Thumb.jpg&amp;lt;/ThumbSource&amp;gt; 									&amp;lt;Title&amp;gt;LyncSDKContentMod&amp;lt;/Title&amp;gt; 									&amp;lt;DRM&amp;gt;false&amp;lt;/DRM&amp;gt; 									&amp;lt;VideoCodec&amp;gt;VC1&amp;lt;/VideoCodec&amp;gt; 									&amp;lt;FrameRate&amp;gt;15.000015000015&amp;lt;/FrameRate&amp;gt; 									&amp;lt;Width&amp;gt;448&amp;lt;/Width&amp;gt; 									&amp;lt;Height&amp;gt;336&amp;lt;/Height&amp;gt; 									&amp;lt;AspectRatioWidth&amp;gt;4&amp;lt;/AspectRatioWidth&amp;gt; 									&amp;lt;AspectRatioHeight&amp;gt;3&amp;lt;/AspectRatioHeight&amp;gt; 								&amp;lt;/PlaylistItem&amp;gt; 			    &amp;lt;/Items&amp;gt;                         &amp;lt;/Playlist&amp;gt;" /&gt; &lt;!--  unused valid silverlight init parameters
&lt;param name="enableFrameRateCounter" value="bool" /&gt;
&lt;param name="enableRedrawRegions" value="bool" /&gt;
&lt;param name="maxFrameRate" value="int" /&gt;
&lt;param name="allowHtmlPopupWindow" value="bool" /&gt;
&lt;param name="background" value="colorValue" /&gt;
&lt;param name="splashScreenSource" value="uri" /&gt;
&lt;param name="fullScreen" value="bool" /&gt;
&lt;param name="onFullScreenChanged" value="functionname" /&gt;
&lt;param name="onResize" value="functionname" /&gt;
&lt;param name="onSourceDownloadComplete" value="functionname" /&gt;
&lt;param name="onSourceDownloadProgressChanged" value="functionname" /&gt;
&lt;param name="windowLess" value="bool" /&gt; --&gt; &lt;div onmouseover="highlightDownloadArea(true)" onmouseout="highlightDownloadArea(false)"&gt;&lt;img src="LyncSDKContentMod_Thumb.jpg" style="position: absolute; width: 100%; height: 100%; border-style: none;" onerror="this.style.display='none'" /&gt; &lt;img src="Preview.png" style="position: absolute; width: 100%; height: 100%; border-style: none;" onerror="this.style.display='none'" /&gt; &lt;div id="overlay" class="fadeLots" style="position: absolute; width: 100%; height: 100%; border-style: none; background-color: white;"&gt;&lt;/div&gt; &lt;table style="position: absolute;" height="100%" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td align="center" valign="middle"&gt;&lt;img src="http://go2.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;a href="http://go2.microsoft.com/fwlink/?LinkID=149156"&gt; &lt;img class="fadeCompletely" style="position: absolute; width: 100%; height: 100%; border-style: none;" alt="Get Microsoft Silverlight" /&gt; &lt;/a&gt;&lt;/div&gt; &lt;/object&gt;&lt;iframe style="border-right-width: 0px; width: 0px; border-top-width: 0px; border-bottom-width: 0px; height: 0px; visibility: hidden; border-left-width: 0px" id="_sl_historyFrame"&gt;&lt;/iframe&gt;&lt;/div&gt;</description><pubDate>Sat, 27 Aug 2011 03:06:17 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/lync-caller-id-blocking-demo</guid></item><item><title>Microsoft Lync Call Blocker</title><link>http://gotuc.net:80/gotuc-blog/microsoft-lync-call-blocker</link><description>&lt;p&gt;After receiving a question about how to block specific phone numbers from calling Lync endpoints I decided to write an application to handle this scenario. The solution uses the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=19675" target="_blank"&gt;Lync Server 2010 SDK&lt;/a&gt; which I covered in a &lt;a href="http://www.gotuc.net/gotuc-blog/test" target="_blank"&gt;previous post&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In MSPL we can add a file to the request filter. You simply define a file element and point it to a local file. I am using a comma delimited file with two columns. A phone number and an action. &lt;/p&gt; &lt;p&gt;For example:&lt;/p&gt; &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;+17275555555,block&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;The following MSPL Script is installed on my Lync Front End Server and will check each SIP request against my callerid file. If the number of the calling party is in my text file the call will be blocked. You could easily create an administrative tool to edit the blocked numbers list so you could manage this remotely.&lt;/p&gt;
&lt;p&gt;I will be uploading a short video on how to install this sample in a few days.&lt;/p&gt;&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;xml version="1.0"&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;applicationManifest&lt;/span&gt; &lt;span style="color: #ff0000"&gt;r&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;appUri&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://www.gotuc.net/TelFilter"&lt;/span&gt; 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;   &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;r&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/lcs/2006/05"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;requestFilter&lt;/span&gt; &lt;span style="color: #ff0000"&gt;methodNames&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"ALL"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;strictRoute&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;responseFilter&lt;/span&gt; &lt;span style="color: #ff0000"&gt;reasonCodes&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"NONE"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;scriptOnly&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;file&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"BlockedTelephoneNumbers"&lt;/span&gt; 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;       &lt;span style="color: #ff0000"&gt;path&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"C:\Work\TelFilter\BlockedTelephoneNumbers.txt"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;delimitedBy&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"comma"&lt;/span&gt; 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;       &lt;span style="color: #ff0000"&gt;keyColumnName&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Phone"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;static&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"false"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;column&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Phone"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;column&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Action"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;file&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;splScript&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;![CDATA[
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;/*++
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;Module Name: TelFilter.am    
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;--*/
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    //
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    // Main program.
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    //
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    Log ("Debugr", false, "We have a request - ", sipRequest.Method);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    Log ("Debugr", false, "From - ", GetUserName(GetUri(sipRequest.From)));
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    Log ("Debugr", false, "To - ", GetUserName(GetUri(sipRequest.To)));
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    action = BlockedTelephoneNumbers[GetUserName(GetUri(sipRequest.From))].Action;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    if(action == "block") 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        Log ("Debugr", false, "Exit. Rejected by policy");
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        Respond(403, "Forbidden");
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    else
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        Log ("Debugr", false, "Exit. Allowed by policy");
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    return;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;]]&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;splScript&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #c71585"&gt;r&lt;/span&gt;:&lt;span style="color: #800000"&gt;applicationManifest&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;</description><pubDate>Fri, 24 Jun 2011 07:19:35 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/microsoft-lync-call-blocker</guid></item><item><title>Lessons Learned: passing parameters to your workflow</title><link>http://gotuc.net:80/gotuc-blog/lessons-learned-passing-parameters-to-your-workflow</link><description>&lt;p&gt;I just came off of a large UCMA 3.0 project writing an IVR app that records a voice mail and also allows you to customize your mailbox greeting. I spent lots of time on the project and learned quite a bit about how UCMA differs from the Speech Server apps that we are all used to building. I discovered some bugs (or undocumented features) and worked my way through some stuff that wasn't well documented. It was tough at times but I learned a lot and now I am going to pass that on to you. I've decided to do a series of "Lessons Learned". I'll cover things that aren't obvious, aren't part of the default features and in one case a bug (or at least I think it is a bug). Unfortunately I can't just post the complete code but I will post snippets where appropriate and you can fill in the connecting parts.&lt;/p&gt;
&lt;p&gt;One of the things my app does is make a branching decision at the top. The same app handles both the voice mail recording function as well as the custom greeting recording. the app doesn't prompt the caller for which action to take - it just "knows" and the caller has no idea that it is the same application doing both. It does this by looking at the SIP header as the custom greeting calls have a custom parameter in the SIP header. I'll cover how to access the parameter value in another post. Today I'm going to assume you have it and now need to pass it into your work flow.&lt;/p&gt;
&lt;p&gt;Every UCMA application should have an event handler to handle receiving calls. This event fires once the call comes in and is essentially where your code really starts running. The event should look like this:&lt;/p&gt;
&lt;p&gt;private static void AudioVideoCallReceived(object sender, CallReceivedEventArgs&amp;lt;AudioVideoCall&amp;gt; e)&lt;/p&gt;
&lt;p&gt;Somewhere in the method (usually at the bottom) you call the method to create your workflow passing in any parameters that you need. In the code below I am passing in a string called &lt;b&gt;resource&lt;/b&gt; that tells the workflow the type of call is coming in - voice mail or custom greeting:&lt;/p&gt;
&lt;p&gt;StartWorkflow(e.Call, e.RequestData, e.TransferredBy.ToString(), e.RemoteParticipant.ToString(), resource);&lt;/p&gt;
&lt;p&gt;Back stepping slightly here but in order to pass something into your workflow you have to declare a variable in your workflow to receive it and setup a get/set for it. Once your workflow starts you can then access it like any other variable in your code:&lt;/p&gt;
&lt;p&gt;private string resource;&lt;br /&gt;public string Resource&lt;br /&gt;{&lt;br /&gt;get { return resource; }&lt;br /&gt;set { resource = value; }&lt;br /&gt;}&lt;br /&gt;Now lets go back to the StartWorkflow method as it is there that all of the magic occurs. First you need to create a Dictionary object then you need to add your variable to the Dictionary:&lt;/p&gt;
&lt;p&gt;// Create the parameters for the workflow &lt;br /&gt;Dictionary&amp;lt;string, object&amp;gt; parameters = new Dictionary&amp;lt;string, object&amp;gt;();&lt;/p&gt;
&lt;p&gt;parameters.Add("Resource", resource);&lt;/p&gt;
&lt;p&gt;This is where it gets a little tricky. If you misspell the parameter your workflow does not work and any error messages you may get don't make any sense. Just make sure you spell the parameter names the same as the public parameter you created in your workflow code.&lt;/p&gt;
&lt;p&gt;Now all that is left is to create the workflow passing in the Dictionary object like this:&lt;/p&gt;
&lt;p&gt;WorkflowInstance workflowInstance = _workflowRuntime.CreateWorkflow(typeof(Workflow1), parameters);&lt;/p&gt;
&lt;p&gt;The rest of the code for starting your can figure out from the code samples that Microsoft supplies when you install UCMA 3.0.&lt;/p&gt;
&lt;p&gt;I'm going to try and post a new "Lessons Learned" post each week as my time permits.&lt;/p&gt;
&lt;p&gt;I hope this helps. As always I would love to hear your feedback and questions on this post.&lt;/p&gt;</description><pubDate>Fri, 13 May 2011 13:51:31 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/lessons-learned-passing-parameters-to-your-workflow</guid></item><item><title>New Lync Server 2010 Books</title><link>http://gotuc.net:80/gotuc-blog/new-lync-server-2010-books</link><description>&lt;p&gt;&lt;a href="http://www.amazon.com/Microsoft-Lync-Server-2010-Unleashed/dp/0672330342/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1301660482&amp;amp;sr=8-1"&gt;Microsoft Lync Server 2010 Unleashed&lt;/a&gt; by Alex Lewis , Andrew Abbate and Tom Pacyk will be in stock at Amazon on April 6th. I've been conversing with Alex while the book was being written and I can't wait to get my hands on a copy. I'm a big fan of Sams' &lt;em&gt;Unleased &lt;/em&gt;series of books and since this one is on Lync Server I'm definitely going to add it to my library.&lt;/p&gt;
&lt;p&gt;I was a contributing writer on this book having written the development chapter and I can't wait to get my hands on it.&lt;/p&gt;
&lt;p&gt;&lt;img height="300" width="300" src="http://ecx.images-amazon.com/images/I/41lZTCPXHVL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;As developer I am looking forward to the release of &lt;a href="http://www.amazon.com/Professional-Unified-Communications-Development-Microsoft/dp/0470939036/ref=sr_1_1?ie=UTF8&amp;amp;qid=1301925610&amp;amp;sr=1-1-spell"&gt;Professional Unified Communications Development with Microsoft Lync Server 2010&lt;/a&gt; by Geroge Durzi and Michael Greenlee which is due out on May 23rd.&lt;/p&gt;
&lt;p&gt;I've been in touch with Michael off and on throughout the writing of this book and have reviewed several of the chapters. The book is going to really fill a void that we UCMA developers have been facing and is another book that I'll be adding to my library. I asked Michael to make the sample code relevant and complete and from what I have seen they have done that. I learned a few things from just reading the early versions of the chapters. I'll blog more on this book once I get my hands on it. I'm also trying to come up with a contest or something with the book as a prize. It's been a long time since I did something like that so I think it is time for another giveaway.&lt;/p&gt;
&lt;p&gt;&lt;img height="300" width="300" src="http://ecx.images-amazon.com/images/I/51OYIQZZl6L._SL500_AA300_.jpg" /&gt;&lt;/p&gt;</description><pubDate>Fri, 13 May 2011 13:51:14 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/new-lync-server-2010-books</guid></item><item><title>Lync Server 2010 SDK Content Notification Sample Walkthrough</title><link>http://gotuc.net:80/gotuc-blog/lync-server-2010-sdk-content-notification-sample-walkthrough</link><description>&lt;p&gt;One of the samples in the SDK is the content notification sample. This is a very basic sample and a good starting point for learning MSPL script and how to install them in your environment.&lt;br&gt;&lt;br&gt;For a detailed walkthrough watch the video below:&lt;/p&gt;  &lt;head&gt;     &lt;style type="text/css"&gt;
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    .fadeSome {
        opacity:0.30;
        filter:alpha(opacity=30);
        -moz-opacity: 30%;        
    }
    .fadeLots {
        opacity:0.50;
        filter:alpha(opacity=50);
        -moz-opacity: 0.5;        
    }  
    .fadeCompletely {
        opacity:0.0;
        filter:alpha(opacity=0);
        -moz-opacity: 0.0;
    }     
    #silverlightControlHost {
        height: 100%;
    }
    &lt;/style&gt;          &lt;script type="text/javascript"&gt;
        function onSilverlightError(sender, args) {

            var appSource = "";
            if (sender != null &amp;&amp; sender != 0) {
                appSource = sender.getHost().Source;
            }
            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }

        function highlightDownloadArea(fOn) {
            document.getElementById("overlay").className = (fOn) ? "fadeSome" : "fadeLots";            
        }

	function CloseWindow()
	{
	    window.close();
	}




    &lt;/script&gt; &lt;/head&gt;    &lt;body&gt;     &lt;!-- Runtime errors from Silverlight will be displayed here.
    This will contain debugging information and should be removed or hidden when debugging is completed --&gt;     &lt;div id='errorLocation' style="font-size: small;color: Gray;"&gt;&lt;/div&gt;      &lt;div id="silverlightControlHost"&gt;         &lt;object data="data:application/x-silverlight," type="application/x-silverlight"



width="480" height="320"

	    &gt;             &lt;param name="source" value="http://wiki.gotuc.net/video/LyncSDKContentMod/MediaPlayerTemplate.xap" /&gt;             &lt;param name="onerror" value="onSilverlightError" /&gt;             &lt;param name="autoUpgrade" value="true" /&gt;             &lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;             &lt;param name="enableHtmlAccess" value="true" /&gt;              &lt;param name="enableGPUAcceleration" value="true" /&gt;              &lt;param name="initparams" value="playerSettings = 
                        &amp;lt;Playlist&amp;gt;
                            &amp;lt;AutoLoad&amp;gt;false&amp;lt;/AutoLoad&amp;gt;
                            &amp;lt;AutoPlay&amp;gt;false&amp;lt;/AutoPlay&amp;gt;
                            &amp;lt;DisplayTimeCode&amp;gt;false&amp;lt;/DisplayTimeCode&amp;gt;
                            &amp;lt;EnableOffline&amp;gt;true&amp;lt;/EnableOffline&amp;gt;
                            &amp;lt;EnablePopOut&amp;gt;true&amp;lt;/EnablePopOut&amp;gt;

                            &amp;lt;EnableCaptions&amp;gt;true&amp;lt;/EnableCaptions&amp;gt;
                            &amp;lt;EnableCachedComposition&amp;gt;true&amp;lt;/EnableCachedComposition&amp;gt;
                            &amp;lt;StretchNonSquarePixels&amp;gt;NoStretch&amp;lt;/StretchNonSquarePixels&amp;gt;
                            &amp;lt;StartMuted&amp;gt;false&amp;lt;/StartMuted&amp;gt;

                            &amp;lt;StartWithPlaylistShowing&amp;gt;false&amp;lt;/StartWithPlaylistShowing&amp;gt;


                            &amp;lt;Items&amp;gt;
                                
								&amp;lt;PlaylistItem&amp;gt;
									&amp;lt;AudioCodec&amp;gt;WmaProfessional&amp;lt;/AudioCodec&amp;gt;
									&amp;lt;Description&amp;gt;&amp;lt;/Description&amp;gt;
									&amp;lt;FileSize&amp;gt;103038665&amp;lt;/FileSize&amp;gt;
									&amp;lt;IsAdaptiveStreaming&amp;gt;true&amp;lt;/IsAdaptiveStreaming&amp;gt;
									&amp;lt;MediaSource&amp;gt;http://wiki.gotuc.net/video/LyncSDKContentMod/LyncSDKContentMod.ism%5CManifest&amp;lt;/MediaSource&amp;gt;
									&amp;lt;ThumbSource&amp;gt;http://wiki.gotuc.net/video/LyncSDKContentMod/LyncSDKContentMod_Thumb.jpg&amp;lt;/ThumbSource&amp;gt;
									&amp;lt;Title&amp;gt;LyncSDKContentMod&amp;lt;/Title&amp;gt;
									&amp;lt;DRM&amp;gt;false&amp;lt;/DRM&amp;gt;
									&amp;lt;VideoCodec&amp;gt;VC1&amp;lt;/VideoCodec&amp;gt;
									&amp;lt;FrameRate&amp;gt;15.000015000015&amp;lt;/FrameRate&amp;gt;
									&amp;lt;Width&amp;gt;448&amp;lt;/Width&amp;gt;
									&amp;lt;Height&amp;gt;336&amp;lt;/Height&amp;gt;
									&amp;lt;AspectRatioWidth&amp;gt;4&amp;lt;/AspectRatioWidth&amp;gt;
									&amp;lt;AspectRatioHeight&amp;gt;3&amp;lt;/AspectRatioHeight&amp;gt;
								&amp;lt;/PlaylistItem&amp;gt;
			    &amp;lt;/Items&amp;gt;
                        &amp;lt;/Playlist&amp;gt;" /&gt;                    &lt;!--  unused valid silverlight init parameters
            &lt;param name="enableFrameRateCounter" value="bool" /&gt;
            &lt;param name="enableRedrawRegions" value="bool" /&gt;
            &lt;param name="maxFrameRate" value="int" /&gt;
            &lt;param name="allowHtmlPopupWindow" value="bool"/&gt;
            &lt;param name="background" value="colorValue"/&gt;
            &lt;param name="splashScreenSource" value="uri"/&gt;
            &lt;param name="fullScreen" value="bool"/&gt;
            &lt;param name="onFullScreenChanged" value="functionname"/&gt;
            &lt;param name="onResize" value="functionname"/&gt;
            &lt;param name="onSourceDownloadComplete" value="functionname"/&gt;
            &lt;param name="onSourceDownloadProgressChanged" value="functionname"/&gt;
            &lt;param name="windowLess" value="bool"/&gt;
             --&gt;                &lt;div onmouseover="highlightDownloadArea(true)" onmouseout="highlightDownloadArea(false)"&gt;                     &lt;img src="LyncSDKContentMod_Thumb.jpg" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" /&gt;                     &lt;img src="Preview.png" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" /&gt;                                                                 &lt;div id="overlay" class="fadeLots" style="position:absolute;width:100%;height:100%;border-style:none;background-color:white;"/&gt;&lt;/div&gt;                     &lt;table width="100%" height="100%" style="position:absolute;"&gt;&lt;tr&gt;&lt;td align="center" valign="middle"&gt;                                            &lt;img src="http://go2.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight"&gt;                      &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;                                        &lt;a href="http://go2.microsoft.com/fwlink/?LinkID=149156"&gt;                         &lt;img src="" class="fadeCompletely" style="position:absolute;width:100%;height:100%;border-style:none;" alt="Get Microsoft Silverlight" /&gt;                     &lt;/a&gt;                                 &lt;/div&gt;                      &lt;/object&gt;         &lt;iframe id='_sl_historyFrame' style='visibility:hidden;height:0;width:0;border:0px'&gt;&lt;/iframe&gt;    &lt;/div&gt; &lt;/body&gt; &lt;/p&gt; &lt;p&gt;You will find the samples in: &lt;br&gt;&lt;strong&gt;c:\Program Files\Microsoft Lync Server 2010\SDK\Samples\ContentModification&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img1_thumb3_2.jpg" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Img1_thumb3" border="0" alt="Img1_thumb3" src="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img1_thumb3_thumb.jpg" width="399" height="81"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The .am (Application Manifest) file is filtering all SIP traffic where this script is installed and its looking for SIP methods INVITE (&lt;a title="http://www.voip-info.org/wiki/view/SIP+method+invite" href="http://www.voip-info.org/wiki/view/SIP+method+invite"&gt;http://www.voip-info.org/wiki/view/SIP+method+invite&lt;/a&gt;) and Message (&lt;a title="http://www.voip-info.org/wiki/view/SIP+method+message" href="http://www.voip-info.org/wiki/view/SIP+method+message"&gt;http://www.voip-info.org/wiki/view/SIP+method+message&lt;/a&gt;). If this method filter is triggered it then looks for the work echo in the message body.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img2_thumb2_2.jpg" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Img2_thumb2" border="0" alt="Img2_thumb2" src="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img2_thumb2_thumb.jpg" width="407" height="301"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When it finds on of these SIP messages it will append the string “(echo). to the existing message body.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img3_thumb1_2.jpg" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Img3_thumb1" border="0" alt="Img3_thumb1" src="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img3_thumb1_thumb.jpg" width="408" height="308"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If the sample is installed correctly you will see the following response in your Lync Client.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img4_thumb1_2.jpg" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Img4_thumb1" border="0" alt="Img4_thumb1" src="http://www.gotuc.net/Media/Default/Windows-Live-Writer/b0c5f9d30962_D6A5/Img4_thumb1_thumb.jpg" width="278" height="281"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 12 May 2011 22:15:48 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/lync-server-2010-sdk-content-notification-sample-walkthrough</guid></item><item><title>Microsoft Lync Server 2010 Resource Kit</title><link>http://gotuc.net:80/gotuc-blog/microsoft-lync-server-2010-resource-kit</link><description>&lt;p&gt;&lt;a href="http://www.gotuc.net/Media/Default/Windows-Live-Writer/Microsoft-Lync-Server-2010-Resource-Kit_9F93/image_2.png"&gt;&lt;img style="margin: 0px 5px; display: inline; float: left" title="image" alt="image" align="left" src="http://www.gotuc.net/Media/Default/Windows-Live-Writer/Microsoft-Lync-Server-2010-Resource-Kit_9F93/image_thumb.png" width="40" height="39"&gt;&lt;/a&gt;If your looking for the Lync 2010 Resource Kit its not out yet. But the good news is some of the chapters are available for download. Eventually all the chapters will be posted online. My former co-worker Dustin Hannifin worked on the SharePoint Integration chapter, Nice work Dustin! You can find the downloads here: &lt;br&gt;&lt;a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8c64a1e1-f0b3-479c-a265-e480875c61d8" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8c64a1e1-f0b3-479c-a265-e480875c61d8"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8c64a1e1-f0b3-479c-a265-e480875c61d8&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The following chapters are available today.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Conferencing_and_Collaboration  &lt;li&gt;Enterprise_Voice  &lt;li&gt;New_Features_Overview  &lt;li&gt;Response_Group_Application  &lt;li&gt;SharePoint_Integration  &lt;li&gt;Technical_Overview &lt;/li&gt;&lt;/ul&gt;</description><pubDate>Thu, 12 May 2011 19:15:14 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/microsoft-lync-server-2010-resource-kit</guid></item><item><title>Installing the Lync 2010 Server SDK</title><link>http://gotuc.net:80/gotuc-blog/test</link><description>&lt;p&gt;The Microsoft Lync Server 2010 SDK includes library, tools, documentation, and sample applications for developing server-side SIP applications to customize and extend the functionality of Microsoft Lync Server 2010.&lt;/p&gt; &lt;p&gt;A good example server side application is the client filter installed by default. It inspects SIP packets and restircte certiain client versions. If you need to build an application like this you need this SDK: &lt;a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=58ccf6fd-31db-4f15-bafb-c5ef28afc5fc" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=58ccf6fd-31db-4f15-bafb-c5ef28afc5fc"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=58ccf6fd-31db-4f15-bafb-c5ef28afc5fc&lt;br&gt;&lt;br&gt;&lt;/a&gt;&lt;object data="data:application/x-silverlight," type="application/x-silverlight" width="640" height="480"&gt;             &lt;param name="source" value="http://wiki.gotuc.net/video/LyncServerSDKInstall/MediaPlayerTemplate.xap" /&gt;             &lt;param name="onerror" value="onSilverlightError" /&gt;             &lt;param name="autoUpgrade" value="true" /&gt;             &lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;             &lt;param name="enableHtmlAccess" value="true" /&gt;              &lt;param name="enableGPUAcceleration" value="true" /&gt;              &lt;param name="initparams" value="playerSettings = 
                        &amp;lt;Playlist&amp;gt;
                            &amp;lt;AutoLoad&amp;gt;false&amp;lt;/AutoLoad&amp;gt;
                            &amp;lt;AutoPlay&amp;gt;false&amp;lt;/AutoPlay&amp;gt;
                            &amp;lt;DisplayTimeCode&amp;gt;false&amp;lt;/DisplayTimeCode&amp;gt;
                            &amp;lt;EnableOffline&amp;gt;true&amp;lt;/EnableOffline&amp;gt;
                            &amp;lt;EnablePopOut&amp;gt;true&amp;lt;/EnablePopOut&amp;gt;

                            &amp;lt;EnableCaptions&amp;gt;true&amp;lt;/EnableCaptions&amp;gt;
                            &amp;lt;EnableCachedComposition&amp;gt;true&amp;lt;/EnableCachedComposition&amp;gt;
                            &amp;lt;StretchNonSquarePixels&amp;gt;NoStretch&amp;lt;/StretchNonSquarePixels&amp;gt;
                            &amp;lt;StartMuted&amp;gt;false&amp;lt;/StartMuted&amp;gt;

                            &amp;lt;StartWithPlaylistShowing&amp;gt;false&amp;lt;/StartWithPlaylistShowing&amp;gt;


                            &amp;lt;Items&amp;gt;
                                
								&amp;lt;PlaylistItem&amp;gt;
									&amp;lt;AudioCodec&amp;gt;AAC&amp;lt;/AudioCodec&amp;gt;
									&amp;lt;Description&amp;gt;&amp;lt;/Description&amp;gt;
									&amp;lt;FileSize&amp;gt;179333706&amp;lt;/FileSize&amp;gt;
									&amp;lt;IsAdaptiveStreaming&amp;gt;true&amp;lt;/IsAdaptiveStreaming&amp;gt;
									&amp;lt;MediaSource&amp;gt;http://wiki.gotuc.net/video/LyncServerSDKInstall/LyncServer2010SDKInstall.ism%5CManifest&amp;lt;/MediaSource&amp;gt;
									&amp;lt;ThumbSource&amp;gt;&amp;lt;/ThumbSource&amp;gt;
									&amp;lt;Title&amp;gt;LyncServerSDK&amp;lt;/Title&amp;gt;
									&amp;lt;DRM&amp;gt;false&amp;lt;/DRM&amp;gt;
									&amp;lt;VideoCodec&amp;gt;H264&amp;lt;/VideoCodec&amp;gt;
									&amp;lt;FrameRate&amp;gt;15.000015000015&amp;lt;/FrameRate&amp;gt;
									&amp;lt;Width&amp;gt;1280&amp;lt;/Width&amp;gt;
									&amp;lt;Height&amp;gt;720&amp;lt;/Height&amp;gt;
									&amp;lt;AspectRatioWidth&amp;gt;16&amp;lt;/AspectRatioWidth&amp;gt;
									&amp;lt;AspectRatioHeight&amp;gt;9&amp;lt;/AspectRatioHeight&amp;gt;
								&amp;lt;/PlaylistItem&amp;gt;
			    &amp;lt;/Items&amp;gt;
                        &amp;lt;/Playlist&amp;gt;" /&gt;                                        &lt;/object&gt;</description><pubDate>Tue, 10 May 2011 15:29:17 GMT</pubDate><guid isPermaLink="true">http://gotuc.net:80/gotuc-blog/test</guid></item></channel></rss>