主页(http://www.pttcn.net):WEPTT对讲平台能力开放说明 1 概述WePTT作为开放的平台,提供核心的POC(实时语音对讲)和IM(即时通信)相关技术能力,使第三方系统可以简便快捷的实现服务器端与客户端的二次开发需求。开放的接口和SDK包括:服务器对接接口、Android平台SDK、iOS平台SDK、Windows平台ActiveX等。 1.1 服务器对接WePTT平台核心能力服务器如下图:
注: 1) 图中表示的为逻辑服务,与实际部署的服务器设备无直接关系。 2) DNS作为前置服务为DM提供负载均衡 3) DM依据自有均衡策略为用户分配SP 4) 多个DM对等分布,采用共享库方式对数据访问操作 5) 多个SP对等分布,基于路由机制通信 6) 每个SP管理一个或多个MDS 1.1.1 DM (Data Manager) 数据管理服务
DM服务在整个系统中承担所有与DB、数据等相关交互的数据管理工作,对客户端提供TCP访问接口,同时对其它服务也提供对应DB操作的交互接口。DB可以单独作为服务部署在不同的设备上,采用MySQL数据库,Master/Slaver模式, MemCache机制。 具体职能:
1.1.2 SP (Session Protocol) 会话管理服务SP是承载在线用户状态的核心处理服务,维护所有心跳用户的语音会话和即时消息。多台SP通过DM运行监控模块负载均衡,各SP之间完全对等,通过路由机制相互寻址通信。 具体职能:
1.1.3 MDS (Media Services) 媒体服务媒体服务主要承担用户的语音通话和分组的话语权权限控制,又分两种服务形式:1)临时组呼叫,2)固定群组或频道通话。 具体职能:
1.1 Android & iOS平台SDK
WePTT对讲Android & iOS SDK为第三方应用在Android和iOS智能平台上提供了可以快速实现对讲能力的开发组件,第三方应用可通过SDK Java Package和Object-C来访问所有这些能力,无需关心具体的逻辑实现和协议通信。 为了达到最好的通信性能和效果,SDK低层采用C/C++构造相关的核心通信逻辑和模块,透过JNI/Object-C为上层应用提供访问接口。低层已封装了Session、Media、Audio、Codec等关键的协议、算法、网络操作、状态机、控制逻辑,以及线程规则管理、节电控制等模块。 SDK进一步为第三方应用的接口访问进行了封装,将C/C++很好的转化成Android Java或Object-C面向对象的习惯和方式。包含了数据类型、数据处理、用户交互状态机控制、以及为调用方提供可实现的Listener/Deletgate作为接口,从而形成面向Android Java或Object-C程序员集成开发的接口层。整体方案分层明确,具有良好的扩充能力,保证了优良的运行性能和低功耗运行的特征,同时使第三方二次开发的工作量尽可能降到最低。 1.1 Windows平台SDKWindows平台中提供ActiveX控件形式的SDK,可嵌入Web或其它应用程序框架中以实现开放的POC和IM能力。ActiveX中提供了与Web层JavaScript页面脚本交互的技术方式,以便满足瘦客户模式的二次开发。
1 能力清单WePTT平台为第三方系统提供的开放能力主要体现如下几部分: 1.1 用户系统对接与有效性控制作为两个相对独立的系统对接,用户子系统对接是最为关键的第一步。对接的基本原则是使第三方系统中的用户可以一一对应到WePTT平台,从而实现这些用户可以使用WePTT所有开放的能力。WePTT平台提供了系统对接常用的用户匹配接口方式,第三方系统可以通过给定全网唯一的用户ID匹配到WePTT中唯一对应的用户,从而建立两个系统用户的ID对照表。 系统同时支持针对某一指定用户WePTT服务的开通和关闭,以便第三方系统对相应用户增值服务有效性的管理。例如第三方系统中WePTT服务仅作为其服务套餐之一,需要经过一定流程或条件后再开通WePTT服务,当用户到期时又需要将其WePTT服务关闭,可以通过平台提供的接口来实现此需求。届时WePTT平台将根据第三方的指令对登录WePTT服务的客户端SDK进行有效性确认和限制,只有有效的用户才能正常登录和使用,基本流程大致如下图所示:
考虑到客户端SDK集成到第三方的APP中需要处理连接WePTT服务器的负载均衡,以及登录流程整合后的优化方案,系统设计上为第三方系统提供了服务端直接替客户端获取均衡配置的接口,这样可以减少客户端与服务器的交互,从而尽可能缩短客户端登录时间。具体流程如下图:
1.1 用户在线状态查询WePTT服务作为一套“有状态”的服务平台,为第三方系统提供了随时可以较为精确的查询某指定用户是否在线的状态接口,以便第三方系统实现和某用户在线情况相关的功能需求和逻辑。 1.2 频道管理在WePTT平台中,固定会话组织形式是以“频道”方式实现的,频道中的成员之间可以在频道内实现POC实时语音通话、收发即时消息等功能,频道与频道之间互不影响、相对隔离,类似传统对讲机或数字集群的频段。平台提供了开放的接口用于管理所有用户的频道。具体功能包括:频道的创建、删除、属性变更,以及频道内成员及其权限和优先级的变更设定。 1.3 实时语音对讲(POC)WePTT平台的核心能力是提供POC实时语音对讲,第三方客户端或PC端可通过为Android、iOS以及Windows平台封装的SDK实现以下具体功能特征: 1) 账户登入登出:客户端可通过SDK登入登出WePTT服务 2) 获取频道列表以及成员列表:SDK提供了接口和获取用户所属的所有频道列表,以及频道中的成员信息 3) 频道对讲:所有频道内的成员均可连接到频道会话,连接在同一频道的用户之间可以进行实时语音对讲,并受话语权控制;频道成员数限定在300人以内 4) 临时呼叫/应答:SDK可发起或挂断1对1、1对多的呼叫应答,也可以接听或拒接对讲来电;在会话中主叫方可邀请其它用户进入此会话;临时会话成员数限定在30人以内 5) 话语权控制:无论是频道对讲还是临时呼叫/应答均受话语权控制,即同一时间只允许一个人讲话,其它人只能听;临时呼叫/应答类型的会话中主叫有最高权限可直接抢断任一成员的话语权;而频道类型的会话中,是否能抢断别人讲话取决于成员的优先级高低,高级别成员可选择抢断低级别;同时频道内支持话语权排队能力,即当某一个用户在讲话时,其它成员也可以申请讲话,但会给所有成员呈现出正在排队的状态,多个等待话语权的成员按序排队,允许排队的成员最大数可有系统后端设定 6) 会话中状态呈现:在会话中无论是发言、排队、或是进出会话,其它成员均可及时看到状态的变化 7) 用户状态呈现:SDK支持用户上下线状态变化的即时通知和呈现 SDK除以上功能外,还为第三方封装了相关的基本处理,如音频状态控制与编解码、网络状态切换、普通电话处理接口等,无需调用方考虑逻辑处理。 同时POC在性能方面可满足如下指标(在网络状态良好的3G环境下): 1) 临时会话的呼叫时延(从发起呼叫到对端振铃)不高于3000ms; 2) 频道呼通率和临时呼叫应答接通率不低于95%; 3) POC语音端到端的时延不高于1000ms 1.4 即时通信(IM)平台能力上除核心的POC外,还可支持高效的IM即时通信服务,除了支持一般文本、图片、录音等媒介消息外,系统还提供可供第三方应用自定义封装的消息类型,以便实现更丰富而灵活的自定义需求。 主要能力特征为: 1) 消息类型:文本、图片、录音、自定义报文等 2) 支持频道内,以及1对1、1对多临时会话的消息收发 3) 支持离线消息读取 1.5 自定义系统消息通道1.5.1 上行消息第三方系统如果有需求希望接收来自客户端SDK上报的信息,可通过此能力实现,WePTT会将收到的消息原文传递给第三方指定的服务以进行相关的服务处理,进而支持一种自下而上的通道。
1.1.1 下行推送第三方系统可通过此服务批量向指定用户推送自定义的报文,客户端SDK收到后将把自定义报文剥离出原文并交给第三方客户端应用层自行处理,进而实现自上而下的通道。
修订:2014.03.19 (中国集群通信网 | 责任编辑:陈晓亮) |