SMS基本概念
GSM中唯一不要求建立端-端业务路径的业务就是短消息,即使移动台已处于完全电路通信情况下仍可进行短消息传输。
短消息通信仅限于一个消息,换言之,一个消息的传输就构成了一次通信。因此,业务是非对称的,一般认为移动起始短消息传输与移动终接短报文传输是两回事。这并不阻碍实时对话,但系统认为不同的消息彼此独立,消息的传输总是由处于GSM外部的短消息服务中心(SMSC)进行中继,消息有目的地或起源地,但只与用户和SMSC有关,而与其他GSM基础设施无关
短消息的体系结构
GSM标准中定义的点-点短消息服务使得短消息能在移动台和短消息服务中心之间传递。这些服务中心是通过称为SMS- GMSC的特定MSC同GSM网络联系的。
有个图在这里,呵呵,不贴了,大家自己画画
SME:Short Messaging Entity,短消息实体。它可以接收或改善短消息,位于固话系统、移动基站或其他服务中心内;
SMSC:Short Message Service Center,短消息服务中心,负责在基站和SME间中继、储存或转发短消息;移动台(ME)到SMSC的协议能传输来自移动台或朝向移动台的短消息,协议名为SMTP(Short Message Transmission Protocol);
SMCGWMS或SMCGMSC:SMS-Gateway MSC,SMS网关。接收由SMSC发送的短消息,向HLR查询路由信息,并将短消息传送给接收者所在基站的交换中心;
HLR:Home Location Register,归属位置寄存器。用于永久储存管理用户和服务记录的数据库,由SMSC产生。SMS网关与HLR之间的协议使前者可以要求HLR搜索可找到的用户地址。它与MSC与HLR之间的协议一起,能在移动台因超出覆盖区而丢失报文、随后又可找到时加以提示。
MSC:Mobile Switching Center,移动交换中心。负责系统切换管理并控制来自或发向其他电话或数据系统的拔叫。
VLR:Visitor Location Register:,访问位置寄存器。含有用户临时信息的数据库。交换中心服务访问用户时需要这些信息。
重要概念
·移动起始短消息:Mobile Originated Short Message。
一个GSM用户发送短消息时,他必须至少在其内容中包含最终地址的识别符,和处理这消息的服务中心号码,然后请求传递。
短消息的传输要求在移动台和MSC之间建立信令连接。消息本身的传递要求在无线路径上建立专用的链路层链接,并要求采用专用的消息传递协议。在规定的协议栈的顶部是所谓的传输层协议,在移动起始短消息情形下,它是一条单独的报文,即SMTP(不是TCP/IP的SMTP)短消息传送报文,低层处理应答的传送,它只指出SMSC已收到报文。
·移动终接短消息:Mobile Terminated Short Message。
目的地为GSM用户的短消息必须首先先从发送方路由至短消息服务中心,然后再被路由至实际地址。
当SMSC有短消息需发送到期某一GSM用户时,它建立一条包含各种利于接收者的信息的SMS-DELIVER报文。此信息包括用户的内容,最初的发送者身份及用于批示短消息已被SMSC接收的时间标记。与MO情形相似,SMS-DELIVER报文将在各种接口上传送。
在达到目的地前,报文的实际路由必须利用MAP/C查询功能获得,采用的是如下方法:SMSC将短消息传到与服务中心相连的SMS网关,网关的选择依赖于它想到在的用户,因为通常网关仅能处理某些用户(某家营运商或某个国家的用户)。这样,用户通过目录号(一般同电话一样)来识别,这些目录号最初是由短消息发送者输入的,这使得SMS网关能识别有关的HLR并查询它。查询是通过发送一个专用报文,即用于短消息的MAP/C SEND ROUTING INFOR报文来实现;对其应答既可采用包含用户正在访问的MSC/VLR的SS7地址的MAP/C SEND ROUNTING INFO FOR SHORT MESSAGE RESULT报文,又可当已知用户此时不可到达时采用拒绝报文。
SMS由哪些要素组成?
SMS由几个与提交或接收相关的服务要素组成,如:有效期(在将短消息成功送达用户前SMSC需要保证的储存时间),优先性。此外,短消息还提供提交消息的时间、告诉移动台是否还有更多消息要发送,以及还有多少条消息要发送等。
短消息不可到达
短消息不可到达的情况有三种:
·当被SMS网关查询时,移动台不在服务区域、未获得服务授权、或有未成功发送报文正等待告警,HLR就会立即知道不能发送;
·第二种情形是,MSC/VLR已收到报文但不能传送的情况。此时,它先向SMS网关发送一故障指示,作为MAP/H FORWARD SHORT MESSAGE报文的应答;然后,网关一方面会向SMSC发送否定报告,另一方面向HLR发送MAP/C SET MESSAGE WAITING DATA报文,在收到报文确认后进行表格更新。该事件会储存在VLR和HLR内的用户记录中;
第三种情况是MSC/VLR向用户发送有效报文后发现不可送达。
SMS程式开发
九十年代初,AT命令仅被用于modem操作。由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS Block Mode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制。AT命令在此基础上演化并被加入GSM 07.05标准,以及之后的GSM 07.07标准。
对SMS的控制共有三种实现途径:
· 最初的Block Mode;
· 基于AT命令的Text Mode;
· 基于AT命令的PDU Mode;
到现在,PDU已取代Block Mode,后者逐渐淡出。
什么是PDU Mode?
它是发送或接收手机SMS消息的一种方法。消息正文经过十六进制编码后进行传送。
PDU命令有哪些?
基本的PDU命令是AT+CMGR,AT+CMGL,AT+CMGS。例如读取电话上全部未读过的SMS消息,最简单的办法是用AT+CMGL=0;而用AT+CMGL=4则可读取全部SMS消息,无论已读过与否。
实例:
15:38:58 TX:AT
15:39:05 TX:AT+CPMS="ME"
15:39:05 RX:AT+CPMS="ME"
15:39:05 RX:
+CPMS: 15,15,4,10,15,15
15:39:05 RX:
OK
15:39:07 TX:AT+CMGL=0
15:39:07 RX:AT+CMGL=0
15:39:07 RX:
+CMGL: 5,0,,52
15:39:07
RX:07914408020033F40407D0B1582C0600000030525183920028D43708
2E7FD3CB633A888E2E83EE6F399B0C32CBDF6D10B96C0FCFE9617AFAED76B95C
15:39:07 RX:
OK
使用工具对上述收到的SMS进行解码后,可得到如下的解释:
IEI: 00
LENGTH: 00
MESSAGE REF: 00
STATUS: 00
SC Address length: 07
SC Address type: 91
Type of number: International
Numbering plan identifier: E.164
SC Address: 44802000334
Message Type Indicator: 04
Message Type: SMS-DELIVER / SMS-DELIVER REPORT
More Messages To Send: No
Status Report Indication: No
Reply Path: No
Originating Address Length: 07
Originating Address type: D0
Type of number: Alphanumeric
Numbering plan identifier: Unknown
Originating Address: 1B85C260
Decoded: 1111
Protocol Identifier: Default
Data Coding Scheme: GSM Default Alphabet
SC Timestamp: 00305251839200
decoded: 00/03/25 15:38:29
Time Zone: GMT+0.00H
User Data Length: 28
decimal: 40
Message: To protect the world from devastation
于是我们知道这条SMS消息的第一部分是:
07914408020033F4
07是跟在服务中心地址内的字节数;
91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还可有其他数值,但91最常用到。
44080200033F4是所使用的服务中心地址,由于位置上略有处理,实际号码应为:
44802000334F(字母F意指长度减1),这就是服务中心的准确地址(号码)。
下一单元是:
04
这是文件头字节(header byte, 是一种bitmask)。将每个字节设为1时,有如下含义:
10000000
回复路径(Reply Path):移动电话可循发送SMS消息的短消息中心进行回复(但并非所有SMSC都会这样设置)。
01000000
TP-UDH - 带有用户数据文件头
00100000
TP-Status-Report-Indication - 发送状态报告给发信人,表示消息收到
00010000
00001000
此两类在正常的移动终接短消息(MT,Mobile Terminated SMS)中不会使用。
00000100
TP-More Messages to Send - SMSC内再无新消息发送给该移动电话。
00000010
00000001
最后两个位数表示消息种类 - 10指是移动终接短消息(MT),01指移动起始短消息(MO,Mobile Originated SMS)。
所以"04"指此条消息是正常的移动终接短消息,SMSC内再无新消息发送给该手机。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073