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:
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.
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:
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.
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).
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:
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.
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.
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:
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.
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.
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.
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 ShethPublished Monday, May 04, 2009 10:25 AM by octeam