RCS系统中使用的SIP(一)

需求描述:

现在是2020年5月,中移动RCS刚刚推出,由于工作原因需要在原开发的SIP协议栈基础上增加对RCS富媒体短信的支持,但是这个系统相关的一些业务支持还不清楚,这里做下记录。

RCS系统概述:

RCS(Rich Communication Suite)也叫增强型富媒体短信,什么概念呢,普通的短信一般只能是文本,RCS增强型富媒体短信有点象微信里的消息,可以是文本,也可以是图片,短视频,交互式查询框,也能够发红包,可以想象一下在不安装任何app的情况下就能实现微信的大部分功能。

RCS平台侧网络结构:

image.png

在中移动内部网络中会新增加5GMC消息系统和Maap平台管理模块。UE与5G消息之间的接口基于GSMA UP2.4系列标准,要求平台兼容UP2.3、UP1.0及企标5G消息终端,但新终端均应以UP2.4系列及以上版本作为技术参考。
信令接口使用SIP协议,涉及到的SIP方法主要有两种:MESSAGE与INVITE,两种方法的消息体格式是统一的。媒体流的传输使用MSRP,媒体通道的连接信息在信令交互中协商。

终端发消息的方式:

平台稍微有点复杂,这些基本地上都由大厂来完成,作为user端,最主要是的是如何完成消息的发送。上段所描述的MESSAGE与INVITE方法也有这种说法:

  • pager模式,用信令传递IM,消息之间没有明确的联系,或者说“会话”的概念仅存在于用户的想象中。
  • session模式,用INVITE建立,用BYE结束的一个会话,IM是其中的媒体流。
    当长度小于STANDALONE SWITCHOVER SIZE设置的值时,采用pager模式;大于时采用session模式。STANDALONE SWITCHOVER SIZE的默认值是1300字节,这个值也可以在终端注册时进行改变。

CPIM消息

CPIM (Common Presence and Instant Messaging)是一种IM通信中的会话描述格式。CPIM具体的消息格式由 RFC3862 定义。
(1)MESSAGE消息分为两部分:消息头部分、消息体部分。
(2)IMDN做为状态报告,当用户需要状态报告时,在CPIM中携带IMDN头域。
(3)消息文本内容被封装在CPIM中,并使用base64做为传输编码。
(4)对于无法在SIP MESSAGE方法内携带的SIP头域,如Contact头,在需要携带时,可将此类头域作为参数携带于CPIM消息体内的From头域中。

5G消息体类型

Content type 用途
text/plain 表示消息内容为无格式正文
Message/CPIM 消息采用CPIM格式,可携带CPIM规范定义的头域,如携带IMDN需要的头域等
application/sdp 表示内容包含SDP信息可用于媒体协商
application/resource-lists+xml 用于群发/群聊消息时,在信令中携带号码列表
multipart/mixed 表示消息体中的内容是混合组合类型,多段数据用boundary分隔
message/imdn+xml 消息体中的内容是IMDN信息
application/vnd.gsma.rcspushlocation+xml 地理位置推送,用于群聊session中发送地理位置的MSRP消息
application/vnd.gsma.rcs-ft-http+xml HTTP文件传输
application/vnd.gsma.botmessage.v1.0+json 富媒体卡片
application/vnd.gsma.botsuggestion.v1.0+json 建议操作
application/vnd.gsma.botsuggestion.response.v1.0+json 对建议操作的回复
application/vnd.gsma.botsharedclientdata.v1.0+json 终端共享数据
application/vnd.gsma.rcsrevoke+xml Chatbot消息撤回请求(不到达终端)
application/vnd.gsma.rcsspam-report+xml Chatbot消息举报

5G消息中心注册流程

image.png

注册流程和一般的SIP注册流程相同,在参数上略有区别。需携带sip.instance=<UUID>,UUID格式根据RFC4412格式,由DMS配置参数获取,需携带终端支持的业务能力。
终端支持能力见表:

参数条目 子条目 参数条目属性 是否可选
Enabler协议信息 协议版本 终端使用的消息协议版本,即CPM版本信息 必选
Service业务信息 携带该头的端的类型 "client" / "serv" / "bot" 必选
终端使用的RCS版本 RCS profile版本号 必选
Terminal information 终端信息 终端厂商名 厂商名称缩写,定义同RCC.14第2.4节 终端 必选
客户端型号 RCS客户端型号信息。定义同RCC.07 v10.0第2.3.3.2节需要在HTTP相关请求中同样携带此信息 终端必选
Operating System information 操作系统信息 操作系统类型 "Android" / "IOS" / "SymbianOS" / "Windows" / "Other" 终端必选
操作系统版本 版本号 终端必选
厂商自定义扩展 自定义扩展内容 终端可选

消息举例(注册请求(AKA鉴权方式)):

REGISTER sip:bj.ims.mnc000.mcc460.3gppnetwork.org SIP/2.0
Via: SIP/2.0/UDP 183.1.28.128:11065;branch=z9hG4bK06ip8ai8obyobpap0idbch5ao;Role=3;Dpt=8e62_16;TRC=71a-ffffffff
Call-ID: asbcGGecbxhJM@50.51.120.82
From: <sip:+8613800138100@bj.ims.mnc000.mcc460.3gppnetwork.org>;tag=HHecbxH
To: <sip:+8613800138100@bj.ims.mnc000.mcc460.3gppnetwork.org>
CSeq: 1 REGISTER
Allow: INVITE,ACK,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,MESSAGE,REFER,PUBLISH
Authorization: Digest username="+8613800138100@bj.ims.mnc000.mcc460.3gppnetwork.org",realm="bj.ims.mnc000.mcc460.3gppnetwork.org",nonce="",uri="sip:bj.ims.mnc000.mcc460.3gppnetwork.org",response=""
Supported: 100rel,path
User-Agent: CPM-client/OMA2.2 RCS-client/UP_2.0UP_2.4 term-Vendor1/Model1-XXXX client-CLN1/Software1234 OS-Android/8.1
P-Access-Network-Info: 3GPP-E-UTRAN-TDD;utran-cell-id-3gpp="4600800000000001"
Contact: <sip:user@183.1.28.128:11065;transport=udptcp;Dpt=8e62_16; sip.instance="urn:gsma:imei<urn:uuid:cf9e4a75-663b-1032-ac45-159f940783c5>:351564060017928">;expires=3600;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.msg,urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.largemsg;+g.gsma.rcs.cpm.pager-large, urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.session";+g.3gpp.iari-ref=" urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa,urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.fthttp";+g.gsma.rcs.botversion="#<=4"
Path: <sip:term@183.1.28.128:11065;transport=udptransport=tcp;lr;ssn;hwnos;TYPE=V4;IP=50.51.120.82;PORT=16891;Dpt=8e62_86;TRC=71a-ffffffff>
P-Visited-Network-ID: "cmcc.rcs.com"
Max-Forwards: 70
Content-Length: 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356