微软实时通信API多客户端通信实战(3)[图]
创建 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);
- 上一篇:VC++下实现匿名管道
- 下一篇:微软实时通信API多客户端通信实战(2)[图]