UCWA

Inside UCWA


The Unified Communications Web API (UCWA) is a REST-like API to enable real-time communications over the web on Server-Side based works for Microsoft Lync on-primes. See the UCWA previous post

Technology Boundaries

  • Only users homed on a Lync Server 2013 pool can take advantage of UCWA capabilities.
  • Supported only for The On Prime Lync Server.
  • Server-to-server authentication between an on-premises server and an Office 365 component is not supported.
  • HD Photos, Voicemail and meetings are dependent on the version of Exchange Server 2013.
  • Supported only for The On Prime Exchange Server.
  • Exchange 2010 On prime and Online are not supported.
  • Compatible with Internet Explorer versions 9 and 10 are both supported, as are the latest versions of Chrome, Safari, and Firefox.
  • The developers needs to know HTTP: POST and GET and PUT and DELETE and HTTP headers, REST SERVICE and indeed JavaScript and JQuery.

What We Can Do With The Technology

  1. Contacts and Groups
    • Access, search, federated organizations, monitor on contact list, subscribing to the presence, Presence, Location, and Note can publish and view her presence and note, View own photos or the photos of their contacts.
  2. Two-party and Multi-party IM
    • Supports instant messaging between two parties in a peer-to-peer fashion as well as multi-party IM sessions that are hosted by the server.
    • Add Participant for a Multi-Party IM.
    • Escalate the conversation to conference.
  3. Working with Online Meetings
    • Schedule an online meeting that can be joined by via this API or there Lync services.
    • Joining of online meetings with messaging and phone audio modalities (for future use).
    • A roster of meeting attendees is provided; this information includes participant name, contact information, and modalities. And can update Meeting.
    • Exchange APIs can be used to place meeting information on the user’s calendar you will only see meetings created by UCWA.

Technology Barriers (What we can’t do)

  • No Audio, Video or other Real Time Media (at this time). According to the Channel 9 video, UCWA is on the Roadmap to get voice/video/screen sharing capability over IP after Lync 2013 goes RTM.
  • Only allow you connect at a user level i.e. can’t do action on behalf of others.
  • No Office 365 support.
  • No User Impersonation.
  • No custom presence Support.
  • Can’t start group IM conversations.

Development Ability

  1. People
    • Search.
    • Presence Subscription and Presence Subscription Membership.
    • Get contact and contact information i.e. Location, Note, Photo, Presence, Privacy Relationship and Supported Modalities.
    • Get group, Group Contacts, Default Group, Distribution Group, Expand Distribution Group.
    • Start/Refresh/Stop Subscription to Contacts and Groups.
    • Subscribed Contacts.
    • Subscribe To Group Presence.
    • Get contacts forward call information i.e. Immediate Forward Settings, Immediate Forward to Contact, Immediate Forward to Delegates and Immediate Forward to Voicemail.
  2. Me
    • Call Forwarding Settings.
    • Change Phone Number.
    • Change Visibility: Changes the visibility of a phone number to other contacts.
    • Change location.
    • Presence: get a representation of the user’s availability and activity.
    • Note, Photo and Report My Activity: Indicates that the user is actively using this application.
    • Call settings i.e. Reset Unanswered Call Settings, Simultaneous Ring Settings, Simultaneous Ring to Contact, Simultaneous Ring to Delegates, Simultaneous Ring to Team, Unanswered Call Settings, Unanswered Call to Contact and Unanswered Call to Voicemail.
  3. Online Meetings
    • Dial in Region: get a representation of the access information for phone users who wish to join an online Meeting.
    • Group.
    • My Assigned Online Meetings.
    • My Online Meetings.
    • Online Meeting Default Values: get a representation of the values of my Online Meeting properties if not specified at scheduling time.
    • Online Meeting Eligible Values: get a representation of the eligible values that the application can choose from when scheduling an Online Meeting.
    • Online Meeting Extensions: get a representation of the data that is needed by a custom meeting extension, stored as a collection of key-value pair properties.
    • Online Meeting Invitation.
    • Online Meeting Invitation Customization.
    • Online Meeting Policies.
    • Meeting Organizer.
    • Phone Dial in Information.
  4. Communications and Modalities
    • Accept/decline incoming conversation.
    • Send invitation to contact/Participant and knows the Acceptance state.
    • Add Messaging.
    • Add Participant.
    • Attendees.
    • Cancel/Reject.
    • Conversations: get a representation of the user’s ongoing conversations.
    • Data Collaboration to return the current modality.
    • Demote: user can demote the participant from leader to attendee in the online Meeting.
    • Derived Conversation.
    • Derived Messaging.
    • Disable/Disable Audience Messaging and Disable/Disable Audience Mute Lock.
    • Failed Delivery Participant.
    • Forwarded By.
    • From: get a representation of the participant that sent an invitation.
    • Hold Phone Audio.
    • Join Online Meeting.
    • Leaders.
    • Lobby.
    • Local Participant.
    • Messaging and Messaging Invitation.
    • Mute Audio/Video.
    • Participant.
    • Participant Application Sharing : track when a participant joins or leaves this modality.
    • Participant Audio : track when a participant joins or leaves this modality.
    • Participant Data Collaboration: track when a participant joins or leaves this modality.
    • Participant Invitation.
    • Participant Messaging.
    • Participant Panoramic Video.
    • Participant Video.
    • Phone Audio Invitation.
    • Promote.
    • Reject.
    • Resume Phone Audio.
    • Send Message.
    • Set Is Typing.
    • Start Messaging.
    • Start Online Meeting.
    • Start Phone Audio.
    • Stop Messaging.
    • Transferred By.
    • Typing Participants.
    • Video Locked On Participant.
Advertisements

Introducing the Unified Communications Web API (UCWA)


The Unified Communications Web API (UCWA) is a new REST-like API to enable real-time communications over the web on Server-Side based works for Microsoft Lync on-primes and it is not supported for Office 365 till now.

The new UC Web API, or UCWA, in Microsoft Lync Server 2013 opens a new way of integration with many other client platforms. Lync Server 2013 UCWA brings Lync functionality to desktop applications, web applications and embedded devices with no need for Microsoft Lync client being installed and without Server side component either.

As you could remember with Lync 2010 if you want to create a client application for desktop or PCs you should use the Lync 2010 SDK and host it in any type of user interface like WPF or Silverlight also if you want to create and Add-Ons for the Microsoft Lync Server you need to use the UCMA but now UCWA makes customizations possible on any platform, device or application that can talk http and no browser plugin or ActiveX or Lync client is required with UCWA.

Features of the Unified Communications Web API (UCWA)

  • UCWA removes programming language dependencies.
  • No browser plugin required and No ActiveX dependency.
  • Lync client does not need to be running.
  • Built on top of UCMA.
  • REST-like API to create and work.
  • Simple data structures.
  • Embrace HTTP as an application layer.
  • Resource-oriented programming model.

What Developers Could Do and Access Using UCWA

  • Presence
  • Group Memberships
  • Contacts
  • Privacy Relationships
  • Scheduled Conferences
  • Search
  • Instant Messaging

What Developers Could Do and Access Using UCWA

  • No Audio, Video and any other media
  • No Conferencing only User level interaction
  • No Application Sharing

OAuth Token

The cool thing with the UCWA it Attempt to locate Autodiscover service and the Requested is redirected to OAuth endpoint to get a token and we have the features of the OAuth i.e. provide user credentials, Token is attached to every request header and Token establishes the user’s identity.

The (Representational State Transfer) REST has an Architectural pattern that sees the internet as a collection of resources available at unique locations (URLs\HREFs) so this approach is very great to enable us to create different types and models of applications for different platforms i.e. Linux Lync Client, Web Chat Lync client and Add Instant Message or Presence capabilities to any embedded device that can do HTTP.