即按即说业务实现方法与终端与流程

文档序号:12629758阅读:452来源:国知局
即按即说业务实现方法与终端与流程

本发明实施例涉及通信技术,尤其涉及一种即按即说业务实现方法与终端。



背景技术:

开放移动联盟(Open Mobile Alliance,OMA)组织推出了即按即说(Push to Talk over Cellular,PoC)协议。基于PoC协议的通信中,通过在组网架构中部署PoC服务器,使得终端与PoC服务器交互以实现PoC业务。

在局域网组网下,如无线网覆盖或者临时搭建网络的场景中,组网架构中未部署PoC服务器。为了使各终端实现PoC业务,基于PoC协议,需要部署PoC服务器。然而,一般来说,PoC服务器的成本较高,临时在局域网组网中部署PoC服务器难度较高。

因此,如何提出一种在局域网组网中实现PoC业务的方法,实为业界亟待解决的问题。



技术实现要素:

本发明实施例提供一种即按即说业务实现方法与终端,以解决现有技术中,局域网组网中,终端为实现PoC业务必须部署PoC服务器导致的组网成本高、组网困难的问题。

第一个方面,本发明实施例提供一种即按即说PoC业务实现方法,包括:

第一终端根据用户列表中的在线终端建立PoC群组;

所述第一终端与第二终端交互以实现PoC业务,所述第二终端为所述PoC群组中的在线终端,所述第二终端至少为一个。

在第一个方面的第一种可能的实现方式中,当所述PoC业务具体为群组会话建立业务时,所述第一终端与第二终端交互以实现PoC业务,包括:

所述第一终端向所述第二终端发送邀请消息;

所述第一终端接收所述第二终端发送的肯定应答消息或取消消息,所述第一终端与各所述发送肯定应答消息的第二终端进行群组会话;或者,所述第一终端等待超时后,所述第一终端在所述用户列表中将未响应所述邀请消息的第二终端设置为离线终端。

在第一个方面的第二可能的实现方式中,当所述PoC业务具体为群组会话释放业务时,所述第一终端与第二终端交互以实现PoC业务,包括:

所述第一终端接收所述第二终端发送的再见消息,所述再见消息为所述第二终端在退出所述PoC群组时,向所述PoC群组内的所述第一终端及其他第二终端广播发送的;

所述第一终端检测是否所有所述第二终端已发送所述再见消息,或者,转变为离线终端,若是,则释放本地会话资源,并在所述用户列表中将已发送所述再见消息的第二终端设置为离线终端;否则,继续群组会话。

在第一个方面的第三种可能的实现方式中,当所述PoC业务具体为话权管理业务时,所述第一终端与第二终端交互以实现PoC业务,包括:

所述第一终端向所述第二终端发送话权空闲消息;

所述第一终端接收所述第二终端发送的话权请求消息;

所述第一终端判断是否允许所述第二终端拥有话权;

若是,则向所述第二终端发送话权授权消息;否则,向所述第二终端发送话权拒绝消息。

在第一个方面的第四种可能的实现方式中,当所述PoC业务具体为话权管理业务时,所述第一终端与第二终端交互以实现PoC业务,包括:

所述第一终端向各所述第二终端发送话权获取消息,所述话权获取消息携带任一一个在线的第二终端的标识,以将话权转移至与所述标识对应的第二终端。

在第一个方面的第五种可能的实现方式中,当所述PoC业务具体为用户面报文处理业务时,所述第一终端与第二终端交互以实现PoC业务,包括:

所述第一终端向所述第二终端发送实时传输协议包,以使得所述第二终端通过固定端口接收所述实时传输协议包。

结合第一个方面、第一个方面的第一种至第五种中任一种可能的实现方式,在第一个方面的第六种可能的实现方式中,所述第一终端根据用户列表 中的在线终端建立PoC群组之前,还包括:

所述第一终端向局域网组网网段内所有终端发送注册请求;

所述第一终端接收所述局域组网网段内在线终端发送的注册响应,并将所述在线终端保存在所述用户列表中以获得所述用户列表。

结合第一个方面、第一个方面的第一种至第五种中任一种可能的实现方式,在第一个方面的第七种可能的实现方式中,该方法还包括:

所述第一终端向各所述第二终端发送心跳消息;

对于响应所述心跳消息的第二终端,所述第一终端接收所述心跳响应消息以刷新用户在线定时器;对于未响应所述心跳消息的第二终端,所述第一终端等待超时后在所述用户列表中将所述未响应所述心跳消息的第二终端设置为离线终端。

第二个方面,本发明实施例提供一种终端,所述终端为第一终端,包括:

群组建立模块,用于根据用户列表中的在线终端建立PoC群组;

业务实现模块,用于与第二终端交互以实现PoC业务,所述第二终端为所述PoC群组中的在线终端,所述第二终端至少为一个。

在第二个方面的第一种可能的实现方式中,所述业务实现模块,具体用于当所述PoC业务具体为群组会话建立业务时,向所述第二终端发送邀请消息;接收所述第二终端发送的肯定应答消息或取消消息,并与各所述发送肯定应答消息的第二终端进行群组会话;或者,等待超时后,在所述用户列表中将未响应所述邀请消息的第二终端设置为离线终端。

在第二个方面的第二种可能的实现方式中,所述业务实现模块,具体用于当所述PoC业务具体为群组会话释放业务时,接收所述第二终端发送的再见消息,所述再见消息为所述第二终端在退出所述PoC群组时,向所述PoC群组内的所述第一终端及其他第二终端广播发送的;检测是否所有所述第二终端已发送所述再见消息,或者,转变为离线终端,若是,则释放本地会话资源,并在所述用户列表中将已发送所述再见消息的第二终端设置为离线终端;否则,继续群组会话。

在第二个方面的第三种可能的实现方式中,所述业务实现模块,具体用于当所述PoC业务具体为话权管理业务时,向所述第二终端发送话权空闲消息;接收所述第二终端发送的话权请求消息;判断是否允许所述第二终端拥 有话权;若是,则向所述第二终端发送话权授权消息;否则,向所述第二终端发送话权拒绝消息。

在第二个方面的第四种可能的实现方式中,所述业务实现模块,具体用于当所述PoC业务具体为话权管理业务时,向各所述第二终端发送话权获取消息,所述话权获取消息携带任一一个在线的第二终端的标识,以将话权转移至与所述标识对应的第二终端。

在第二个方面的第五种可能的实现方式中,所述业务实现模块,具体用于当所述PoC业务具体为用户面报文处理业务时,向所述第二终端发送实时传输协议包,以使得所述第二终端通过固定端口接收所述实时传输协议包。

结合第二个方面、第二个方面的第一种至第五种中任一种可能的实现方式,在第一个方面的第六种可能的实现方式中,所述终端还包括:

用户列表获取模块,用于在所述群组建立模块根据用户列表中的在线终端建立PoC群组之前,向局域网组网网段内所有终端发送注册请求;接收所述局域组网网段内在线终端发送的注册响应,并将所述在线终端保存在所述用户列表中以获得所述用户列表。

结合第二个方面、第二个方面的第一种至第五种中任一种可能的实现方式,在第二个方面的第七种可能的实现方式中,所述终端还包括:

用户列表刷新模块,用于向各所述第二终端发送心跳消息;对于响应所述心跳消息的第二终端,接收所述心跳响应消息以刷新用户在线定时器;对于未响应所述心跳消息的第二终端,等待超时后在所述用户列表中将所述未响应所述心跳消息的第二终端设置为离线终端。

本发明实施例提供的即按即说业务实现方法与终端,第一终端在建立PoC群组后,与PoC群组中的各第二终端交互以实现PoC业务,从而解决现有技术中,局域网组网中,终端为实现PoC业务必须部署PoC服务器导致的组网成本高、组网困难的问题。而且,该过程中,无需部署PoC服务器,各终端无需依赖PoC服务器实现PoC业务,所有PoC业务的交互直接在各终端之间进行,而无需经由服务器转发,在一定程度上降低了业务时延。

附图说明

图1为本发明即按即说PoC业务实现方法实施例一的流程图;

图2为本发明PoC业务实现方法中第一终端启动注册广播流程以获取用户列表的信令图;

图3为本发明PoC业务实现方法中第一终端启动在线定时心跳广播流程以维护用户列表的信令图;

图4为本发明PoC业务实现方法中群组会话建立业务的信令图;

图5为本发明PoC业务实现方法中群组会话释放业务的信令图;

图6为本发明PoC业务实现方法中话权状态机迁移图;

图7为本发明PoC业务实现过程中用户面报文发送示意图;

图8为本发明终端实施例一的结构示意图;

图9为本发明终端实施例一的结构示意图。

具体实施方式

图1为本发明即按即说PoC业务实现方法实施例一的流程图,本实施例的执行主体为第一终端,适用于局域网组网中各终端不需要依赖服务器而实现PoC业务的场景。具体的,本实施例包括:

101、第一终端根据用户列表中的在线终端建立PoC群组。

本发明实施例中,第一终端与第二终端并不是绝对的,而只是个相对概念,即对于一个具体的终端,相对于自身而言,其为第一终端,也即本地终端,PoC群组中的其他终端为第二终端;相对于PoC群组中的另外一个具体终端,其为第二终端。

本步骤中,由于组网架构中没有部署服务器,因此群组管理采取本地管理方式,第一终端可通过对用户列表中的终端进行勾选以创建PoC群组并保存。对于本地创建的任一PoC群组,可任意命名并保存。另外,当第一终端接收到组呼时,对比组呼邀请消息,即INVITE消息中用户列表对应的PoC群组,若本地没有创建该PoC群组,则创建新的PoC群组并提示终端是否保存。该步骤相当于一个群组管理过程。

102、所述第一终端与第二终端交互以实现PoC业务,所述第二终端为所述PoC群组中的在线终端,所述第二终端至少为一个。

在建立好PoC群组后,第一终端可以与该PoC群组中的各第二终端交互以实现PoC业务,如群组会话建立业务、群组会话释放业务等。

本发明实施例提供的PoC业务实现方法,第一终端在建立PoC群组后,与PoC群组中的各第二终端交互以实现PoC业务,从而解决现有技术中,局域网组网中,终端为实现PoC业务必须部署PoC服务器导致的组网成本高、组网困难的问题。而且,该过程中,无需部署PoC服务器,各终端无需依赖PoC服务器实现PoC业务,所有PoC业务的交互直接在各终端之间进行,而无需经由服务器转发,在一定程度上降低了业务时延。

一般而言,为实现PoC业务,涉及对终端的管理与实现具体PoC业务两个方面。下面,对该两个方面进行详细阐述。

第一方面、对终端的管理,包括用户在线管理和群组管理。

在本发明一实施例中,用户在线管理包括:第一终端启动注册广播流程以获取用户列表。该过程中,第一终端根据用户列表中的在线终端建立PoC群组之前,第一终端向局域网组网网段内所有终端发送注册请求;所述第一终端接收所述局域组网网段内在线终端发送的注册应答,并将所述在线终端保存在所述用户列表中以获得所述用户列表。具体的,可参见图2,图2为本发明PoC业务实现方法中第一终端启动注册广播流程以获取用户列表的信令图。

请参照图2,本实施例中,第一终端具体为终端A,第二终端具体为终端B~终端X。本实施例包括如下步骤:

201、第一终端向局域网组网网段内所有终端发送注册请求。

本步骤中,第一终端启动注册广播流程以获取用户列表,获取到的用户列表中的终端为在线终端。具体的,第一终端启动,发起会话初始协议(Session Initiation Protocol,SIP)注册流程,向局域网组网网段内所有终端发送注册请求,该注册请求例如为Register,具体可参见如下消息格式:

REGISTER sip:poc SIP/2.0

Via:SIP/2.0/UDP 192.168.1.101:5060;rport;branch=z9hG4bK63487

Max-Forwards:70

To:<sip:mike@poc.com>

From:<sip:mike@poc.com>;tag=z9hG4bK41025135

Call-ID:816207185125@192.168.1.101

CSeq:1REGISTER

Contact:sip:mike@192.168.1.101:5060;transport=udp

Expires:3600

Allow:INVITE,ACK,CANCEL,OPTIONS,BYTE,UPDATE,REFER,NOTIFY,SUBSCRIBE

Supported:timer,eventlist

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

202、第二终端向第一终端发送注册应答。

本步骤中,第二终端收到注册请求后,向第一终端回复注册应答,该注册应答例如为200OK。另外,第二终端还把第一终端的名字和IP地址信息更新到用户列表中。假设第一终端的名字为mike,该第二终端的名字为John,该更新用户列表的过程具体可参见如下消息格式:

SIP/2.0200OK

Via:SIP/2.0/UDP 192.168.1.101:5060;branch=z9hG4bK63487;rport=5060

To:<sip:mike@poc.com>

From:<sip:john@poc.com>

Call-ID:816207185125@192.168.1.101

CSeq:1REGISTER

Contact:<sip:mike@poc.com>

Content-Length:0

当第一终端接收到第二终端发送的注册应答后,将第二终端的名字和IP更新到用户列表中。

另外,对于局域网组网网段内未响应注册请求的终端,第一终端等待协议栈超时后,自动结束。

本发明实施例中,在接收到所有在线终端的注册应答,以及对未响应注册请求的终端等待协议栈超时后,第一终端得到局域网组网网段内所有在线终端的信息,从而得到用户列表。

在本发明另一实施例中,用户在线管理还包括:所述第一终端启动注册广播流程以获取用户列表之后,启动在线定时心跳广播流程以维护所述用户列表。该过程中,第一终端向各所述第二终端发送心跳消息以广播心跳,对 于响应所述心跳消息的第二终端,所述第一终端接收所述心跳响应消息以刷新用户在线定时器;对于未响应所述心跳消息的第二终端,所述第一终端等待超时后在所述用户列表中将所述未响应所述心跳消息的第二终端设置为离线终端。具体的,可参见图3,图3为本发明PoC业务实现方法中第一终端启动在线定时心跳广播流程以维护用户列表的信令图。

请参照图3,本实施例中,第一终端具体为终端A,第二终端具体为终端B~终端X。本实施例包括如下步骤:

301、第一终端向用户列表中的所有第二终端发送心跳消息以广播心跳。

本步骤中,定时时间到,第一终端通过发送心跳消息,即Option消息,向用户列表中的所有在线终端广播心跳,其中,Option消息由SIP标准协议定义。假设第一终端的名字为mike,该广播心跳过程具体可参见如下消息格式:

OPTIONS sip:poc SIP/2.0

Via:SIP/2.0/UDP 192.168.1.101:5060;rport;branch=z9hG4bK73307

Max-Forwards:70

To:<sip:mike@poc.com>

From:<sip:mike@poc.com>;tag=z9hG4bK41462016

Call-ID:932953861799@192.168.1.101

CSeq:1OPTIONS

Accept:application/sdp

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

302、第二终端向第一终端发送心跳响应消息。

本步骤中,第二终端接收到心跳消息后,若该第二终端还在线,还能响应该心跳消息,则向第一终端回复心跳应答消息,该心跳应答消息例如为200OK。另外,第二终端还刷新在线用户定时器。假设第一终端的名字为mike,该刷新在线用户定时器的过程具体可参见如下消息格式:

SIP/2.0200OK

Via:SIP/2.0/UDP 192.168.1.101:5060;rport=5060;branch=z9hG4bK73307

From:<sip:john@poc.com>;tag=z9hG4bK41462016

To:<sip:mike@poc.com>;tag=1860083540

Call-ID:932953861799@192.168.1.101

CSeq:1OPTIONS

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

当第一终端接收到第二终端发送的心跳响应消息后,刷新自身用户列表中第一终端的在线用户定时器。

另外,对于未响应所述心跳消息的终端,例如,对于下线的第二终端,第一终端等待超时后,将自身用户列表中的该终端刷新为离线终端或者删除。

本发明实施例中,局域网组网网段内所有终端通过上述的在线定时心跳广播流程,定时更新维护用户列表,使得所述用户列表中的终端包括在线终端或离线终端。

在本发明又一实施例中,用户在线管理包括:第一终端启动注册广播流程以获取用户列表之后,还向所述用户列表中的各第二终端发送去注册消息。

具体的,第一终端在关机或者进程退出等时触发去注册流程,此时,第一终端向用户列表中的各终端广播去注册消息,并且无需等待响应。接收到该去注册消息的终端将该第一终端设置为离线或删除。假设第一终端的名字为mike,该发送去注册消息的过程具体可参见如下消息格式:

REGISTER sip:poc SIP/2.0

Via:SIP/2.0/UDP 192.168.1.101:5060;rport;branch=z9hG4bK63487

Max-Forwards:70

To:<sip:mike@poc.com>

From:<sip:mike@poc.com>;tag=z9hG4bK41025135

Call-ID:816207185125@192.168.1.101

CSeq:1REGISTER

Contact:sip:mike@192.168.1.101:5060;transport=udp

Expires:0

Allow:INVITE,ACK,CANCEL,OPTIONS,BYTE,UPDATE,REFER,NOTIFY,SUBSCRIBE

Supported:timer,eventlist

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

在本发明又一实施例中,当终端的管理具体为群组管理时,第一终端可通过对用户列表中的终端进行勾选以创建PoC群组并保存。对于本地创建的任一PoC群组,可任意命名并保存。另外,当第一终端接收到组呼时,对比组呼邀请消息,即INVITE消息中用户列表对应的PoC群组,若本地没有创建该PoC群组,则创建新的PoC群组并提示用户是否保存。

第二个方面、在上述终端管理的基础上实现具体PoC业务。

在本发明一实施例中,当所述PoC业务具体为群组会话建立业务时,所述第一终端与第二终端交互以实现PoC业务,包括:所述第一终端向所述第二终端发送邀请消息;所述第一终端接收所述第二终端发送的肯定应答消息或取消消息,所述第一终端与各所述发送肯定应答消息的第二终端进行群组会话;或者,所述第一终端等待超时后,所述第一终端在所述用户列表中将未响应所述邀请消息的第二终端设置为离线终端。具体的,可参见图4,图4为本发明PoC业务实现方法中群组会话建立业务的信令图。

请参照图4,本实施例中,第一终端具体为终端A,第二终端具体为终端B~终端X。本实施例包括如下步骤:

401、第一终端向PoC群组中的所有第二终端发送邀请消息。

本步骤中,第一终端向PoC群组中的第二终端发送邀请消息,即INVITE消息,发起组呼建立,组名group1可以携带在To字段中,其中,INVITE消息由SIP标准协议定义,具体可参见如下消息格式:

INVITE sip:group1@poc.com SIP/2.0

Via:SIP/2.0/UDP 192.168.1.100:5060;rport;branch=z9hG4bK00852

Max-Forwards:70

To:<sip:group1@poc.com>

From:<sip:mike@poc.com>;tag=z9hG4bK14504749

Call-ID:180525137476@192.168.1.100

CSeq:1INVITE

Contact:<sip:mike@192.168.1.100:5060;transport=udp>

Expires:3600

Allow:INVITE,ACK,CANCEL,OPTIONS,BYTE,UPDATE,REFER,NOTIFY,SUBSCRIBE

Supported:timer,eventlist

User-Agent:PoC-Client/OMA1.0 NSNClient-1.0

Content-Length:791

Content-Type:multipart/mixed

Content-Type:application/sdp

v=0

o=mike@poc.com 00 IN IP4192.168.1.100

s=Session SIP/SDP

c=IN IP4192.168.1.100

t=00

m=audio 22002 RTP/AVP 114

a=rtpmap:114 AMR/8000

a=fmtp:114 octet-align=1;mode-set=7,0

a=rtcp:22003

m=application 22003 UDP TBCP

a=fmtp:TBCP queuing=0;tb_priority=1;timestamp=0;poc_sess_priority=0

Content-Type:application/resource-lists+xml

Content-Disposition:recipient-list

<?xml version="1.0"encoding="UTF-8"?>

<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<list>

<entry uri="sip:john@poc.com"/>

<entry uri="sip:rose@poc.com"/>

<entry uri="sip:jast@poc.com"/>

</list>

</resource-lists>

402、第二终端向第一终端发送100尝试(100trying)消息。

403、第二终端向第一终端发送肯定应答消息。

本步骤中,第二终端接收到INVITE消息后,若该第二终端可以接听组呼,则向第一终端发送肯定应答消息,即200OK,其中,200OK消息由SIP标准协议定义,具体可参见如下消息格式:

SIP/2.0200OK

Via:SIP/2.0/UDP 192.168.1.100:5060;branch=z9hG4bK00852;rport=5060

To:<sip:group1@poc.com>;tag=32dcd901fb1dd911

From:<sip:mike@poc.com>;tag=z9hG4bK14504749

Call-ID:180525137476@192.168.1.100

CSeq:1INVITE

Contact:<sip:john@192.168.1.101:5060;transport=udp>

Server:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:347

Content-Type:application/sdp

v=0

o=john@poc.com 00IN IP4192.168.1.101

s=Session SIP/SDP

c=IN IP4192.168.1.101

t=00

m=audio 22002RTP/AVP 114

a=rtpmap:114AMR/8000

a=fmtp:114octet-align=1;mode-set=7

a=rtcp:22003

m=application 22003UDP TBCP

a=fmtp:TBCP queuing=0;tb_priority=1;timestamp=0;poc_sess_priority=0

404、第一终端向第二终端发送ACK消息。

405、第二终端向第一终端发送取消消息。

本步骤中,第二终端接收到INVITE消息后,若该第二终端无法接听组呼,则向第一终端发送取消消息,即Cancel消息,其中,Cancel消息由SIP 标准协议定义,具体可参见如下消息格式:

CANCEL sip:group1@poc.com SIP/2.0

Via:SIP/2.0/UDP 192.168.1.124:5060;rport;branch=z9hG4bK00852

Max-Forwards:70

To:<sip:group1@poc.com>

From:<sip:mike@poc.com>;tag=z9hG4bK14504749

Call-ID:180525137476@192.168.1.100

CSeq:2CANCEL

Contact:<sip:rose@192.168.1.124:5060;transport=5060>

Expires:3600

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

需要说明的是,步骤403与步骤405中的第二终端为不同的第二终端,且该两个步骤的执行并无严格的先后顺序。

406、第一终端向第二终端发送肯定应答消息,即200OK。

407、第一终端对第二终端等待超时。

另外,当第二终端为用户列表中的离线终端时,例如,第二终端X,该离线终端无法响应第一终端发送的INVITE消息,此时,第一终端等待协议栈超时后自动结束。

当所有被叫终端,即PoC群组中的所有在线的第二终端都向第一终端发送200OK或Cancel消息,以及对所有离线的第二终端都等待超时后,完成群组会话的建立。该过程中,若没有一个第二终端向第一终端发送200OK,即当所述第一终端接收到的各所述在线终端发送的消息均为Cancel消息,且所述第一终端对各所述离线终端等待超时时,说明该第一终端无法进行群组会话,群组会话建立失败,可对用户进行提示。

在本发明一实施例中,当所述PoC业务具体为群组会话释放业务时,所述第一终端与第二终端交互以实现PoC业务,包括:当所述第一终端接收所述第二终端发送的再见消息,所述再见消息为所述第二终端在退出所述PoC群组时,向所述PoC群组内的所述第一终端及其他第二终端广播发送的;所述第一终端检测是否所有所述第二终端已发送所述再见消息,或者,转变为 离线终端;若是,则释放本地会话资源,并在所述用户列表中将已发送所述再见消息的第二终端设置为离线终端;否则,继续群组会话。具体的,可参见图5,图5为本发明PoC业务实现方法中群组会话释放业务的信令图。

请参照图5,本实施例中,第一终端具体为终端A,第二终端具体为终端B~终端X,假设第二终端B退出群组,则本实施例包括如下步骤:

501、第二终端B向PoC群组内的所有终端发送Bye消息。

第二终端B选择退出群组会话后,向PoC群组内的第一终端及其他第二终端发送Bye消息。

502、第二终端B接收200OK消息。

本步骤中,在接收到第二终端B发送的Bye消息后,第一终端以及该第二终端B之外的其他第二终端向第二终端发送200OK消息,此后所有用户面消息不再发送给该已发送Bye消息的第二终端B。

503、第二终端B对第二终端X等待超时。

上述过程中,对于离线的第二终端,如第二终端X,该离线终端无法响应第二终端B发送的Bye消息,此时,第二终端B等待协议栈超时后自动结束。

504、第二终端B释放本地会话资源。

当所有在线终端都已经回复200OK,以及第二终端B对所有离线终端都等待超时后,第二终端B释放本地会话资源,具体可参见如下消息格式:

BYE sip:group1@poc.com SIP/2.0

Via:SIP/2.0/UDP 192.168.1.124:5060;rport;branch=z9hG4bK00852

Max-Forwards:70

To:<sip:group1@poc.com>;tag=32dcd901fb1dd911

From:<sip:john@poc.com>;tag=z9hG4bK14504749

Call-ID:180525137476@192.168.1.100

CSeq:1BYE

User-Agent:PoC-Client/OMA1.0NSNClient-1.0

Content-Length:0

本实施例中,其他的第二终端选择退出群组会话的处理流程同第二终端B,此处不再赘述。

505、第一终端检测是否所有第二终端已发送Bye消息,或者,转变为离线终端。

具体的,第一终端每次收到Bye消息或者某一在线的第二终端转变为离线终端时,都会检测PoC群组中是否还有会话用户。

506、第一终端释放本地会话资源。

具体的,上述步骤505中,若第一终端检测出所有第二终端都已释放本地会话资源或者转变为离线终端,则进行本地会话资源的释放。至此,整个PoC群组会话就完全被释放。

在本发明一实施例中,当所述PoC业务具体为话权管理业务时,所述第一终端与第二终端交互以实现PoC业务,包括:所述第一终端向所述第二终端发送话权空闲消息;所述第一终端接收所述第二终端发送的话权请求消息;所述第一终端判断是否允许所述第二终端拥有话权;若是,则向所述第二终端发送话权授权消息;否则,向所述第二终端发送话权拒绝消息。具体的,可参见图6,图6为本发明PoC业务实现方法中话权状态机迁移图。

请参照图6,本实施例中,第一终端具有四种状态机,分别为:主讲含话权态、暂态、监听含话权态、监听无话权态。

话权转移过程中,第一终端为发起组呼的终端,即第一终端状态机的初始态为主讲含话权态,拥有话权,PoC群组中的第二终端的状态机为监听无话权态。

当第一终端讲完,向PoC群组内的终端广播话权空闲消息,即Idle消息,然后第一终端的状态机进入监听含话权态,状态机为监听无话权态的第二终端向第一终端发送话权请求消息,即Request消息以申请话权。

状态机为监听含话权态的第一终端收到Request消息后,判断是否允许该发送Request消息的第二终端拥有话权,若第一终端允许该第二终端拥有话权,则该第二终端的申请通过,第一终端向该第二终端发送话权授权消息,即Granted消息,第二终端申请话权成功,该第二终端可以开始讲话,并向PoC群组内的其他终端广播话权获取消息,即taken消息,使得其他终端更新话权所在终端信息;否则,第一终端向该第二终端发送话权拒绝消息,即deny消息,第二终端申请话权失败,状态机继续保持监听无话权态。

另外,当所述PoC业务具体为话权管理业务时,所述第一终端与第二终 端交互以实现PoC业务,所述第一终端向各所述第二终端发送话权获取消息,所述话权获取消息携带任一一个在线的第二终端的标识,以将话权转移至与所述标识对应的第二终端。

具体的,当第一终端的状态机为主讲含话权态时,若第一终端准备挂断会话,则需要先向PoC群组中的终端广播taken消息,该taken消息携带PoC群组中任一在线第二终端的标识。收到该taken消息的第二终端,若判断出taken消息中的话权用户名是自己,则将状态机转变为监听含话权态;否则,更新话权所在终端信息,并保持状态机为监听无话权态。

对于状态机为监听无话权态的第二终端,若其准备挂断会话,则直接走群组会话释放流程。

会话过程中,若第一终端收到Bye消息,表示PoC群组内有终端释放了会话。此时,第一终端判断PoC群组内除了自己,是否还有会话的第二终端,若有,则更新用户列表,将发送Bye消息的用户刷新为离线或删除;否则,若第一终端判断出PoC群组内除了自身,已无其他会话第二终端,则发起会话释放流程。

总之,话权管理业务的中心思想就是:话权只有1个,同一时间只能有一个终端含话权;无话权的终端在群组Idle时,可以向含话权的终端申请话权;话权所有者发生变更,需要通知到PoC群组内的其他终端。具体的,当无话权的终端为第一终端时,可以向含话权的第二终端申请话权;或者,当无话权的终端为第二终端时,可以向含话权的第一终端或其他第二终端申请话权。

在本发明一实施例中,当所述PoC业务具体为用户面报文处理业务时,所述第一终端与第二终端交互以实现PoC业务,包括:所述第一终端向所述第二终端发送实时传输协议包,以使得所述第二终端通过固定端口接收所述实时传输协议包。具体的,可参见图7,图7为本发明PoC业务实现过程中用户面报文发送示意图。

请参照图7,用户面分为实时传输协议(Real-time Transport Protocol,RTP)、RTP控制协议(RTP Control Protocol,RTCP)、突发语音控制协议(Talk Burst control protocal,TBCP)三个通道。其中,RTP、RTCP按照流媒体协议发送多媒体用户面报文,TBCP通道发送PoC协议的话权控制信令。 RTP、RTCP、TBCP采取固定端口方式,不依赖SIP消息的会话描述协议(Session Description Protocol,SDP),方便PoC群组内用户面消息和信令的广播和收发处理。

请参照图7,第一终端为主讲终端,第二终端为监听终端,第一终端广播RTP报文,而RTCP报文与TBCP报文的发送是双向的。第一终端向PoC群组内的各第二终端发送RTP报文,各第二终端在固定端口接收到RTP报文后,进行媒体数据处理并正常播放。当某一个第二终端正常退出时,PoC群组中的其他终端更新用户列表,第一终端停止向该第二终端广播用户面数据。

图8为本发明终端实施例一的结构示意图。本实施例提供的终端,其可实现本发明任意实施例提供的应用第一终端的方法的各个步骤。具体的,本实施例提供的终端具体包括:

群组建立模块11,用于根据用户列表中的在线终端建立PoC群组;

业务实现模块12,用于与第二终端交互以实现PoC业务,所述第二终端为所述PoC群组中的在线终端,所述第二终端至少为一个。

本发明实施例提供的终端,具体为第一终端,在建立PoC群组后,与PoC群组中的各第二终端交互以实现PoC业务,从而解决现有技术中,局域网组网中,终端为实现PoC业务必须部署PoC服务器导致的组网成本高、组网困难的问题。而且,该过程中,无需部署PoC服务器,各终端无需依赖PoC服务器实现PoC业务,所有PoC业务的交互直接在各终端之间进行,而无需经由服务器转发,在一定程度上降低了业务时延。

可选的,在本发明一实施例中,所述业务实现模块12,具体用于当所述PoC业务具体为群组会话建立业务时,向所述第二终端发送邀请消息;接收所述第二终端发送的肯定应答消息或取消消息,并与各所述发送肯定应答消息的第二终端进行群组会话;或者,等待超时后,在所述用户列表中将未响应所述邀请消息的第二终端设置为离线终端。

可选的,在本发明一实施例中,所述业务实现模块12,具体用于当所述PoC业务具体为群组会话释放业务时,接收所述第二终端发送的再见消息,所述再见消息为所述第二终端在退出所述PoC群组时,向所述PoC群组内的所述第一终端及其他第二终端广播发送的;检测是否所有所述第二终端已发送所述再见消息,或者,转变为离线终端,若是,则释放本地会话资源,并 在所述用户列表中将已发送所述再见消息的第二终端设置为离线终端;否则,继续群组会话。

可选的,在本发明一实施例中,所述业务实现模块12,具体用于当所述PoC业务具体为话权管理业务时,向所述第二终端发送话权空闲消息;接收所述第二终端发送的话权请求消息;判断是否允许所述第二终端拥有话权;若是,则向所述第二终端发送话权授权消息;否则,向所述第二终端发送话权拒绝消息。

可选的,在本发明一实施例中,所述业务实现模块12,具体用于当所述PoC业务具体为话权管理业务时,向各所述第二终端发送话权获取消息,所述话权获取消息携带任一一个在线的第二终端的标识,以将话权转移至与所述标识对应的第二终端。

可选的,在本发明一实施例中,所述业务实现模块12,具体用于当所述PoC业务具体为用户面报文处理业务时,向所述第二终端发送实时传输协议包,以使得所述第二终端通过固定端口接收所述实时传输协议包。

图9为本发明终端实施例二的结构示意图。如图9所示,本实施例提供的终端在图8所示终端的基础上,进一步的,还包括:

用户列表获取模块13,用于在所述群组建立模块11根据用户列表中的在线终端建立PoC群组之前,向局域网组网网段内所有终端发送注册请求;接收所述局域组网网段内在线终端发送的注册响应,并将所述在线终端保存在所述用户列表中以获得所述用户列表。

再请参照图9,可选的,本实施例提供的终端在图8所示终端的基础上,进一步的,还包括:用户列表刷新模块14,用于向各所述第二终端发送心跳消息;对于响应所述心跳消息的第二终端,接收所述心跳响应消息以刷新用户在线定时器;对于未响应所述心跳消息的第二终端,等待超时后在所述用户列表中将所述未响应所述心跳消息的第二终端设置为离线终端。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1