Skip to content

GSMATerminals/IMS-DC-SDK-Open-Source

Repository files navigation

logo.png
Note: This document aims to help developers understand the architectural design of the 5G New Calling Terminal SDK, facilitating rapid secondary development or direct compilation and use based on this project, and guiding the development and debugging of 5G New Calling Application.

News[2026/06/16] 🔥

  • Support Bootstrap ( The bootstrap program is loaded in compliance with international standards (e.g., 3GPP, GSMA) to present the IMS Data Channel Application list. )
    Description
  • Access DCLab (New! A DC environment fully equivalent to the IMS commercial network for IMS Data Channel Application and AS development, testing, and service experience.)
    Description

5G New Calling Terminal SDK

  • 5G New Calling adds a data channel (i.e., IMS Data Channel) on top of the IMS audio and video channels, integrating AR, AI, and other technologies to enable interactive information exchange during calls.

  • The 5G New Calling Terminal SDK (hereinafter referred to as the SDK) is developed by the China Telecom Research Institute. After a call is established, the chip and the network negotiate the establishment of the IMS Data Channel. The terminal encapsulates the call logic for the IMS Data Channel and provides it to the SDK via AIDL interfaces (Android Interface Definition Language). The SDK serves as the runtime environment for the 5G New Calling Application (hereinafter referred to as IMS Data Channel Application) and provides a unified interface for IMS Data Channel Application to call, enabling them to operate the IMS Data Channel and other terminal capability interfaces.

  • The following are three IMS Data Channel Application service demonstrations for 5G New Calling. We hope that through vivid and engaging presentations, you can quickly gain a comprehensive understanding of the complete business capabilities of 5G New Calling.

    • Doodle Together(Left:Sender Right:Receiver)

      Description Description

      Doodle Together supports features such as scribbling with brushes, sending emojis, and displaying special effects. It also allows users to adjust the brush type, thickness, and color according to their preferences. This application effectively enhances the interactive experience between call participants, making communication more intuitive and understanding more precise.

    • File Sharing(Left:Sender Right:Receiver)

      Description Description

      File Sharing enables two parties in 5G New Calling to share real-time information such as locations and files without switching applications, streamlining both conversation and information exchange in one seamless experience.

    • Customer Service Line

      Description

      Custom Service Line is a toB application exclusively designed for the 5G New Calling DC service. Compared with the traditional 10000 service, which only supports voice prompts and keypad operations in a single interactive mode, the 5G New Calling Custom Service Line leverages a visual UI interface to enable touch-screen interaction, significantly enhancing operational flexibility and service accessibility for users.

I. Features

While complying with international standards such as 3GPP and GSMA, the SDK also implements the following features:

  • Closely associated with call state, manages the lifecycle of IMS Data Channel Bootstrap and Application, providing a stable runtime environment;

  • Isolated storage space for IMS Data Channel Application, ensuring data security;

  • Provides interfaces for IMS Data Channel Application to operate the IMS Data Channel and other terminal capabilities;

  • Sign and authenticate the IMS Data Channel Application package;

  • Supports running multiple IMS Data Channel Application simultaneously;

  • Supports opening and using IMS Data Channel Application after a call is established;

  • Supports different operators and terminal manufacturers implementing extended capability interfaces, introducing their respective private features via AAR packages;

  • Supports IMS Data Channel caching when a IMS Data Channel Application is closed during a call, avoiding re-creation of the IMS Data Channel when the IMS Data Channel Application is reopened;

  • Manages sensitive JS APIs (related to permissions, data privacy, etc.) through a license verification mechanism;

  • Supports simulated calls and loading local IMS Data Channel Application packages for offline debugging;

  • Access DCLab to provide developers with a DC business development and debugging environment that is fully aligned with the live network interface capabilities.

II. Architecture Design

SDK架构.png

III. Project Structure

NewCall
├── app/ IMS Data Channel Application list display related
├── base/ Basic common classes, not directly referenced by other modules, referenced after being compiled into an aar
│ ├── data/ Data structures
│ └── port/ Interfaces
├── build-logic/ Contains project build-related files
├── core/ Core logic code
│ ├── aidl/ AIDL interfaces for DC, screen sharing, extended capabilities, etc.
│ └── core/
│ ├── common/ Common utilities
│ ├── constants/ Constant configurations
│ ├── data/ Data structures
│ ├── dispatcher/ JS API and IMS Data Channel Application service event dispatching
│ ├── factory/ Dispatcher factory
│ ├── manager/ Various managers
│ ├── miniapp/ IMS Data Channel Application (management, UI, DC, etc.) related
│ ├── picker/ Image selection
│ ├── port/ Various interfaces
│ ├── service/ IMS Data Channel Application, call, and other services
│ ├── ui/ Other UI besides the IMS Data Channel Application space and IMS Data Channel Applications themselves
│ ├── usecase/ JS API and IMS Data Channel Application service event handling
│ └── utils/ Utility classes
├── libs/ Third-party library files
├── miniapp/ IMS Data Channel Application development related
│ ├── webrtcDC/ Implements interfaces defined by GSMA TS.66 based on the SDK, can compile the webrtcDC.js library for IMS Data Channel Application integration
│ └── demo/ IMS Data Channel Application examples
├── oemec/ Terminal manufacturer extended capabilities
├── script/ Build scripts
└── testing/ Local simulation testing related

IV. Technology Stack

  • Programming Languages: Kotlin, Java, JS

  • Architecture Pattern: MVVM

  • Asynchronous Processing: Coroutines + Flow

  • Database: Room

  • UI Framework: Jetpack Compose / XML Layouts

V. Development Environment

  • JDK Version 17

  • Gradle Version 8.1

  • Android SDK Version compileSdk-34, minSdk-26

  • Recommended Development Tool: AndroidStudio

VI. Quick Start(Build & Release)

  • Packaging: Currently configured for four distribution channels: Normal (Floating Ball entry version), Dialer (Dialer entry version), Local (Local debugging version, for local debugging only), Lab (Integrated DCLab for debugging and business experience)

    ./gradlew assembleRelease 
    
  • Terminal Adaptation: Terminals must be adapted according to the 《5G New Calling SDK Terminal Adaptation Specification》 to ensure the proper functioning of all SDK features.

  • Release: Terminal manufacturers integrate the SDK as a system default application and push it to adapted user terminals along with the system. When a user is on a call, if the device integrates the Normal version, a 5G New Calling icon will appear as a floating bubble on the native call interface, tapping this icon will open the 5G New Calling IMS Data Channel Application space; If the device integrates the Dialer version and has been implemented according to the adaptation specifications, a fixed entry button will appear on the native call interface, clicking this button will open the 5G New Calling IMS Data Channel Application space.

🌟If you encounter any issues during terminal integration and adaptation, please feel free to contact us. We will provide comprehensive technical support!

VII. IMS Data Channel Application Development & Debugging

Using the Local (Local debugging version) SDK, developers can debug IMS Data Channel Applications on ordinary Android terminals without relying on an IMS Data Channel network environment or terminal adaptation.

  • IMS Data Channel Application Development: Developers need to follow web standards like HTML5, CSS3, ES6 for web development. The document 《5G New Calling IMS Data Channel JS API》 lists all interfaces exposed by the SDK to IMS Data Channel Applications. IMS Data Channel Application developers should refer to this document for development. Refer to example IMS Data Channel Application code: miniapp/demo/IMS_DC_Mini_app_demo_source_code.

  • IMS Data Channel Application Packaging: Package the web project into an offline zip format compressed package, i.e., the IMS Data Channel Application package. The index.html and properties.json files must be in the root directory of the zip package. Refer to the example IMS Data Channel Application package: miniapp/demo/IMS_DC_Mini_app_demo.zip.

  • IMS Data Channel Application Local Debugging: Install the Local version SDK onto the phone like a regular APK. Push the IMS Data Channel Application zip package to the phone's sdcard. Then launch the "Telecom Enhanced Calling" app from the phone's home screen. After granting permissions as guided, you can configure and debug the IMS Data Channel Application.

  • DCLab Integration Testing: To begin, contact our team to deploy the IMS Data Channel Application and AS on DCLab. An experience number will be allocated by DCLab. Please install the Lab-version SDK APK onto your device via the standard APK installation process. Once installed, launch the "China Telecom Enhanced Calling" app from the home screen to place test calls and explore the functionalities.

VIII. License

This project is licensed under the Apache 2.0 License.

IX. FAQ

Who should use the code from this open-source project?

After obtaining the code, Original Equipment Manufacturers (OEMs) should compile and integrate it according to the document《5G New Calling SDK Terminal Adaptation Specification》.

What can operators do?

  • Provide a network environment that supports DC, deploy IMS DC Application, and test services using OEM terminals integrated with the SDK.
  • In the absence of a DC network and adapted terminals, the Local version of the SDK can be compiled directly to experience IMS DC Application.

How to experience IMS Data Channel Application using the Local version SDK?

  1. Download Files: Download the local_release APK and IMS DC Application .zip package from the open-source website.

  2. Prepare and Install: Copy the IMS DC Application .zip package to the phone's SD card directory and and install APK on your mobile device.

  3. Network Setup: Connect two phones to the same Local Area Network (LAN); this can be achieved using a mobile hotspot.

  4. Enable Features: Find and open the "5G Enhanced Call" app on the home screen.

  5. Configure MiniApp:

  • Tap the Config button (top-right) to enter the MiniApp Repository.

  • Tap Create (top-right) to enter the Edit MiniApp page.

  • Tap PLEASE CHOOSE MINIAPP PACKAGE and choose the .zip file from Step 2.

  • Fill in the required information(refer to the image below) and tap SAVE. (Note: This step simulates the process of deploying a IMS DC Application over a network).

Edit-MiniApp

Establish Connection:

  • On the Server side: Select "Server" in the repository page. Once the IP address appears, tap start.
  • On the Client side: Select "Client," enter the IP address displayed on the server device, and tap Start.
  • Both devices should then return to the Local debug page.

Experience the Feature: Tap SIMULATE CALL. Floating ball will appear. Once the "call" is connected, tap the floating ball to display the MiniApp list. Open a MiniApp to experience interactive features like real-time doodling.

How to use the Lab version SDK?

  1. Download Files: Download the lab_release APK from the open-source website and install them on your phone. Ensure the phone has internet access.

  2. Get number: Contact us to obtain the QR code for the experience number.

  3. Start App: Find the "5G Enhanced Calling" app on your phone's home screen, open it, and scan the QR code.

  4. Dial: Dial the experience number to use the existing DC services available on DCLab.

  5. Deploy: Alternatively, you can also contact us to deploy IMS DC Application and business AS on DCLab for debugging and testing purposes.

X. Contact

xuq17@chinatelecom.cn

pengc23@chinatelecom.cn

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors