发明内容
鉴于上述的分析,本发明旨在提供一种集群呼叫状态管理方法及装置,用以解决现有技术中存在的集群呼叫状态管理不完善的问题。
本发明的目的主要是通过以下技术方案实现的:
本发明提供了一种集群呼叫状态管理方法,其特征在于,包括:
步骤A:非呼叫状态时,设置终端所有的呼叫状态信息均为无效值;
步骤B:当该终端发起主动呼叫或者被动接入呼叫时,根据从呼叫中获取到的呼叫类型和呼叫属性设置相应的起呼呼叫状态信息;
步骤C:当呼叫状态变更时,该终端对系统侧发来的呼叫状态变更消息进行解析,并根据解析后得到的新的呼叫状态信息更新当前呼叫状态信息。
进一步地,所述步骤A具体包括:
预设置一个常量标识为无效类型,终端初次开机和每次通话结束时将所有的呼叫状态信息都设置为无效类型。
进一步地,当终端发起主动呼叫时,所述步骤B具体包括:
判断本次发起的呼叫是否为集群紧急呼叫,如果是,直接设置起呼呼叫属性为紧急呼叫,否则通过分析起呼参数获取并设置起呼呼叫属性;
通过分析起呼号码获取并设置起呼呼叫类型。
进一步地,所述步骤C具体包括:
当该终端主动向系统侧申请呼叫状态变更或者当其他终端申请呼叫状态变更时,该终端接收系统侧发来的状态变更消息并对接收到的状态变更消息进行解析;
根据解析后得到的新的呼叫状态信息更新当前呼叫状态信息,并提示给该终端的用户。
其中,所述呼叫状态变更包括下述情况之一:
申请或释放话权、升级紧急呼叫、紧急呼叫降级。
本发明还提供了一种集群呼叫状态管理装置,所述装置设置于终端中,包括:协议层模块和UI即用户界面层模块,其中,
所述协议层模块,用于在非呼叫状态时,设置该终端所有的呼叫状态信息为无效值;并且当该终端发起主动呼叫或者被动接入呼叫时,所述协议层模块还用于根据从呼叫中获取到的呼叫类型和呼叫属性设置相应的起呼呼叫状态信息;并且当呼叫状态变更时,所述协议层模块还用于对从系统侧接收到的呼叫状态信息进行解析,并将解析后得到的新的呼叫状态信息发送给所述UI层模块;
所述UI层模块,用于根据所述协议层模块发来的新的呼叫状态信息更新当前呼叫状态信息。
进一步地,所述协议层模块具体用于,预设置一个常量标识为无效类型,在终端初次开机和每次通话结束时将所有的呼叫状态信息都设置为无效类型。
进一步地,当终端发起主动呼叫时,所述协议层模块具体用于,判断本次发起的呼叫是否为集群紧急呼叫,如果是,直接设置起呼呼叫属性为紧急呼叫,否则通过分析起呼参数获取并设置起呼呼叫属性;然后通过分析起呼号码获取并设置起呼呼叫类型。
进一步地,当该终端主动通过UI层模块触发所述协议层模块向系统侧申请呼叫状态变更或者当其他终端申请呼叫状态变更时,所述协议层模块具体用于,接收系统侧发来的状态变更消息并对接收到的状态变更消息进行解析,然后将解析后得到的新的呼叫状态信息转发给所述UI层模块;所述UI层模块还用于,根据所述协议层模块发来的新的呼叫状态信息更新当前呼叫状态信息,并提示给终端用户。
本发明有益效果如下:
本发明使得用户能够很容易的了解当前终端准确的状态,而且在终端状态发生改变时,也能及时的更新。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。为了清楚和简化目的,当其可能使本发明的主题模糊不清时,将省略本文所描述的器件中已知功能和结构的详细具体说明。
首先结合附图1到附图3对本发明实施例所述方法进行详细说明。
本发明实施例中,终端只保留一份当前呼叫的状态信息,终端中与呼叫状态信息相关的模块是UI(User Interface,用户界面)层模块和协议层模块,UI层模块主要功能是显示呼叫状态信息,协议层模块主要与系统侧交互,分析呼叫状态信息,两个模块使用同一份状态信息,保证了状态的一致性。
为了保证呼叫状态信息的准确性,本发明实施例规定当终端处于非呼叫状态时,需要将所有的呼叫状态信息(包括:呼叫类型、呼叫属性、话权状态和声音设备状态等)置为无效值,这样可以保证各个呼叫的独立性,两个独立的呼叫不会相互影响。具体实现时可以定义一个常量标识为INVALID_TYPE(无效类型),当终端初次开机和每次通话结束都把呼叫状态信息设置为INVALID_TYPE。
当终端主动发起呼叫或被动接入呼叫时,需要分析并确定初始呼叫状态信息,终端主动发起呼叫时可以获取的呼叫状态信息包括呼叫类型和呼叫属性;终端被动接入呼叫时,由于呼叫刚建立时,只能得到比较少的呼叫状态信息,如使用GID(Group ID,组ID)寻呼的就表示当前是组呼,大部分呼叫状态信息是通过后续的状态信息更新获得。
如图1所示,图1为终端主动发起呼叫,呼叫建立时获取起呼呼叫状态信息的流程示意图,由于是终端主动发起呼叫的,故终端可以通过分析起呼号码和起呼参数得到大部分的呼叫状态信息,具体过程可以包括如下步骤:
步骤101:开始;
步骤102:判断本次发起的是否为集群紧急呼叫,如果是,则转到步骤104,否则执行步骤103;这里之所以要先判断是否为集群紧急呼叫,是因为集群紧急呼叫的优先级最高,需要优先处理;
步骤103:根据起呼参数获取呼叫属性,目前终端可设置的呼叫属性有普通呼叫、预占优先呼叫、加密呼叫等;
步骤104:设置起呼呼叫属性为紧急呼叫;
步骤105:分析起呼号码获取呼叫类型,如号码前缀为两个‘#’,则为广播呼叫,前缀一个‘#’为组呼,后缀两个‘#’为临时组呼,否则为单呼;
步骤106:根据步骤105获取的呼叫类型设置起呼呼叫类型;
步骤107:结束。
呼叫建立完成之初,终端只了解部分呼叫状态信息,即使是终端主动发起呼叫的情况,也只知道起呼呼叫类型和起呼呼叫属性;对于话权状态和声音设备状态都还未知,这两个呼叫状态信息只有在接收到系统侧发送给终端的状态变更消息后才能获悉。状态变更消息可以是终端主动申请触发变更的,即该终端根据用户需要主动申请呼叫状态变更,系统侧进行变更处理后发送状态变更消息给该终端,将状态变更情况通知给该终端;状态变更消息也可以是被动接受的,即当有其他终端申请呼叫状态变更时,系统侧进行变更处理后发送状态变更消息给改终端,将状态变更情况通知给该终端。
如图2所示,图2为终端对从系统侧接收到的状态变更消息进行处理的流程示意图,具体可以包括如下步骤:
步骤201:开始;
步骤202:终端从空中接口接收消息,对接收到的消息进行解析,当确认接收到的消息为AWI消息时,执行步骤203;系统侧用于通知状态更新使用最多的状态变更消息为AWI(Alert With Information)消息,本实施例中也采用AWI消息的方式进行说明,但本领域技术人员应该知道,也可以采用其他消息来通知状态更新情况,比例,FWI(Flash With Information)消息;
步骤203:收到AWI消息后,该终端对AWI消息进行解析并根据自己当前的呼叫状态进行处理,以终端处于组呼中,话权为‘空闲’状态为例,其处理流程如下:
首先判断是否为广播呼叫AWI,如果是,设置呼叫类型为广播呼叫;否则设置呼叫类型为组呼;这里之所以首先要判断是否为广播呼叫,是因为广播呼叫属于一种特殊的组呼,对于其他类型的呼叫这一步则可以省略;
然后对话权状态进行判断:如果收到话权‘讲’AWI,设置话权状态为‘讲’,并打开扬声器,关闭麦克;如果收到话权‘听’AWI,设置话权状态为‘听’,并打开麦克,关闭扬声器;这里,收到的是话权‘空闲’AWI,所以不进行任何处理,直接转到步骤204;
步骤204:将分析得到的呼叫状态信息(呼叫类型为组呼、话权状态为‘空闲’)通知UI层模块,已接受到AWI消息;
步骤205:结束。
UI层模块在收到AWI消息后,需要把最新的呼叫状态信息提示给该终端的用户,如图3所示,图3为呼叫状态信息更新过程流程示意图,具体可以包括如下步骤:
步骤301:开始;
步骤302:为防止防止假冒或者非法号码入侵,首先要判断是否为合法终端,如果不合法,则不处理,合法则转到步骤303;
步骤303:查询当前呼叫状态信息,并从协议层模块获取最新的呼叫状态信息;
步骤304:判断声音设备状态是否改变,如果是,执行步骤305,否则转到步骤306;
步骤305:切换声音设备;
步骤306:判断呼叫属性是否改变,如果是,执行步骤307,否则转到步骤308;
步骤307:刷新并显示新的呼叫属性;
步骤308:判断话权状态是否改变,如果是,执行步骤308,否则转到步骤311;
步骤309:播放话权提示音,并执行步骤310;
步骤310:刷新显示新的话权状态;
步骤311:结束。
需要说明的是,最新的呼叫状态信息可以通过文字显示,也可以通过声音提示,或者声音和文字同时提示。
接下来结合附图4对本发明实施例所述装置进行详细说明。
如图4所示,图4为本发明实施例所述装置的结构示意图,该装置设置于终端中,具体可以包括:协议层模块和UI层模块,其中,
(一)协议层模块,该模块的主要作用包括:
在非呼叫状态时,设协议层模块设置该终端所有的呼叫状态信息为无效值;具体来说就是,协议层模块预设置一个常量标识为无效类型,在终端初次开机和每次通话结束时将所有的呼叫状态信息都设置为无效类型;
当该终端发起主动呼叫或者被动接入呼叫时,协议层模块根据呼叫中获取到的呼叫类型和呼叫属性设置相应的起呼呼叫类型和起呼呼叫属性;具体来说就是,当终端发起主动呼叫时,协议层判断本次发起的呼叫是否为集群紧急呼叫,如果是,直接设置起呼呼叫属性为紧急呼叫,否则通过分析起呼参数获取并设置起呼呼叫属性;然后通过分析起呼号码获取并设置起呼呼叫类型;当该终端被动接入呼叫时,协议层也可以获取呼叫状态信息,但是由于呼叫刚建立时,因此得到的呼叫状态信息不多,大部分呼叫状态信息是通过后续的状态信息更新获得;
当集群呼叫状态变更时,协议层模块根据UI层模块的请求申请呼叫状态变更,并对从系统侧接收到的呼叫状态信息进行解析后发送给所述UI层模块;具体来说就是,当该终端通过UI层模块主动向系统侧申请呼叫状态变更或者其他终端申请呼叫状态变更时,协议层模块接收系统侧发来的状态变更消息并对接收到的状态变更消息进行解析,然后将解析后得到的呼叫状态信息转发给所述UI层模块;
(二)UI层模块,该模块的主要作用包括:
根据该终端用户的请求主动触发协议层模块申请呼叫状态变更;
接收协议层模块发来的新的呼叫状态信息,并根据这些新的呼叫状态变更信息更新当前呼叫状态信息,并提示给该终端的用户。最新的呼叫状态信息可以通过文字显示,也可以通过声音提示,或者声音和文字同时提示。
综上所述,本发明实施例提供了一种集群呼叫状态管理方法及装置,使得用户能够很容易的了解当前终端准确的状态,而且在终端状态发生改变时,也能及时的更新。并且呼叫状态信息提示方式有多种,可以是文字,也可以是声音,或者文字与声音结合,方便用户使用。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。