即时消息(IM)指的是近似实时的消息交互。即时消息通常很短,虽然并不要求这样。IM 通常用
于会话模式,也就是说,消息的交互是一来一回的,并且很快,近似于交互式的会话。
提出了 MESSAGE 方法,扩展了 SIP 协议以传送 IM 消息。由于 MSEEAGE 是 SIP 消息,所
以它继承了 SIP 协议所有的路由和安全特性。MESSAGE 用 MIME 格式的 body 携带具体内容。
MESSAGE 本身并不建立 dialog;在多数应用里,每条 IM 消息都是独立的,颇似分页消息。
MESSAGE 也可以在 dialog 内发送。
1.简介
IM 的历史。
SIP 协议提供了在线功能,也提供了面向会话的通信应用,但还没有提供即时消息功能。
本规范提出了一个新的方法:MESSAGE,用于在 body 里携带即时消息的内容。
2.适用范围
用 SIP 传递即时消息,有两种模式:
pager 模式,用信令传递 IM,消息之间没有明确的联系,或者说“会话”的概念仅存在于用户
的想象中。
session 模式,用 INVITE 建立,用 BYE 结束的一个会话,IM 是其中的媒体流。
两种模式都有存在的价值(设想一下腾讯公司 QQ 的普通消息和 UDP 直连的对话模式)。本
文只关心 pager 模式。
为什么 MESSAGE 消息之间不关联。试想一下先创建一个 dialog,MESSAGE 在 dialog 内
进行传递。这样所有的消息必然走相同的路由,由于 IM 消息的流量通常很大,这样势必会引
起拥塞问题。另一个问题是,如果 MESSAGE 必须走 in dialog,那么 IM 的目的地就势必和会
话的目的地一样,而这种限制是不合理的。(阐述发消息的对象可以与打电话的对象不同的事
实,所以消息不应该从 Dialog 中走)
一个 MESSAGE 走 in dialog 的例子:voice 会话的一个参与者想同其中的一人进行 IM 交互
(即想给正在通话的人发消息),这时把 IM 和该会话联系在一起是比较合理的。但是纯粹是
为了把几个 IM 联系在一起而让 MESSAGE 都走 in dialog 是不允许的。
3.操作简介
当一个人想给另外一个人发 IM 消息时,构造一个 MESSAGE,发出去即可。请示 URI 可以
是 SIP URI,也可以是其它类型的地址。要发的即时消息放
在 body 里。body 可以是任何 MIME 格式。可能用 message/cpim 会好一点,因为已有的
IM 系统标准是 message/cpim 格式。
MESSAGE 请求到达目的地之前可能经过多个 SIP proxy。
像 SIP 其它请求一样,收到 MESSAGE 应回临时应答和最终应答。200-OK 只说明消息成功
到达了目的地,并不代码用户已经阅读。
MESSAGE 不创建 dialog。
4.UAC 的操作
SIP 相关的操作参照 rfc3261。
MESSAGE body 必须支持 plain/text 格式。可以选择支持 message/cpim 格式。
由于不创建一个 dialog,所以 MESSAGE 不应该包含 contact 头域。
MESSAGE 可以在 in dialog 里发送,此时代表这个消息和某个 dialog 有关联关系(即发消
息的 URI 为 SIP URI)。
最终应答的含义,
评论0
最新资源