一种3GPP预建立模式下组播模式单播组的监听方法与流程

文档序号:25872138发布日期:2021-07-16 16:42阅读:107来源:国知局
一种3GPP预建立模式下组播模式单播组的监听方法与流程
一种3gpp预建立模式下组播模式单播组的监听方法
技术领域
1.本申请涉及3gpp预建立模式技术,特别涉及一种3gpp预建立模式下组播模式单播组的监听方法。


背景技术:

2.在现有的专网终端mcptt预建立组播模式下,如果终端所属的群组没有配置成组播群组,终端也可以加入该群组,通过单播通道接收和播放群组的主讲语音,也就是组播模式的单播组监听。其中,终端可以加入群组a,并不是指终端成为该群组成员,而是在接收和播放群组a的主讲语音前需要进行的一步操作。具体地,组播模式的单播组监听处理可以包括:
3.1,在终端所在群组(即未被配置成组播的群组)建立后,服务器会通过组播信道给终端发送groupstatus消息(其中status标志位为active);
4.2,终端收到此消息后,会通过socket给服务器发送加入群组的sip refer消息;
5.3,服务器收到加入群组的sip refer消息后,经判断允许终端加入群组的情况下,服务器就会通过socket给终端回复sip 200ok消息,同时通过预建立的单播rtcp通道,给终端发送connect消息,打开终端预建立单播rtp通道;
6.4,分两路处理,a路:终端在socket上收到sip 200ok消息后表示群组加入成功,打开player;b路:终端在预建立的单播rtcp通道上收到服务器的connect消息后,会马上通过预建立的单播rtcp通道回复ack,服务器在预建立的单播rtcp通道上收到ack后就会在预建立的单播rtp通道上给终端下发主讲的上行语音数据。终端在player打开的情况下,在预建立的单播rtp通道上收到语音数据就开始播放主讲的上行语音。
7.在实际应用中发现,上述组播模式单播组的监听方法存在丢首字的问题,从而影响监听性能。


技术实现要素:

8.本申请提供一种3gpp预建立模式下组播模式单播组的监听方法,能够避免丢首字,提高监听性能。
9.为实现上述目的,本申请采用如下技术方案:
10.一种3gpp预建立模式下组播模式单播组的监听方法,包括:
11.服务器同意终端加入群组后,通过socket向所述终端反馈sip 200ok消息,并通过预建立的单播rtcp通道向所述终端反馈connect消息;
12.所述终端在接收到所述sip 200ok消息后,打开播放器player;在接收到所述connect消息后、且确定player已打开时,向所述服务器发送ack消息;
13.所述终端在所述单播rtcp通道上接收所述服务器发送的群组主讲上传的语音数据,并播放所述语音数据。
14.较佳地,该方法进一步包括:在所述终端接收到所述connect消息后,保存connect
消息已接收的状态信息;在所述终端打开player后,保存player已打开的状态信息;
15.接收到所述connect消息、且player已打开的确定方式包括:
16.当所述终端接收到sip 200ok消息后、且完成player的打开后,查询是否保存有connect消息已接收的状态信息,若是,则确定接收到所述connect消息、且player已打开;否则,在接收到connect消息后,查询是否保存有player已打开的状态信息时,若保存有该player已打开的状态信息,则确定接收到所述connect消息、且player已打开。
17.由上述技术方案可见,本申请中,服务器同意终端加入群组后,通过socket向所述终端反馈sip 200ok消息,并通过预建立的单播rtcp通道向终端反馈connect消息;终端在接收到所述sip 200ok消息后,打开播放器player;在接收到connect消息后、且确定player已打开时,向服务器发送ack消息;终端在单播rtcp通道上接收服务器发送的群组主讲上传的语音数据,并播放语音数据。通过上述方式,能够保证终端在预建立的单播rtp通道上收到主讲上行的语音数据前pleaer就是打开的,这样就可以避免出现丢首字的问题,从而提高监听性能。
附图说明
18.图1为本申请方法的基本流程示意图;
19.图2a和图2b为本申请具体实施例的具体处理示意图。
具体实施方式
20.为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
21.背景技术中描述的组播模式单播组的监听方法在实际应用中存在丢首字的问题,接下来具体分析出现上述问题的原因。
22.具体地,在背景技术中描述的组播模式单播组的监听方法中,因为服务器在socket上收到群组加入的sip refer消息后,经判断允许终端加入群组后,在socket上给终端下发sip 200ok消息和在预建立的单播rtcp通道上给终端下发connect消息时同时进行的,而sip的socket通道和预建立单播rtcp/rtp通道传输时延是不同的,且终端处理sip 200ok消息并完成player的打开也需要耗时,这个造成了终端的异步。
23.更详细地,a路中服务器通过socket给终端的sip 200ok消息,传输需要耗时t1_1,终端收到此sip 200ok消息后触发并完成player的打开需要耗时t1_2;b路中服务器通过预建立的单播rtcp给终端发送connect消息需要耗时t2_1,终端收到此消息后恢复ack消息需要耗时t2_2,服务器收到ack后就会在预建立的单播rtp通道上给终端下发主讲上行用户数据需要耗时t2_3。可见,a路总耗时t1_1+t1_2,b路总耗时t2_1+t2_2+t2_3。
24.如果t1_1+t1_2>t2_1+t2_2+t2_3,也就是说,终端在player还没有完成打开的情况下,就已经在预建立的单播rtp通道上收到语音数据,那么上行主讲的语音数据就无法播出,导致丢首字,直到player打开。
25.基于上述分析,本申请提出一种3gpp预建立模式下组播模式单播组的监听方法,能够保证终端在预建立的单播rtp通道上收到主讲上行的语音数据前pleaer就是打开的,这样就可以避免出现丢首字的问题,从而提高监听性能。
26.接下来,对本申请的具体处理方法进行详细介绍。图1为本申请方法的基本流程示意图。如图1所示,该方法包括:
27.步骤101,服务器同意终端群组加入后,通过socket向终端反馈sip 200ok消息,并通过预建立的单播rtcp通道向终端反馈connect消息。
28.其中,服务器同意终端群组加入以及之前的操作可以采用现有方式进行。例如采用背景技术描述的过程:在群组建立后,服务器通过组播信道给终端发送groupstatus消息(其中status标志位为active);终端收到此消息后,通过socket给服务器发送群组加入的sip refer消息;服务器收到群组加入的sip refer消息后,经判断允许终端群组加入。
29.在服务器同意终端群组加入后,服务器向终端发送两个消息,一个是通过socket向终端反馈sip 200ok消息,另一个是通过预建立的单播rtcp通道向终端反馈connect消息。
30.步骤102,终端在接收到sip 200ok消息后,打开player。
31.步骤103,判断当前是否接收到connect消息、且player已打开,若是,则执行步骤104和步骤105,否则重新等待并判断。
32.具体判断当前状态是否为接收到connect消息、且player已打开,可以根据实际情况进行。本申请中给出一种优选的判断方式:
33.在终端接收到connect消息后,保存connect消息已接收的状态信息;在终端打开player后,保存player已打开的状态信息。基于此,当终端接收到sip 200ok消息后、且完成player的打开后,终端可以查询是否保存有connect消息已接收的状态信息,若是,则确定已经接收到connect消息、且player已打开;否则,在接收到connect消息后,查询是否保存有player已打开的状态信息时,若保存有该player已打开的状态信息,则确定接收到connect消息、且player已打开。
34.步骤104,终端向服务器发送ack消息。
35.步骤105,终端在单播rtcp通道上接收服务器发送的群组主讲上传的语音数据,并播放语音数据。
36.步骤104-105的处理可以采用现有方式进行,这里就不再赘述。
37.至此,本申请中的基本方法流程结束。通过上述方法的处理,保证终端在player处于打开状态、且接收到conncet消息后,再向服务器反馈ack消息,从而保证服务器下发语音数据时player处于打开状态,避免丢首字,提高监听性能。
38.下面通过一个具体实施例说明上述基本方法的具体实现。多次实验室和现网数据分析发现,sip的socket的传输时延大于预建立单播rtcp/rtp通道的传输时延。所以常常预建立单播rtcp/rtp通道上的connect消息先收到。基于此,申请人在终端中增加一个同步模块,用于connect已接收状态和player已打开状态的存储和查询。如图2所示,终端包括player模块、sip socket通道模块、预建立单播rtp/rtcp通道模块、组播通道模块和同步模块。服务器包括sip socket通道模块、预建立单播rtp/rtcp通道模块和组播通道模块。尽管通过实验室和现网数据分析可见,通常sip的socket的传输时延大于预建立单播rtcp/rtp通道的传输时延,但是仍有可能终端接收到connect消息时player已经打开,因此下面分别通过图2a和图2b说明player打开时已经接收到connect消息和未接受到connect消息的两种情况。
39.在图2a所示的流程中,服务器的组播通道模块向终端的组播通道模块发送groupstatus消息,终端的sip socket通道模块向服务器的sip socket模块发送sip refer消息,服务器的预建立单播rtp/rctp通道模块向终端的预建立单播rtp/rctp通道模块发送connect消息,将connect已接收的状态消息存储在同步模块中;服务器的sip socket通道模块向终端的sip socket通道模块发送sip 200ok消息,player模块打开player功能,player功能打开完成后,在同步模块中查询是否保存有connect已接收的状态消息,并将player已打开的状态消息存储在同步模块中;当在同步模块中查询到保存有connect消息已接收的状态消息,则终端的预建立单播rtp/rctp通道模块向服务器的预建立单播rtp/rctp通道模块发送ack消息,服务器的预建立单播rtp/rctp通道模块向终端的预建立单播rtp/rctp通道模块发送群组主讲的语音数据,终端的player模块播放预建立单播rtp/rctp通道模块接收的语音数据。
40.在图2b所示的流程中,服务器的组播通道模块向终端的组播通道模块发送groupstatus消息,终端的sip socket通道模块向服务器的sip socket模块发送sip refer消息,服务器的预建立单播rtp/rctp通道模块向终端的预建立单播rtp/rctp通道模块发送connect消息;服务器的sip socket通道模块向终端的sip socket通道模块发送sip 200ok消息,player模块打开player功能,player功能打开完成后,在同步模块中查询是否保存有connect已接收的状态消息,并将player已打开的状态消息存储在同步模块中;当在同步模块中未查询到保存有connect消息已接收的状态消息,则终端的预建立单播rtp/rctp通道模块继续等待接收connect消息,并在接收到connect消息后,查询同步模块中是否保存有player已打开的状态信息,并在查询到相应状态信息后,终端的预建立单播rtp/rctp通道模块向服务器的预建立单播rtp/rctp通道模块发送ack消息,服务器的预建立单播rtp/rctp通道模块向终端的预建立单播rtp/rctp通道模块发送群组主讲的语音数据,终端的player模块播放预建立单播rtp/rctp通道模块接收的语音数据。
41.由上述本申请中方法的基本流程和具体实现可见,本申请中,当终端在预建立的单播rtcp通道上收到connect后不要马上回复ack,需要等到player打开完毕后再回复。这样,保证在服务器下发语音数据时,终端的player已经打开,避免出现丢首字的问题,从而提高监听性能。经过仿真和实地试验表明,本申请方案在群组没有配置成组播群组时,能够彻底解决监听端丢首字的问题,有效提高了监听性能,实际效果非常好。
42.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1