Introduction
In his article “Implementing Automated Agents (Bots) using the RTC Client API[1],” Robert Osborne [Microsoft] provides a reasonable starting place for framing an automated information agent, or instant messaging (IM) bot. This article is also about bots, but takes a very different approach by utilizing Microsoft’s modern .NET technologies to enable a bot infrastructure with C#, .NET Remoting Services, and Web Services. Moreover, the significant limitations of the RTC Client 1.2 API’s STA threading model are treated, making the infrastructure code for the bot much cleaner and better prepared to adapt to forthcoming collaboration APIs, such as those found in Longhorn.
The figure above provides an aerial view of what this article sets out to do: Craft a facility, called mBot, that will manage multiple RTC Client objects and expose interfaces to them via .NET Remoting and .NET Web Services so that they can be managed remotely by other .NET applications or from entirely different instant messaging platforms such as a Java J2EE/SOAP application like Jabber running on Linux or Windows.
This article is more about framing a managed open infrastructure around the RTC Client COM object than it is about the RTC Client COM object itself. The RTC Client COM object is most certainly an essential central messaging component, but it is also one whose COM API we desire to abstract away with .NET Remoting and Web Service methods.
Documentation and Source Code Provided
The two zip files contain .NET C# code (source) and a 60 page PDF file (demo) that thoroughly documents the solution.
[1] "Implementing Automated Agents (Bots) using the RTC Client API"
http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/dnrtcclnt/html/rtc_informationagent.asp
History
- 12th August, 2004: Initial post