折腾:
【未解决】搞懂rcsjta的项目的编译和测试的逻辑如何上手
期间,发现有个wiki。去学习和参考文档,尝试搞清楚如何开发和入手。

分别去看看:
用于开发的
感觉是我们要的:如何开始开发
不过先继续看看其他的资料和文档:
是用来介绍如何测试Stack协议栈的
为了测试RCS服务,需要:
- IMS平台
- 选择:作者有 Telco平台,如果你没有,可以安装第三方IMS平台
- 用kamailio作为P/I/S-CSCF
- 用bind作为DNS服务器
- 用FHoSS作为HSS
- 如何设置搭建
- Setup Kamailio IMS Servers (P-CSCF / I-CSCF / S-CSCF) | LM Tools
- tutorials:ims:installation-howto [Kamailio SIP Server Wiki]
- AS=Application Server=应用程序服务器
- 用于:
- IM=Instant Message=即时消息 服务
- 1对1消息
- 组聊
- 文件传输
- 说明
- 其他服务 不需要AS
- Capabilities=能力?
- 视频/图片/地理位置共享
- MM 会话
- 如何选择AS?
- 目前没有开源的AS可用
- 不过也可以测试1对1聊天和文件传输
- 原设备设为 active mode=主动模式
- 目的设备设为 passive mode=被动模式
Provisioning=供应 补给?
暂时不是很懂。待后续更加熟悉后,再回来看。
给了一些核心实例代码,演示相关api如何使用。
其中一个例子
Example 4 – Requests a refresh of the capabilities for a remote contact:
中提到了
Here we request a refresh of the capabilities by sending a SIP OPTIONS to the remote via the Telco network. Then the result is received via callback (see next chapter).
-》通过Telco网络,发送SIP OPTIONS到远端设备,用于刷新(了解对方的)能力(支持哪些功能)
典型的几种功能:
- 聊天=IM=Chat
- 文件传输=FT=File Transfer
- Video=视频
- Image=图片
- Geoloc=地理位置
- Extensions=扩展(功能)
另外:
Example 1 – Send a chat message
其中提到
If there is no ongoing session with the remote contact, a new SIP session is created to send the first message, else the existing session is reused. In case of coverage problem, the message is queued and sent later.
-》好像是由于可能存在 coverage 网络信号覆盖?问题,导致此时(手机)网络没信号?
所以把要发送的消息排队,待后续网络有信号了?再继续发送
对于对方消息已读,底层实现是:
Example 4 – Send a read report to the remote contact
的:
Here we send a report to the remote contact saying that the message as been read. Note that the delivery report is sent automatically by the RCS service.
即:
chatApi.markMessageAsRead(msgId);
关于harness的测试
harness的中文翻译:
n. 马具;背带,吊带;甲胄;挽具状带子;降落伞背带;日常工作
v. 治理,利用;套;驾驭;披上甲胄;将(两只动物)拴在一起
A test harness suite has been implemented in order to verify the API signature of the RCS API supported by a device and to avoid device fragmentation.
防止设备碎片
看起来像是:好像是套在一起?治理?的意思
兼容性测试套件 (CTS) 是一个免费的商业级测试套件,可在此处下载。CTS 代表兼容性的“机制”。
此处的自动化测试套件允许:
- 验证API签名
- 检测一个设备,是否兼容对应的API(签名)
- 目前有几种
- Albatros
- Blackbird
- Crane
- 从贴图的细节看,的确好像是:测试API是否兼容 如果不兼容,会失败,无法通过测试
- API参考定义 都放在xml中:res/xml/
- 从别处拷贝的:rcsjta/doclava/reference/current.xml
- 验证内容提供者content providers
- 验证可操作性(读/写)、多列?等
关于扩展功能:
- extension=扩展
- 起源
- 此开源项目最开始就引入了extension扩展机制,支持部署新的RCS/IMS服务
- 现状
- 目前已被GSMA采用放入RCS 5.2中
- 详见
- specification中的RCS Extensibility部分
- 此处
- Capability API:声明有哪些扩展
- Multimedia Session API:实现扩展的功能
除了本身安卓的sign外,还会有tag的sign等过程
包括安装期间和使用期间,都会有权限校验的
用于校验的工具:
- PorteCle
- http://portecle.sourceforge.net
- Portecle is a user friendly GUI application for creating, managing and examining keystores, keys, certificates, certificate requests, certificate revocation lists and more.
- keytool
- android JDK中的工具
- iaritool
- RCS的工具
- 源码位置:rcsjta/tools/security/tag-auth-util
- 最新源码:
- 没有
- 只有代码中有些iari相关代码
算了,等用到再说。
或许最新android studio中已无需此工具了?
Certificates · android-rcs/rcsjta Wiki
- provisioning DM server
- File Transfer content servers of the OrangeLabs integration platforms
自己实现了https的校验证书
需要安装到安卓设备中
- 1. Provisioning server
- DM server certificate
- 2. File Transfer content servers
这几个文件都是存在的。
不过注意到了是旧的tag:0.9.0
最新版中,没有data目录了,这几个文件都不存在了。
关于provisioning的模板的
又看到了那几个设备?
Albatros
Blackbird
好像是协议标准的名字:
- Albatros RCS 5.1 standard
- Blackbird RCS 5.2 standard
此处是手动的manual provisioning:
- Albatros template
- template-ota_config-Albatros.xml
- 参数
- ConRef, Private_User_Identity, Public_user_identity_List, Home_network_domain_name, LBO_P-CSCF_Address, Public_user_identity, Realm, UserName, UserPwd, conf-fcty-uri, exploder-uri
- Blackbird template
- template_config-Blackbird.xml
- 参数
- ConRef, Private_User_Identity, Public_user_identity_List, Public_user_identity, Home_network_domain_name, LBO_P-CSCF_Address, Realm, UserName, UserPwd, ftHTTPCSURI, ftHTTPCSUser, ftHTTPCSPwd, conf-fcty-uri
终于看到和开发直接相关的文档了 android studio
和之前的
有点类似?有点重复?
只是介绍了如何导入和简单的设置
没说具体如何开发和测试
然后去:
【已解决】参考开发环境文档入手开发RCS的项目rcsjta
转载请注明:在路上 » 【已解决】学习rcsjta的wiki文档搞懂开发逻辑