现在的位置: 首页 > 综合 > 正文

基于Office Communicator Server 2007 R2的帮助机器人的实现

2012年03月09日 ⁄ 综合 ⁄ 共 1111字 ⁄ 字号 评论关闭

      需求描述:公司使用Office Communicator Server 2007作为内部即时通讯工具,员工每天早上上班打开电脑后,首先要做的通常是登陆Communicator和打开Outlook,能不能开发一个总是在线的帮助机器人呢?比如对机器人输入某位同事的员工号,就能获得其座机、手机、部门、职位等等信息,再比如对机器人输入某个内部系统的名称,就能得到改系统的访问地址、系统介绍等信息,所有的公司内部资料信息都可以通过帮助机器人获得。随着公司员工的不断增多,内部系统长时间使用后的大量数据信息,方便的查询更显得尤为重要。

实现原理:帮助机器人通过程序登录Office Communicator ,作为控制台应用程序一直运行。当收到信息时,根据信息的具体内容,获得查询结果,并将结果发送给查询者。

      来看一下具体的实现过程。

      首先创建 CollaborationPlatform。

      然后创建代表机器人账户的UserEndPoint,通过TLS方式登录,并为其绑定事件处理程序,如下:

UserEndPoint.RegisterForIncomingCall<InstantMessagingCall>(On_InstantMessagingCall_Received);

      通过字面不难理解。当收到消息时,在On_InstantMessagingCall_Received事件处理程序中,创建这次对话的InstantMessagingCall,并为其InstantMessagingFlowConfigurationRequested事件绑定处理程序,在InstantMessagingFlowConfigurationRequested的事件处理程序中,创建InstantMessagingFlow,负责对话文字流的传输,它有一个非常重要的事件MessageReceived,通过这个事件,能获得查询发送者的Uri地址及其发送的具体查询内容,根据具体的查询内容,程序去AD、系统数据库或其他资料信息存放处获得查询结果,并通过InstantMessagingFlow的BeginSendMessage方法将结果返回给查询的发送者,它需要三个参数,要发送给查询者的内容、发送结束后执行的回调函数和执行发送操作的InstantMessagingFlow对象,在回调函数中,主要通过EndSendMessage来结束发送及若产生错误进行异常处理。这样帮助机器人就完成了一次从收到查询信息到返回给查询者结果的过程。

      帮助机器人就是通过不断循环执行这个过程来实现查询帮助操作。

      

抱歉!评论已关闭.