背景技术
PoC(PTT over cellular,蜂窝系统上的即按即说)业务的概念来自于对讲机,其用户体验使用方式和对讲机类似,简单、快捷,半双工通话。
用户通过预先设定通话群组,通话时无需拨号,按住特定的按键,就可以同时将话音传送给群组中其他所有成员,按键即讲,呼叫和通话连接过程在瞬间完成。接收方无需任何响应就能接听,通话过程采用半双工的方式,一方在说话时,其他成员只能接听不能说话。
制定PoC标准规范的组织是OMA(Open Mobile Alliance,开放移动联盟),该规范中定义的PoC网络的示意图如附图1所示。
图1中,PoC网络基于IMS(IP Multimedia Subsystem,IP多媒体子系统),IMS即图1中的“SIP/IP core”。PoC网络中的主要实体简介如下:
PoC Server是PoC业务的主要呼叫控制设备,是IMS网络的一种ApplicationServer(应用服务器)。
PoC XDMS是存储PoC业务需要的群组信息等数据的服务器。
PoC Client即PoC客户端,用户使用该客户端能够向PoC Server发起呼叫、接受PoC呼叫、申请发言权、发言等。
建立PoC群组呼叫(Group Talk)后,用户可以通过TBCP(Talk Burst ControlProtocol,发言控制协议)向PoC Server申请发言权(Floor),用户只有获得发言权才被准许发言,用户发言产生的媒体流(Talk Burst)才能够被PoC Server转发到群组的其他成员。
用户申请发言权的流程如附图2所示。
图2中,在步骤1、步骤2,用户通过TBCP的Talk Burst Request(发言权请求)消息向PoC Server申请发言权。
在步骤3、步骤4,PoC Server返回Talk Burst Granted(发言权允许)消息给申请发言权的用户,告知申请发言权的用户已被准许发言,此时,申请发言权的用户获得发言权。
在步骤5、步骤6、PoC Server向群组中的其他用户发出Talk Burst Taken(发言权已分配)消息,以便让群组会话中的其他成员知会当前发言者的信息。
在步骤7、8、9和10,获得发言权的用户发言,其发言产生的媒体流被PoCServer转发给群组中的其他成员。
在步骤11、12,用户发言完毕,释放发言权。
在步骤13、14、15、16,群组发言权空闲,PoC Server向群组成员广播FloorControl Idle(发言权空闲)消息。
目前,PoC系统可以支持发言权请求队列功能,即当多个用户同时发起发言权申请时,PoC Server负责仲裁,只批准其中一个用户的发言权申请,其他用户的发言权申请或被拒绝,或被插入到一个发言权请求队列,即TBCP TalkBurst Request Queue(TBCP发言权请求队列),在当前发言者释放发言权后,PoC Server根据一定的策略从发言权请求队列中选择一个发言权申请者,并授予其发言权。
在目前最新的PoC标准规范中,由于存在视频等多媒体,所以,“发言”一词由“媒体”取代。
目前,服务器针对客户端发送的媒体发送请求的处理流程如附图3所示。
图3中,在步骤3-1、客户端向服务器发送媒体发送请求。
到步骤3-2、服务器接收客户端发送来的媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中不存在该用户的相关的媒体发送请求时,将其接收的媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤3-3、服务器生成队列状态响应消息,并发送至客户端。
如果客户端在等待媒体发送权的期间,再次发送媒体发送请求时,到步骤3-4,客户端再次向服务器发送媒体发送请求。
到步骤3-5,服务器接收客户端再次发送来的媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中存在该用户的相关的媒体发送请求时,删除媒体发送请求队列中的该用户的原请求,将新接收到的媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤3-6,服务器生成队列状态响应消息,并发送至客户端。
从上述对图3的描述中可以看出,当客户端需要修改其已经发送的媒体发送请求中的信息时,需要再次发送一个媒体发送请求,服务器将原来保存在队列中的相关媒体发送请求删除,然后,再将新接收到的媒体发送请求插入到队列中重新进行等待,当客户端修改媒体发送请求的信息没有改变优先级等使媒体发送请求在队列中的位置前移的信息时,客观上,客户端修改媒体发送请求后,将延迟用户得到媒体发送许可的时间,这会给用户带来不良的业务体验。
另外,上述修改过程仅限于客户端自己修改其曾经发送的、正在队列中排队的媒体发送请求,使媒体控制灵活性差。
具体实施方式
依据本发明实施例,修改功能实体将被修改的媒体发送请求(为了便于描述,后文中有时将其称为“第一媒体发送请求”)标识信息和修改目标描述信息传输至服务器,服务器根据其接收的第一媒体发送请求标识信息确定修改媒体发送请求队列中已存在的、需要修改的媒体发送请求,并根据其接收的修改目标描述信息对上述需要修改的媒体发送请求进行修改。
下面对本发明提供的技术方案做进一步的描述。
修改功能实体在确定需要修改媒体发送请求队列中的媒体发送请求时,需要将被修改的媒体发送请求(即第一媒体发送请求)标识信息和修改目标描述信息传输至服务器,这里的修改功能实体可以为发送第一媒体发送请求的请求方,也可以为发送第一媒体发送请求的非请求方,即修改功能实体可以修改其曾经发送的、正在媒体发送请求队列中排队的媒体发送请求,也可以修改其他客户端曾经发送的、正在媒体发送请求队列中排队的媒体发送请求。
修改功能实体可以为一个客户端,也可以为其它能够向服务器发送修改信息的功能实体,如具有调度功能的调度台、服务器中的媒体控制模块等,本发明不限制修改功能实体的表现形式,下面以修改功能实体为客户端为例对本发明的技术方案进行说明。
客户端可以将第一媒体发送请求标识信息和修改目标描述信息承载于媒体发送请求消息中传输至服务器,也可以将被修改的媒体发送请求标识信息和修改目标描述信息承载于为传输修改信息专门设置的修改媒体发送请求消息中传输至服务器。
上述第一媒体发送请求标识信息包括但不限于:第一媒体发送请求的请求方标识和第一媒体发送请求所请求的媒体类型。
上述修改目标描述信息包括但不限于:媒体发送请求的请求方、媒体类型、请求优先级、队列中的位置、关联信息中的一项或多项。这里的修改目标描述信息表示需要将队列中的第一媒体发送请求的相应信息修改为修改目标描述信息中的内容。
当客户端通过媒体发送请求消息来修改其曾经发送的、正在媒体发送请求队列中排队的媒体发送请求时,需要修改的媒体发送请求的请求方即为再次发送的媒体发送请求消息的请求方、且被修改的媒体发送请求的媒体类型即修改目标描述信息中的媒体类型。
当客户端通过媒体发送请求消息来修改媒体类型或者修改其他客户端曾经发送的、正在媒体发送请求队列中排队的媒体发送请求时,可以采用对媒体发送请求消息进行扩展等方法,来承载上述被修改的媒体发送请求(即第一媒体发送请求)标识信息和修改目标描述信息。
当客户端通过修改媒体发送请求消息来修改其曾经发送的或者其他客户端曾经发送的、正在媒体发送请求队列中排队的媒体发送请求时,可根据具体的修改需求灵活设置修改媒体发送请求消息,使客户端能够通过修改媒体发送请求消息灵活修改媒体发送请求中的任意内容。
服务器在接收到客户端发送来的第一媒体发送请求标识信息和修改目标描述信息时,根据第一媒体发送请求标识信息可以确定出第一媒体发送请求,在确定了第一媒体发送请求后,服务器根据其接收的修改目标描述信息来修改队列中的第一媒体发送请求。在修改完成后,如果由于修改了请求优先级等信息使修改后的媒体发送请求在队列中的位置需要调整时,服务器应根据预定的队列调整策略调整修改后的媒体发送请求在队列中的位置。
由于客户端可以通过发送修改媒体发送请求消息等方法来修改其它客户端曾经发送的、正在队列中排队的媒体发送请求,为保证信息修改的安全性,服务器可以对客户端的修改权限进行鉴权,并在确定客户端有修改权限时,再对队列中的媒体发送请求进行修改。具体过程为:服务器根据修改媒体发送请求消息的发送方和第一媒体发送请求标识信息中的请求方判断是否为客户端修改其自己曾经发送来的媒体发送请求,如果是,服务器直接根据第一媒体发送请求标识信息中的请求方和媒体类型等信息查找队列中的第一媒体发送请求,并在查找到后,根据其新接收的修改媒体发送请求消息中的修改目标描述信息修改队列中的第一媒体发送请求;如果不是客户端修改其自己曾经发送来的媒体发送请求,服务器首先根据权限控制策略判断发送修改媒体发送请求消息的请求方是否具有修改权限,在确定该请求方不具有修改权限时,拒绝对队列中的媒体发送请求进行修改,在确定该请求方具有修改权限时,再根据第一媒体发送请求标识信息中的请求方和媒体类型等信息查找队列中的第一媒体发送请求,并在查找到后,根据其接收的修改媒体发送请求消息中的修改目标描述信息修改队列中的第一媒体发送请求。同样,在修改完成后,如果由于修改了请求优先级等信息使修改后的媒体发送请求在队列中的位置需要调整时,服务器应根据预定的队列调整策略调整修改后的媒体发送请求在队列中的位置。
当由于修改后的媒体发送请求在队列中的位置发生变化时,会影响到媒体发送请求队列中一些媒体发送请求的位置,使一些媒体发送请求的位置发生变化,如位置后移等,本发明中的服务器可以向位置发生变化的媒体发送请求的请求方发送队列状态变化通知消息。当然,这里的位置发生变化的媒体发送请求可以包括第一媒体发送请求。
为完善本发明的修改流程,服务器完成对队列中的媒体发送请求的修改后,可以向客户端发送修改响应信息,修改响应信息包括但不限于:修改后的请求方、修改后的媒体类型、修改后的请求优先级、修改后的媒体发送请求在队列中的位置信息、修改后的关联信息中的一项或多项。
修改响应信息可以承载于队列状态响应消息中传输至客户端,也可以承载于本发明为传输修改响应信息专门设置的修改媒体发送请求响应消息中传输至客户端。
当客户端修改其自己曾经发送的媒体发送请求消息时,修改响应信息可传输至该客户端;当客户端修改其它客户端曾经发送的媒体发送请求消息时,修改响应信息可分别传输至这两个客户端;当队列中的媒体发送请求的请求方修改后,修改响应信息还应该传输至修改后的请求方客户端。
在上述描述过程中涉及到两条新设置的消息,即修改媒体发送请求消息和修改媒体发送请求响应消息。下面结合表1、表2对这两条消息进行说明。
修改媒体发送请求消息如表1所示。
表1
表1中,修改媒体发送请求消息中主要包括:被修改的媒体发送请求标识信息和修改目标描述信息这两部分内容。被修改的媒体发送请求标识信息中的请求方标识和媒体类型用于查找队列中哪个媒体发送请求需要修改。修改目标描述信息中的请求方标识、媒体类型、请求优先级、关联信息等表示期望把队列中的媒体发送请求中的相应内容修改的结果。
客户端在发送修改媒体发送请求消息时,可以根据具体的修改需要填充修改媒体发送请求消息中的信息,其他不需要修改的信息置为空即可,服务器在进行修改时,也只修改相应的内容。
修改媒体发送请求响应消息如表2所示。
表2
修改成功/失败的结果信息主要用于描述修改结果如修改成功、修改失败、修改失败原因等。修改成功/失败的结果信息主要包括:修改结果码和修改结果描述。结果码一般是数字形式,如0、1、2等,其中:0表示修改成功,1表示修改失败原因1,2表示修改失败原因2等。修改结果描述是对应结果码的具体描述,如当修改结果码为2时,修改结果描述给出修改失败原因2的描述。
修改后的媒体发送请求的状态信息主要用于描述队列中的媒体发送请求修改后的属性。修改后的媒体发送请求的状态信息包括:媒体发送请求的请求方标识、媒体类型、请求优先级、请求在队列中的位置、关联信息等。
下面仅以未扩展的媒体发送请求消息和修改媒体发送请求消息为例,结合附图说明服务器对队列中的媒体发送请求的处理过程。
客户端通过再次发送媒体发送请求来发送修改请求、服务器修改队列中已存在的、需要修改的媒体发送请求(即第一媒体发送请求)的实现过程如附图4所示。
图4中,在步骤4-1、客户端UE1在需要获得语音发送许可时,向服务器传输媒体发送请求(即第一媒体发送请求),该媒体发送请求消息中的媒体类型为语音,请求优先级为正常。
到步骤4-2、服务器接收客户端发送来的第一媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中不存在该用户的相关的媒体发送请求时,将其接收的第一媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤4-3、服务器生成队列状态响应消息,并发送至客户端。队列状态响应消息可包括但不限于:媒体类型、请求优先级、队列中的位置、关联信息等。
客户端在需要对上述步骤4-1中发送的第一媒体发送请求的请求优先级进行修改时,到步骤4-4,客户端再次向服务器发送媒体发送请求,再次发送的媒体发送请求的媒体类型仍然为语音,请求优先级为高。该媒体发送请求与步骤4-1中的第一媒体发送请求只有请求优先级不同,其它如请求方、媒体类型等都相同。
由于再次发送的媒体发送请求是一个请求内容相同的媒体发送请求,所以,客户端再次发送的媒体发送请求是一个隐含含义上的修改请求。请求内容相同,包括发送媒体发送请求消息的请求方相同、媒体发送请求消息中的媒体类型相同等。
到步骤4-5,服务器接收客户端再次发送来的媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件时,根据再次接收的媒体发送请求的请求方和媒体类型查找队列中的第一媒体发送请求,在查找到后,将队列中的第一媒体发送请求的优先级由一般修改为高请求优先级,此时,队列中已存在的该媒体发送请求在队列中的位置需要调整,服务器根据预定的队列调度策略、优先级等信息调整媒体发送请求在队列中的位置,即由于客户端修改了请求优先级,服务器会将队列中的媒体发送请求的位置向前移动。
到步骤4-6、服务器根据调整后的媒体发送请求在队列中的位置状态信息生成队列状态响应消息,并发送至客户端。
图4中描述的方式仅限于客户端请求修改自己曾经发送过的、正在媒体发送请求队列中排队的媒体发送请求,其修改的内容也有限,只能修改请求优先级、请求关联关系等信息。
客户端通过修改媒体发送请求消息来发送修改请求,服务器修改队列中已存在的第一媒体发送请求的实现过程如附图5所示。
图5中,在步骤5-1、客户端UE1在需要获得语音发送许可时,向服务器传输第一媒体发送请求,该媒体发送请求中的媒体类型为语音,请求优先级为正常。
到步骤5-2、服务器接收客户端发送来的第一媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中不存在该用户的相关的媒体发送请求时,将其接收的第一媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤5-3、服务器生成队列状态响应消息,并发送至客户端。队列状态响应消息可包括但不限于:媒体类型、请求优先级、队列中的位置、关联信息等。
客户端在需要对上述步骤5-1中发送的第一媒体发送请求的请求优先级和媒体类型进行修改时,到步骤5-4,客户端向服务器发送修改媒体发送请求消息,修改媒体发送请求消息的修改目标描述信息中的媒体类型为视频(Video),修改目标描述信息中的请求优先级为高,修改媒体发送请求消息中的第一媒体发送请求的请求方为UE1的标识信息、被修改的媒体发送请求的媒体类型为语音。客户端发送的修改媒体发送请求消息是一个显式含义上的修改请求。
到步骤5-5,服务器接收客户端发送来的修改媒体发送请求,由于发送修改媒体发送请求消息的请求方与修改媒体发送请求消息中的第一媒体发送请求的请求方均为UE1的标识信息,所以,服务器可以不进行修改权限的鉴权,直接根据UE1的标识信息和媒体类型查找队列中的第一媒体发送请求,在查找到后,将队列中的第一媒体发送请求的优先级由一般修改为高请求优先级、同时将媒体类型修改为视频,此时,队列中修改后的媒体发送请求在队列中的位置需要调整,服务器根据预定的队列调度策略、优先级等信息调整媒体发送请求在队列中的位置,即由于客户端修改了请求优先级等信息,服务器会将队列中的媒体发送请求的位置向前移动。
到步骤5-6、服务器根据调整后的媒体发送请求在队列中的位置状态信息生成修改媒体发送请求响应消息,并发送至客户端。
服务器在接收到修改媒体发送请求消息后,对队列中的媒体发送请求的处理过程如附图6所示。
图6中,在步骤600,开始处理过程。
到步骤610,服务器接收到客户端发送来的修改媒体发送请求消息。
到步骤620,服务器判断发送修改媒体发送请求消息的请求方与修改媒体发送请求消息中的第一媒体发送请求的请求方是否相同,即判断是否为客户端修改其曾经发送来的媒体发送请求,如果不相同,即客户端修改其它客户端发送来的媒体发送请求,则到步骤621,根据权限控制策略判断发送修改媒体发送请求的客户端是否有修改权限,在确定有修改权限时,到步骤630。
在步骤621,如果没有修改权限,则到步骤622,生成修改失败的响应消息,并发送至发送修改媒体发送请求消息的客户端,到步骤670,服务器对队列中媒体发送请求的处理过程结束。
在步骤620,如果相同,即客户端修改自己曾经发送来的媒体发送请求,则到步骤630。
在步骤630,服务器根据修改媒体发送请求消息中的第一媒体发送请求标识信息确定队列中需要进行修改的媒体发送请求。
到步骤640,服务器根据修改媒体发送请求消息中的修改目标描述信息修改第一媒体发送请求,如将请求优先级由正常修改为高请求优先级等。
到步骤650,根据预定的队列调度策略、请求优先级等信息,调整修改后的媒体发送请求在队列中的位置。
到步骤660,服务器根据调整后的媒体发送请求在队列中的位置状态信息生成修改媒体发送请求响应消息,并发送至客户端。
到步骤670,本次服务器对队列中的媒体发送请求的处理过程结束。
当客户端修改其它客户端曾经发送的媒体发送请求时,服务器对媒体发送请求的处理过程如附图7、附图8所示。
图7中,设定客户端UE2有权限修改客户端UE1发送的媒体发送请求消息。
在步骤7-1、客户端UE1在需要获得语音发送许可时,向服务器传输第一媒体发送请求,该媒体发送请求中的媒体类型为语音,请求优先级为正常。
到步骤7-2、服务器接收客户端发送来的第一媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中不存在该用户的相关的媒体发送请求时,将其接收的媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤7-3、服务器生成队列状态响应消息,并发送至客户端UE1。
客户端UE2在需要对上述步骤7-1中发送的第一媒体发送请求的请求优先级、媒体类型进行修改时,到步骤7-4,客户端UE2向服务器发送修改媒体发送请求消息,修改媒体发送请求消息的修改目标描述信息中的媒体类型为视频,修改目标描述信息中的请求优先级为高,修改媒体发送请求消息中的第一媒体发送请求的请求方为UE1的标识信息、被修改的媒体发送请求的媒体类型为语音。客户端UE2发送的修改媒体发送请求消息是一个显式含义上的修改请求。
到步骤7-5,服务器接收客户端UE2发送来的修改媒体发送请求,由于客户端UE2有权限修改客户端UE1发送的媒体发送请求消息,所以,服务器根据UE1的标识信息和媒体类型语音来查找队列中需要修改的第一媒体发送请求,在查找到后,将第一媒体发送请求的优先级由一般修改为高请求优先级、同时将媒体类型修改为视频,此时,队列中修改后的媒体发送请求在队列中的位置需要调整,服务器根据预定的队列调度策略、优先级等信息调整媒体发送请求在队列中的位置,如由于客户端修改了请求优先级,服务器会将队列中的媒体发送请求的位置向前移动。
到步骤7-6、7-7、服务器根据调整后的媒体发送请求在队列中的位置状态信息生成修改媒体发送请求响应消息和队列状态响应消息,并将修改媒体发送请求响应消息发送至客户端UE2,将队列状态响应消息发送至客户端UE1。
图8中,设定客户端UE2有权限修改客户端UE1发送的媒体发送请求消息。
在步骤8-1、客户端UE1在需要获得语音发送许可时,向服务器传输第一媒体发送请求,该媒体发送请求中的媒体类型为语音,请求优先级为正常。
到步骤8-2、服务器接收客户端发送来的第一媒体发送请求,并在确定该媒体发送请求不满足马上授权许可的条件、且媒体发送请求队列中不存在该用户的相关的媒体发送请求时,将其接收的媒体发送请求插入到媒体发送请求队列的适当位置。
到步骤8-3、服务器生成队列状态响应消息,并发送至客户端UE1。
客户端UE2在需要对上述步骤8-1中UE1发送的第一媒体发送请求的请求方、请求优先级、媒体类型进行修改时,到步骤8-4,客户端UE2向服务器发送修改媒体发送请求消息,修改媒体发送请求消息的修改目标描述信息中的请求方标识为UE3,修改目标描述信息中的媒体类型为视频,修改目标描述信息中的请求优先级为高,修改媒体发送请求消息中的被修改的媒体发送请求的请求方为UE1的标识信息、被修改的媒体发送请求的媒体类型为语音。客户端UE2发送的修改媒体发送请求消息是一个显式含义上的修改请求。
到步骤8-5,服务器接收客户端UE2发送来的修改媒体发送请求,由于客户端UE2有权限修改客户端UE1发送的媒体发送请求消息,所以,服务器根据UE1的标识信息和媒体类型语音查找队列中的第一媒体发送请求,在查找到后,将队列中的第一媒体发送请求的请求方、媒体类型、优先级分别由UE1修改为UE3、由语音修改为视频、由一般修改为高请求优先级,此时,队列中已存在的该媒体发送请求在队列中的位置需要调整,服务器根据预定的队列调度策略、优先级等信息调整媒体发送请求在队列中的位置,如由于客户端修改了请求优先级,服务器会将队列中的媒体发送请求的位置向前移动。
到步骤8-6、8-7、8-8、服务器根据调整后的媒体发送请求在队列中的位置状态信息生成修改媒体发送请求响应消息和队列状态响应消息,并将修改媒体发送请求响应消息发送至客户端UE2,将队列状态响应消息分别发送至客户端UE1和UE3。
根据本发明实施例,服务器根据所接收的修改请求对请求队列中已存在的媒体发送请求进行修改,避免了删除队列中原媒体发送请求的过程,从而避免了延迟用户得到媒体发送许可时间的现象;根据本发明实施例,可通过修改目标描述信息修改媒体发送请求中的任何内容,如请求方、媒体类型、请求优先级、关联信息等,而且,允许客户端修改自己曾经发送的媒体发送请求,也允许其修改其他客户端发送的媒体发送请求,从而使修改媒体发送请求的实现方式更加灵活。此外,通过服务器的修改权限鉴权过程,保证了修改媒体发送请求的安全性;通过向修改请求的发送方、修改后的媒体发送请求的请求方、修改前的媒体发送请求的请求方等分别发送修改响应信息,使各相关方均能够明确获得修改的结果信息;从而实现了明确服务器对媒体发送请求的修改流程、完善服务器对媒体发送请求的处理流程、提高媒体控制灵活性、提高用户满意度的目的。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。