呈现(Presence)信息格式
下面的模型给出了呈现信息的组成,由任意有限个消息单元(Presence Tuple)组成。每个tuple包括一个状态标签、通信地址(可选)、其它补充信息(可选)。通信地址又包括通信方式和联系地址两种。RFC2778中仅定义了一种通信方式——IM(及时消息服务),联系地址类型为及时消息收件箱地址。当然还有其它通信方式,例如语音通信,以及与之对应的联系地址——电话号码。
图1 Presence信息结构
实际中,实用Presence消息作为Publish的消息体来发布自己的Presence信息,下面是一个具体的例子:
<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
xmlns:rp="urn:ietf:params:xml:ns:pidf:rpid"
xmlns:caps="urn:ietf:params:xml:ns:pidf:caps"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tuple id="sg89ae">
<status>
<basic>open</basic>
</status>
<dm:deviceID>mac:8asd7d7d70</dm:deviceID>
<caps:servcaps>
<caps:extensions>
<caps:supported>
<caps:pref/>
</caps:supported>
</caps:extensions>
<caps:methods>
<caps:supported>
<caps:MESSAGE/>
<caps:OPTIONS/>
</caps:supported>
</caps:methods>
</caps:servcaps>
<contact>sip:[email protected]</contact>
</tuple>
<dm:person id="p1">
<rp:activities>
<rp:on-the-phone/>
</rp:activities>
</dm:person>
<dm:device id="pc122">
<rp:user-input>idle</rp:user-input>
<dm:deviceID>mac:8asd7d7d70</dm:deviceID>
</dm:device>
</presence>