Pages Menu

Posted by on Dec 4, 2012 in Skype for Business® (Lync®), Videos | 2 comments

Walkthrough: Creating a UCMA Application & Application Endpoint

If you’re creating UCMA Applications, you’ll need to create both applications and application endpoints.

I’m going to assume that you already have a configured UCMA application server, and that you (or someone) has created an Application Pool.

Step 1 – Find the Pool

When you create an application, you need to tell Lync which application pool you want to run it on. If you don’t know which application pool to use, you can use the following PowerShell command from the Lync Server Management Shell:


Just running that without any other parameters will give you a list of pools. You need to make a note of the Fully Qualified Domain Name (PoolFqdn) at the bottom of the readout:

The Lync Server Management Shell is a PowerShell instance with all the Lync-specific modules loaded. If you don’t already have a shortcut for it on your desktop, you can make one (you’ll need it) by finding it on your application server via Start > Microsoft Lync Server > Lync Server Management Shell. The icon is the same as the PowerShell icon.

Step 2- Create the Application

To actually create the application, use the New-CsTrustedApplication command. There are quite a few optional parameters you can pass, but if you’re unsure just issue the command and PowerShell will prompt you for the required parameters. These are the ApplicationID, a unique key used to identify your application, the port through which the application will be accessed, and the Fully Qualified Domain Name (FQDN).

You’ll get a warning in yellow about needing to run Enable-CsTopology, so go ahead and run this now.

Make sure you open up the port you specify for this application, otherwise your application will fail with cryptic errors and you won’t know why!

Step 3 – Create Application Endpoint(s)

The endpoints are the actual SIP addresses by which users will interact with your application. You can have more than one, but you need to have at least one for your application to be useful. To create the endpoints you need to know the PoolFqdn and the ApplicationID of the application you just created.

If you just issue the New-CsTrustedApplicationEndpoint command you will only get prompted for the required parameters. The SIP Address and Display Name aren’t required parameters and you won’t get a chance to put them in (Lync will create a random string sip address for you!). Being able to choose the SIP address of the endpoint is pretty important, as is the display name, so let’s pass them as optional parameters when we call New-CsTrustedApplicationEndpoint:

You can test that everything has been added correctly, or just review your applications and endpoints, using the Get-CSTrustedApplication and Get-CSTrustedApplicationEndpoint commands.

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.


  1. Thanks for this article, always an easy watch or read. 🙂

    I’ve got a bit of an issue in general which would be great if you could help clear up as I’ve found the documentation on MSDN slightly confusing…

    Whilst everything is there, it seems to be a bit hazy around the area of the trusted application pool itself.

    I’d thought that you would have a single trusted application pool capable of running many trusted applications, each application would need (at least one) trusted computer (trusted by the app pool) to run from.

    Trusted computers themselves need a few things in order to support the recommended auto-provisioning model (central management store etc.).

    However, it seems that when you first create the trusted application pool you have to know ahead of time the FQDN of another computer which will run apps and therefore be a trusted computer, as if you don’t enter it during creation you’re not allowed to do it later.

    This seems a bit backwards (although I’m sure there’s a reason) as it’s pushing more and more responsibility onto the app server that runs the app to be ready beforehand and have all these prereqs installed to handle replication.

    The documentation also seems to suggest that every app you provision needs an app pool, takes you through the steps but doesn’t clarify if it should be using an existing pool or a new one.

    In creating apps I’m trying to maintain as much separation between the code/app and infrastructure setup as possible, so clarity would be greatly appreciated if you can offer any.


  2. Hi Tom,

    I am pretty new at Lync development. I am trying to build a simple UCMA service to pull the status of a database of Lync users. I am testing my connectivity using a sample code from the UCMA 4.0 SKD “SubscribePresenceView” and it is returning “Unable to perform authentication of credentials.”.
    One thing that I have noticed is that, using the same credential, I am able to connect a 2013 Lync client in auto configuration mode, but not in manual mode. Even when the auto configuration connects to the exact same Lync server address than I am attempting in manual configuration.
    My question is, is there a way to create a UCMA app that uses auto configuration?

    I would greatly appreciate your help.



  1. Walkthrough: Creating a UCMA Application & Application Endpoint thoughtstuff | Tom Morgan | Lync News - [...] a UCMA Application & Application Endpoint thoughtstuff | Tom Morganthoughtstuff | Tom Morgan   [...]
  2. Creating UCMA Applications with a UserApplication instance. Example: sending IMs. | thoughtstuff | Tom Morgan - [...] have a username and password. ApplicationEndpoints have to be pre-registered with the Lync Server like this and are generally…
  3. UCMA Development: Choosing between Application and User Endpoints. | thoughtstuff | Tom Morgan - […] Dealing with the first part (sorting out the Application Server) is outside the scope of this blog, and is…
  4. Building a Speech Transcription and Translation Bot in Skype for Business using UCMA and Microsoft Translator API | The thoughtstuff Blog - […] in x64. Then you’ll need to create a UCMA trusted application and application endpoint (see this blog post for…

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.