round pegs in square holes - Simon Booth's blog about custom apps for unified communications.
All posts and opinions are my own, and do not represent my employer.
Disclaimer : this is part of my Lab install series of posts, it works for me in my lab with a small number of users but is neither a recommended or supported topology (AFAIK). I have Lync standard edition server with mediation on the front end running in media bypass mode, Lync Edge server and Exchange server 2010 running on a single server with all roles. I have decided to use IIS ARR + URL Rewrite as my reverse proxy for Exchange OWA, web services, etc and Lync reach client and web services all on my Lync Edge server. I did this because its already internet facing (and therefore ‘at risk’) and I figured its better to keep machines like this at a minimum. It is also the only machine not domain joined and has very few permissions on my network. Of course I could have setup ISA / TMG / whatever, but I want to focus on building software, not maintaining infrastructure.
Add a binding for your certificate (As this is on my edge server and I use the same certificate for both SIP and HTTPS I already have it installed on the machine)
Setup server farms for Exchange and Lync
(select advanced settings, choose ports 8080, 4443 – which point to the external bindings on the front end server))
(Choose Yes if you see this)
(double click routing rules)
(ensure URL rewrite is checked and optionally SSL offloading – depending on your bindings on the target server you may need this checked)
Repeat from step 4 for Exchange
Go to the URL rewrite configuration, either by clicking the link on the right pane on the routing rules screen in step 5 or on the main URL Rewrite icon under IIS when on the Features page for your server.
Modify the Lync rule as follows: Choose Using Regular Expressions and enter this expression :
The certificate must be issued by an approved public CA that supports subject alternative name. For details, see Microsoft Knowledge Base article 929395, "Unified Communications Certificate Partners for Exchange Server and for Communications Server," at http://go.microsoft.com/fwlink/?LinkId=202834.
This is a short list of official certificate providers :
Now in reality (and if you don’t need to be in a fully supported configuration) you just need a certificate that is issued back to a root certificate that you know everyone has. So assuming you might be federating with partners using OCS, OCS R2 or Lync Server 2010 we can assume their edge is running Windows 2003, Windows 2003 R2, Windows 2008 or Windows 2008 R2. So to narrow down your requirements you want a certificate that we know is installed by default on those platforms. In theory on Windows 2008 the root certificates are supposed to auto download on demand – however it seems OCS R2 doesn’t demand them, so they don’t get downloaded. Ok… so this is now quite a short (and getting shorter) list. So if you encounter weirdness that you can federate with some partners but not others then chances are that their certificate is issued by a root cert not installed in your system.
So as a certificate buyer, you really should buy a cert from an officially approved vendor. That said, after a bad experience with federation using GoDaddy certs, in my lab, I use (in an unsupported manner – as I use a single CN and don’t list any SAN’s) a RapidSSL cert from ServerTastic for $13.00 per year for a single domain cert – conveniently its issued from a root cert by GeoTrust / Equifax, which is far more prevalent than GoDaddy. I have had no issues since using this cert.
So assuming that the easy way ( - the easy way is to use UCMA 3.0, see the ‘Microsoft UCMA 3.0\SDK\Core\Sample Applications\QuickStarts\PublishPresence’ sample in the SDK) is not for you for some reason – such as your implementing your own application using a 3rd party SIP stack on a non-windows platform and you don’t want to build a simple web service that does the heavy lifting for you on a windows box..
To get started you should read the dry but informative protocol spec, [MS-PRES]. And you should also review presence basics (that article is OCS, so doesn’t include the new Lync bits like location and pictures, but it’s a good overview). You will also find the Enhanced Presence Schema download handy – this consists of all the schema mentioned in the protocol specs so you can use a tool to create strongly typed objects in your language of choice as well as a help file (for windows) which is a little more digestible than [MS-PRES].
So I just noticed that Lync Server has J# as a pre-req – this fills me with yucky feelings, Am I the only one who feels uncomfortable with a pre-req that doesn’t support the OS we are required to install to and is due to expire support long before the product itself?
I quote a few nuggets of nastiness:
From the redist download page :
Supported Operating Systems:Windows Server 2003, Enterprise x64 Edition;Windows Server 2003, Standard x64 Edition;Windows Vista Business 64-bit edition;Windows Vista Enterprise 64-bit edition;Windows Vista Home Basic 64-bit edition;Windows Vista Home Premium 64-bit edition;Windows Vista Ultimate 64-bit edition;Windows XP Professional x64 Edition
From the J# Developer center homepage :“Product Announcement - January 10, 2007: … Visual J# 2.0 Redistributable Second Edition is targeted for release in the second quarter of 2007, with support continuing through to 2017 (5 years mainstream and 5 years extended support) on EN-US locales.”
One of the most exciting things I saw in the Lync launch last week which really got me excited was the ProtoSphere virtual world offering from Proton Media
This is a virtual reality world application that has been in use in the life sciences industry for collaborating on scientific models for quite a while. Just recently they integrated with Microsoft Lync (for outbound audio dialing) and the potential here is amazing.
My long term vision for UC is where remote workers (which I have been for most of my career, and it seems every major corporation is trending towards) are afforded the same level of interaction and collaboration as their office bound counterparts. Within the physical space, Telepresence rooms like the Polycom OTX provide a truly immersive collaboration experience for participants in the rooms, but despite interoperability with Lync – the experience for the remote participants is still a second class citizen, and far from immersive. http://www.polycom.com/products/telepresence_video/telepresence_solutions/immersive_telepresence/otx300.html?vid=Video_OTX300_Sexy
The next logical step of all this is to combine immersive Telpresence in the real world with a remote virtual experience – eventually of course everyone will work from home and the physical spaces will go away.
Another embodiment is for the remote worker outside fixed meetings- Microsoft Research has this – see Scott Hanselmans ‘virtual persona trolley’ / Social Proxy :