24

There seems to be a lot of different SDKs / APIs around Skype for Business. I'm having a tough time deciphering which one would be appropriate for a server side Bot like application that could communicate domain specific information to the users within the organization. For example we'd like to be able to deliver task(s) via messages and perform presence based task assignment. This seems to be fairly low hanging fruit but where's the REST endpoints and documentation to make this happen. Assuming for example I wanted to create a little console application that could facilitate this what API would you recommend?

Mafii
  • 7,227
  • 1
  • 35
  • 55
Mike
  • 780
  • 1
  • 5
  • 26

2 Answers2

25

Here are the main differences between UCMA and UCWA:

  • UCMA is a .NET SDK that provides rich control over a Skype for Business server deployment. It enables applications to automatically route calls and messages, provide automatic responses (IVR or chat bots), record conversations etc. It can be used in a number of scenarios such as a 'contact center' application that distributes incoming calls to an available agent with the right skillset. UCMA applications are managed by running them on application servers that are activated as part of the Skype for Business server deployment. As such, UCMA is not available for Skype for Business Online (Office 365).

  • UCWA is a RESTful Web API that acts on behalf of a single Skype for Business user. It enables applications to send and receive messages for that user, read presence for their contacts, etc. Typically it is used for interactive "line of business" applications that want to embed Skype for Business messaging/presence. It is also possible to create a 'technical account', that doesn't correspond to a real person, and use UCWA in 'headless' server applications but this approach currently has authentication and scalability limitations. UCWA applications have no deployment constraints since UCWA is a regular RESTful Web API. It is available for both Skype for Business Server (get started) and for Skype for Business Online (get started). The latter has slightly fewer capabilities right now: - for example, messages can be sent but not received - though this should change soon.

  • What about the desktop APIs that are mentioned here (do you know how they're different from UCMA ?) : https://dev.office.com/skype/sdks – Arctic Vowel May 14 '16 at 03:03
  • 2
    The desktop APIs allow you to programmatically control the Skype for Business (Lync) client that is already installed on a user's PC. For example, you can access messages received on that client, and drive the client to send a new message. You can even hide the client's own UI entirely, and replace it with your own. These scenarios are similar to those for UCWA, but of course UCWA can be used anywhere, not just on a PC with SfB installed. – Richard Taylor - Microsoft May 16 '16 at 19:03
  • 1
    [Completing the list of APIs and SDKs on the page you linked, you can think of the Web SDK and App SDK as wrappers around UCWA for web/JavaScript and iOS/Android respectively. Though there is some variation in the precise feature set that each currently supports, which should even out over time.] – Richard Taylor - Microsoft May 16 '16 at 19:04
  • 1
    @RichardTaylor-Microsoft could you please be more specific with this? |and use UCWA in 'headless' server applications but this approach currently has authentication and scalability limitations| I need to create a server proxy from Skype to Slack and vice versa. My operators will use slack as a chat-client and skype will be clientless facade. Could I use a Skype for Business online account to do this? – gleb.kudr Jun 28 '16 at 11:37
  • 1
    My scenario is, I need to create meeting link from the server end and use that link to join the meeting anonymously using android sdk. Should I use UCMA or UCWA for full control over meeting. It should perform actions like - create meeting url like (https://meet.example.in/user/KLJLJKJ) - edit guests - end meeting Please suggest me on place which I should start with. – Mohan Jul 14 '16 at 13:48
  • Is it possible, by using UCWA, not simply send or receive a single IM, but rather read ALL messages of a conversation? I am developing a back-end application that read messages from various sources (including emails) and stores them in an index for later searching. By reading the documentation it seems that there is no such feature, – Diego Pascotto Jun 15 '18 at 16:12
-2

I think both UCMA and UCWA can be used. However, considering you want a server application, UCWA seems fit the case. Here is the detail of SDK, you can find code samples at there: https://msdn.microsoft.com/en-us/library/office/mt650889(v=office.16).aspx

urlreader
  • 6,319
  • 7
  • 57
  • 91