基于SIMPLE协议的Presence介绍[1]
<script language="javascript" type="text/javascript">document.title="基于SIMPLE协议的Presence介绍[1] - "+document.title</script>
E-mail: macrofox@163.com QQ:18902388 MSN: ming_wy@hotmail.com
目 录
基于SIMPLE协议的Presence介绍... 1
1.概述... 3
2.基于SIMPLE协议的presence体系结构... 3
3.SIMPLE规范阅读指南... 5
4.典型消息流程... 6
4.1 订阅好友列表... 7
4.1.1情景说明... 7
4.1.2 SIP消息流程图... 8
4.1.3 消息流说明... 8
4.2 订阅单个用户(添加好友)... 20
4.2.1 情景说明... 20
4.2.2 消息流程图... 21
4.2.3 消息流说明... 21
4.3 订阅watcherinfo. 24
4.3.1 情景说明... 24
4.3.2 SIP消息流程图... 25
4.3.3 消息流说明... 25
4.4 发布状态信息... 27
4.4.1 情景说明... 27
4.4.2 SIP消息流程图... 28
4.4.3 消息流说明... 28
4.5 删除好友... 33
4.5.1 情景说明... 33
4.5.2 消息流程图... 33
4.5.3 消息流说明... 33
4.6 添加和删除黑名单... 34
4.6.1 情景说明... 34
4.6.2 消息流程图... 34
4.6.3 消息流说明... 35
5.参考规范... 35
6.文档更新记录... 36
“presence”,也作“presence information”,中文一般译为“呈现”,用以传达某一用户通过一组设备进行通信的能力和意愿。拿常见的MSN Messenger来举例,MSN v7.5为用户提供的可选状态有:联机、忙碌、马上回来、离开、接听电话、外出就餐和显示为脱机。这些状态便称为“presence状态”,它们表征了用户当前处于的某种状态和用户进行通信的意愿。同时,这些状态还反映出与该用户进行通信的能力,比如若用户处于“脱机”状态的话,别的用户便不能用即时消息与之通信。因此,一个最简单的presence过程如下:一个用户(称为watcher)订阅(SUBSCRIBE)他感兴趣的另一用户(presentity)的presence状态,presentity接受订阅请求。以后presentity的状态发生变化之后他会发布(PUBLISH)自己的新状态,这个新状态会通知(NOTIFY)给watcher。(注:watcher、presentity等概念严格上来说指网络中的通信实体,这里为了解释方便将他们进行了扩展,也泛指人)
随着市场对presence和IM(即时通信)的需求日益增大,各种各样的实现也如雨后春笋般冒了出来。但是目前市场上的大部分实现一般都采用私有协议,相互之间不兼容,呈现功能实现的也不完整。为了对presence和IM规范化,IETF在1998年成立了IMPP(Instant Message and Presence Protocol)工作组,希望设计出健壮、安全和灵活的呈现/即时消息协议。IMPP主要定义必要的协议和数据格式,用来构建一个具有空间接收、发布能力的即时信息系统。现在已经提出了各种不同的协议草案或建议,如:SIMPLE、XMPP、PRIM和APEX等。其中,最有实力的是前两个标准,目前的IM/presence也主要分为两大阵营:SIP/SIMPLE和JABBER/XMPP。本文主要介绍基于SIMPLE的presence。
2.基于SIMPLE协议的presence体系结构
SIMPLE规范是在2001年2月由IETF SIMPLE工作组正式提出的,全称为 SIP Instant Messaging and Presence Leveraging Extensions (针对即时消息和呈现业务的利用扩展的会话初始化协议),是SIP协议针对IM/presence的扩展。
SIMPLE是目前为止制定的较为完善的一个规范,微软和IBM都致力于在它们的即时通讯系统中实现这个协议。
SIMPLE符合RFC2778提出的presence模型,其结构图如下:
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 359.25pt; HEIGHT: 240.75pt" o:ole="" type="#_x0000_t75"><imagedata src="file:///D:/DOCUME~1/Leoo/LOCALS~1/Temp/msohtml1/03/clip_image001.emz" o:title=""></imagedata></shape>
Figure 1 presence model
注:上面的实体都是功能实体,与实际实现中的物理实体往往有差别。
各实体功能如下:
Ø Presence Service:接收、存储和分发presence information。Presence Service既可以是一个物理实体上的server,也可以只是presentity和watcher之间的直接通信。在具体实现中前者比较常见,后者是P2P的模式。
Ø Presentity:用于提供presence information给Presence Service。
Ø Watcher:向Presence Service请求获取Presentity的presence information或者自身的watcher information。
Ø Principal:指单个的人、程序或者设备,也可以是人、程序、设备的集合体。对于Presence Service来说,各个Principal是不同的。
Ø Presence User Agent:为Principal提供手段来操作0个或者多个Presentity,Principal操作Presence User Agent改变Presentity的状态。是Principal和Presentity交互的interface。
Ø Watcher User Agent:类似Presence User Agent,Principal通过其来操作0个或多个Watcher,Watcher收到Presentity的新状态之后也通过Watcher User Agent呈现给Principal。
Ø Presence Protocol:定义了Presentity和Presence Service,Watcher和Presence Service之间交换消息的一组标准。
在具体的实现中最常见的是把Presence Service实现为一个Presence Server,Presence User Agent和Presentity组合在一起,Watcher和Watcher User Agent组合在一起,由一个终端来同时支持这两种组合体,这样,一个终端就既能订阅别人的也能发布自己的presence information。
分享到:
相关推荐
sip的simple协议的presence介绍,好友列表,好友在线状态等
基于SIMPLE协议的Presence介绍
基于simple协议的presence介绍。一种将资源文件保存于服务器端的框架。
STB上基于SIP PRESENCE的Presence Service,梁涛,,PRESENCE作为一种呈现协议,主要应用于即时通信领域。STB在成为家用网关之后,将面临业务呈现问题。而SIP协议是支持多媒体会话的信令�
一个支持众多rfc的开源sip协议栈,包括presence应用,SIMPLE。
介绍sip prensence的系列文档,很有参考价值!
基于IMS Presence业务的信息家电系统设计,刘军,温向明,本文以基于IMS的Presence(呈现)业务为基础,提出了一种基于Presence业务的信息家电网络系统。该系统以IMS基本框架为基础,采用SIP为基��
SPD Serial presence detect
基于节点 ELB Presence 服务。 大多数情况下,用法是相同的,但如果可能,这将使用元数据 API 访问令牌和区域。 用法 码头工人 如果实例具有关联的 IAM 角色并有权向 ELB 注册/注销,则您只需通过环境变量传递 ELB ...
基于P2PSIP的Presence业务实现,闵奇,张琳,即时通信中的Presence业务在人们的日常生活中使用越来越广泛。虽然目前不同种类的即时通信工具提供了丰富的Presence业务,但由于采用��
Presence业务也被称为呈现业务,在即时...本文在介绍Presence业务总体特征的基础上,通过业务场景说明业务的具体应用,简单阐述了Presence业务的网络结构,最后介绍了目前国内外研究情况以及展望Presence业务发展前景。
Cisco Press Cisco Unified Presence Fundamentals
service_presence_developer_guide
XM(eXtensible Messaging and Presence Protoc01)可扩展消息与出席协议技术便是其中较为活跃的一种即时通信技术。由于即时通信工具在企业中的应用给企业的运营管理带来诸多便利,因而在企业中的应用越来越广泛,具有...
Jabber 最有优势的就是他的通信协议。他可以和多种即时通讯对接。比如有第三方插件,能让jabber用户和MSN 、Yahoo Messager、ICQ..... 对聊;下面是来自 jabber.org官方的原文 Jabber is best known as "the Linux ...
它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。广泛应用于CS(Circuit Switched,电路交换)、NGN(Next Generation Network,下一代网络)以及IMS(IP Multimedia Subsystem,IP...
TCG PC Client Platform Physical Presence Interface Specification
NULL 博文链接:https://ansonlai.iteye.com/blog/801810
Laravel开发-eloquent-presence-verifier 雄辩的存在验证程序实现
内存spd的标准,用于解读内存spd的信息