发送分包消息的方法和装置制造方法
【专利摘要】本发明提供了一种发送分包消息的方法和装置,所述方法包括:接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息;确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端;向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值设置为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。使用本发明,SMSC在接收到主叫终端发送的分包消息后,利用多发技术将这些分包消息发送给被叫终端,从而节省信令资源、提高信令利用率。
【专利说明】发送分包消息的方法和装置
【技术领域】
[0001]本发明涉及通信网络【技术领域】,尤其涉及发送分包消息的方法和装置。
【背景技术】
[0002]在移动通信网络中,当主叫终端向被叫终端发送短消息时,单条短消息的最长长度是140个字节,其中,该主叫终端可以是服务提供商(Service Provider,SP)或者移动终端。
[0003]如果要发送的消息长度超过140个字节,主叫终端要把长消息拆分为多条分包消息后提交给短消息服务中心(Short Message Service Center, SMSC)。拆分时,主叫终端会在每个分包消息前面添加一个用户消息头(User Data Header, UDH),该UDH用于标识这是一个拆分后的分包消息,并通过三个TLV (tag-length-value)格式的参数分别携带拆分前长消息的标识、拆分后的分包消息总数、当前分包消息序号信息,被叫终端接收到分包消息后,根据UDH识别出这是一个拆分后的消息,并把多个分包消息组合为一整条长消息。
[0004]SMSC接收到主叫终端提交的短消息后,可以根据短消息中携带的被叫终端号码为该被叫终端创建一个消息队列,将需要下发给所述被叫终端的短消息缓存在该消息队列里。当SMSC需要给所述被叫终端发送消息时,如果被叫终端对应的消息队列中有多条消息等待下发,SMSC会在每个消息中携带more_msg_to_send参数,消息队列的队尾消息中该参数设置为FALSE,其他消息中该参数设置为TRUE,然后下发给被叫终端归属移动交换中心(Mobile Switching Center, MSC),被叫终端归属 MSC 根据 more_msg_to_send 参数的值为TRUE将保持与SMSC的信令会话通道,通过此通道,可以把要发送给同一个被叫终端的消息陆续下发,从而减少资源占用:一方面减少了 SMSC与被叫终端归属MSC间的通道占用数,另一方面被叫终端归属MSC保持被叫终端的寻呼信息,减少被叫终端归属MSC寻呼被叫终端的信令。这个过程称为“多发”。当消息队列的所有消息发送完毕后,删除该消息队列。
[0005]现有技术中,SMSC是根据下发消息时、消息队列中是否具有多条消息等待下发判断是否需要“多发”。如前面所讨论的,主叫终端提交的长消息往往是拆分成多个分包消息分步依次上传到SMSC的,如果SMSC下发当前分包消息时,SMSC判断出消息队列中只有一条消息,则不会采用“多发”方式下发。因此,现有技术的方案中,当主叫终端发送给被叫终端的是长消息时,存在多个分包消息单独下发的情况,占用较多的信令资源,造成资源的浪费。
【发明内容】
[0006]本发明的实施例提供的发送分包消息的实现方法和装置,能够解决现有技术中将一个长消息的多个分包消息单独下发,占用较多信令资源的问题。
[0007]第一方面,本发明实施例提供了发送分包消息的短消息服务中心SMSC,所述SMSC包括:接收单元,用于接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息;确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端;发送单元,用于根据所述确定单元确定所述短消息是分包消息、所述分包消息所属的长消息没有接收完全且还有分包消息等待发送给所述被叫终端的结果,向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
[0008]在第一方面的第一种可能的实现方式中,所述接收单元,进一步的用于接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息;所述确定单元,进一步的用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全,以及没有其他消息等待发送给所述被叫终端;所述发送单元,进一步的用于根据所述确定单元确定所述另一短消息是分包消息、所述分包消息所属的长消息已经接收完全且没有其他消息等待发送给所述被叫终端的结果,向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
[0009]结合第一方面的第一可能的实现方式,在第二种可能的实现方式中,所述接收单元用于接收主叫终端发送给被叫终端的短消息包括:所述接收单元,用于接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息;所述确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号;所述确定单元,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。
[0010]结合第一方面的第一可能的实现方式,在第三种可能的实现方式中,所述确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目;所述确定单元,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
[0011]第二方面,本发明实施例提供了发送分包消息的方法,所述方法包括:接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息;确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端;向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
[0012]在第二方面的第一种可能的实现方式中,所述方法之后还包括:接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息;确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全,并确定没有其他消息等待发送给所述被叫终端;向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
[0013]结合第二方面的第一可能的实现方式,在第二种可能的实现方式中,所述接收主叫终端发送给被叫终端的短消息具体为:接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息;所述确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号;所述确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。
[0014]结合第二方面的第一可能的实现方式,在第三种可能的实现方式中,所述确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目;所述确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
[0015]由上述本发明的实施例提供的技术方案可以看出,通过SMSC接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息;确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端,向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息,从而利用短消息协议现有的多发技术发送分包消息,达到节省信令资源、提高信令利用率的效果。
【专利附图】
【附图说明】
[0016]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明实施例提供的发送分包消息的SMSC结构图;
[0018]图2为本发明实施例提供的发送分包消息的实现方法流程图;
[0019]图3为本发明实施例提供的发送分包消息的实现信令流程图;
[0020]图4为本发明实施例提供的基于计算机系统的SMSC结构图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]本发明一个实施例提供了用于发送分包消息的SMSC,请参照图1,该SMSC100包括:
[0023]接收单元101,用于接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息;
[0024]确定单元102,用于确定所述接收单元101接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端;
[0025]发送单元103,用于根据所述确定单元102确定所述短消息是分包消息、所述分包消息所属的长消息没有接收完全且还有分包消息等待发送给所述被叫终端的结果,向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
[0026]可选的,所述接收单元101,进一步的用于接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息;
[0027]所述确定单元102,进一步的用于确定所述接收单元101接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全,以及没有其他消息等待发送给所述被叫终端;
[0028]所述发送单元103,进一步的用于根据所述确定单元102确定所述另一短消息是分包消息、所述分包消息所属的长消息已经接收完全且没有其他消息等待发送给所述被叫终端的结果,向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
[0029]可选的,所述接收单元101用于接收主叫终端发送给被叫终端的短消息包括:所述接收单元101,用于接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息;
[0030]所述确定单元102,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元102,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号;
[0031]所述确定单元102,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元102,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。
[0032]可选的,所述确定单元102,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元102,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目;
[0033]所述确定单元102,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元102,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
[0034]可选的,所述SMSC进一步的还包括保存单元104,用于在所述接收单元101接收主叫终端发送给被叫终端的短消息之后,将所述短消息保存在消息队列;
[0035]所述SMSC进一步的还包括消息队列管理单元105,用于在所述发送单元103向所述被叫终端的归属MSC下发所述短消息之后保留所述消息队列;
[0036]所述保存单元104,进一步的还用于,在所述接收单元101接收所述主叫终端发送给所述被叫终端的另一短消息之后,将所述另一短消息保存在所述消息队列;[0037]所述确定单元102,用于确定没有其他消息等待发送给所述被叫终端具体为:所述确定单元102,用于确定所述消息队列中只包含所述另一短消息。
[0038]本发明一个实施例提供了发送分包消息的方法,应用于短消息服务中心SMSC,请参照图2,该方法包括:
[0039]步骤201:接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息。
[0040]步骤202:确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端。
[0041]步骤203:向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
[0042]可选的,步骤203之后还包括:接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息;确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全,并确定没有其他消息等待发送给所述被叫终端;向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
[0043]其中,步骤201中接收主叫终端发送给被叫终端的短消息具体为:接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息;且步骤202中确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号;且步骤203中确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。或者,步骤202中确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目;且步骤203中确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
[0044]可选的,步骤201中接收主叫终端发送给被叫终端的短消息之后还包括:将所述短消息保存在消息队列;且步骤203中向被叫终端的归属MSC下发所述短消息之后还包括:保留所述消息队列;步骤203之后所述接收所述主叫终端发送给所述被叫终端的另一短消息之后还包括:将所述另一短消息保存在所述消息队列;所述确定没有其他消息等待发送给所述被叫终端具体为:确定所述消息队列中只包含所述另一短消息。
[0045]本发明一个实施例提供了发送分包消息的信令流程图,请参照图3,详细流程描述如下。
[0046]步骤301:主叫终端将需要发送的长消息拆分成分包消息序列,以便依次下发所述分包消息序列中的分包消息;
[0047]其中,所述分包消息中包含UDH,所述UDH包含三个TLV (tag-length-value)格式的参数 sar_msg_ref_num>sar_total_segments>sar_segment_seqnum,分另Ij对应三个信息:拆分前的长消息标识、拆分后的分包消息总数、当前分包消息序号。
[0048]其中,所述主叫终端可以是SP或者主叫移动终端;
[0049]步骤302:主叫终端向SMSC发送第一消息,所述第一消息是步骤301中拆分后分包消息序列的第一个分包消息或序列中间的一个分包消息。
[0050]当所述主叫终端为SP时,所述发送第一消息具体为采用点到点短消息(shortmessage peer to peer, SMPP)协议的Submit_SM或者Data_SM消息发送所述第一消息。
[0051]当所述主叫终端为移动终端时,所述发送第一消息具体为采用移动应用部分(Mobile Application Part, MAP)协议的 MAP-MO-FORWARD-SHORT-MESSAGE 消息或者MAP-FORffARD-SHORT-MESSAGE消息发送所述第一消息。
[0052]步骤303:SMSC接收到所述第一消息,判断所述第一消息是否为分包消息、如果是则进一步判断所述分包消息所属的长消息是否接收完全,在确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端之后,向被叫终端的归属MSC发送所述第一消息,并在所述第一消息中包含更多消息待发送标识more_msg_to_send且将其值设置为TRUE,所述更多消息待发送标识more_msg_to_send的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端。
[0053]在本实施例的第I个例子中,主叫终端为SP,所述主叫终端依次向SMSC发送分包消息时,没有接收到上一个分包消息的发送响应就直接发送当前分包消息,因为网络传输的原因,有可能SMSC先接收到当前分包消息、后接收到上一个分包消息,即可能出现SMSC接收到的分包消息乱序的情况。这种情况下,SMSC需要在每接收到一个分包消息后,根据分包消息中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,所述SMSC接收到所述第一消息具体为:所述SMSC接收到主叫终端通过SMPP协议发送的所述第一消息;所述确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端具体为:确定所述第一消息中包含UDH,根据所述UDH中包含的长消息的标识以及拆分后的分包消息总数,确定所述UDH中包含的分包消息总数大于记录的当前接收到的所述长消息的分包消息数目。
[0054]在本实施例的第2个例子中,主叫终端为移动终端,所述主叫终端依次向SMSC发送分包消息时,只有接收到上一个分包消息的发送响应后才发送下一个分包消息,因此不会出现SMSC接收到的分包消息乱序的情况。这种情况下,所述SMSC接收到所述第一消息具体为:所述SMSC接收到主叫终端通过MAP协议发送的所述第一消息,所述确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端具体为:确定所述第一消息中包含Μ)Η,且所述UDH中包含的拆分后的分包消息总数值大于当前分包消息序号值。可选的,在该第2个例子中,也可以采用第I个例子中的方式确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端,即SMSC在每接收到一个分包消息后,根据分包消息中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,所述确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端具体为:确定所述第一消息中包含UDH,根据所述UDH中包含的长消息的标识以及拆分后的分包消息总数,确定所述UDH中包含的分包消息总数大于记录的当前接收到的所述长消息的分包消息数目。
[0055]其中,所述向被叫终端的归属MSC发送所述第一消息之前,SMSC判断当前是否已经存在SMSC与所述MSC之间的信令通道,如果还没有所述信令通道,则首先建立SMSC与所述MSC之间的信令通道,以便通过所述信令通道发送所述第一消息;如果已经存在所述信令通道,则可以直接使用该信令通道发送所述第一消息。在本实施例中,当所述第一消息是分包消息序列的第一个分包消息时,可能还没有SMSC与MSC之间信令通道,需要建立所述信令通道;当所述第一消息是分包消息序列的中间分包消息时,发送完上一个分包消息后会保留所述信令通道,可以直接使用该信令通道。
[0056]其中,所述向被叫终端的归属MSC发送所述第一消息具体为采用MAP协议的MAP-MT-FORffARD-SHORT-MESSAGE 消息发送所述第一消息。
[0057]可选的,SMSC会将接收到主叫终端发送的短消息保存在被叫终端对应的消息队列中;因此在SMSC接收到所述第一消息后,还需要将所述第一消息保存在被叫终端对应的消息队列中;在所述确定所述第一消息是分包消息且所述分包消息所属的长消息没有接收完全,并且向被叫终端的归属MSC发送所述第一消息之后,无论所述消息队列中是否还有其他未发送的消息,都需要保留所述消息队列。其中,将所述第一消息保存在被叫终端对应的消息队列中具体为:如果当前已经存在被叫终端对应的消息队列,则直接将所述第一消息保存在所述消息队列中,如果当前还没有被叫终端对应的消息队列,则需要新创建一个消息队列然后将所述第一消息保存在所述消息队列中。通过以上步骤,在SMSC判断后续还有其他分包消息需要发送给所述被叫终端时,还会保留所述消息队列,因此可以减少接收到后续分包消息时重新创建消息队列带来的系统开销,加快了分包消息处理速度。
[0058]步骤304:所述被叫终端的归属MSC检测到所述第一消息中包含更多消息待发送标识more_msg_to_send且值为TRUE,向所述被叫终端发送所述第一消息,并且在发送所述第一消息后,根据所述更多消息待发送标识more_msg_to_send的值为TRUE保持与SMSC之间的信令通道,以及保留所述被叫终端的寻呼信息。
[0059]其中,所述向所述被叫终端发送所述第一消息之前,MSC判断当前是否已经保存有所述被叫终端的寻呼信息,如果还没有,则首先获取所述被叫终端的寻呼信息,以便通过所述寻呼信息向所述被叫终端发送所述第一消息;如果已经有,则可以直接使用该寻呼信息向所述被叫终端发送所述第一消息。[0060]其中,所述向所述被叫终端发送所述第一消息具体为采用MAP协议向被叫终端发送所述第一消息。
[0061]通过本步骤,MSC检测到第一消息中包含更多消息待发送标识more_msg_to_send且值为TRUE以及在向被叫终端发送所述第一消息后,还会保持与SMSC之间的信令通道,以及保留所述被叫终端的寻呼信息,因此SMSC接收到后续分包消息时可以重用该信令通道向所述MSC发送所述后续分包消息,MSC接收到后续分包消息时可以重用该被叫终端的寻呼信息向所述被叫终端发送所述后续分包消息,从而减少了重新建立SMSC与MSC之间的信令通道、重新寻呼被叫终端所需要的信令交互流量,加快了分包消息处理速度。
[0062]步骤305:被叫终端接收到所述第一消息后,向被叫终端的归属MSC返回第一消息发送响应。
[0063]步骤306:被叫终端的归属MSC向SMSC返回第一消息发送响应。
[0064]步骤307 =SMSC向主叫终端返回第一消息发送响应。
[0065]步骤308:主叫终端向SMSC发送第二消息,所述第二消息是步骤301中拆分后分包消息序列的最后一个分包消息。
[0066]其中,所述主叫终端向SMSC发送第二消息的方式参考步骤302中发送第一消息的方式。
[0067]步骤309:SMSC接收到所述第二消息,判断所述第二消息是否为分包消息、如果是则进一步判断所述分包消息所属的长消息是否接收完全,在确定所述第二消息是分包消息、且所述分包消息所属的长消息接收完全之后,利用步骤304保持的SMSC与MSC之间的信令通道向被叫终端的归属MSC发送所述第二消息,所述第二消息包含更多消息待发送标识more_msg_to_send且将其值设置为FALSE,所述更多消息待发送标识more_msg_to_send的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端。
[0068]与前述本实施例的第I个例子相应,具体地,所述确定所述第二消息是分包消息、且所述分包消息所属的长消息接收完全具体为:确定所述第二消息中包含UDH,根据所述UDH中包含的长消息的标识以及拆分后的分包消息总数,查找记录的当前接收到的所述长消息的分包消息数目,确定所述分包消息总数等于当前接收到的所述长消息的分包消息数目。
[0069]与前述本实施例的第2个例子相应,如果步骤303中确定所述第一消息是分包消息、且所述分包消息所属的长消息没有接收完全具体为:确定所述第一消息中包含UDH,且所述UDH中包含的拆分后的分包消息总数值大于当前分包消息序号值;所述确定所述第二消息是分包消息、且所述分包消息所属的长消息接收完全具体为:确定所述第二消息中包含UDH,且所述UDH中包含的拆分后的分包消息总数值等于当前分包消息序号值;如果步骤303中确定所述第一消息是分包消息、且所述分包消息所属的长消息没有接收完全具体为:确定所述第一消息中包含UDH,根据所述UDH中包含的长消息的标识以及拆分后的分包消息总数,确定所述UDH中包含的分包消息总数大于记录的当前接收到的所述长消息的分包消息数目;所述确定所述第二消息是分包消息、且所述分包消息所属的长消息接收完全具体为:确定所述第二消息中包含UDH,根据所述UDH中包含的长消息的标识以及拆分后的分包消息总数,查找记录的当前接收到的所述长消息的分包消息数目,确定所述UDH中包含的分包消息总数等于当前接收到的所述长消息的分包消息数目。[0070]其中,利用步骤304保持的SMSC与MSC之间的信令通道向被叫终端的归属MSC发送所述第二消息具体为=SMSC向被叫终端的归属MSC发送所述第二消息之前判断当前是否已经存在SMSC与所述MSC之间的信令通道,因为步骤304中已经保持了 SMSC与MSC之间的信令通道,直接利用该信令通道发送所述第二消息。
[0071]其中,所述向被叫终端的归属MSC发送所述第二消息具体为采用MAP协议的MAP-MT-FORffARD-SHORT-MESSAGE 消息发送所述第二消息。
[0072]可选的,当SMSC需要将接收到主叫终端发送的短消息保存在被叫终端对应的消息队列时,本步骤中在SMSC接收到所述第二消息后,还需要将所述第二消息保存在被叫终端对应的消息队列中,因为步骤304中已经保留了所述消息队列,所以本步骤直接将所述第二消息保存在所述保留的消息队列中。
[0073]步骤310:所述被叫终端的归属MSC检测到所述第二消息中包含更多消息待发送标识more_msg_to_send且其值为FALSE,利用步骤304中MSC保留的被叫终端的寻呼信息向所述被叫终端发送所述第二消息,并且在发送所述第二消息后,根据所述更多消息待发送标识more_msg_to_send的值为FALSE断开与SMSC之间的信令通道,以及删除所述被叫终端的寻呼信息。
[0074]其中,利用步骤304中MSC保留的被叫终端的寻呼信息向所述被叫终端发送所述第二消息具体为=MSC向所述被叫终端发送所述第二消息之前判断当前是否已经保存有所述被叫终端的寻呼信息,因为步骤304中已经保留了所述被叫终端的寻呼信息,直接利用该被叫终端的寻呼信息向所述被叫终端发送所述第二消息。
[0075]可选的,如果步骤309中将所述第二消息保存在消息队列中,所述被叫终端的归属MSC检测到所述第二消息中包含更多消息待发送标识more_msg_to_send且其值为FALSE之后进一步还包括:所述被叫终端的归属MSC确定所述消息队列中只包含所述另一短消息。从而在保证当前消息队列中没有其他主叫终端发送给该被叫终端的消息时,才在发送所述第二消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。在下发所述第二消息之后可以删除该消息队列。
[0076]其中,所述向所述被叫终端发送所述第二消息具体为采用MAP协议向被叫终端发送所述第二消息。
[0077]通过本步骤,MSC检测到第二消息中包含更多消息待发送标识more_msg_to_send且其值为FALSE以及在向被叫终端发送所述第二消息后,确认后续没有其他消息等待发送给所述被叫终端,从而断开与SMSC之间的信令通道,以及删除所述被叫终端的寻呼信息,从而将占用的信令资源释放,避免资源的浪费。
[0078]步骤311:被叫终端接收到所述第二消息后,向被叫终端的归属MSC返回第二消息发送响应。
[0079]步骤312:被叫终端的归属MSC向SMSC返回第二消息发送响应。
[0080]步骤313 =SMSC向主叫终端返回第二消息发送响应。
[0081]在该实施例中,SMSC每接收到一个主叫终端发送的短消息,只要判断出该短消息是分包消息且所述分包消息所属的长消息没有接收完全,就在向被叫终端的归属MSC转发该短消息时,添加更多消息待发送标识more_msg_to_send且其值设置为TRUE,所述更多消息待发送标识m0re_msg_t0_send的值设置为TRUE用于指示还有更多消息在等待发送给所述被叫终端,从而使得该MSC能根据所述更多消息待发送标识more_msg_to_send的值为TRUE,在向被叫终端发送该短消息之后保持与SMSC之间的信令通道以及保留被叫终端的寻呼信息,从而节省了信令资源和计算资源。
[0082]本发明实施例中的SMSC可以基于计算机系统来实现,图2、图3所示的方法均可在基于计算机系统的SMSC来实现。图4示出了基于计算机系统来实现的SMSC的实施例。本实施例中SMSC可以包括:处理器401、存储器402和通信接口 403,其中:
[0083]通信接口 403,用于与主叫终端和被叫终端的归属MSC通信。SMSC与主叫终端、被叫终端的归属MSC之间交互的消息均通过通信接口 403发送和接收。具体地,通信接口403用于接收主叫终端发送的分包消息以及向被叫终端的归属MSC发送该分包消息;存储器402用于存储程序指令;处理器401用于通信接口 403从主叫终端接收到短消息之后,调用存储器402中存储的程序指令,执行以下操作:确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端;向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
[0084]其中,处理器401可以是中央处理器(central processing unit, CPU)、专用集成电路(application-specific integrated circuit, ASIC)等。其中,本实施例中的HostingCSE可以包括总线404。处理器401、存储器402以及通信接口 403之间可通过总线404连接并通信。其中,存储器402可以包括:随机存取存储器(random access memory, RAM),只读存储器(read-only memory, ROM),磁盘等具有存储功能的实体。
[0085]处理器401还可以用于执行方法实施例中图2、图3描述的SMSC的各步骤,本发明实施例在此不再详述。
[0086]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1.一种发送分包消息的短消息服务中心SMSC,其特征在于,所述SMSC包括: 接收单元,用于接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息; 确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端; 发送单元,用于根据所述确定单元确定所述短消息是分包消息、所述分包消息所属的长消息没有接收完全且还有分包消息等待发送给所述被叫终端的结果,向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
2.根据权利要求1所述的SMSC,其特征在于: 所述接收单元,进一步的用于接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息; 所述确定单元,进一步的用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已 经接收完全,以及没有其他消息等待发送给所述被叫终端; 所述发送单元,进一步的用于根据所述确定单元确定所述另一短消息是分包消息、所述分包消息所属的长消息已经接收完全且没有其他消息等待发送给所述被叫终端的结果,向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
3.根据权利要求2中所述的SMSC,其特征在于: 所述接收单元用于接收主叫终端发送给被叫终端的短消息包括:所述接收单元,用于接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息; 所述确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号; 所述确定单元,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。
4.根据权利要求2所述的SMSC,其特征在于: 所述确定单元,用于确定所述接收单元接收到的所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:所述确定单元,用于确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目; 所述确定单元,用于确定所述接收单元接收到的所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:所述确定单元,用于确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
5.根据权利要求2、3或4所述的SMSC,其特征在于: 所述SMSC进一步的还包括保存单元,用于在所述接收单元接收主叫终端发送给被叫终端的短消息之后,将所述短消息保存在消息队列; 所述SMSC进一步的还包括消息队列管理单元,用于在所述发送单元向所述被叫终端的归属MSC下发所述短消息之后保留所述消息队列; 所述保存单元,进一步的还用于,在所述接收单元接收所述主叫终端发送给所述被叫终端的另一短消息之后,将所述另一短消息保存在所述消息队列; 所述确定单元,用于确定没有其他消息等待发送给所述被叫终端具体为:所述确定单元,用于确定所述消息队列中只包含所述另一短消息。
6.一种发送分包消息的方法,其特征在于,所述方法包括: 接收主叫终端发送给被叫终端的短消息,所述短消息为长消息的一个分包消息; 确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端; 向所述被叫终端的归属移动交换中心MSC下发所述短消息,所述短消息中包含更多消息待发送标识且值设置为TRUE,所述更多消息待发送标识的值设置为TRUE用于指示还有更多消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为TRUE在发送所述短消息后保持与短消息服务中心SMSC之间的信令通道以及保留所述被叫终端的寻呼信息。
7.根据权利要求6所述的方法,所述方法之后还包括: 接收所述主叫终端发送给所述被叫终端的另一短消息,所述另一短消息为所述长消息的另一个分包消息; 确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全,并确定没有其他消息等待发送给所述被叫终端; 向所述被叫终端的归属MSC下发所述另一短消息,所述另一短消息包含更多消息待发送标识且值设置为FALSE,所述更多消息待发送标识的值设置为FALSE用于指示没有其他消息等待发送给所述被叫终端,以便于所述MSC根据所述更多消息待发送标识的值为FALSE在发送所述另一短消息后断开与SMSC之间的信令通道以及删除所述被叫终端的寻呼信息。
8.根据权利要求7所述的方法,其特征在于, 所述接收主叫终端发送给被叫终端的短消息具体为:接收所述主叫终端通过移动应用部分MAP协议发送给所述被叫终端的所述短消息; 所述确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述分包消息总数大于所述当前分包消息序号; 所述确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含所述长消息拆分后的分包消息总数和当前分包消息序号,确定所述另一短消息的UDH中包含的分包消息总数等于所述另一短消息的UDH中包含的当前分包消息序号。
9.根据权利要求7所述的方法,其特征在于, 所述确定所述短消息是分包消息且所述分包消息所属的长消息没有接收完全,还有分包消息等待发送给所述被叫终端包括:确定所述短消息中包含用户消息头UDH,所述UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述分包消息总数大于所述记录的当前接收到的所述长消息的分包消息数目; 所述确定所述另一短消息是分包消息且所述分包消息所属的长消息已经接收完全包括:确定所述另一短消息中包含用户消息头UDH,所述另一短消息的UDH中包含长消息的标识、所述长消息拆分后的分包消息总数,根据所述另一短消息的UDH中包含的长消息标识,记录当前接收到的所述长消息的分包消息数目,确定所述另一短消息的UDH中包含的分包消息总数等于所述记录的当前接收到的所述长消息的分包消息数目。
10.根据权利要求7、8或9所述的方法,其特征在于: 所述接收主叫终端发送给被叫终端的短消息之后还包括:将所述短消息保存在消息队列; 所述向被叫终端的归属MSC下发所述短消息之后还包括:保留所述消息队列; 所述接收所述主叫终端发送给所述被叫终端的另一短消息之后还包括:将所述另一短消息保存在所述消息队列; 所述确定没有其他消息等待发送给所述被叫终端具体为:确定所述消息队列中只包含所述另一短消息。
【文档编号】H04W4/14GK103702300SQ201310743278
【公开日】2014年4月2日 申请日期:2013年12月28日 优先权日:2013年12月28日
【发明者】殷海波, 刘晓明, 贺谷勋 申请人:华为技术有限公司