1. 短信的有效期(validity period)
如果接收手机离线,一条短信会暂时存储在短信服务中心.也可以给短信设置一个时间期限,就是短信过多久才会从短信服务中心删除,这样一来即使是接收手机转成在线短信也不会被发送给接收手机.这个时间期限就叫做有效期.
举个例子来说明如何使用有效期.比如你现在发现电视播放的某个节目非常的有意思,你的朋友没准也想观看一下.因此,你发了一条短信把电视节目告诉你朋友.假设这个节目会持续1个小时.如果他的手机在电视节目结束之后才可用,那么你的短信息对你的朋友就没有用处.在这种情况下,你也许想给你的朋友发送一个有效期是一个小时的短信.如果他的手机在有效期结束前不可用,无线运营商不会把短信发送给你的朋友.
手机应该有一个菜单选项让用户可以设置有效期.设置了以后,手机会在外发信息中自动包含有效期.
2. 信息状态报告(Sent status report)
有时你也许想要知道某个短信是否成功的到达了接收手机.想要获得这个信息,需要在短信中设置一个标识位来告诉短信服务中心你想要一个关于这条短信送达的状态报告.状态报告会以一条短信的形式发送给你.
手机应该有一个菜单选项用来设置状态报告特性是否打开.打开了状态报告后,手机会在外发的短信中自动的设置相应的标识位.在大多数的手机和GSM/GRPRS调制解调器上,状态报告特性默认是关闭的.
3. 信息提交报告(submission report)
一条短信离开手机后就到了短信服务中心。当到达短信服务中心后,短信服务中心会给手机返回一个信息提交报告以通知是否有错误或失败(比如,短信息格式不正确,短信服务中心繁忙等).如果没有任何错误或失败,短信服务中心会给手机发回一个正面的提交报告.否则会给手机发回一个反面的提交报告.然后手机可以通知用户信息提交失败了以及失败的原因.
如果经过一段时间后手机没有收到提交报告,就可以认定信息提交报告已经丢失.手机也可以重新发送短信给服务中心.新短信中可以设置标识位来告诉服务中心这条信息已经发送过.如果先前的短信已经提交成功,那么服务中心会忽略掉这条新短信,然后把提交报告发回给手机.这种机制可以防止给接收者多次发送同一条信息.
有时并不会使用消息提交报告机制而是在更底一层用消息提交确认来实现.
4. 消息送达报告(delivery report)
当收到一条短信后,接收手机会给服务中心发回一个消息送达报告来告知服务中心是否有错误和失败(例如因为:不支持的短信格式,存储空间已满等).这个过程对手机用户是透明的(也就是说用户无需关心或做什么设置,程序会自动处理).如果没有错误或失败,接收手机会给服务中心发回一个积极的送达报告.否则就会发送一个消极的送达报告.
如果发送者先前请求过状态报告,那么服务中心当收到接收者发回来的送达报告时就会给发送者发送状态报告.
如果经过一段时间后服务中心没有收到送达报告,会认定送达报告已经丢失.服务中心会给接收者重新发送短信.
有时并不使用消息送达报告机制,而是在更底一层使用消息送达确认.
补充:
信息的提交报告和送达报告对用户是透明的,也就是说用户无需关心,手机会自动处理,这是协议中必须要做的,因此也不会给出选项来打开或关闭.
有些手机会把送达报告当作选项(use delivery report),这其实是状态报告(sent status report),当打开了以后会收到信息发送的状态报告,而不是上面提及的送达报告.有些手机也称为短信回执,但都指的是状态报告.
另外需要指出的是,对于某些运营商发送状态报告(或者短信回执)是需要额外付费开通业务的.
作者:hitlion2008 发表于2013-3-2 12:22:27
原文链接