首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MCPTT终端软件的设计与实现

概述

集群通信系统是为了满足用户指挥调度需求开发的,面向特定行业应用的专用无线通信系统。其特点是大量用户共享少量无线信道,具备快速的语音建立和抢占能力。集群通信系统在政务、医疗、能源、交通、应急通信等领域有着广泛的应用。

2016年3月,3GPP(3rd Generation Partnership Project,国际标准组织第三代合作伙伴计划)宣布MCPTT(Mission Critical Push To Talk,关键任务一键通)成为LTE标准的一部分。MCPTT被定义为一种运行在LTE网络上的全IP应用层服务,它使了用基于IMS域的实现方案,综合了大带宽、低延迟、易于大规模建网等众多优点,相比于现有的技术具有相当的优势。MCPTT服务提供的是一种增强型的PTT服务,适用于执行关键任务的场景,支持鉴权、组附属、组管理、组呼、单呼、优先级呼叫、发言权控制、位置上报等功能。

MCPTT系统介绍

MCPTT系统由终端域、承载域、SIP核心域以及MCPTT应用域组成,如下图所示。

终端通过Relay中继接入到EPS承载域中,EPS承载域向上与SIP核心域相连接,SIP核心域向上与MCPTT应用域相连,由MCPTT域在应用层提供媒体分发,话语权控制等业务。

终端域代表终端所处的位置,该部分主要由用户直接使用的设备组成,用户设备可以通过Relay中继接入到承载域的EPS中,也可以通过E-UTRAN直接接入搭配网络中。

承载域代表MCPTT业务所需要的底层支持,一般是LTE网络。HSS是移动通信核心网的重要用户数据设备,存储用户的业务签约、鉴权认证、接入控制、位置状态等信息,为CS、PS、EPC、CM-IMS提供服务。MME是一个信令实体,主要负责移动性管理、承载管理、用户的鉴权认证、SGW和PGW的选择等功能。SGW主要负责用户面处理,负责数据包的路由和转发等功能,支持3GPP不同接入技术的切换,发生切换时作为用户面的锚点。PGW负责管理3GPP和非3GPP间的数据路由,管理3GPP接入和非3GPP接入间的移动通信,还负责DHCP、策略执行、计费等功能。E-UTRAN是LTE网络的接入网部分,负责用户的接入。MBMS GW负责LTE网络广播多播业务的媒体流的转发。BM-SC是广播多播服务器中心,是MBMS的核心功能实体,负责提供和管理MBMS业务。PCRF是策略和计费规则功能,该功能实体包含策略控制决策和基于流计费控制的功能。

SIP核心域处于应用层,是对SIP信令进行预处理的一个位置。该域只有一个SIP核心模块,它由P-CSCF、I-CSCF、S-CSCF组成。P-CSCF负责终端接入到整个网络中,是终端与网络相连的第一个节点,同时也负责IP寻址,将SIP信令发送到对应的终端中。I-CSCF负责在SIP核心中,与SIP数据库交互,查询并修改用户相关信息;S-CSCF负责在SIP核心中,提供服务选择等功能,将终端发送来的SIP信令传递给合适的MCPTT服务器。

MCPTT域由用户数据库、参与MCPTT服务器、控制MCPTT服务器、组管理服务器、身份管理服务器组成。其中MCPTT用户数据库用于存储MCPTT用户的相关数据,包括用户名及各项权限等等。参与MCPTT服务器用于和终端之间的会话管理和上报位置内容等业务,一般用作接入服务器。控制MCPTT服务器用于呼叫控制、话语权的控制、语音的分发等。组管理服务器存储了组相关的信息,向终端和服务器提供查询的接口。

MCPTT终端软件架构设计

MCPTT终端软件运行在终端域的UE上,主要包括用户界面和后台逻辑两大部分,其中后台逻辑部分包括消息中心、信令收发与处理、语音状态机以及Web等模块。

用户界面主要负责终端软件与用户间的交互,接收用户的点击事件,将点击事件交由后台逻辑处理,并显示后台逻辑处理后的反馈结果。

消息中心用于后台通知界面更新。后台线程无法直接更新用户界面,当后台线程需要更新时,直接将消息投递到消息中心,消息中心负责将更新消息分发给界面。

信令收发与处理模块主要负责终端与接入服务器的信令交互,包括发送和接收信令。对信令进行封装、解析和相应的处理,并可在特定环境中对信令进行压缩和解压。

Web模块主要负责终端与Web服务器的信令交互,包括HTTP通道的建立、信令的封装和发送以及HTTP信令的解析处理。

语音状态机接收从信令中解析出的与呼叫相关的参数,并根据接收的参数进行状态的转换和事件的处理,以完成相应的语音呼叫功能。

地理围栏

地理围栏是MCPTT中十分重要的地理位置信息上报触发条件,可根据实际任务情景,在地图上划定任意的多边形区域来对终端的位置进行监测。在终端获取自身地理位置后,如何计算其是否处于设定的地理围栏的范围内,是一个关键的问题。

对于多边形区域,服务器在地理位置配置信息中告知终端多边形边界点的坐标列表,这些点的坐标是按顺序进行排列的,每两个相邻坐标之间是多边形的一条边,一个典型的多边形地理围栏如图所示。

断一个点是否在多边形内,可从该点向任意方向做一条射线,如果该射线与多边形的边相交奇数次则该点在多边形内,若相交偶数次则该点不在多边形内。

在多边形区域地理围栏算法中,以终端位置为起点向左侧水平做一条射线。在终端软件中判断该射线是否与某条边相交,首先判断起点是否在边的两端点的水平平行线之间,在则可能存在交点,否则不存在交点。若可能存在交点,则进一步判断终端位置在边的左侧还是右侧,由于射线是以终端为起点向左侧水平射出,故终端位置在边右侧时存在交点。这里采用点和直线关系的公式,即当时,点于直线的右侧,其中k表示直线的斜率,b表示直线的截距。

若多边形区域某条边的端点坐标为和终端位置坐标为,则当其满足式(1)或式(2)时,终端在两端点的水平平行线之间。

(1)

(2)

在满足式(1)或式(2)的条件下,终端满足式(3)的不等式,则以终端为起点向左侧的射线与该边存在交点。

(3)

用以上所述算法遍历多边形全部的边,最终判断相交次数是否为奇数,若为奇数则终端位于多边形区域内,否则位于多边形区域外。

公众号近期内容回顾

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G0W52Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券