UCWA API in Lync Server 2013 Opens Ability to Have Lync Functionality in Any Device or Application Without Lync Client Installed

UCWAIt has not been trumpeted, but the new UC Web API, or UCWA, in Microsoft Lync Server 2013 opens a whole new field of integration possibilities. Lync Server 2013 UCWA brings Lync functionality to PC applications, web applications and embedded devices WITHOUT Microsoft Lync client being needed and without Server side component either.

In Lync 2010, if you wanted to Lync “enable” your applications or embedded devices you had one of three options:

  • Interface with the Lync 2010 SDK (Con: required Lync 2010 client be present)
  • use UCMA Server Side API (Con: required server install, more advanced knowledge)
  • Write your own SIP stack like snom, Polycom and Damaka have done (Con: basically no normal programmer will have resources to do this)

UCWA makes customizations possible on any platform, device or application that can talk http…and no browser plugin or ActiveX or Lync client is required with UCWA.

UCWA gives developers access to these Lync 2013 features at a user level:

  • Presence
  • Group Membership
  • Contacts
  • Privacy Relationships
  • Scheduled Conferences: read/write 
  • Search
  • Instant Messaging

What are some ideas of things that will now become easily possible with Lync 2013 and UCWA?

  • Write your own Linux Lync Client (or any other exotic OS for that matter)
  • Web Based Lync Client
  • Web Chat
  • Standard SIP deskphone makers could Lync Presence enable their phone with ease
  • Standard SIP deskphone/endpoint makers have a dramatically simpler path to creating endpoint firmware: just have hardware that runs a browser that supports UCWA (media support on roadmap AFTER RTM)
  • BusyLight on Steroids: Want your busy light in another room? Or another location altogether?
  • Add Instant Message or Presence capabilities to any embedded device that can do HTTP

What are some things UCWA cannot do

  • No Audio, Video or other Real Time Media (at this time, see below)
  • Only lets you connect at a user level (for example: if you can to read or set all contacts presence you will use UCMA API’s)

Below is a great introductory video on UCWA by George Durzi.

[UPDATED 2/13/2013] But What About Audio and Video?

According to the below Channel 9 video, UCWA is on the RoadMap to get voice/video/screen sharing capability over IP after Lync 2013 goes RTM.

(see 45seconds)

Windows Media Player_2012-12-24_14-25-39

My question has been: how will Microsoft achieve voice/video in the browser with no plug-in? According to the MSDN blog article introducing Micosoft’s first no-plugin-in CU-RTC-WEB prototype between Skype and Microsoft Lync , Adalberto Foresti notes that CU-RTC-WEB or even RTC-Web could be used:

“UCWA can be layered on the existing draft WebRTC API, however it would interoperate more easily with WebRTC implementations if the standard adopted would follow a cleaner CU-RTC-Web proposal.


Some more Excellent video about UCMA or Lync 2013 API’s:

UCWA Forum:

More Lync 2013 SDK/API stuff:

Microsoft CU-RTC Web Prototype:

Step by Step Installing Lync Server 2013 Persistent Chat Collocated on Standard Edition Front End - Part 3

We are on a journey installing the various Lync Server 2013 roles. Today we will install the Persistent Chat role collocated on our Lync Server 2013 Standard Edition Front End! I would like to give Elan Shudnow credit as I read over his excellent Persistent Chat with Enterprise Pool articles before launching on installing this collocated edition.


  • Presumes a Lync Server 2013 Std. FE called FE01.lab.local (see)
  • Since we are installing Chat on an existing Std. Front End, most things are taken care of already
  • Install full SQL (SQL 2008 R2 or SQL 2012) as a new instance called CHAT. You can follow the instructions here.

Next will define a Persistent Chat pool in our topology. Let’s Open Topology Builder

add chat pool

Define the new Chat Pool. Use the FQDN of our trusty Front End: FE01.lab.local and check Single computer pool.

define pool

Next. Now give this Chat pool a name. (just anything is fine)

name of chat pool

Next. Click new to define a new SQL Server Store. We will use the SQL instance we installed for our chat role, so SQL Server FQDN = FE01.lab.local and Named Instance = CHAT

sql store

Our next item is defining the file store. Since this is a lab we will just use the existing Front End share we already setup for the FE which is \\FE01.lab.local\share. Click Finish.


We are done with the topology and you are given a chance to review it—everything looks great!

finished topology

Let’s publish our topology by going Action | Topology | Publish…


Click Next.


Watch the publish Wizard complete. when done click Finish.


The next thing we will do is open the Lync Deployement Wizard and Update the Lync Server System by clicking Install or Upgrade Lync Server System. (this will install the chat services and install the SQL database)

install or update lync server system

Click the Run button with Step 2.


Click Next.


Watch as install happens and click Finish when done.


Now we are ready to start our newly installed Chat services. Click Run.


We can checkup that Lync Server Persistent Chat is successfully running…sure enough, great!

is running

Next we need to login to the Lync Server Control Panel to configure our shiny new Persistent Chat server. Click on Persistent Chat | Persistent Chat Policy and check Enable Persistent Chat and click Commit.


Next we will add a Category. Click Category and New.

chat category

Next we need to add our Administrator user (user we are using to run Lync Powershell further down) to the “RTC Local Administrators” group. This is a local group on the Lync Front End Server, so to do this Open the “Computer Management” and open “Local Users and Groups”.

add user to RTC local admins

After this, log out and back into Windows get the new rights.

Next we will add a new chat room. Let’s drop into Lync Powershell and run

New-CsPersistentChatRoom -Name “XXX” -Category “FE01.lab.local\rd

Next we will add a user to this new Chat room by running the below Powershell:

add member to chatroom

After this we can login to our Lync client and use the Chat!

lync client

Continue your lab with more articles in this Lync Server 2013 Step by Step Series:

Step by Step Installing Lync Server 2013 Monitoring Role Collocated on Standard Edition Front End - Part 2

In Part 1 of Installing Lync Server 2013 Standard Edition we go our lab Lync 2013 server up and running. In this next step by step we will install the Monitoring role using SQL 2008. In Lync Server 2010 a Monitoring required an additional server. In Lync Server 2013 this has changed and Monitoring will be on your Front End.

This article presumes:

  • Server is Windows Server 2012
  • using SQL Server 2008
  • You have Lync Server 2013 Preview installed Using This Blog

So, to get started, lets prepare our Lync Server Front End (Windows Server 2012) by installing Queuing (you will/may not need this in RTM Lync Server). Do this by opening the “Add Roles and Features Wizard”


Monitoring role requires installing Full SQL 2008R2 or SQL 2012. (SQL EXPRESS will not cut it)

put SQL 2008 CD in place and run Setup.exe.


ok | next | next | next…


Feature Selection. Below are the SQL features we need:

  • Database Engine Services
  • Reporting Services
  • SQL Server Books Online
  • Management Tools – Basic
  • Management Tools – Complete


Instance Configuration:

Check Named Instance.


monitor named

Server Configuration:

NOTE:SQL should run as system account

NOTE: No password required.


Database Engine Configuration:


Reporting Services Configuration:

  • Native Mode
  • Now click Install (15minute install/wait time)

When done test SQL Reporting Services by running “Reporting Services Configuration Manager” (from Start menu)


Sure enough, it running!


Associate a Monitoring Store with a Front End Pool and Publish Topology

Open Lync topology builder. Drill down to your Standard Edition front (as shown below) then right click and Edit Properties.

edit topology to include monitoring role

Next we want to add a Monitoring role to this topology by going to General, scrolling down to and selecting “Monitoring (CDR and QoE metrics)” and then click New. We will type input our Front End as the FQDN (as shown), select “Named Instance” and give it the name “MONITOR” (we will later install a SQL instance with this name) and click OK, Ok.

config monitor in topology

Action | Topology | Publish.

publish monitoring topology

Next we will goto Start and open the Lync Server Management Shell (Powershell).

lync server managment shell

Run the below command:

Install-CsDatabase –LocalDatabases

Deploy Monitoring Reports

Run the Lync Deployment Wizard again and click “Deploy Monitor Reports”


Specify credentials to access monitor SQL database. (for this lab I used domain Administrator)


Now reports are being deployed…


Once the reports are deployed you will be presented with URL for reports. You can copy and paste this into Internet Explorer. (grin)


When you click on the reports URL you be presented with:


You have successfully installed Lync Monitoring role!

Note: After rebooting this server, SQL Server Reporting Services (MONITOR) did not seem to auto start and need to go into the SRS Config and start it.

Continue your lab with more articles in this Lync Server 2013 Step by Step Series:

Lync Server 2013: Microsoft Moves Community Input Into Real Features

feedback-whiteYou may or may not be familiar with the Microsoft Lync community enabled feature suggestion forum over at This morning I was glad to be able to move a half dozen feature suggestions to “In Progress” (perhaps that is not strong enough, but to convey that Lync 2013 is not here for production environments yet)

While this forum is not an official Microsoft forum at all, it shows that Microsoft is definitely listening to community feedback and improving Microsoft Lync in very substantial ways.

If you would like to see some of the suggestions that are features in Lync 2013 click below:

Or look at my Lync Server 2013 Preview New Features List:

Step by Step Installing Lync Server 2013 Standard Edition Front End on Windows 2012 – Part 1

NOTE: Remember Lync Server 2013 Preview is not meant for live/production environments.

Below are the step by step instructions to install Lync Server 2013 Standard Edition Front End on Windows Server 2012. Here is an outline of what we will do:

  1. Prepare Servers
  2. Install Lync Server 2013
  3. Prepare Active Directory
  4. Prepare First Server
  5. Configure DNS
  6. Build Topology
  7. Install Lync Server System
  8. Add & Enable AD Users
  9. Login to Lync 2013

Prepare Environment

Some prerequisites for you Lync system:

  • You will need 1 AD Server O/S and 1 Lync Server O/S
    • Lync requires 64bit O/S
  • This guide is Using Windows Server 2012 64bit
    • but Windows Server 2008 R2 SP1 should work fine as well.
  • Make Sure you have the below role running on your AD Server
    • AD-DS (Directory Services)
    • DNS
    • AD-CS (Certificate Authority)


tip1 Tip: I suggest 2GB and 40GB hard drive for AD server and 4GB and 80GB for Lync Front End server for some quick guidance for a lab system.


Prepare Your Front End Server

  • Server Requirements
    • Front End server must be joined to domain
    • FE must have UI installed
  • Install Silverlight (will save time later)
  • Front End Must have these Features
    • Roles
      • Web Server (IIS)
    • Features
      • Message Queuing | Message Queuing Services
      • Remote Server Administration Tools | Role Administration Tools | AD DS and AD LDS Tools
      • User Interfaces and Infrastructure | Desktop Experience  
      • Windows Identity Foundation 3.5
      • .NET Framework 3.5 Features
        • .NET Framework 3.5
        • HTTP Activation (Important!)
        • Non-HTTP Activation
      • .NET Framework 4.5 (all options)
    • Roles
      • Web Server (IIS)
        • Role Services
          • Common Http Features Installed
            • Static
            • Default doc
            • Https errors
          • Health and Diagnostics
            • Http logging
            • Logging Tools
            • Tracing
          • Performance
            • Static  Content Compression
            • Dynamics Content Compression
          • Security
            • Request Filtering
            • Client Cert Mapping Authentication
            • Windows Authentication
          • Management Tools
            • IIS Mgt Console
            • IIS mgt Scripts and Tools
          • Application Development
              • ASP.NET 3.5
              • ASP.NET 4.5
              • .NET extensibility 3.5
              • .NET extensibility 4.5
              • ISAPI extensions
              • ISAPI Filters

Install using Windows Server 2012 “Add Roles and Features Wizard”


Reboot Front End and login as Domain Administrator.

tip1 Tip: You can also install these prerequisites using Powershell scripts:


Install Lync Server 2013

Insert CD and Run Setup.exe. You will be prompted to install Visual C++, click “Yes” (below)


You can accept default location and click Install (below)


Accept Terms and click “Ok” to install.

license agreement

When install is complete (3minute wait time) you will have below apps on your server and the Lync Server Deployment Wizard (below) will appear.

apps after initial install

  • Lync Server Manager
  • Lync Server Deployment Wizard
  • Lync Server Logging (Note: Logging tool is missing from Lync 2013 Preview)


Caution Note: Microsoft Lync Server 2013 has a new centralized logging mechanism. This is the reason for the logging tool not being installed with Lync Server 2013 Preview. Jens Trier Rassmussen has a complete article on this subject at Also, Randy Wintle has written a Powershell UI for this new central logging at



Prepare Active Directory

Click “Prepare Active Directory”. (As noted in prerequisites, you will need AD DS and AD LDS Tools Feature installed on your Front End to complete this step.)

deploy wizard prepare ad

  • Step 1: Prepare Schema. (takes 1minute, and you may need to wait a couple minutes before this and step 2) 
  • Step 2: Verify Replication of Schema is not necessary if this is a Lab and there is only one AD server—you can safely keep moving to step 3.
  • Step 3: Prepare Forest | Next | select Local Domain  | Next (5sec)
  • Step 4: just keep moving
  • Step 5: Prepare Domain | Next (5sec)
  • Step 6: just keep moving
  • Step 7 below

prepare ad


Add Lync Administrative User To Admin Group

Add the Administrator to CSAdministrator  group (shownbelow)

  • CSAdministrator

NOTE: the user running setup needs to be Administrator of the Lync FE local machine.


Prepare First Standard Edition Server

Now lets go back to the Deployment Wizard and click “Prepare first Standard Edition server”.


You will see the below “Prepare single Standard Edition Server” wizard window and you can just click “Next”. During this process the below will be installed:

  • SQL Server 2008 Express Edition will be installed
  • RTC databases will be created and populated
  • Lync Server installation files will be put in place
  • Etc

(Note: as noted in prereqs, Windows Identity Foundation 3.5 must be installed for this process to complete successfully)


(Time: on new AD with no users, 6-10 minutes to Prepare first Server)

Configure DNS Records

Lets open DNS Manager on AD server. Right click on your domain (in our case lab.local) under Forward Lookup Zones, click “Other New Records…” and scroll down to “Service Location (SRV)” and click Create Record.

dns step one

Will will add a DNS SRV record pointing at our Lync FE Server FQDN (FE01.lab.local in our case)

  • Service = _sipinternaltls
  • Protocol = _tcp
  • Port number = 5061
  • Host Offering the service =  fqdn of Lync Std. FE server or Pool. (In our case FE01.lab.local)


Note: a DNS A record should already be pointing to Lync Front End Server (FE01.lab.local)

We will also create 3 DNS A Records. Right click, “New Host (A or AAAA)…” Add a DNS A record for

  • meet
  • dialin
  • admin

as shown below


Repeat this for meet and admin DNS A Records.

Now lets go back to the Deployment Wizard and click “Install Administrative Tools”.

Deployment Wizard - Install Admin Tools

This takes just a second to run.

Build and Publish Topology

Next we will go to Start and run “Lync Server Topology Builder” (below).


Select New Topology (as shown below) and then give the topology some name (just any old name like “mylab.tbxml”)


Now we will be define this topology.

Primary SIP domain: lab.local | Next


  • Specify additional supported domains: {nothing/none} | Next

create new topology-specify additional supported domains

  • Define the First site
    • Name: LabSite1
    • Description: Lab Site (not important, just something)

create new topology-define the first site

  • Specify site details
    • City
    • State
    • Country

Click “Finish”


Next we will define a new Front End pool. click Next

define new pool

Define Front End Pool

  • FQDN: FE01.lab.local 
    • Note: if this is a Standard Edition, this FQDN will be exactly the same FQDN as your FE server  (FE01.lab.local in our case)
  • Standard Edition Server


Next we will select Features for this Front End Pool

Check these features:

  • Conferencing
  • Enterprise Voice
  • CAC


tip1 Tip: What works best for me is to NOT define ARCHIIVE and MONITOR servers till you are ready to actually install them. I suggest to NOT select Archiving and Monitoring now. We will do that after we have actually installed the SQL server and are ready to define those roles in topology builder.

define new front end pool select features


  • Select Collocated server roles
    • collocate Mediation Server: check

collocated roles

  • Associate server roles with this front End pool
    • Enable an Edge pool…: unchecked

Define SQL store

define new pool-define the SQL Server store

Define the file store: default, next (NOTE: You will need to manually create this network share and give rights to everyone. This wizard will not automatically create it for you)

file share

Let create the Lync file store share right now so we don’t forget.  You can create this folder where ever you want but for this lab we will create a folder called “Share” in C:\ of the Lync Server. Next go into the properties of the folder and give full access permissions to these groups:

  • RTCHS Universal Services
  • RTC Component Universal Services
  • RTC Universal Server Admins
  • RTC Universal Config Replicator

Click on the “Sharing” tab, click on “Share”.


In the “File Sharing” Wizard click the dropdown beside “Add” and select “Find People…” and in “Enter the object names to select” type RTC. Now press the CTRL key and select the above groups. Next you will need to change each group to “Read/Write” and click “Share” to finish the sharing Wizard.


Specify the web services URL: Since this is a lab we can let the External Base URL the default.

define new pool-specify the web services URL

Specify where your Office Web App server is. (you probably don’t have one yet, just point to OWA.lab.local)

define owa

Now you are finished with the wizard.


Edit properties of topology

Right click on “Lync Server 2013 (Preview) and then “Edit Properties”


Scroll down to “Administrative access URL” (as shown below) and define the admin url as https://admin.lab.local and select Front End Server (FE01.lab.local in our lab)



Publish Topology

Action | Publish | Next | Next


When finished you can “Click Here to open to-do list”. Since we are really good Winking smile we’ve already done these items. (if you took a shortcut, backup to see detailed step above)


Install Lync Server System

Deployment Wizard | Install or Update Lync Server System

deployment-wizard-instll or update lync server system

Now we will install some Lync Server System components, put Certs in place and Start Services:

  1. Step1 Install RtcLocal database
  2. Step2 Install Speechfiles, etc.
  3. Setup Certs
  4. Start Lync Services

install or update lync server system


  • Step1 Install Local Configuration Store (will install RtcLocal)
    • Run
    • Retrieve Directly from the CMS…
    • Next (5 minutes on new lab system)
  • Step2 Setup Lync Server components (will install Speechfiles, etc)
    • Run |
    • Next (15 minutes on new lab systems)
    • (NOTE: if you designated the archive/monitoring server, this will fail because SQL for those stores is not there yet.)
  • Step3 Request Certs (Note: if this is a lab setup, and you have parallel installed AD and Lync FE OS’s, remember the FE needs to have “gpudate /force” run or be rebooted after you stand up the AD CA so the CA is authoritative)

Run, select “Default Certificate” then click “Request”

cert wizard

Certificate Request: Next

Delayed or Immediate Request? Send the request immediately to an online cert authority

Choose a Certificate Authority (CA): Select a CA from the list

select a ca

Certification Authority Account: Next

Specify Alternative Certificate Template: Next

Name and Security Settings: some name

name and security settings

Organization Information: fill in Org and Org Unit

Geographical Information: fill in

Subject Name/Subject Alternative Names: Next

SIP Domain Setting on SAN: Select SIP Domain (example: lab.local) | Next


Configure Additional SAN: Next

Certificate Request Summary: Next

Executing Commands: Completed: Next

Online Certificate Request Status: Finish

Certificate Assignment: Next

Certificate Assignment Summary: Next

Executing Commands: Finish

Select “Default certificate” and click Assign certs


Now repeat the Certificate Wizard steps for the OAuthTokenIsuer.

Step 4: Start Services

After services are started you can open the Services to verify all the Lync Services are running.

lync services running

Goto Start | run Lync Control Panel


you will be asked to type in Administrator credentials. If this is new server you will also be asked to install Silverlight.



Add and Enable AD Users

Next, we will move to our AD server and add several users to Active Directory (I suggest for your first test users to NOT use the Administrator, but 3 other users). In our case I added:

Now back to Lync Server Control Panel. Click on User | Enable Users. Now click the “Add” button and Add the 3 users.

enable ad users

Click “Enable” and if you get no errors, you should have 3 Lync users ready to login. Let’s open Lync 2013 and login!


Wow you have installed Lync Server 2013!

Please note some pieces in Lync that you have not configured yet:

  • Monitor and Archiving Roles
  • Persistent Chat Server
  • Sharing PowerPoint requires a Office Web Apps Server deployed

Continue your lab with more articles in this Lync Server 2013 Step by Step Series:

Special Thanks to Community Contributors to this article: