From RFC 3862
Common Presence and Instant Messaging (CPIM): Message Format
这个CPIM 消息挺有趣,帮助我看到IMS 里更多的东西。以前做测试SMS 短信时候, 简单的总是认为SIP Message 附带一个TEXT 就可以作为一条短信内容。 通过CPIM 这个结构, 意识到SIP 这个作为Session的控制信令,可以更多的作为一个承载 而为其他上层应用所服务。
CPIM 里的消息格式,对比与GSM 中的短信形式,发觉他们有一些共同点。
SIP消息中的From ,TO, Requ-URL 这时候不再用与去表达 Message sender or Message recevier,
类似于RP-layer in the MO/MT-FSM , MAP 使用TP-Layer,RP-Layer 去表达接收方的信息。
先贴CPIM 的消息体格式。后面贴SM-TL 和SM-RL 格式:
The following example shows a Message/CPIM message:
m: Content-type: Message/CPIM
s:
h: From: MR SANDERS <im:piglet@100akerwood.com>
h: To: Depressed Donkey <im:eeyore@100akerwood.com>
h: DateTime: 2000-12-13T13:40:00-08:00
h: Subject: the weather will be fine today
h: Subject:;lang=fr beau temps prevu pour aujourd'hui
h: NS: MyFeatures <mid:MessageFeatures@id.foo.com>
h: Require: MyFeatures.VitalMessageOption
h: MyFeatures.VitalMessageOption: Confirmation-requested
h: MyFeatures.WackyMessageOption: Use-silly-font
s:
e: Content-type: text/xml; charset=utf-8
e: Content-ID: <1234567890@foo.com>
e:
e: <body>
e: Here is the text of my message.
e: </body>
通过这个格式,可以看到这个与一般的SIP message 有多了很多内容, 有收发方的名字,除了短消息内容外,还可以有标题。有Content-type, 与SIP message 的content-type 还不一样,这是正式短信部分的消息格式。
如果使用CPIM 格式与SMTP ,邮件部分转化因该会很方便。 是否为 SMS/MMS 的相互转化有很大的帮助。
回过头看MAP的短信层次:TL layer
RP-Layer:
在GSM 中,通过 TL-LAYER 来表现了消息的传送方向,MO (submit)or MT(Deliver), 短信的接受状态的订阅(status-report-Request),在RP_layer中放出接收方的具体地址。
在真实世界中,收发短信的这一个简单的动作,在通信中被分为这几个层次来完成。发,收,短信状态报告,当中因为要通过不通的网络节点,在GSM 中需要RP-LAYER ,TP-LAYER 来面向不同的网络节点来进行通信,最后通过CP-DATA,RP-DATA 达到用户手机。
在SIP 中,通过SIP本身的From,TO, router header 来完成短信传输的这样的一个过程,但是对于sms这个应用层部分表达不够。那么通过CPIM的格式,在进一步扩展SIP的上层应用。