By now most of the readers of this blog must have been able to try out the latest features we released as part of OCS 2007 R2 release. One of the most important features for this release was Deskphone-OC Integration, also known as Tanjay-OC Integration. It was a significant cross-team effort that led to achieving most of the objectives we outlined for this feature in this release.

In this blog, I will give an inside perspective of our decisions, how the features work, as well as what we plan to do in the future. This feature has also been called the “Click-to-call” or RCC, and as part of this blog post, I hope to confirm that it is not just that, but much more.

For this blog post, we will assume the user has a reasonable understanding of the following products:

  1.     Microsoft Office Communicator (OC)
  2.     Microsoft Office Communicator Phone Edition (OCPE)
  3.     OCS deskphone running OCPE (code named “Tanjay”) 

Background

As many of you are aware, one of the breakthrough features in Office Communicator 2005 release was integrating PBX phones with OC, which resulted in the following features.

  •     Click-to-call
  •     Click-to-answer
  •     PSTN conference
  •     Video-on-computer, audio-on-phone

These were very well received features  and were widely adopted.

PBX phones, however, have their inherent limitations, such as not being able to exploit all the features provided by OCS. As part of the 2007 release, we introduced the Office Communicator Phone Edition product. It provided a rich Office Communicator-like user experience on select standalone IP phones from Microsoft partners, code-named “Tanjay”. However, as part of that offering we were not able to provide OC integration with the phone. It was our intention to provide this feature; however, subject to project timelines it would have to be included in the next release.

As a result, the first thing we took on in the 2007 R2 release, was integrating OC with the phone.

The overall vision was to provide:

  •     Remote call control of the phone
  •     Remote device control of the phone
  •     Administrative features related to activities on the phone
  •     Similar user-experience for OC user when using the phone as when using other sound devices.

For the first part of this post I will focus on the “Call Control” aspect of Tanjay-OC Integration; in the remainder, I will expand on the other highlights.

Call Control

Selecting the right protocol for “Call Control” was the foremost task. The different alternatives were considered included CSTA and C3P. Finally, we settled on creating a new protocol specifically designed around providing the best call control experience that could be used by all Microsoft endpoints. It was named, “Third Party Control Protocol” henceforth referred to as “TPCP”. This is also a protocol that external parties can use for their call control.

At the simplest level the control protocol was modeled as a “request-response” protocol – with additional status notification messages. Based on this modeling, the request-response protocol (TPCP) runs on the control leg between the Controller and the Control Server and will be used to set up the communication session between the Remote Leg (Leg B) and Local leg (Leg A).

Third Party Control Protocol

 

 

Specific to the context of this blog post, TPCP is applied for call control as below. TPCP runs over Ethernet between OC and the Tanjay.

Also shown in the diagram is the USB link between OC and Tanjay. There are numerous reasons to have this connection; however from the point-of-view of call control, the main reason was to be able to associate the specific Tanjay instance with the specific OC instance. We expect that in the near future, there will be multiple OCS endpoints for the same user. Given the requirements for our call control implementation, it was a priority to establish  the controller-control-server relationship. The best way to establish this relationship, with the least user intervention, was to connect a USB cable between the two endpoints. Custom USB-HID reports are then sent over the link to establish the relationship in software.

The other uses of USB connection include:

  1. Tanjay being the one-stop UC audio device

    OC is used to control audio calls on Tanjay. OC can also escalate the call to a video call. When it does so, the audio call on Tanjay is terminated in order for a new video call to be created on OC. With the USB link, we can provide a seamless experience to the OC user whose audio escalates to a video call, and audio continues to use Tanjay as the endpoint.
  2. Tanjay used by other applications as the audio device.

    Tanjay, being a hi-fidelity audio device, can be used by other applications as a microphone and speaker. This will reduce the number of devices required by the UC user.
  3. Controls that cannot be done over TPCP will be available over USB in future releases.

    Below is a diagram of how Tanjay is used as an audio device for video calls on OC.  In this mode, audio streams over USB.  Media terminates on OC and Tanjay, and acts as a passive audio device. There is minimal control of the call from the Tanjay phone.

Call-control scenarios addressed by Tanjay-OC integration

Listed below are scenarios which illustrate how Tanjay-OC integration is used. All of these scenarios are well known and well used on OC today when using an audio peripheral connected to the PC. However, what we are calling out is that these scenarios will continue to work even when you use Tanjay as the audio endpoint, instead of an audio peripheral. To a trained OC user, there should be very little visible difference in the functionality that Tanjay-OC Integration offers.

  • P2P
    • Click-to-call from OC using Tanjay
    • Click to answer incoming call on Tanjay
    • Mid-call call controls on Tanjay using OC
  • Multi-modal
    • Add audio to an IM session via Tanjay
    • Add video to an audio call on Tanjay
    • Live Meeting using Tanjay
  • Conferencing
    • Click to conference using Tanjay

One of the main benefits that is not provided by OC is the resiliency of calls. Because Tanjay is an independent OCS endpoint, Tanjay-OC Integrated calls will continue to survive on the device, independent of the state of the OC controller. When the OC controller is ready, it will be able to control the call that exists on the Tanjay device.

Administrative tasks

Besides the call control scenarios, Tanjay-OC integration opens up possibilities to do administrative tasks on the phone which could be tedious to do on a phone.

In the OCPE 2007 release, some of the user complaints included:

  1.     Sign-in on the phone using domain credentials was tedious
  2.     Phone went into locked mode often


By using Tanjay-OC Integration, we were able to provide more flexibility to the users in how they achieved tasks. Sign-in credentials can now be provided via OC and they will be provisioned on the Tanjay phone. Whenever the user unlocks the PC, Tanjay will unlock too.

What’s next for this feature

As we mentioned, most of the objectives that we started out with in the 2007 R2 release have been achieved. We have some improvements planned for the next release, and we would also like to implement some of the device control features that were not available in the 2007 R2 release.

Given the generic nature of the underlying TPCP protocol, we are constantly investigating where it can be applicable.

In our next release we will be adding more call control features to OC in general. Most of these features will be made available in the Tanjay-OC Integration also.

What you can do next

Pick up the Office Communications Server 2007 R2, Office Communicator 2007 R2, and a Tanjay running OCPE 2007 R2, and give this feature a try. Send us your feedback. We will be happy to hear it.

Acknowledgements

Multiple people have contributed to the Desktop-OC Integration feature. Many thanks to Sriram Parameswar for leading the TPCP protocol-development effort. Thanks to Anton Krantz, Rajesh Ramanathan, and Ankit Tandon for providing technical program management support. Finally thanks to the multiple developers, including Vinit Deshpande, who were crucial in converting the design to actual code.

 

Sachin Sheth

Published Monday, May 04, 2009 10:25 AM by octeam