This guide will go through the steps to setup Lync Remote Call Control (RCC) with Cisco CallManager Express (CME).  I’ve used this with OCS, Lync 2010 and Lync 2013.  CME must be version 8.0 or higher.

CME

On the router enter the commands that are not already present:

voice service voip
  allow-connections sip to sip
  no supplementary-service sip moved-temporarily
  no supplementary-service sip refer
  no cti shutdown
  cti csta mode basic

And then on the ephone-dns that you are remote call controlling add the following:

cti watch

 

LYNC

Step 1

On Lync we first need to create a static route to the CME.  First let’s check existing static routing config:

Get-CsStaticRoutingConfiguration

 OPTIONAL – If you want to view the details that Get-CsStaticRoutingConfiguration won’t show, use this two-step process:

  1. $stroute = Get-CsStaticRoutingConfiguration 
  2. $stroute.Route

If there’s nothing that conflicts then create the static route with this two-step process:

  1. $tcpRoute = New-CsStaticRoute -TCPRoute -Destination “CME IP OR FQDN” -Port 5060 -MatchUri “cme.domain.com”
  2. Set-CsStaticRoutingConfiguration -Route @{Add=$tcpRoute}

Step 2

Next create an application pool.  First check the existing application pools:

Get-CSTrustedApplicationPool

If all looks well, create the pool:

New-CsTrustedApplicationpool -Identity “CME IP OR FQDN” -Registrar “LYNC FQDN” -Site “LYNC SITE NAME”

Step 3

Next configure the application.  First check the existing applications to make sure there’s not an overlap:

Get-CSTrustedApplication

Then create the application:

New-CsTrustedApplication -ApplicationID RCC -TrustedApplicationPoolFqdn “CME IP OR FQDN” -Port 5060 -EnableTcp

You might receive a warning that UCMA applications only support MTLS.  Choose “Yes”

Step 4

Check to see which TCP port Lync is listening on.  In Lync 2013 the default is 5061 but CME needs this to be 5060.

Get-CsService -Registrar

If it’s not using 5060 then change it:

Set-CsRegistrar “registrar:LYNC FQDN” -SipServerTcpPort 5060

Step 5

Lastly in the Lync control panel update the user account telephony option to “Remote Call Control” and then enter the following parameters:

Line URI: tel:EXTENSION-NUMBER;phone-context=dialstring
Line Server URI: sip:EXTENSION-NUMBER@CME_IP_OR_FQDN

As an example:
tel:200;phone-context=dialstring
sip:200@cme.domain.com

Now close the Lync client and reopen.  You should now be able to initiate a phone call from Lync and you should see your Lync status change when you’re on the phone.