Lync Server Call Handling and Transfer Using UCMA

Microsoft Unified Communications Managed API? Never heard of it? Yes, it's not that common for programmer to integrate with Lync, especially - its server part. Though I had (still have?) an opportunity to work with it (UCMA 3.0) and now I will tell you one of the interesting stuff I was able to implement using it. I am not talking about really advanced (say, "advanced advanced") things like changing/looking at the SIP headers or implementing custom codecs for media but something more advanced than starting a conference.

Here is the scenario: I need to move (transfer) the incoming (dialin) audio call from conference to conference endlessly, with no bounds. Once moved to one conference, you should be able to kick the user to another conference as much times as he(she) desires. For the unpatient, I'll say that the trick here is to use the call self-transfer. But let's get to the sample.

Sample is called "Locations" and is freely available at GitHub

What is does:

  1. It creates three conferences and starts playing sound inside each one (sounds are ambient "Bus", "Airport", "Outdoor" so I decided to call the class handling these conferences "Location") )
  2. Listens for the incoming calls on its own application endpoint
  3. Any incoming AVCall gets transferred to the random location
  4. User can switch between locations saying "previous" or "next"

That's the whole thing.

Code is a bit raw (was not tested with many users, conference cleanup is not done correctly) but is working in case of one user and pretty much explains the idea. So for now this one is...


Solved!

Comments

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete

Post a Comment

Popular posts from this blog

Kubuntu 16.04 and Dell Inspiron 7559

DXGI fast screen capture

Visual Studio Code: Fixing Python Intellisense