文档章节

短信的发送信令流程

HouWeiGui
 HouWeiGui
发布于 2017/01/09 20:49
字数 814
阅读 147
收藏 0

发送短信的信令流程(引用自论坛牛人的回复)

同样也是之前搞不懂为什么信令中MS会发cp-data和rp-data两条信令,一条不就够了么,看这哥们的回复才知道是不同层的打印,但是对发送的打印还是稍微有点奇怪的,回复的话需要两个ack,这个也能对分层更深的理解,cp层根本就不知道rp层的数据,而rp层中才有短信接收方的地址,所以收到cp层的ack根本不能说明短信是否发送成功了。另外rp-ack是嵌套在网络回复的cp-data中的,这点也值得注意。下面就是牛人的解释了:

 首先RRC层会检查是否存在RRC连接,如果已经存在,则直接使用,如果没有,则首先发起一个RRC连接建立过程。
- RRC连接建立完成后,高层通过CM SERVICE 过程建立MM连接,接收到网络侧发送的CM SERVICE ACCEPT后,就可以开始短消息数据的发送过程了。
- 短消息的协议实体包括三层,所以响应有几个步骤:首先UE发出的CP-DATA包括RP-DATA和协议头,RP-DATA也是包括RP头(主要是Originator Address和Destination Address)和用户数据部分,它的用户数据部分是TP-DATA,TP-DATA的用户部分就是实际的短消息内容了,TP-DATA的数据头部分就包括一些编码方式等信息。
- 网络侧收到此消息后,首先CP层回应CP-ACK,接着RP层也需要响应,RP-ACK消息嵌套在CP-DATA的用户数据部分发送,UE需要收到这两个ACK后才能确认网络侧正确收到了发送的短消息,然后再响应CP-ACK,至此,整个发送短消息过程结束,如果后续没有其它过程,网络侧就可以释放RRC连接了。

精简后单条短信的提交流程如下:
MS                                                 MSC
|SMSTP:SMS Submit type(MS -> SC)CalledNumber:xxxx;   |1.这是UE发出的CP-DATA(包括协议头和RP-DATA)
|—————————————————————————->|其中RP-DATA又包括RP头源目的地址和TP-DATA用户数据
|                                                    |TP-DATA又包括数据头编码方式和短信内容
|                                                    |
|                                       SMSCP: CP-ACK|2.网络侧首先CP层回CP-ACK,这个由MSC回给UE
|<-—————————————————————————|
|                    SMSTP:SMS Deliver type(SC -> MS)|3.接着RP层也要回RP-ACK,它嵌套在CP-DATA的用户数据
|<-—————————————————————————|部分发送。SMSTP:SMS Deliver Type实际是一条CP-DATA
|                                                    |消息,这是MSC将短信转到SMSC后,SMSC回的消息。因此不同
|                               MM:CM service accept;|层都要回消息。
|<-—————————————————————————|
|SMSCP: CP-ACK                                       |4. UE需要收到这两个ACK(CP-ACK,RP-ACK)后才能确认网
|—————————————————————————->|络侧正确收到了发送的短信,再响应CP-ACK,整个发送过程
                                                      结束
实例分析:

AT部分可以参考一篇博客:http://blog.sina.com.cn/s/blog_5c52ae1b0100qrk8.html

AT> AT+CMGS=22, "000100068166790600080c5f0053e39c7c6c6454af6211"

rp-data:         00 46 00 08 91 68 31 08 70 96 05 f0 // 16 01 46 06 81 //66 79 06 //00 08 //0c//     5f 00 53 e3 9c 7c 6c 64 54 af 62 11
                                                                                   RP-USER-DATA         address           TP-User-Data-Length

cp-data:39 01 23 00 46 00 08 91 68 31 08 70 96 05 f0 16 01 46 06 81 66 79 06 00 08 0c 5f 00 53 e3 9c 7c 6c 64 54 af 62 11

© 著作权归作者所有

HouWeiGui
粉丝 4
博文 42
码字总数 52381
作品 0
深圳
程序员
私信 提问
初识WebRTC

WebRTC 1,WebRTC入门基础 什么是WebRTC WebRtc(Web Real-Time Communication)支持网页浏览器进行实时语音对话或视频对话的技术; 浏览器本身不支持互相之间直接建立信道进行通信,都是通过服务...

funnycoderstar
2017/11/03
0
0
中国移动必须改变被收益甚微的数据业务吞噬流量的现状

来自电脑报微博的消息: 中国移动总裁李跃不久前低调造访腾讯公司,和马化腾会面,就腾讯移动QQ以极低的代价吞噬移动GSM网络流量问题,和马化腾交涉。身为中国移动总裁的李跃,在此次会面中,...

红薯
2010/12/29
1K
26
WCDMA的短消息业务协议分析

基于WCDMA的短消息业务协议分析 2009年06月22日 09:08 来源:本站整理 作者:佚名 我要评论(0) 摘 要: 短消息业务(SMS)作为一项极具吸引力的增值业务,已经得到了越来越多用户 的认可。除...

joanjoan
2013/01/06
187
0
【对讲机的那点事】玩对讲机,数字对讲机DMR制式模块你了解多少?(中)

在上文中我们聊到数字对讲机DMR 对讲芯片的特性、规格尺寸及引脚、应用电路框架图、技术参数和使用。今天小编就来和你聊聊数字对讲机DMR制式的模块的串口协议: 数字对讲机DMR制式的模块的串...

数字对讲机
2018/11/10
0
0
在线抓娃娃的基本技术架构

线上视频抓娃娃风口正劲。用户可以通过手机遥控实体娃娃机,从正面与侧面两个视角判断爪子的位置,如果抓到了娃娃,可以选择寄送到家。短短几个月内,正式和即将上线的远程视频抓娃娃App和平...

Agora
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(三)——方法引用

在一起来学Java8(一)——函数式编程中有一个简单的函数式编程的例子: import java.util.function.Consumer;class Person { public static void sayHello(String name) { S...

猿敲月下码
15分钟前
8
0
读书笔记:深入理解ES6(十一)

第十一章 Promise与异步编程   Promise可以实现其他语言中类似Future和Deferred一样的功能,是另一种异步编程的选择,它既可以像事件和回调函数一样指定稍后执行的代码,也可以明确指示代码...

张森ZS
38分钟前
13
0
面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
46分钟前
27
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
51分钟前
19
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部