首页> 中国专利> PCS短消息系统发送短消息的方法

PCS短消息系统发送短消息的方法

摘要

一种PCS短消息系统发送短消息的方法,短消息中心接收短消息实体发送的短消息后,给指定的用户发送,其特征在于,在发送前对短消息是否是超长短消息进行判断;若否,直接发送;若是,将超长短消息整段存放在数据库中,从起始位置拆分出一段发送;然后对剩下部分是否是超长短消息进行判断,若否,直接发送;若是,再拆出一段发送,直到发送完毕。也可以在拆分后逐段发送。在各消息段全部发送完毕后,才进行计费等后续处理。提高了短信中心的处理效率,也保证了系统的可靠性和稳定性。尤为关键的是,这种拆分方法对于网络和手机终端没有额外的要求,由短消息中心就完全能够保证长短消息的正确拆分。

著录项

  • 公开/公告号CN1571541A

    专利类型发明专利

  • 公开/公告日2005-01-26

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200410027024.2

  • 发明设计人 方炜;戈敏霞;

    申请日2004-04-22

  • 分类号H04Q7/22;

  • 代理机构深圳市楼外楼专利事务所;

  • 代理人曹建军

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦A座6层

  • 入库时间 2023-12-17 15:51:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-14

    未缴年费专利权终止 IPC(主分类):H04Q7/22 授权公告日:20070704 终止日期:20190422 申请日:20040422

    专利权的终止

  • 2007-07-04

    授权

    授权

  • 2005-03-23

    实质审查的生效

    实质审查的生效

  • 2005-01-26

    公开

    公开

说明书

技术领域

本发明涉及移动通讯的短消息领域,尤其涉及PCS短消息系统对于超长短消息的发送。

背景技术

随着PCS的广泛应用,PCS的短消息也得到越来越广泛的应用。PCS的短消息系统的组成如图1所示,短信系统一般由短消息中心和外部短消息实体(ESME)两大部分组成,短消息中心分为业务处理中心模块、操作维护模块(OMM)、计费模块(BM)和代理模块(SMPP)组成,负责短消息的存储转发工作。外部短消息实体ESME通过SMPP协议经由SMPP Agent接入短信中心,提供各种扩展业务。

随着业务的扩展和多样化,运营商会提供各种各样的业务供用户选择使用,而这些业务均需通过外部短信实体ESME与PCS短信中心相连,以短信的形式向用户提供。短信实体和短信中心通过SMPP协议进行通讯,短信中心对这些外部消息实体提交的消息进行存储和转发,将这些消息发送到终端用户。由于目前PCS网络的空中接口的限制,一条短消息的内容最长只能是116个字节也就是最多58个汉字或者116个英文字符,而实际的应用中这些外部消息实体发送的消息往往超过这个限制,最多的时候可以达到254个字节,短信中心对于这种超长的消息就不能简单的进行下发,而需要进行消息拆包后才能下发,否则终端用户收到的消息就会不完整。对于长消息的拆分,有几个难点:首先是拆分后的消息用户终端能够正确的进行显示,没有乱码的现象;二是拆分后的消息应该按照先后顺序被用户接收;三是长消息拆分后只能按照一条普通短信的资费来进行收费,并且要在用户已经成功接收到所有的消息后才能计费。由于这三个条件使得长消息的发送在实现上有一定的难度。

发明内容

本发明要解决的技术问题是针对现有技术存在的缺陷,提供一种新的PCS短消息系统中对于超长消息进行发送的一种方法。

本发明的技术方案为:短消息中心接收短消息实体发送的短消息后,给指定的用户发送,其特征在于,在发送前对短消息是否是超长短消息进行判断;若否,直接发送;若是,将超长短消息整段存放在数据库中,从起始位置拆分出一段发送;然后对剩下部分是否是超长短消息进行判断,若否,直接发送;若是,再拆出一段发送,直到发送完毕。

所述拆分,对于不同的编码类型的消息体,按照不同方式拆分。如果短消息都是单字节编码,可以直接拆分而不必进行扫描,用扫描的方式也可。如果短消息的编码是中文编码,那么要用扫描的方式,在空中接口允许的短消息内容的最大长度范围内,记录单字节编码的字符(如英文、数字等)个数,根据单字节字符数的奇偶性来决定本次发送的消息段的长度,如果是空中接口允许的最大长度-1还是就是空中接口允许的最大长度,从而保证不会出现乱码。

在本发明中,将每次拆分下的短消息段的起始偏移量和长度记录下来,后一段的起始偏移量等于上一段的起始偏移量加上前一段的长度,最后一段的起始偏移量加上长度等于整个短消息的长度。

本发明的技术方案可以是:短消息中心接收短消息实体发送的短消息后,给指定的用户发送,其特征在于,在发送前对短消息是否是超长短消息进行判断;若否,直接发送;若是,将超长短消息整段存放在数据库中并用扫描的方式拆分;对拆分成的短消息段,用每一段的起始偏移量和长度来标记,后一段的起始偏移量的值为前一段的起始偏移量加上前一段的长度;然后按拆分后的消息段逐段发送。

本发明技术方案中的计费,是在各消息段全部发送完毕后,才进行计费等后续处理。

采用本发明技术方案,并没有增加短消息中心数据库方面存储短消息的处理,对于短消息存储而言还只是一条短消息,而且对长消息的扫描也最多只需要进行3次扫描,提高了短信中心的处理效率,也保证了系统的可靠性和稳定性。尤为关键的是,这种拆分方法对于网络和手机终端没有额外的要求,由短消息中心就完全能够保证长短消息的正确拆分。

附图说明

图1示出了PCS短消息系统的组成;

图2示出了短信中心发送长消息的流程图;

图3示出了长消息没有拆分前数据库中记录的情况;

图4示出了长消息拆分后发送第一段消息时数据库中记录的情况;

图5示出了长消息的第一段发送成功后,进行第二段消息拆分时数据库中记录的情况;

图6示出了发送长消息最后一段消息时数据库中记录的情况。

具体实施方式

在短信中心原有的存储短消息信息的基础上增加长消息的两个属性项:当前发送的消息段的长度(cur_UDLen)和当前发送消息的起始偏移量(cur_UDOffset),增加这两个属性项可以在短消息系统中将长消息整段存放在数据库中,仅根据偏移量和当前消息的长度就可以获取当前要发送的消息内容,在消息发送失败的情况下进行重试时可以不必要对整个消息再次进行扫描就可以获取要发送的消息内容和长度;拆分后的消息的发送顺序也由这两个属性项来保证,只有当前一段消息正确被用户接收到之后,才会进行下一段消息的发送;当所有的消息段都被用户成功接收后,短信中心才会进行计费,并且只按照一条消息的费用来进行收取。如果在发送的过程中,某一段消息发送永久失败了,那么后续的消息段不再进行发送,并且短信中心不会对这条长消息收取费用,因为用户并没有完整的收到所有的消息。

由于进行拆分时的单段长度和实际的空中接口允许传送的最大消息长度密切相关,下面的描述以空中接口是116字节进行。

本发明的一种实施方式是:

当要发送的新的一段消息的长度超长时,从当前的短消息偏移量开始往后扫描。由于消息体中存在单字节和双字节编码的字符,因此进行扫描是为了保证发送的消息段中没有乱码存在。扫描的原则是:在空中接口允许的短消息内容的最大长度(目前是116个字节)范围内,记录单字节编码的字符的个数,根据单字节编码的字符数的奇偶性来决定本次发送的消息段的长度是空中接口允许的最大长度-1还是就是空中接口允许的最大长度。

当前发送的消息段的长度(cur_UDLen)和当前发送消息的起始偏移量(cur_UDOffset)这两个属性的值记录在短信中心的数据库中,当短信中心收到终呼消息的响应后,根据这两个值就可以知道当前发送的消息是哪一段的消息,并且根据终呼消息响应中的寻呼结果来判断这段消息是否已经被用户接受。如果用户已经收到这段消息,那么短信中心修改这两个属性值,然后从改后的当前发送消息的起始偏移量(cur_UDOffset)开始新的一段消息的扫描和发送,同时记录本次发送消息段的长度(ur_UDLen)。

本发明的另一种实施方式是:用扫描的方式先将超长短消息拆分,然后逐段发送。给每一消息段的也用起始偏移量和长度记录。

下面将结合附图,举例说明本发明第一种实施方式。第二种实施方式除上述区别外,其他部分与第一种实施方式相同,不再详细描述。

目前的超长消息都是从外部消息实体发送到短信中心的,如图2所示,短信中心收到外部消息实体提交的短消息,经过鉴权等一系列的处理后,给消息中指定的用户发送该条消息。在进行终呼之前,判断该消息是否是超长消息,如果是则短信中心要进行拆分,按顺序分段发送消息,如果不超长的话就直接发送。具体的拆分方案如下:

假设短信中心收到一条长度为254个bytes的超长消息(254个bytes是smpp3.4协议中所定义的SUBMIT_SM所允许的最大消息体),那么短信中心对该条短信进行下发的步骤如下:

第一步:在短消息的数据库中保存好该条短消息,其中UDLen记录短消息的长度,cur_UDOffset和cur_UDLen均为0,这是拆分前的初始状态,参见图3;

第二步:进行第一段消息的拆分,此时从当前的短消息偏移量cur_UDOffset处开始对短消息进行扫描,获取此次下发的消息长度。在cur_UDLen中记录此次下发的消息长度,如图4所示,cur_Offset+cur_UDLen之间的消息就是本次下发的消息内容,当消息下发不成功需要进行重试时,根据cur_offset和cur_UDLen就可以知道需要重试的消息是哪一段的消息

第三步:一段消息发送成功后,改变短消息的偏移量cur_UDOffset,当前的cur_UDOffset为上次的偏移量往后挪上次发送的消息字节数,即cur_UDOffset=cur_UDOffset+cur_UDLen,然后如果剩下的消息还需要进行拆分的话,按照第二步的方法进行消息扫描,确定本次下发的消息段,如图5所示;

第四步:当最后一段消息发送成功后,短消息表中的当前偏移量cur_UDOffset和当前消息长度cur_UDLen的情况如图6所示,此时通过判断cur_UDOffset和cur_UDLen之和是否等于短消息的长度UDLen就可以知道这条长消息是否所有的消息段都已经发送成功,然后进行计费等后续的处理;

至此,一条长消息通发送已经全部完毕,如果在发送消息段的过程中有任意一段消息发送永久失败,那么后续的消息就不再进行发送,也不进行计费处理,所有长消息拆分发送时的顺序保证和发送成功才计费的保证都依据(cur_UDOffset+cur_UDLen)==UDLen这个等式是否成立。

综上所述,采用本发明技术方案,只在数据库中增加了两个字段就可以非常简单的实现PCSSC中对于长消息的处理问题,而且保证了短信中心的系统处理能力和效率。在G网和C网的短信系统中,还没有处理长消息发送的能力,只是通过和ESME的协议规定不能发送超长消息到短信中心,因此如果需要的话,这个方明也可以在G网和C网中得到应用。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号