<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Kloud Blog</title>
	<atom:link href="http://blog.kloud.com.au/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kloud.com.au</link>
	<description>We are dedicated to helping our clients realise the value of Cloud Computing.</description>
	<lastBuildDate>Wed, 23 May 2012 12:44:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.kloud.com.au' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/268d335f2417deb946f413603aac4764?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Kloud Blog</title>
		<link>http://blog.kloud.com.au</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.kloud.com.au/osd.xml" title="Kloud Blog" />
	<atom:link rel='hub' href='http://blog.kloud.com.au/?pushpress=hub'/>
		<item>
		<title>Publish Content to the Azure CDN with URLRewrite</title>
		<link>http://blog.kloud.com.au/2012/05/23/publish-content-to-the-azure-cdn-with-urlrewrite/</link>
		<comments>http://blog.kloud.com.au/2012/05/23/publish-content-to-the-azure-cdn-with-urlrewrite/#comments</comments>
		<pubDate>Wed, 23 May 2012 11:45:10 +0000</pubDate>
		<dc:creator>Peter Reid</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=148</guid>
		<description><![CDATA[Content Delivery Network A content delivery network (CDN) is a distributed network of servers that will cache and serve content from edge nodes closer to the user&#8217;s browser. By utilising this functionality websites can offload much of their static content delivery to those servers saving valuable web processing and bandwidth for core business related activities [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=148&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>Content Delivery Network</h1>
<p>A content delivery network (CDN) is a distributed network of servers that will cache and serve content from edge nodes closer to the user&#8217;s browser. By utilising this functionality websites can offload much of their static content delivery to those servers saving valuable web processing and bandwidth for core business related activities and giving the user a better online experience.</p>
<p>A CDN should be considered for delivering content for Internet workloads that exhibit:</p>
<ul>
<li>Static or slow changing content</li>
<li>Content shared by many users</li>
<li>Geographically dispersed users</li>
<li>Ad-hoc or irregular usage (and therefore don&#8217;t get the benefit of the browser cache)</li>
<li>Expensive or saturated bandwidth connections</li>
</ul>
<p>One or more of these characteristics is an indicator that a CDN may be a worthwhile investment, but the investment need not be a large one.</p>
<h1>Azure CDN</h1>
<p>The Windows Azure CDN is a<a href="http://msdn.microsoft.com/en-us/library/gg680302.aspx"> network</a> of servers deployed <span style="color:black;font-family:Segoe UI;font-size:9pt;">at strategically placed locations</span> around the globe. They will cache and deliver <span style="color:black;font-family:Segoe UI;font-size:9pt;">Windows Azure blobs and the static content output of compute instances. The CDN can be enabled through the <a href="http://windows.azure.com/">Windows Azure Platform Management Portal</a> as an add-on feature to your subscription. </span>This article shows how to cheaply and easily leverage the Azure CDN in your architecture without any development, migration nor publishing effort.</p>
<p>Before looking at Azure, it&#8217;s worth taking a step back to look at some of the foundational components that can be used to build a CDN. IIS 7 and later has a powerful module plug-in capability for affecting the request response pipeline which can been leveraged to implement <a href="http://learn.iis.net/page.aspx/649/deploying-application-request-routing-in-cdn/">content serving farms</a> (in fact I bet these components are used under the Azure CDN)</p>
<h1>URLRewrite</h1>
<p>One of the powerful and under rated plugins is <a href="http://www.iis.net/download/URLRewrite">URLRewrite 2.0</a> which has a config driven regular expression rules engine for mapping incoming requests to new URLs and for modifying the content of the outgoing response. While this is a similar concept to ASP.NET URLRewrite used heavily in MVC, it works at a lower level and doesn&#8217;t actually need ASP.NET at all.</p>
<p>Start out by <a href="http://www.iis.net/download/URLRewrite">downloading</a> and installing URLRewrite for IIS 7(or 8) which will put an icon like this in your IIS management console.</p>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont1.png?w=630" alt="" /></p>
<ul>
<li>Create a local website with some content in a folder like:<br />
<em>website</em>/content/Kloud.jpg</li>
<li>Create a folder (or virtual directory) called &#8220;cdn&#8221;.</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont2.png?w=630" alt="" /></p>
<p>We can now create a rule that delivers the &#8220;Content&#8221; folder directly from a new content URL.</p>
<ul>
<li>In IIS click on the cdn folder and double click the URLRewrite icon and create a new &#8220;Blank&#8221; inbound rule.</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont3.png?w=630" alt="" /></p>
<ul>
<li>Add a new rule called &#8220;cdn&#8221; as a case insensitive regular expression rule to match all incoming URLs (.*)</li>
<li>and rewrite to them to the content folder<br />
(<span style="font-family:Courier New;font-size:10pt;">/Content/<span style="color:brown;">{<span style="color:blue;">R<span style="color:black;"><strong>:</strong>1<span style="color:brown;">})</span></span></span></span></span></li>
<li>Click Apply.</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont4.png?w=630" alt="" /></p>
<p>This will create a web.config file in the cdn folder with the rewrite rules (which can be directly edited if preferred to using the GUI wizard). Now the web site has two URLs on which content be retrieved.<br />
<a href="http://localhost/cdn/kloud.jpg">http://localhost/cdn/kloud.jpg</a> and <a href="http://localhost/Content/kloud.jpg">http://localhost/Content/kloud.jpg</a></p>
<p>While that&#8217;s a handy way to create vanity URLs, the same could be achieved with a simple virtual directory. The real power of the Rewrite Module is in partnership with the Application Request Routing module.</p>
<h1>Application Request Routing</h1>
<p>Application Request Routing is a module designed to provide the functionality to build large content caching farms from IIS servers. ARR 2.5 (at time of writing) is available as a set of 4 dependant modules through the Web Platform Installer, but also as a direct install from <a href="http://blogs.iis.net/wonyoo/archive/2011/04/20/how-to-install-application-request-routing-arr-2-5-without-web-platform-installer-webpi.aspx">here</a> (this will become important later).</p>
<p>In our case we&#8217;ll use just one part, the ability to request &#8220;off box&#8221; for the rewritten URL. That is we can turn our virtual directory into a reverse proxy by simply editing our rewriting rules appropriately.</p>
<ul>
<li>Open the URLRewrite configuration for the cdn folder and &#8220;Disable Rule&#8221; on the cdn rule created previously</li>
<li>Now click Add rule and choose the &#8220;Reverse Proxy&#8221; rule and click OK to the warning about setting up a proxy rule.<br />
<img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont5.png?w=630" alt="" /></li>
<li>Here we will define a server that will be serving the content, for instance this blog <a href="http://kloudsolutions.files.wordpress.com">kloudsolutions.files.wordpress.com</a> (but any site capable of serving content will do).</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont6.png?w=630" alt="" /><br />
(Don&#8217;t worry about outbound rules that will come later)</p>
<ul style="margin-left:54pt;">
<li>Accept the default rules (match all URLS and append query string) and Click Apply which will create a new reverse proxy inbound rule.</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont7.png?w=630" alt="" /></p>
<p>Now browse to the URL</p>
<ul>
<li><a href="http://localhost/cdn/2011/12/121211_0222_lync2010mob1.png?w=630">http://localhost/cdn/2011/12/121211_0222_lync2010mob1.png?w=630</a></li>
</ul>
<p>and even with different query strings</p>
<ul>
<li><a href="http://localhost/cdn/2011/12/121211_0222_lync2010mob1.png?w=50">http://localhost/cdn/2011/12/121211_0222_lync2010mob1.png?w=50</a></li>
</ul>
<p>The local IIS should now be forwarding requests and serving content on behalf of the Kloud blog, which is interesting but not altogether useful unless some other value adding service is provided like caching.</p>
<h1>Azure WebRole CDN Folder</h1>
<p>The first release of the CDN required static content to be pre-uploaded to an Azure Blob store marked for publishing via the CDN. That meant a big upfront effort to identify and manually publish the content appropriate for CDN publishing. The <a href="http://blogs.msdn.com/b/windowsazure/archive/2011/03/09/now-available-updated-windows-azure-sdk-and-windows-azure-management-portal.aspx">March 2011</a> update to Azure quietly released some updates to the CDN that made publishing content much easier and much more powerful.</p>
<p><em>&#8220;<span style="font-family:Segoe UI;">Developers can now use the Windows Azure Web and VM roles as &#8220;origin&#8221; for objects to be delivered at scale via the Windows Azure CDN&#8221;</span><br />
</em></p>
<p>That means if a user&#8217;s browser requests some content from the CDN that isn&#8217;t yet in the Blob store then Azure will try to hit your WebRole on the /cdn folder to deliver the content before giving the user a 404 not found error.</p>
<p>So what if we combine those two ideas and use an Azure Web Role to reverse proxy the requests from the Azure CDN to a content server? To do this we&#8217;ll need to install and configure ARR and URLRewrite on a WebRole. This can be done and is detailed <a href="http://robindotnet.wordpress.com/2011/07/21/how-to-install-iis-application-request-routing-in-windows-azure/">here</a> so won&#8217;t be detailed here.</p>
<ul style="margin-left:54pt;">
<li>Open Visual Studio and create a new Windows Azure Project called &#8220;ContentProxy&#8221; and add a WCF WebRole to it (that&#8217;s the simplest role to remove all the code from).</li>
<li>Take the web.config file from the CDN folder we created locally and copy it into a CDN folder in the Azure project.</li>
<li>Add the install files as described in the blog and remove everything else you can until it looks like this.</li>
</ul>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont8.png?w=630" alt="" /></p>
<ul style="margin-left:54pt;">
<li>Build and run the project in the development emulator and check it still returns proxied content from the blog<br />
<a href="http://localhost:81/cdn/2011/12/121211_0222_lync2010mob1.png?w=630">http://localhost:81/cdn/2011/12/121211_0222_lync2010mob1.png?w=630</a></li>
<li>Deploy to Azure ensuring to tick the Remote Desktop option so the installation and config can be checked later if need be.</li>
<li>Browse to the new Azure service and see that it&#8217;s still returning proxied content.<br />
<a href="http://yourazure.cloudapp.net/cdn/2011/12/121211_0222_lync2010mob1.png?w=630">http://yourazure.cloudapp.net/cdn/2011/12/121211_0222_lync2010mob1.png?w=630</a></li>
</ul>
<p>Now we have a content proxy deployed to Azure listening on the CDN folder for requests. Now there&#8217;s some final configuration required to publish a CDN end point and wire it up to our WebRole.</p>
<h1>Azure CDN Endpoint</h1>
<ul style="margin-left:38pt;">
<li>Browse to and log in to the Azure Management Portal.</li>
<li>Click on Hosted Services, Storage Accounts and CDN.</li>
<li>
<div>Click on the CDN menu item and the New Endpoint for your subscription</div>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont9.png?w=630" alt="" /></li>
<li>
<div>Create a new CDN end point and choose the hosted service running the content proxy and provide the CDN source URL for retrieving content.</div>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont10.png?w=630" alt="" /></li>
<li>This will create a new publically available end point like which can be used to get your dynamic content off the CDN:<br />
<a href="http://az190064.vo.msecnd.net/2011/12/121211_0222_lync2010mob1.png?w=50">http://az190064.vo.msecnd.net/2011/12/121211_0222_lync2010mob1.png?w=50</a></li>
</ul>
<p>Now by changing the definition or the URL Rewrite rules you can cache and deliver via CDN any content from anywhere on the Internet including your own corporate web serving infrastructure. The effect will be that a piece of content will be requested from the host server only once when requested by a browser and then every subsequent request will come off the edge nodes of the Azure CDN until it <a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg680306.aspx">expires</a> from the CDN.</p>
<p>&#8230;.with no code!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=148&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2012/05/23/publish-content-to-the-azure-cdn-with-urlrewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b1f2ba48e5ce1c360209361806e163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">petermreid</media:title>
		</media:content>

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont1.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont2.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont3.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont4.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont5.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont6.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont7.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont8.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont9.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/05/052312_1144_publishcont10.png" medium="image" />
	</item>
		<item>
		<title>Office 365 Licensing with Powershell</title>
		<link>http://blog.kloud.com.au/2012/04/02/office-365-licensing-with-powershell/</link>
		<comments>http://blog.kloud.com.au/2012/04/02/office-365-licensing-with-powershell/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 11:16:25 +0000</pubDate>
		<dc:creator>Joel Neff</dc:creator>
				<category><![CDATA[Office 365]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=130</guid>
		<description><![CDATA[The Basics Recently I&#8217;ve had to explore the dark art of license assignment using Powershell. It&#8217;s not particularly well documented so this might help you… Displaying a list of the current licensing assignment is pretty straightforward. Get-MsolUser can be used to return information on an individual or a list of users. Get-MsolUser -All run on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=130&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>The Basics</h1>
<p>Recently I&#8217;ve had to explore the dark art of license assignment using Powershell. It&#8217;s not particularly well documented so this might help you…</p>
<p>Displaying a list of the current licensing assignment is pretty straightforward. Get-MsolUser can be used to return information on an individual or a list of users.</p>
<p><strong>Get-MsolUser -All</strong> run on its own will return all of the users available in the tenant along with whether or not there is a user license assigned.</p>
<p>To make this a bit more usable, you could pipe this output to a CSV file and work with it from there</p>
<p><strong>Get-MsolUser | Export-Csv c:\path\AllUsers.CSV<br />
</strong></p>
<p>If you want to filter it a bit more you can user the &#8220;TRUE&#8221; or &#8220;FALSE&#8221; options</p>
<p><strong>Get-MsolUser | Where-Object {$_.isLicensed -eq &#8220;TRUE&#8221;} | Export-Csv c:\path\AllUsersWithLicenses.CSV<br />
</strong></p>
<h2>First Time License Assignment</h2>
<p>The next step from here is to know what licensing SKU you have available before you can apply it. The first thing you will need to do is obtain the AccountSkuId values that have been setup for your tenant.</p>
<p>In my case, I have an E3 tenant which is an ENTERPRISEPACK AccountSkuId that is prefixed with the name of my tenant. You need to display your SKU:</p>
<p><strong>Get-MsolAccountSku | Format-Table AccountSkuId, SkuPartNumber</strong></p>
<p>If you have an E4 subscription, the AccountSkuId is ENTERPRISEPACKWITHCAL</p>
<p>The available service plans in each of these are</p>
<ul>
<li>OFFICESUBSCRIPTION (Office Pro Plus)</li>
<li>MCOSTANDARD (Lync Online)</li>
<li>SHAREPOINTWAC (Office Web Apps)</li>
<li>SHAREPOINTENTERPRISE (Sharepoint Online)</li>
<li>EXCHANGE_S_ENTERPRISE (Exchange Online)</li>
</ul>
<p>In the Kiosk plans the AccountSkuId is DESKLESSWOFFPACK and this contains:</p>
<ul>
<li>SHAREPOINTWAC</li>
<li>SHAREPOINTDESKLESS</li>
<li>EXCHANGE_S_DESKLESS</li>
</ul>
<p>The Exchange Online Archiving SKU contains:</p>
<ul>
<li>EXCHANGE_S_ARCHIVE</li>
</ul>
<p>Doing bulk license assignments you&#8217;ll need to create a CSV file containing the UPN for each batch you want to license. I&#8217;ve names the column in my CSV &#8220;UPN&#8221;</p>
<p>Then you&#8217;ll need to set the licenses you would like to disable, in my example I only want to assign a license for Office Pro Plus so I need to set a variable which contains my assignment:</p>
<p><strong>$Step1 = New-MsolLicenseOptions -AccountSkuId klouds:ENTERPRISEPACK -DisabledPlans MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE,EXCHANGE_S_ENTERPRISE<br />
</strong></p>
<p>When assigning a license for the first time you also need to specify the country of use</p>
<p><strong>Import-Csv .\Sample.CSV | foreach {set-MsolUser -UserPrincipalName $_.UPN -UsageLocation AU}<br />
</strong></p>
<p>The next step is to assign the license:</p>
<p><strong>Import-Csv .\Sample.CSV | foreach {Set-MsolUserLicense -UserPrincipalName $_.UPN -AddLicenses klouds:ENTERPRISEPACK -verbose -LicenseOptions $Step1}<br />
</strong></p>
<p>You can check the license assignment with:</p>
<p><strong>(Get-MSOLUser –UserPrincipalName &#8220;Your UPN&#8221;).Licenses[0].ServiceStatus<br />
</strong></p>
<h1>Modifying Subscriptions within a License</h1>
<p>As with the first time license assignment, you will need to set a variable containing the license subscriptions you want to activate. In my example I am going to remove the Office Pro Plus subscription and activate Exchange Online:</p>
<p><strong>$Step2 = New-MsolLicenseOptions -AccountSkuId klouds:ENTERPRISEPACK -DisabledPlans OFFICESUBSCRIPTION,MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE<br />
</strong></p>
<p>The next step is to assign remove the Office Pro Plus subscription and assign Exchange Online</p>
<p><strong>Import-Csv .\Sample.CSV | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UPN -LicenseOptions $Step2}<br />
</strong></p>
<p>Again using <strong>(Get-MSOLUser –UserPrincipalName &#8220;Your UPN&#8221;).Licenses[0].ServiceStatus </strong> you can see that the change to the subscription was successful:</p>
<p>If you try to modify the subscription using the same commands used for first time license allocation, you will get an error stating that the license is invalid</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=130&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2012/04/02/office-365-licensing-with-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/352eace634192ee54cc16b51bef38df7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joelneff</media:title>
		</media:content>
	</item>
		<item>
		<title>Lync 2010 Mobility – Push Notifications</title>
		<link>http://blog.kloud.com.au/2012/01/01/lync-2010-mobility-push-notifications/</link>
		<comments>http://blog.kloud.com.au/2012/01/01/lync-2010-mobility-push-notifications/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 03:46:04 +0000</pubDate>
		<dc:creator>Brendan Carius</dc:creator>
				<category><![CDATA[Lync]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=105</guid>
		<description><![CDATA[Through reverse engineering here is my take on how Lync Mobility push notifications function for Apple and Windows Phone devices. This article assumes that push notifications is configured and the user is granted the policy to permit push notification (default). Push notifications is only applicable when the application is running in the background (inactive). When [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=105&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Through reverse engineering here is my take on how Lync Mobility push notifications function for Apple and Windows Phone devices. This article assumes that push notifications is configured and the user is granted the policy to permit push notification (default). Push notifications is only applicable when the application is running in the background (inactive). When the Lync Mobile application is active, HTTPS communications via the Reverse Proxy is used. As you&#8217;ll see below, the reverse proxy continues to be the transport for IM conversations, and the push notification is simply the notification service for the device.</p>
<h3>How it works</h3>
<p>The following diagram shows how the Lync Mobile client functions with Lync Push Notifications.</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col style="width:47px;" />
<col style="width:592px;" />
<tbody valign="top">
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:solid .5pt;border-bottom:solid .5pt;">1</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;">The device requests a push notification URI from the Push client service.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;">2, 3</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-bottom:solid .5pt;border-right:solid .5pt;">The Push client service then negotiates with the Microsoft Push Notification Service (MPNS) or the Apple notification service and returns a notification URI to the Lync Mobile client application (2 and 3).</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;">4</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-bottom:solid .5pt;border-right:solid .5pt;">The Lync Mobile client application then sends the URI to the Lync front-end via the reverse proxy (HTTPS).</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;">5</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-bottom:solid .5pt;border-right:solid .5pt;">When the user then receives an instant message the internal Lync server, the Lync server knows the user is currently active for Push Notifications. The Lync server sends a SIP request via the Edge to the Microsoft Lync Push Notification Service (Push Notification Clearing House). This Lync Online clearing house forwards the request to the Microsoft Push Notification Service (MPNS)</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;">6</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-bottom:solid .5pt;border-right:solid .5pt;">The Microsoft Push Notification Service in turn routes the push notification to the Lync Mobile application running on a Windows Phone device (or an Apple device via the Apple notification service).</td>
</tr>
</tbody>
</table>
</div>
<p><img src="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob1.png?w=630" alt="" /></p>
<h3>Sending an Instant Message to a Push User</h3>
<p>Take a scenario of a new Instant Message to a Lync Mobile user who is active for Push notifications. The Instant Message is generated from the Lync Front-end and an interception by the MCX Component initiates the SIP request to the Lync Online Clearing House (as shown in Step 5). The Lync Online clearing house receives the interpreted message using SIP and translates that to a HTTP request to the Microsoft Push Notification Service. The payload of this message includes the URI of the device (push notification URI) along with instructions for the Lync Mobile client. This includes information such as:</p>
<ul style="margin-left:38pt;">
<li>The visual update to the Lync Mobile application tile (ie message count)</li>
<li>A toast notification for the device with a preview of the message.</li>
</ul>
<p>The Microsoft Push Notification Service sends a response code to the Lync Online Clearing House which converts back to SIP for a notification back to the Lync front-end via the Lync Edge. The message is delivered to the mobile device at the next possible opportunity. However, the Microsoft Push Notification Service does not provide an end-to-end confirmation that your push notification was delivered to the device. Hence the message notification back to the sender, though it is likely it was actually delivered to the device.</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col style="width:319px;" />
<col style="width:319px;" />
<tbody valign="top">
<tr>
<td style="padding-left:7px;padding-right:7px;"><span style="color:#c0504d;"><strong>Attempt 1: IM Not Acknowledged<br />
</strong></span></p>
<p><strong>Send an IM to a mobile user – Waiting for a response…</strong></td>
<td style="padding-left:7px;padding-right:7px;"><strong>Response not acknowledged by the mobile user</strong></td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;"><img src="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob2.png?w=630" alt="" /></td>
<td style="padding-left:7px;padding-right:7px;"><img src="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob3.png?w=630" alt="" /></td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;"><span style="color:#c0504d;"><strong>Attempt 2: IM Acknowledged<br />
</strong></span></p>
<p><strong>Send an IM to a mobile user – Waiting for a response…</strong></td>
<td style="padding-left:7px;padding-right:7px;"><strong>Response acknowledged by the mobile user (Lync client lauched/resumed)</strong></td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;"><img src="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob4.png?w=630" alt="" /></td>
<td style="padding-left:7px;padding-right:7px;"><img src="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob5.png?w=630" alt="" /></td>
</tr>
</tbody>
</table>
</div>
<p>Looking at the SIP Stack, you see that in all cases the Lync front-end sends a simple message request to the Lync Online Clearing House. You can surmise that the message body in this request includes XML information pertaining to the new invitation, including:</p>
<ul>
<li>Importance</li>
<li>Conference or Not</li>
<li>Invitation Modality, eg Text, Call etc</li>
<li>Message Body, eg &#8220;Hi Brendan&#8221;</li>
<li>Timestamp</li>
</ul>
<p><span style="font-family:Courier New;font-size:9pt;">Peer: sipfed.online.lync.com:5061<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Type: request<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Start-Line: <strong>MESSAGE sip:push@push.lync.com SIP/2.0<br />
</strong></span></p>
<p><span style="font-family:Courier New;font-size:9pt;">From: &#8220;Brendan Carius&#8221;&lt;sip:McxUsere70bc1dd4f9f40fead43db9502b00564brendan.carius@kloud.com.au&gt;;epid=3470B22863;tag=b6d38c5ec0<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">To: &lt;sip:push@push.lync.com&gt;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CSeq: 21319 MESSAGE<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Call-ID: e16e70125be6482ea259f9a1e0bf06c9<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 155.25.24.23:22360;branch=z9hG4bK3753723F.FE580C552FA25BA9;branched=FALSE;ms-internal-info=&#8221;djml34b0vzwRElFhOibGyaNltxs2YuxJMSXdKiHG2lPvxVDFj-w3gGawAA&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Max-Forwards: 68<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 192.168.1.15:55243;branch=z9hG4bK6C6FDB33.5F9554A4FC3B7C7A;branched=FALSE;ms-received-port=55243;ms-received-cid=562400<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 192.168.1.15:55241;branch=z9hG4bK2acd82a;ms-received-port=55241;ms-received-cid=13A0800<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTACT: &lt;sip: atl-edge-001.litwareinc.com;gruu;opaque=srvr:McxExternal:AbaS4im61lGvIsQfMHKgsQAA&gt;;IsOutsideVoiceB2B;automata;actor=&#8221;attendant&#8221;;text;audio;video;image<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-LENGTH: 830<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">SUPPORTED: gruu-10<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;"><strong>USER-AGENT: RTCC/4.0.0.0 McxService/4.0.0.0<br />
</strong></span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-TYPE: application/vnd.microsoft.lync.pushNotification+xml; charset=&#8221;Unicode (UTF-8)&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-asserted-verification-level: ms-source-verified-user=verified<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;"><strong>Message-Body: &#8212;-****MESSAGE BODY DELETED****&#8212;-<br />
</strong></span></p>
<p><span style="font-family:Courier New;font-size:9pt;">$$end_record<br />
</span></p>
<p>And, the Response OK.</p>
<p><span style="font-family:Courier New;font-size:9pt;">Peer: lyncse.kloud.net:55243<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Type: response<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Start-Line: <strong>SIP/2.0 200 OK</strong><br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">From: &#8220;Brendan Carius&#8221;&lt;sip:McxUsere70bc1dd4f9f40fead43db9502b00564brendan.carius@kloud.com.au&gt;;tag=b6d38c5ec0;epid=3470B22863<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">To: &#8220;Push Notification Clearing House&#8221;&lt;sip:push@push.lync.com&gt;;tag=f1cbe21fcc<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CSeq: 21319 MESSAGE<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Call-ID: e16e70125be6482ea259f9a1e0bf06c9<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 192.168.1.15:55243;branch=z9hG4bK6C6FDB33.5F9554A4FC3B7C7A;branched=FALSE;ms-received-port=55243;ms-received-cid=562400,SIP/2.0/TLS 192.168.1.15:55241;branch=z9hG4bK2acd82a;ms-received-port=55241;ms-received-cid=13A0800<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-LENGTH: 0<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-TYPE: application/vnd.microsoft.lync.pushNotification+xml; charset=&#8221;Unicode (UTF-8)&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">SERVER: RTCC/4.0.0.0 PnchApplication<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-diagnostics-public: 30000;<strong>Reason=&#8221;Success&#8221;</strong><br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-edge-proxy-message-trust: ms-source-type=DirectPartner;ms-ep-fqdn=atl-edge-001.litwareinc.com;ms-source-verified-user=verified;ms-source-network=federation<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Body: –<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">$$end_record<br />
</span></p>
<p>So as per above, the notification service simply sends a response to Lync to notify that the MS Push Notification Service successfully received the message. This does not indicate whether the device actually received the invitation.</p>
<p>This was an out of band message generated by the MCX application on the Lync Front-end based on a new instant message conversation being generated for the Lync Mobile user. Therefore we have the original SIP dialog between Alice and Bob still occurring. As per any SIP dialog, the initial INVITE responses are TRYING (100) then RINGING (180), assuming all is good.</p>
<p>In ATTEMPT 1, the Lync Mobile user does not acknowledge the new invitation. That is, the person misses the notification and does not launch the Lync Mobile client on the device. This results in a REQUEST TIMEOUT (408) response to the original SIP INVITE. The sender receives the warning of &#8220;This message may not have been delivered to….&#8221;.</p>
<p>However, in ATTEMPT 2 above, the Lync Mobile user does acknowledge the invitation and does launch the Lync Mobile client when they receive the Push Notification. In this case the response is a 200 OK rather than the timeout. Therefore the &#8220;waiting for response…&#8221; text is removed from the Instant Message conversation window and the Instant Message conversation is conducted.</p>
<p><strong>The Push Notification service simply operates as a means of notifying the Lync Mobile client of a new invitation (instant message). The Notification Service provides the 1<sup>st</sup> line of the IM conversation and updates the Lync Mobile tile with a missed conversation / call count. The instant message conversation between to a Lync Mobile client user is always performed over HTTPS through the Reverse Proxy to the MCX Service on the Lync Front-ends.<span style="font-family:Courier New;font-size:9pt;"><br />
</span></strong></p>
<h3>Push Notification Synthetic Transactions</h3>
<p>An initial test of the push notification service is to run a Test-csMcxPushNotification. To the cmdlet, simply pass the Lync Edge internal FQDN.</p>
<p><span style="font-family:Courier New;font-size:9pt;">Test-CsMcxPushNotification -AccessEdgeFqdn &#8220;atl-edge-001.litwareinc.com&#8221;<br />
</span></p>
<p>If <a href="http://blog.kloud.com.au/2011/12/12/lync-2010-configuration-overview/">configured correctly</a>, the result will return:</p>
<p><span style="font-family:Courier New;font-size:9pt;">PS C:\&gt; Test-CsMcxPushNotification -AccessEdgeFqdn &#8220;atl-edge-001.litwareinc.com&#8221;<br />
TargetFqdn :<br />
Result : Success<br />
Latency : 00:00:00<br />
Error :<br />
Diagnosis :<br />
</span></p>
<p>Looking at the SIPStack on the Edge you will see an outbound request to the Push Notification clearing house (push.lync.com):</p>
<p><span style="font-family:Courier New;font-size:9pt;">Trace-Correlation-Id: 999570620<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Instance-Id: 000E445E<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Direction: outgoing;source=&#8221;internal edge&#8221;;destination=&#8221;external edge&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Peer: <span style="color:#1f497d;">sipfed.online.lync.com:5061<br />
</span></span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Type: request<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Start-Line: MESSAGE sip:push@push.lync.com SIP/2.0<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">From: &lt;sip:McxUser26df046c-84c7-4ea2-b506-a962bc731b92@kloud.com.au&gt;;epid=40CA3D275B;tag=00c7e644<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">To: <span style="color:#1f497d;">&lt;sip:push@push.lync.com&gt;<br />
</span></span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CSeq: 1 MESSAGE<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Call-ID: 473648cd73334c94a11b8140d3bfaabd<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 155.25.24.23:22321;branch=z9hG4bK9C46E3C8.30D9E486908D36CB;branched=FALSE;ms-internal-info=&#8221;bjLizr_XsA-roWQDzGqWJn-x8229wLtllPfCz1SYhZ2lCG5Nkww3gGawAA&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Max-Forwards: 69<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 192.168.1.15:54018;branch=z9hG4bKbec5f4fe;ms-received-port=54018;ms-received-cid=55E500<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTACT: &lt;sip:atl-edge-001.litwareinc.com;transport=Tls&gt;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-LENGTH: 434<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">USER-AGENT: RTCC/4.0.0.0<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-TYPE: application/<span style="color:#1f497d;">vnd.microsoft.lync.pushNotification+xml;</span> charset=&#8221;Unicode (UTF-8)&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-asserted-verification-level: ms-source-verified-user=verified<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Body: &#8212;-****MESSAGE BODY DELETED****&#8212;-<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">$$end_record<br />
</span></p>
<p>In response, the Push Notification clearing house should respond with a successful processing of the synthetic transaction:</p>
<p><span style="font-family:Courier New;font-size:9pt;">Trace-Correlation-Id: 999570620<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Instance-Id: 000E445F<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Direction: incoming;source=&#8221;external edge&#8221;;destination=&#8221;internal edge&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Peer: sipfed.online.lync.com:5061<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Type: response<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Start-Line: SIP/2.0 <strong>200 OK</strong><br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">From: &lt;sip:McxUser26df046c-84c7-4ea2-b506-a962bc731b92@kloud.com.au&gt;;tag=00c7e644;epid=40CA3D275B<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">To: <span style="color:#1f497d;">&#8220;Push Notification Clearing House&#8221;&lt;sip:push@push.lync.com&gt;</span>;tag=8edaf7323d<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CSeq: 1 MESSAGE<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Call-ID: 473648cd73334c94a11b8140d3bfaabd<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Via: SIP/2.0/TLS 155.25.24.23:22321;received=111.221.22.73;branch=z9hG4bK9C46E3C8.30D9E486908D36CB;branched=FALSE;ms-internal-info=&#8221;bjLizr_XsA-roWQDzGqWJn-x8229wLtllPfCz1SYhZ2lCG5Nkww3gGawAA&#8221;;ms-received-port=22321;ms-received-cid=15225400,SIP/2.0/TLS 192.168.1.15:54018;branch=z9hG4bKbec5f4fe;ms-received-port=54018;ms-received-cid=55E500<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-LENGTH: 0<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">CONTENT-TYPE: application/vnd.microsoft.lync.pushNotification+xml; charset=&#8221;Unicode (UTF-8)&#8221;<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">SERVER: RTCC/4.0.0.0 PnchApplication<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-diagnostics-public: 30007;Reason<span style="color:#1f497d;">=&#8221;<strong>Push Notification synthetic transaction succeeded</strong>&#8220;</span><br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">ms-asserted-verification-level: ms-source-verified-user=verified<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Message-Body: –<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">$$end_record<br />
</span></p>
<p>I hope that helps in understanding the function of the Push Notification service for the Lync Mobile client and assists you in troubleshooting any issues with the notification service.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=105&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2012/01/01/lync-2010-mobility-push-notifications/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/180d05a639859392d1b2db9ad7ea9226?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bcarius</media:title>
		</media:content>

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob1.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob2.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob3.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob4.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2012/01/010112_0345_lync2010mob5.png" medium="image" />
	</item>
		<item>
		<title>Deploying Office 365 Desktop Updates</title>
		<link>http://blog.kloud.com.au/2011/12/21/deploying-office-365-desktop-updates/</link>
		<comments>http://blog.kloud.com.au/2011/12/21/deploying-office-365-desktop-updates/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 12:29:00 +0000</pubDate>
		<dc:creator>Joel Neff</dc:creator>
				<category><![CDATA[Office 365]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=95</guid>
		<description><![CDATA[When migrating to Office 365 it is necessary to distribute updates to your client machines which will facilitate authentication with the Office 365 service along with adding features and support for the Office 365 services into the Office suite on your desktop. There are a couple of ways these updates can be distributed to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=95&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When migrating to Office 365 it is necessary to distribute updates to your client machines which will facilitate authentication with the Office 365 service along with adding features and support for the Office 365 services into the Office suite on your desktop.</p>
<p>There are a couple of ways these updates can be distributed to the client machines: –</p>
<p><strong>Centralised Deployment</strong></p>
<p>Many businesses will have an SOE and a managed environment in which the most effective method of distribution will be using a patch management system such as Microsoft System Centre Configuration Manager.</p>
<p>This approach will give you access to scheduling, delivery and reporting tools that will help ensure successful deployment of the updates along with minimising the need to manually install them on individual machines.</p>
<p>All systems will require the Microsoft Online Services Sign-In Assistant &#8211; <a href="http://g.microsoftonline.com/0bd00en-us/568">x86</a> or <a href="http://g.microsoftonline.com/0bd00en-us/569">x64</a></p>
<p>Depending on the OS and version of Office, there are different updates required. If your Office updates are current, it is likely that these updates will already be installed.</p>
<p>Office 2007 on Windows XP SP3 or Windows 7 requires two updates:</p>
<ul>
<li>Microsoft Office 2007 Security Update &#8211; <a href="http://g.microsoftonline.com/0BD00en-US/446">all versions</a></li>
<li>Microsoft Outlook 2007 Update &#8211; <a href="http://g.microsoftonline.com/0BD00en-US/449">all versions</a></li>
</ul>
<p>Office 2010 on Windows XP SP3 or Windows 7 requires the following three updates:</p>
<ul>
<li>Microsoft Office 2010 Update* &#8211; <a href="http://g.microsoftonline.com/0BD00en-US/447">x86</a> or <a href="http://g.microsoftonline.com/0BD00en-US/448">x64</a></li>
<li>Microsoft Outlook 2010 Update &#8211; <a href="http://g.microsoftonline.com/0BD00en-US/450">x86</a> or <a href="http://g.microsoftonline.com/0BD00en-US/451">x64</a></li>
<li>Microsoft OneNote 2010 Update &#8211; <a href="http://g.microsoftonline.com/0BD00en-US/530">x86</a> or <a href="http://g.microsoftonline.com/0BD00en-US/529">x64</a></li>
</ul>
<p>*On Windows XP after applying this update the following reg key is required for each user [HKCU\Software\Microsoft\Office\14.0\Common\Internet\FormsBasedAuthSettings\AllowFBANoPatches – DWORD: 1]</p>
<p>The patches I&#8217;ve described can be downloaded from <a href="http://community.office365.com/en-us/w/administration/manually-install-office-365-desktop-updates.aspx">community.office365.com</a>.</p>
<p><strong>Self Service</strong></p>
<p>The other method is by using the Microsoft Office 365 desktop setup tool which is a user self service option. This is the best option for unmanaged environments such as employees configuring their home PCs for use with the Office 365 service and depending on the migration method, it may also be the most hassle free way to configure your desktop applications such as Outlook, Lync, and integrate with SharePoint Online. Local admin rights to allow software installation is a requirement however.</p>
<p>Running the service connector application will scan your system and work out which updates (and/or registry keys) are required by your system in order to use the Office 365 service with your OS and version of Office.</p>
<p>Depending on what services have been assigned to your account in the portal it will also work out what applications it can automatically configure for you.</p>
<p>The service connector can be downloaded from <a href="https://portal.microsoftonline.com/download/default.aspx">here</a> but you will need an active Office 365 account.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=95&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/21/deploying-office-365-desktop-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/352eace634192ee54cc16b51bef38df7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joelneff</media:title>
		</media:content>
	</item>
		<item>
		<title>Lync 2010 Mobility – Do I need lyncdiscoverinternal?</title>
		<link>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-do-i-need-lyncdiscoverinternal/</link>
		<comments>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-do-i-need-lyncdiscoverinternal/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 10:25:13 +0000</pubDate>
		<dc:creator>Brendan Carius</dc:creator>
				<category><![CDATA[Lync]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=90</guid>
		<description><![CDATA[Lync Server 2010 Mobility supports an internal and an external automatic discovery record. As described in this post, the mobile client signs-in by performing a DNS query for lyncdiscoverinternal.&#60;your sip domain&#62;. If this record is not present (does not resolve), the client attempts lyncdiscover.&#60;your sip domain&#62;. This design approach aligns to the Lync 2010 client [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=90&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lync Server 2010 Mobility supports an internal and an external automatic discovery record. As described in this <a href="http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-sign-in-internals/">post</a>, the mobile client signs-in by performing a DNS query for lyncdiscoverinternal.&lt;your sip domain&gt;. If this record is not present (does not resolve), the client attempts lyncdiscover.&lt;your sip domain&gt;. This design approach aligns to the Lync 2010 client software for Windows. First an attempt for the SRV record _sipinternaltls._tcp.&lt;your sip domain&gt;, followed by _sipinternal.tcp, followed by _sip._tls, then the A record fallbacks. This approach is great for Windows PCs, and allows Split-DNS configurations to bounce client systems to either the Internal Front-end Pool or the External Access Edge on the Internet. The Windows PCs are managed and Group Policy can add trusted root certificates to the computer certificate store.
</p>
<p>But thinking about Mobile clients specifically, they do not have this Group Policy deployment luxury. I&#8217;m trying to determine the advantage of ever defining <strong>lyncdiscoverinternal.&lt;your sip domain&gt;</strong> in the internal DNS namespace. Typically, the Lync Web Services certificate assigned to the Front-end Pool is issued by an internal certificate authority. This Root Certificate Authority certificate is not present on Mobile devices, therefore will be untrusted. The Lync mobile client would not be able to sign-in, unless the internal root certificate was pre-installed on the device.
</p>
<p>As you are unable to simply deploy the root certificates to your fleet of mobile devices, bouncing all the devices to <strong>lyncdiscover.&lt;your sip domain&gt;</strong> looks to be the most appropriate approach. This will typically require routing and access rules to allow internal traffic a connection to the Reverse Proxy server.
</p>
<p><img src="http://kloudsolutions.files.wordpress.com/2011/12/121211_1024_lync2010mob1.png?w=630" alt="" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=90&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-do-i-need-lyncdiscoverinternal/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/180d05a639859392d1b2db9ad7ea9226?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bcarius</media:title>
		</media:content>

		<media:content url="http://kloudsolutions.files.wordpress.com/2011/12/121211_1024_lync2010mob1.png" medium="image" />
	</item>
		<item>
		<title>Lync 2010 Mobility Sign-in Internals</title>
		<link>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-sign-in-internals/</link>
		<comments>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-sign-in-internals/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 02:22:31 +0000</pubDate>
		<dc:creator>Brendan Carius</dc:creator>
				<category><![CDATA[Lync]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=84</guid>
		<description><![CDATA[The best way to understand the internals of a product or service is to reverse engineer the process using logging and network captures. Capturing the process end-to-end helps paint a clear view as to what is going. Here is what happens when you sign-in on the Lync Mobile client for Windows Phone. Enter sign-in information [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=84&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The best way to understand the internals of a product or service is to reverse engineer the process using logging and network captures. Capturing the process end-to-end helps paint a clear view as to what is going. Here is what happens when you sign-in on the Lync Mobile client for Windows Phone.
</p>
<ol>
<li>
<div>Enter sign-in information and credentials into the Lync Mobile client. (hmmm, screen crack)
</div>
<p><img src="http://kloudsolutions.files.wordpress.com/2011/12/121211_0222_lync2010mob1.png?w=630" alt="" />
			</p>
</li>
<li>
<div>Performs a standard DNS query for <strong>lyncdiscoverinternal.&lt;sip domain namespace&gt;.</strong>
			</div>
<p>If the client is external, this DNS resolution will fail and the client will drop to the next discovery record
</p>
</li>
<li>
<div>Performs a standard DNS query for <strong>lyncdiscover.&lt;sip domain namespace&gt;.</strong>
			</div>
<p>This DNS query will succeed and typically respond with a subsequent query for the value of the <strong>lyncdiscover.&lt;sip domain namespace&gt; CNAME</strong> entry. In my case, this is the Lync External Web Services URL.
</p>
</li>
<li>Perform a standard DNS query for external Lync Web services URL and return the IP to connect.
</li>
<li>Establish a <strong>HTTP and HTTPS</strong> connection to the resolved lyncdiscover.&lt;sip domain namespace&gt; location, which will be a TMG or other reverse proxy.
</li>
<li>
<div>As all good citizens should, our TMG listener switches HTTP inbound traffic to HTTPS.
</div>
<p><img src="http://kloudsolutions.files.wordpress.com/2011/12/121211_0222_lync2010mob2.png?w=630" alt="" />
			</p>
<p>We&#8217;re now only talking to TMG using HTTPS. As a result a bunch of stuff happens on the wire that I cannot see, so look at TMG logs to get further information
</p>
</li>
<li>The TMG request is destined to lyncdiscover.&lt;sip domain namespace&gt;<a href="mailto:/?sipuri=brendan.carius@kloud.com.au">/?sipuri=&lt;your</a> sip address&gt;
</li>
<li>The client is provided the Lync external web services URL, which will be used for all further communications.
</li>
<li>
<div>The first activity is to authenticate the client. A Web Ticket request is raised to obtain a client certificate for authentication.
</div>
<p>
 </p>
<p>With authentication complete, Lync sign-in and in-band provisioning occurs. To capture this information, I&#8217;m looking at the MCXService and SIPStack traces at sign-in.
</p>
<p>
 </p>
</li>
<li>
<div>The REGISTER request comes into the Lync Front-end as using the <strong>McxSipExternalListeningPort</strong>, 5087 (<em>CONTACT: &lt;sip:&lt;&lt;LYNC FRONT-END POOL&gt;:5087</em>)
</div>
<p>
 </p>
</li>
<li>
<div>First and foremost, am I granted a mobility policy? sip:brendan.carius@kloud.com.au is enabled for mobility: True… Phew.
</div>
<p>
 </p>
<p><em>To grant a mobility policy, assign the policy scope Global, to a Site, or to a User. For example: Get-CsUser -filter {samaccountname -eq &#8220;bcarius&#8221;} | Grant-CsMobilityPolicy -PolicyName All_Mobility. The &#8220;All_Mobility&#8221; policy grants Mobility and Outside Voice Control (get-csmobilitypolicy).<br />
</em></p>
<p>
 </p>
</li>
<li>
<div>The standing in-band provisioning occurs on the Lync front-end and I expect MCX is parsing this provisioning to provide the Lync Mobile client only what is requires. This includes:
</div>
<ol>
<li>My Voicemail URI
</li>
<li>Whether I&#8217;m allows simRing, callForwarding, delegation, team call,
</li>
<li>The Address Book, Group Expansion, Location Information URLs
</li>
<li>Contact and photo display policies
</li>
<li>Mobility policies (outside voice, push notification etc)
</li>
<li>And my Dial Plan, <strong>ahhh wonderful, a consistent dialing experience to when I&#8217;m in the office, this is excellent!!!</strong>
				</li>
</ol>
</li>
<li>
<div>I now need to figure out if I am a push or pull sorta guy. If I am enabled for PUSH notification, I need to establish a subscription to the Microsoft Online Push Notification Service. If I&#8217;m a Pull sorta guy, then my TMG server with GET/POST requests will be apples.
</div>
<p>
 </p>
</li>
<li>From here I&#8217;m subscribed and ready to use Lync Mobile, my buddy list and contact cards are retrieved.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=84&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/12/lync-2010-mobility-sign-in-internals/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/180d05a639859392d1b2db9ad7ea9226?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bcarius</media:title>
		</media:content>

		<media:content url="http://kloudsolutions.files.wordpress.com/2011/12/121211_0222_lync2010mob1.png" medium="image" />

		<media:content url="http://kloudsolutions.files.wordpress.com/2011/12/121211_0222_lync2010mob2.png" medium="image" />
	</item>
		<item>
		<title>Lync 2010 Mobility Configuration Overview</title>
		<link>http://blog.kloud.com.au/2011/12/12/lync-2010-configuration-overview/</link>
		<comments>http://blog.kloud.com.au/2011/12/12/lync-2010-configuration-overview/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 02:12:20 +0000</pubDate>
		<dc:creator>Brendan Carius</dc:creator>
				<category><![CDATA[Lync]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=78</guid>
		<description><![CDATA[Lync mobility requires the installation of cumulative update 4 across your Lync server infrastructure. To install CU4, visit here. Once CU4 is deployed, you&#8217;re ready to configure the mobility service. You can download the Mobility deployment guide here. A high level summary is: DNS: Create an External DNS CNAME. Create CNAME Lyncdiscover.&#60;your sip domain&#62; that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=78&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lync mobility requires the installation of cumulative update 4 across your Lync server infrastructure. To install CU4, visit <a href="http://www.microsoft.com/download/en/details.aspx?id=11551">here</a>. Once CU4 is deployed, you&#8217;re ready to configure the mobility service. You can download the Mobility deployment guide <a href="http://www.microsoft.com/download/en/details.aspx?id=28355">here</a>. A high level summary is:</p>
<ol>
<li>
<div><strong>DNS: </strong>Create an External DNS CNAME.</div>
<p>Create CNAME Lyncdiscover.&lt;your sip domain&gt; that resolves to your external web services.</li>
<li>
<div><strong>Configure Ports: </strong>Configure Ports for the Mobility Service</div>
<p><span style="font-family:Courier New;font-size:9pt;">Set-CsWebServer –Identity &lt;name of pool&gt; –McxSipPrimaryListeningPort 5086<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Set-CsWebServer –Identity &lt;name of pool&gt; –McxSipExternalListeningPort 5087<br />
</span></p>
<p><span style="font-family:Courier New;font-size:9pt;">Enable-CsTopology –verbose<br />
</span></li>
<li>
<div><strong>Install Components: </strong>Install the Mobility and Lync Automatic discovery services</div>
<p>On each front-end and director run McsStandalone.msi to install the Mobility Service and the Autodiscover Service. If you&#8217;re Windows Server 2008 (not Windows Server 2008 R2) you need to manually modify C:\Windows\System32\inetsrv\config\applicationHost.config. Refer to <a href="http://technet.microsoft.com/en-us/library/hh690016.aspx">here</a>.</li>
<li>
<div><strong>Update Certificates: </strong>Update certificates subject alternate names</div>
<p>As the mobility service has added lyncdiscover.&lt;your sip domain&gt; a new subject alternate name is required on the Reverse Proxy certificate. There are multiple options in publishing the new service using the Reverse Proxy, but the easiest would be to:</p>
<ol>
<li>Request a new Reverse Proxy certificate that adds lyncdiscover.&lt;your sip domain&gt; to the subject alternate name list.</li>
<li>Install the new certificate on the Reverse Proxy</li>
</ol>
</li>
<li>
<div><strong>Update Reverse Proxy: </strong>Update the Reverse Proxy Listener and Web publishing rule.</div>
<p>It is easier to update the using Lync external web services listener and publishing rule to support mobility.</p>
<ol>
<li>On the Listener – Select the new Certificate</li>
<li>On the Web Publishing Rule – Add lyncdiscover.&lt;your sip domain&gt; to the list of Public Names.</li>
</ol>
<p>As long as the Path configuration is set to /*, it will be functional.</li>
<li>
<div><strong>Configure Push: </strong>Configure Push Notifications</div>
<p>To support push notifications, execute the following:</p>
<ol>
<li><span style="font-family:Courier New;font-size:9pt;">New-CsHostingProvider –Identity &#8220;LyncOnline&#8221; –Enabled $True –ProxyFqdn &#8220;sipfed.online.lync.com&#8221; –VerificationLevel UseSourceVerification<br />
</span></li>
<li><span style="font-family:Courier New;font-size:9pt;">New-CsAllowedDomain –Identity &#8220;push.lync.com&#8221;<br />
</span></li>
<li><span style="font-family:Courier New;font-size:9pt;">Set-CsPushNotificationConfiguration –EnableApplePushNotificationService $True –EnableMicrosoftPushNotificationService $True<br />
</span></li>
</ol>
</li>
</ol>
<p>Push and client mobility can be restricted using mobility policies if desired.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=78&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/12/lync-2010-configuration-overview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/180d05a639859392d1b2db9ad7ea9226?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bcarius</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Revolution &#8211; The Blind Entrepreneur</title>
		<link>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-blind-entrepreneur/</link>
		<comments>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-blind-entrepreneur/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 09:31:45 +0000</pubDate>
		<dc:creator>Peter Reid</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=62</guid>
		<description><![CDATA[[Following from Cloud Revolution] Profitable since the first quarter, 375 million page views per month, $4 million in annual revenue, 75 employees and $30 million in venture funding. Certainly sounds like a successful business, and it is. I Can Has Cheezburger has leveraged the initial success of that hit web site by launching hundreds of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=62&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:black;font-family:Georgia;font-size:10pt;"><em> [Following from <a href="http://blog.kloud.com.au/2011/11/28/cloud-revolution/">Cloud Revolution</a>]</em></span></p>
<p>Profitable since the first quarter, 375 million page views per month, $4 million in annual revenue, 75 employees and $30 million in venture funding. Certainly sounds like a successful business, and it is.</p>
<p><a href="http://icanhascheezburger.com/"><span style="color:blue;text-decoration:underline;">I Can Has Cheezburger</span></a> has leveraged the initial success of that hit web site by launching hundreds of other similar but slightly different sites based on the original. Many of these sites fail to attract traffic and are shut down within weeks, but every now and then one works, like &#8220;<a href="http://failblog.org/"><span style="color:blue;text-decoration:underline;">Fail Blog</span></a>&#8221; or &#8220;<a href="http://totallylookslike.icanhascheezburger.com/"><span style="color:blue;text-decoration:underline;">Totally looks like</span></a>&#8220;. With many copy cat sites launching web sites daily, chasing the latest &#8220;meme&#8221; and clipping the ticket on advertising for every one of your page views there&#8217;s plenty of motivation to continue.</p>
<p>Traditional innovation business models involve coming up with a great idea, getting seed capital, driving the business for a year only to watch it fail and leave the inventor bankrupt for his troubles. CEO Ben Hu is a new breed of trial-and-error innovator powered by the &#8220;scale fast&#8221; and &#8220;fail fast&#8221; business model enabled by the Cloud. By constantly trying out new variants of sites and seeing what works, and more importantly what doesn&#8217;t, he is tightening up and lowering the cost of the innovation cycle.</p>
<p>Could a cringe-worthy blog on cat pictures really change the world? Quite possibly, yes. Mr Hu is disappointed with the way newspapers have been presenting news online and is using all the lessons learnt in publishing cat pictures along with his new $30M of seed capital to reinvent the world of online journalism. He will no doubt try many new ways to present news, most will fail, but eventually something is going to stick and we could then be looking at the next Rupert Murdoch.</p>
<p>We know from Richard Dawkins &#8220;<a href="http://en.wikipedia.org/wiki/The_Blind_Watchmaker"><span style="color:blue;text-decoration:underline;">Blind Watchmaker</span></a>&#8221; that many small incremental changes combined with a process of selection will eventually turn an amoeba to a human. When applied to the Internet and powered by the pay as you go model of the Cloud, the rate of change can be dialled up to 11 and the consequence of failure is near zero. The result will be revolutionary and highly effective ways of presenting information over the Internet for the benefit of humanity and especially Mr Hu!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=62&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-blind-entrepreneur/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b1f2ba48e5ce1c360209361806e163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">petermreid</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Revolution &#8211; The Late Night Scientist</title>
		<link>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-late-night-scientist/</link>
		<comments>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-late-night-scientist/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 09:24:32 +0000</pubDate>
		<dc:creator>Peter Reid</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=57</guid>
		<description><![CDATA[[Following from Cloud Revolution] It&#8217;s late at night in January and an email just arrived that has someone very excited. A medical student has won an auction, but this is no eBay auction, it&#8217;s an Amazon EC2 instance auction. She has been preparing for this moment for over a year and will make or break [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=57&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:black;font-family:Georgia;font-size:10pt;"><em> [Following from <a href="http://blog.kloud.com.au/2011/11/28/cloud-revolution/">Cloud Revolution</a>]</em></span></p>
<p>It&#8217;s late at night in January and an email just arrived that has someone very excited. A medical student has won an auction, but this is no eBay auction, it&#8217;s an Amazon EC2 instance auction. She has been preparing for this moment for over a year and will make or break her post-doctoral research paper.</p>
<p>She is continuing the valuable work done by her predecessors in the field of on Parkinson&#8217;s research and its relationship to dopamine levels in the brain. Previous studies were painstakingly conducted by carefully tracking, monitoring and documenting the lives of hundreds of thousands of patients presenting with dopamine affecting afflictions such as methamphetamine addictions over the course of 10-15 years.</p>
<p>Our scientist is hoping to show a relationship to other causes of dopamine depletion and to do it she&#8217;s has been scouring the huge catalogue of <a href="https://datamarket.azure.com/browse/Data"><span style="color:blue;text-decoration:underline;">free</span></a> and <a href="http://aws.amazon.com/datasets"><span style="color:blue;text-decoration:underline;">paid</span></a> for databases from the likes of the <a href="http://apps.who.int/ghodata/"><span style="color:blue;text-decoration:underline;">WHO</span></a> and <a href="http://www.info.sciverse.com/sciencedirect"><span style="color:blue;text-decoration:underline;">Science Direct</span></a> available in the Cloud. Bringing together datasets as wide as meteorology, geography, drug addiction, depression and death rates she has amassed 20Tb of data that needs to be processed to find correlations. Trial runs on small subsets have shown that it will take around 30,000 hours for one CPU to get through the full set. She can&#8217;t afford to wait the 3 years to run on her own machine, and limited by a $5,000 grant she can&#8217;t buy the hardware needed to do it herself. Instead she puts in a bid for 5000 Amazon EC2 Spot instances at 4c/hour.</p>
<p>Humming in the darkness under a football field sized roof in Ashburn Virginia are thousands of computers running Amazon.com, Instagram, Reddit, Quora and Foursquare. But now it is late in the evening, many shoppers and users are asleep, post Christmas sales are over and the GFC have all conspired to bring Internet traffic to a record low. One by one computers are being freed up into a pool until there are 5000 available and the deal is struck. 6 hours and $1200 later and she has her answer.</p>
<p>This is an example of the new paradigm of data-intensive scientific discovery and it&#8217;s happening right now. Effectively time-shifting 16 years of research into 6 hours of processing by utilising data and computing power that already exists. While many organizations are battling with the concept of how to secure their data in the cloud, others have seen the opportunity and make their data freely available or as a chargeable service.</p>
<p>There are many problems that don&#8217;t need to be solved now, or even today. In fact some problems have remained unsolved for years but may now tackled using enormous amounts of otherwise idle computing capacity at prices previously unheard of to scientists. This new tool of human evolution will be used to map the neurons in the brain, solve the riddle of Parkinson&#8217;s disease, chip away at the list of cancers and discover unexpected relationships and correlations across massive datasets of medical information.</p>
<p>And it&#8217;s all available to anyone with a hunch or a hypothesis they want to test.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=57&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-late-night-scientist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b1f2ba48e5ce1c360209361806e163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">petermreid</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Revolution &#8211; The New Cottage Industry</title>
		<link>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-new-cottage-industry/</link>
		<comments>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-new-cottage-industry/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 23:16:14 +0000</pubDate>
		<dc:creator>Peter Reid</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Economics]]></category>

		<guid isPermaLink="false">http://blog.kloud.com.au/?p=50</guid>
		<description><![CDATA[[Following from Cloud Revolution] In a small office in the back of a house in Melbourne is a business taking on the big players in their own backyard. Running a photo library and acting as an intermediary between a carefully chosen group of photographers and a select genre of magazines and publications. A new photo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=50&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>[Following from <a href="http://blog.kloud.com.au/2011/11/28/cloud-revolution/">Cloud Revolution</a>]</em></p>
<p>In a small office in the back of a house in Melbourne is a business taking on the big players in their own backyard. Running a photo library and acting as an intermediary between a carefully chosen group of photographers and a select genre of magazines and publications.</p>
<p>A new photo shoot has just been uploaded from Hungary to the hosting site and a notification email has been sent. The shoot is first quality controlled, categorised and submitted for key wording using one of the new &#8220;mechanical turk&#8221; cloud <a href="http://blog.picniche.com/microstock/keywording-api-for-organisations-resellers/"><span style="color:blue;text-decoration:underline;">services</span></a> that provide an electronic portal into large, on demand, pools of human labour.</p>
<p>The business of photo syndication is perfectly suited to an Internet only shop front where communication, marketing and product delivery are all electronic. Where reputation is based on service level and quality of product, success can be achieved by targeting and excelling at a very narrow vertical market.</p>
<p>The monthly outgoings are less than $AU150 including, hosting, CRM, campaign management, marketing, invoicing, accounting and laptop. With such low overheads it doesn&#8217;t take many sales to turn a profit. All you need is an eye for good photographers, a supply of good photo shoots and a contact list of regular customers with a need for your niche.</p>
<p>This is a window into the frontline of the new Software as a Service, &#8220;Pay As You Go&#8221; enabled cottage industry. Appearing to all intents as a large professional operation, leveraging the very same tools for operation, but provisioned at a smaller scale.</p>
<p>Unhindered by technological barriers to entry, cottage industries are finding a new resurgence on a level playing field with their much larger competitors. These new kids on the industrial block are unconcerned about size and don&#8217;t need internal economies of scale to be profitable.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kloudsolutions.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kloudsolutions.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kloudsolutions.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.kloud.com.au&#038;blog=29186770&#038;post=50&#038;subd=kloudsolutions&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.kloud.com.au/2011/12/06/cloud-revolution-the-new-cottage-industry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b1f2ba48e5ce1c360209361806e163?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">petermreid</media:title>
		</media:content>
	</item>
	</channel>
</rss>
