龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

微软实时通信API多客户端通信实战(3)[图]

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
创建 XML 配置文件 以下代码演示如何创建 XML 配置文件字符串。 HRESULT CSIPLogin::CreateXMLProvision(LPSTR szURI, LPSTR szSIPIP, LPSTR szTransport, BSTR *bstrBuf) { ... . // 生成 XML 装置文档 wsprintf(szBuf,

创建 XML 配置文件

  以下代码演示如何创建 XML 配置文件字符串。

HRESULT CSIPLogin::CreateXMLProvision(LPSTR szURI, LPSTR szSIPIP,
LPSTR szTransport, BSTR *bstrBuf)
{
... .

// 生成 XML 装置文档
wsprintf(szBuf, "<provision key="AVDConf_2" name="AVDConf_2">"
"<user uri="%s" account="" password="" realm="%s" />"
"<sipsrv addr="%s" protocol="%s" %s role="proxy">"
"<&&keyword=session&Submit=+%CB%D1%CB%F7+">session party="first" type="pc2pc" />"
"<&&keyword=session&Submit=+%CB%D1%CB%F7+">session party="first" type="pc2ph" />"
"<&&keyword=session&Submit=+%CB%D1%CB%F7+">session party="first" type="im" />"
"</sipsrv>"
"<sipsrv addr="%s" protocol="%s" %s role="registrar"/>"
"</provision>",
szURIBuf, szRealm,
szSIPIP, szTransport, bBasicAuth ? "auth="basic"" : "",
szSIPIP, szTransport, bBasicAuth ? "auth="basic"" : ""
);

... .

return S_OK;
}
 
  在本文前面显示的示例应用程序和代码片段中,无须包括帐户用户 ID 和密码,因为 SIP 服务器不需要它。但是,如果知道 SIP 服务器需要登录帐户,则可以在配置文件字符串中包括用户 ID 和密码,以便登录到 SIP 服务器。注册需要的信息包括用户的统一资源标识符 (URI)、领域或域、RTC 服务器 IP、验证方法以及用于与服务器通信的传输协议。支持的传输协议包括 TCP、UDP 和 TLS。使用的 SIP 服务器同时支持“基本”和“摘要”身份验证。如果是“基本”身份验证,则传输协议必须是 TLS(出于安全考虑)。

  创建好友列表和观察程序对象

  注册配置文件并启用出席信息后,向好友列表添加新用户将非常简单。使用 IRTCClientPresence &&接口(提供启用出席的方法)、添加好友、删除好友、枚举观察程序、设置本地出席状态、确定应用程序处理新观察程序中订阅的方法以及设置隐私模式。本示例代码未演示如何实现隐私模式,但值得注意的是,通过该功能用户可以创建一个允许呼叫的用户的离散列表。


// 获取 RTC 客户端出席信息&&接口

IRTCClientPresence * pPresence = NULL;

hr = m_pClient->QueryInterface(
IID_IRTCClientPresence,
(void **)&pPresence);

if (FAILED(hr))
{
// QueryInterface 失败
char szBuf[256];

wsprintf (szBuf, "Failed to Query Presence Interface Err = 0x%x", hr );
MessageBox ( szBuf );
return hr;
}

// 添加好友
IRTCBuddy * pBuddy = NULL;

hr = pPresence->AddBuddy(
bstrURI,
bstrName,
NULL,
VARIANT_TRUE,
NULL,
0,
&pBuddy);

SAFE_RELEASE(pPresence);

精彩图集

赞助商链接