最新消息:20210917 已从crifan.com换到crifan.org

【未解决】搞懂rcsjta的项目的编译和测试的逻辑如何上手

逻辑 crifan 435浏览 0评论
折腾:
【未解决】编译和测试RCS开源项目rcsjta
期间,需要先去搞懂,如何上手rcsjta项目
如何编译和测试,相关逻辑是什么
看到了根目录的readme
/Users/xxx/dev/xxx/RCS/rcsjta/README.md
没说明具体如何编译
只说了是
RCS-e stack for Android with GSMA API
即安卓版的RCS-e的stack栈的实现,支持GSMA API
而RCS-e stack是RCS的安卓的开源实现
此处标准兼容GSMA RCS-e Blackbird的协议
RCS是基于IMS的
joyn是RCS的商业名称
后记:
Blackbird和Joyn,对应着图中的:
后记2:
【未解决】学习rcsjta的wiki文档搞懂开发逻辑
找到了相关解释:
  • Albatros RCS 5.1 standard
  • Blackbird RCS 5.2 standard
-》
即此处是:
  • Blackbird意味着RCS 5.2的标准
  • GSMA针对RCS的商业推广名称是:Joyn
那就继续看各种文档
GSMA | RCS – Future Networks
此处支持的标准是
/Users/xxx/dev/xxx/RCS/rcsjta/docs/SUPPORTED-STANDARDS.txt
有很多,只摘录其中觉得和RCS关系密切的一些
算了,都列出来:
-----------------------------------
 Supported standards at 07/09/2012
-----------------------------------

IETF:
-----
RFC 1321 - The MD5 Message-Digest Algorithm
RFC 2327 - SDP: Session Description Protocol
RFC 2373 - IP Version 6 Addressing Architecture
RFC 2392 - Content-ID and Message-ID Uniform Resource Locators
RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication
RFC 3261 - SIP: Session Initiation Protocol
RFC 3263 - Session Initiation Protocol (SIP): Locating SIP Servers
RFC 3264 - An Offer/Answer Model with the Session Description Protocol (SDP)
RFC 3265 - Session Initiation Protocol (SIP) Specific Event Notification
RFC 3325 - Private Extensions to the Session Initiation Protocol (SIP) forAsserted Identity within Trusted Networks
RFC 3339 - Date and Time on the Internet
RFC 3455 - Private Header (P-Header) Extensions to the Session Initiation Protocol (SIP) for the 3rd-Generation Partnership Project (3GPP)
RFC 3515 - The Session Initiation Protocol (SIP) Refer Method
RFC 3550 - RTP: A Transport Protocol for Real-Time Applications
RFC 3608 - Session Initiation Protocol (SIP) Extension Header Field for Service Route Discovery During Registration
RFC 3840 - Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)
RFC 3856 - A Presence Event Package for the Session Initiation Protocol (SIP)
RFC 3857 - A Watcher Information Event Template-Package for the Session Initiation Protocol (SIP)
RFC 3858 - An Extensible Markup Language (XML) Based Format for Watcher Information
RFC 3862 - Common Presence and Instant Messaging (CPIM): Message Format
RFC 3863 - Presence Information Data Format (PIDF)
RFC 3891 - The Session Initiation Protocol (SIP) "Replaces" Header
RFC 3903 - Session Initiation Protocol (SIP) Extension for Event State Publication
RFC 3966 - The tel URI for Telephone Numbers
RFC 3994 - Indication of Message Composition for Instant Messaging
RFC 4007 - IPv6 Scoped Address Architecture
RFC 4028 - The Session Timers in the Session Initiation Protocol (SIP)
RFC 4145 - TCP-Based Media Transport in the Session Description Protocol (SDP)
RFC 4566 - SDP: Session Description Protocol
RFC 4662 - A Session Initiation Protocol (SIP) Event Notification Extension for Resource Lists
RFC 4480 - RPID: Rich Presence Extensions to the Presence Information Data Format (PIDF)
RFC 4481 - Timed Presence Extensions to the Presence Information Data Format (PIDF) to Indicate Status Information for Past and Future Time Intervals
RFC 4961 - Symmetric RTP / RTP Control Protocol (RTCP)
RFC 4975 - The Message Session Relay Protocol (MSRP)
RFC 5262 - Presence Information Data Format (PIDF) Extension for Partial Presence
RFC 5438 - Instant Message Disposition Notification (IMDN)
RFC 5547 - A Session Description Protocol (SDP) Offer/Answer Mechanism to Enable File Transfer
RFC 5626 - Managing Client-Initiated Connection in the Session Initiation Protocol
RFC 5627 - Obtaining and Using Globally Routable User Agent URIs (GRUUs) in the Session Initiation Protocol (SIP)
RFC 5839 - An Extension to Session Initiation Protocol (SIP) Events for Conditional Event Notification"
RFC 6135 - An Alternative Connection Model for the Message Session Relay Protocol (MSRP)
RFC 6223 - Indication of Support for Keep-Alive

draft-ietf-sip-uri-list-conferencing-01     - Conference Establishment Using Request-Contained Lists in the Session Initiation Protocol (SIP)
draft-ietf-sip-multiple-refer-01     - Referring to Multiple Resources in the Session Initiation Protocol (SIP)
draft-ietf-simple-imdn-04         - Instant Message Disposition Notification
draft-ietf-mmusic-file-transfer-mech-03     - A Session Description Protocol (SDP) Offer/Answer Mechanism to Enable File Transfer
draft-ietf-simple-msrp-sessmatch-10     - Session Matching Update for the Message Session Relay Protocol (MSRP)
draft-kaplan-dispatch-session-id-03     - A Session Identifier for the Session Initiation Protocol (SIP)

3GPP:
-----
TS 24.229 - IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP), Stage 3
TS 24.279 - Combining Circuit Switched (CS) and IP Multimedia Subsystem (IMS) services, Stage 3

OMA:
----
Instant Messaging using SIMPLE Architecture, v1.0
Instant Messaging Requirements, v1.0
Instant Messaging using SIMPLE, v1.0
Presence SIMPLE Architecture, v2.0
Resource List Server (RLS) XDM Specification, v2.0

GSMA:
-----
RCS Release 1 - Functional Description
RCS Release 1 - Technical Realization
RCS Release 2 - Functional Description
RCS Release 2 - Technical Realization
RCS Release 2 - Endorsement of OMA SIP/SIMPLE IM 1.0
RCS Release 2 - Management Objects
RCS-e Version 1.1 - Services and Client Specification
RCS-e Version 1.2.1 - Services and Client Specification
RCS-e GSMA RCS IOT RCS-e Implementation Guidelines 2.1
RCS-e GSMA RCS IOT RCS-e Implementation Guidelines 3.1

IR74 - Video Share Interoper ability Specification
IR79 - Image Share Interoperability Specification
有个ppt文档
/Users/xxx/dev/xxx/RCS/rcsjta/docs/RCSJTA_open_source.ppt
另外还有个分支
rcsjta/Branches.md at wiki · android-rcs/rcsjta
Main branches
master is the official release of the project containing the last stable release.
* RCS Crane Priority Release scope: RCS 5.3
* TAPI 1.6.1
* Go to branch. 

tapi_1.6.1 contains the Crane Priority Release TAPI 1.6.1 release.
* RCS Blackbird scope: RCS 5.30 specifications
* TAPI 1.6.1
* Go to branch.

tapi_1.5.1 contains the Blackbird TAPI 1.5.1 release.
* RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
* TAPI 1.5.1
* Go to branch.

albatros contains the Albatros release.
* RCS Albatros 2.0 scope
* Albatros TAPI
* Go to branch.
Temp branches
securitymodel3 contains an implementation of the security model defined by GSMA to control TAPI access.
* RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
* TAPI 1.5
* Security Model http://www.gsma.com/network2020/wp-content/uploads/2015/06/RCC-55-v2-0.pdf
* Go to branch.

cpm contains a CPM/CMS implementation for chat and messaging.
* IMAP stack
* Go to branch.

tapi_0.9.0 contains the Blackbird TAPI pre release.
* RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
* First TAPI
* Go to branch.
对应源码:
https://raw.githubusercontent.com/android-rcs/rcsjta/wiki/Branches.md
## Main branches ##

**`master`** is the official release of the project containing the last stable release.
  * RCS Crane Priority Release scope: RCS 5.3
  * TAPI 1.6.1
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/master)
<br></li></ul>

**`tapi_1.6.1`** contains the Crane Priority Release TAPI 1.6.1 release.
  * RCS Blackbird scope: RCS 5.30 specifications
  * TAPI 1.6.1
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/tapi_1.6.1)
<br>


**`tapi_1.5.1`** contains the Blackbird TAPI 1.5.1 release.
  * RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
  * TAPI 1.5.1
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/tapi_1.5.1)
<br>

**`albatros`** contains the Albatros release.
  * RCS Albatros 2.0 scope
  * Albatros TAPI
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/albatros)
<br>


## Temp branches ##

**`securitymodel3`** contains an implementation of the security model defined by GSMA to control TAPI access.
  * RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
  * TAPI 1.5
  * Security Model http://www.gsma.com/network2020/wp-content/uploads/2015/06/RCC-55-v2-0.pdf
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/securitymodel3)
<br>


**`cpm`** contains a CPM/CMS implementation for chat and messaging.
  * IMAP stack
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/cpm)
<br>


**`tapi_0.9.0`** contains the Blackbird TAPI pre release.
  * RCS Blackbird scope: RCS 5.0 and 5.1 specifications including RCS-e 1.2.2 & Hot Fixes
  * First TAPI
  * [Go to branch.](https://github.com/android-rcs/rcsjta/tree/tapi_0.9.0)
很明显,还有其他好几个分支呢。
其中提到:
GSM Association Official Document RCC.55 – RCS Extensibility, Terminal and Network API Security
RCS Extensibility, Terminal and Network API Security Version 2.0 23 June 2015
继续还有RCS API
把此处的javadoc中核心的解释摘录过来
The RCS service is implemented into an Android background service which offers a high level API: the RCS Terminal API.
This API permits to discover capabilities supported by remote contacts.
This API exposes all functionality for single chat and group chat services.
This API exposes all infos related to RCS contacts.
This API exposes all functionality to initiate multimedia sessions between two end points based on a dedicated service ID (or extension).
This API exposes all functionality to transfer files in real time.
This API exposes exposes all functionality related to share geolocations during a CS call.
This API exposes exposes all functionality related to transfer images during a CS call.
This API exposes all functionality related to share live video stream during a CS call.
This API exposes exposes all functionality related to upload files to the RCS content server.
其中第一个说是:
RCS服务 是实现用于安卓后台服务,其可以给上层提供API:RCS终端API=RCS Terminal API
其他都是各个功能
com.gsma.services.rcs – TAPI 1.6.1 | RCS API
package
com.gsma.services.rcs
The RCS service is implemented into an Android background service which offers a high level API: the RCS Terminal API.
The RCS API is a client/server interface based on database providers, AIDL API & Intents. Several UI may be connected at a time to manage RCS events and to interact with the single stack instance running in background.
The RCS API permits to implement RCS application (e.g. enhanced address book, content sharing app, chat view, widgets) by hiding RCS protocols complexity.
The RCS API offers the following service API:
- Capability API: contact capabilities discovery.
- Chat API: 1-1 chat and group chat.
- File Transfer API: transfer a file.
- Video Share API: live video sharing during a CS call.
- Image Share API: image sharing during a CS call.
- UX API: links third party applications with RCS applications.
The RCS API uses the following Android concepts:
- Intents mechanism to broadcast incoming events (e.g. notification) and incoming invitations to any Android activity or broadcast receiver which are declared in the device.
- AIDL interfaces to initiate and to manage session in real time (start, session monitoring, stop). Session events are managed thanks to callback mechanism.
Note: Methods of the RCS API throw an exception if the RCS service is not available, not initialized or not registered to the IMS platform.
Note: Remote application exceptions are not yet supported by the AIDL SDK, a generic AIDL exception is thrown instead.
Note: The supported formats for a contact used as a method parameter are:
- Phone number in national or international format (e.g. +33xxx).
- SIP address (e.g. "John" ).
- SIP-URI (e.g. sip:+33xxx@domain.com).
- Tel-URI (e.g. tel:+33xxx).
有空再去看细节
Stack overview=协议栈架构
其他文档详见wiki:
【未解决】学习rcsjta的wiki文档搞懂开发逻辑
不过,开始开发前,还是先去看看,另外几个ppt:
  • /Users/xxx/dev/xxx/RCS/rcsjta/
    • docs
      • RCSJTA_open_source.ppt
      • tapi
        • wiki
          • TAPI_architecture.ppt
          • TAPI_capabilities_contact.ppt
          • TAPI_chat.ppt
先去学习:
【记录】学习RCS开源项目rcsjta的文档:RCSJTA_open_source.ppt
然后继续去:
【记录】学习RCS开源项目rcsjta的文档:TAPI_architecture.ppt、TAPI_capabilities_contact.ppt、TAPI_chat.ppt

转载请注明:在路上 » 【未解决】搞懂rcsjta的项目的编译和测试的逻辑如何上手

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
93 queries in 0.285 seconds, using 23.40MB memory