|
摘要:在前一篇文章《Microsoft实时通信API入门》中,我们介绍了使用实时通信 (RTC) 客户端 API 将某些功能(例如音频/视频会议、即时消息和应用程序共享)集成到应用程序中是多么简单直接。
本文将介绍使用 RTC 客户端API 添加出席信息、配置文件和好友列表等功能来创建社区的简单性。您将学习使用Windows XP 应用程序来实现此功能的步骤。
您需要安装:
Visual Studio 6.0 SP5 Microsoft Platform SDK SIP Server 或 Windows .NET Server Beta 3
会话启动协议服务器
要将出席信息、配置文件和好友列表集成到应用程序中,需要使用 SIP 服务器或 Windows .NET Server Beta 3。需要出席信息(例如启用好友列表功能)时,要求使用 SIP 注册服务器。用户可以在服务器上注册其出席信息,并通过此服务检索其他人的出席信息。
服务器使用会话启动协议(SIP)及其相关协议 SIMPLE 作为底层通信协议。SIP 为多模式通信提供了出色的支持。SIP 和 SIMPLE 不仅是文本消息共享协议,而且可以管理声音、视频、应用程序共享等。
会话启动协议
SIP 协议用于在 IP 网络中启动会话并注册出席信息。会话可以是 PC 到 PC 的简单双向通信,也可以是协作的多媒体会议会话。SIP 是一种 Internet 工程任务组 (IETF) 信号处理协议,用于建立、操作和销毁会话。SIP 的主要用途是帮助会话启动者向各地可能的会话参加者发出邀请。SIP 被描述为“简单、可扩展”的 IP 电话信号处理协议。
初始化出席信息和好友列表通知
要接收出席信息、好友列表和配置文件的新事件通知,请设置以下事件过滤器掩码,以便应用程序从 RTC 层接收事件通知。这些事件掩码是第一个示例应用程序中设置的事件掩码的补充。
#define RTCEF_REGISTRATION_STATE_CHANGE 0x00000002 #define RTCEF_BUDDY 0x00000100 #define RTCEF_WATCHER 0x00000200 #define RTCEF_PROFILE 0x00000400
注册所有事件的一种简单方法是使用 RTCEF_ALL 宏通知 RTC 层向应用程序发送所有事件。
long lEventMask = RTCEF_ALL;
处理 RTC 事件
以下代码段显示了使用用户配置文件注册到 SIP 服务器、发送和接收出席信息和好友列表事件时需要处理的其他事件。接收到每个事件后,事件过滤器方法将使用适当的 RTC 接口处理收到的事件。
HRESULT CAVDConfDlg::OnRTCEvent(UINT message, WPARAM wParam, LPARAM lParam) { IDispatch * pDisp = (IDispatch *)lParam; RTC_EVENT enEvent = (RTC_EVENT)wParam; HRESULT hr;
// 基于 RTC_EVENT 类型,查询 // 适当的事件接口并调用辅助 // 方法来处理事件
switch ( wParam ) { ... .
case RTCE_REGISTRATION_STATE_CHANGE: { IRTCRegistrationStateChangeEvent * pEvent = NULL; // 获取与当前会话关联的事件句柄。 hr = pDisp->QueryInterface( IID_IRTCSessionStateChangeEvent, (void **)&pEvent );
if (SUCCEEDED(hr)) { OnRTCSessionStateChangeEvent(pEvent); SAFE_RELEASE(pEvent); } } break;
case RTCE_BUDDY: { IRTCBuddyEvent * pEvent = NULL; hr = pDisp->QueryInterface( IID_IRTCBuddyEvent, (void **)&pEvent );
if (SUCCEEDED(hr)) { OnRTCBuddyEvent(pEvent); SAFE_RELEASE(pEvent); } } break;
case RTCE_WATCHER: { IRTCWatcherEvent * pEvent = NULL; hr = pDisp->QueryInterface( IID_IRTCWatcherEvent, (void **)&pEvent );
if (SUCCEEDED(hr)) { OnRTCWatcherEvent(pEvent); SAFE_RELEASE(pEvent); } } break; } ... . }
启用和检测出席信息
使用出席信息服务,用户可以跟踪联系人的出席状态、将此状态通知给联系人、通过注册服务器(维护联系人的当前位置信息)调用好友。位置可以是计算机或电话,将来还可以是移动电话、寻呼机或手持设备。

图 1:包含好友列表和出席状态的示例用户界面
下图显示了在 SIP 服务器中注册客户端并启用出席信息服务的高级步骤。

图 2:启用配置文件和出席信息服务的步骤
SIP 服务器注册
要启用出席信息服务,需要创建一个“配置文件”对象。配置文件对象是通过 IRTCClientProvisioning::CreateProfile 方法创建的。要创建配置文件对象,客户端应用程序需要创建一个符合装置架构的 XML 字符串。XML 架构的属性包括:
装置设置 - 配置文件的唯一标识符。 用户设置 - 用户的 URI、领域和登录帐户信息 客户端设置 - 有关与通信链路无关的客户端应用程序信息。此信息是可选的。 提供商设置 - 有关 Internet 电话服务提供商
[1] [2] [3] [4] [5] 下一页
|