asp.netconfigurationskype-for-businessucma

How to point UCMA code to a dedicated Skype for Business ID


I am new to UCMA Bot development. I started my work with the sample application given in UCMA 5.0 SDK (named BuildaBot). I am not able to set up a application endpoint. I have created a dedicated SkypeforBusiness ID for this Bot.This is created within my organization cloud. I have deployed the code in our on-premises Server. How will I make my code integrated for this Skype ID.

I found in other QuickSamples in UCMA 5.0 SDK, they were using Userendpoint. I am able to use Skype ID (the one for Bot) here in the App.config and application is running in local. In production scenarios, where the Bot is targetted for many users, is it okay to use Userendpoint?


Solution

  • First you need to understand the types of applications that you can write with UCMA:

    1. Trusted Server Applications
    2. Client Applications

    Trusted Server Applications

    This type of UCMA application is the most powerful and you can use either ApplicationEndpoints or UserEndpoints (via impersonation). They are constrained to only run on specific pre-setup machines (application pools). So setup to run a trusted server application is a lot higher and more difficult than a client application. A trusted server application does not require any usernames or passwords, they are setup using digital certificates (another setup issue that can happen is sorting out the correct certificates). This means it's very easy to use UserEndpoints to impersonate a user once running.

    Client Applications

    UCMA client applications can only use UserEndpoint's. For a client application to use the user endpoint it must know the username/password details for the user they wish to use. They are also not as "trusted" as a Trusted Server Application UserEndpoint is (although you may not ever need the extra privileges anyway).

    Both applications types can do that same sorts of things, so it mainly comes down to running requirements.

    Next you need to understand what the two types of endpoints are:

    ApplicationEndpoint

    An application endpoint can only be used by a Trusted Server Application. There are also no CAL requirement for an application endpoint (Client Access License). The no need for a CAL may be the main reason for going this route.

    UserEndpoint

    A user endpoint is a standard Lync user setup via AD integration, so there is normally a UserEndpoint per AD user. UserEndpoint's require some sort of CAL to be assigned. Either the "free" CAL license or the different levels of paid CAL licenses depending on the features required.

    Both endpoint types are just SIP endpoints that you can do the same things with. So you can write a bot using either one. My guess would be a Trusted Application using ApplicationEndpoint's just because you are not required to pay CAL costs on application endpoints and you can create/use as many as you need. Also creating application endpoints (I find) is easier than having to create AD users as well.