oracle 发端短信,短信的发送信令流程 - HouWeiGui的个人空间 - OSCHINA - 中文开源技术交流社区...

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

同样也是之前搞不懂为什么信令中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的用户数据

|

|                                                    |消息,这是MSC将短信转到SMSC后,SMSC回的消息。因此不同

|                               MM:CM service accept;|层都要回消息。

|

|SMSCP: CP-ACK                                       |4. UE需要收到这两个ACK(CP-ACK,RP-ACK)后才能确认网

|—————————————————————————->|络侧正确收到了发送的短信,再响应CP-ACK,整个发送过程

结束

实例分析:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值