本文共 4509 字,大约阅读时间需要 15 分钟。
短消息的体系结构
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: OK15:39:07 TX:AT+CMGL=0
15:39:07 RX:AT+CMGL=0 15:39:07 RX: +CMGL: 5,0,,5215: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内再无新消息发送给该手机。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-125435/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-125435/