一、Agent简介
TUTK Agent的设计目的,是希望做到简化设备端对接我们的SDK过程,扩展原先P2P SDK无法进行web浏览,并且提升webrtc穿透率较低的问题。
Agent可以内置我们的流媒体传输模块(TRTC、P2PTunnel、AV中的全部或者部分)以及信令传输系统(Nebula),做到支持手机APP,浏览器观看,以及云存储功能,目前Agent只支持linux平台。
二、Agent框架
Agent作为一个特别的进程工作在设备上,通过CGI与设备进行交互,所以设备端需要实现完整的CGI程序。关于流媒体和信令的传输,已经完全由Agent实现,所以开发者不需要关心网络传输的具体实现。
(一)Agent框架示意图

图 1:Agent框架示意图
三、Agent对接资料清单
一般给出的Agent资料包,会包含以下部分,不同版本会有差异,以实际拿到文件为准。
| 文件/目录 | 说明 |
|---|---|
| tutk_agent | Agent主程序 |
| Readme.pdf | Agent的使用方式说明文档 |
| webrtc | WebRTC主程序 |
| dvr_cgi | CGI主程序,压缩包可能仅提供模板程序 |
| profile.txt | 设备支持的功能集配置文件 |
| library | 依赖库文件目录 |
| Nebula FunctionSets | 需要实现的信令定义文档 |
| XVR profile | 功能配置说明文档 |
| tutk_agent.json | 配置文件,用于配置CGI路径、区域、日志等参数 |
四、Agent对接
Agent的对接,主要工作在于实现CGI程序。CGI程序提供了Agent访问系统的方式,是Agent与系统交互的入口。
(一)CGI程序开发核心要求
CGI里面数据交互的格式是JSON,所以需要比较熟悉JSON语法格式,可以使用TUTK内置的JSON API,也可以用系统API或者第三方API。
五、资料申请方式
对接TUTK Agent,需要提前申请以下资料:
| 资料名称 | 申请方式/位置 |
|---|---|
| Agent程序包 | 提供设备相关信息给TUTK技术人员编译对应的SDK |
| Nebula FunctionSets | 对接时提供 |
| SDK License Key | 通过业务渠道申请,已申请过无需重复申请 |
| 测试UDID | 通过业务渠道申请 |
