[Huawei Developers] Freemind R:
More information like this, you can visit HUAWEI Developer Forum​

Introduction:

Huawei CaaS (Communications as a Service) is an open API, based on the Huawei MeeTime service, which integrates voice calls, video calls, and screen sharing, even when network conditions are poor. This article will provide information on CaaS features, its functionalities and classes used for various processes. It is essential to know about Huawei MeeTime service as a prerequisite.

About Huawei MeeTime Service:

HUAWEI MeeTime enables to make 1080p HD video calls using either Wi-Fi or mobile data. These video calls are crystal clear, even in poorly lit environments, and MeeTime has a wide range of handy features, including beauty mode, screen sharing, and 360-degree background switching. Also, we can divert calls between a range of devices, including tablets, speakers, smart TVs and also use drones, and motion cameras to share videos in real time.

[IMG="https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063028.62145309989346896553135859552282:50510818010756:2800:FB248983958705B8B6549A09DDBBA89EC88FFE2DB33FFB2B2801C06F054AF600.jpg"]https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063028.62145309989346896553135859552282:50510818010756:2800:FB248983958705B8B6549A09DDBBA89EC88FFE2DB33FFB2B2801C06F054AF600.jpg[/IMG]

Device Specification:

For integrating Huawei CaaS, the phone should support the MeeTime service, and run EMUI 10.0 or a later version. The Kirin 980 and Kirin 990 chipsets are currently supported. This capability will be gradually expanded to support the Kirin 710, Kirin 810, Kirin 970, and later chipsets.

CaaS Features:

Huawei CaaS provides higher image quality with lower bandwidth requirement.

It delivers clear visual and a smooth video stream in real time, even when the signal is poor.

It detects intelligently the bandwidth, then uses seamless software and hardware collaboration to maintain a stable connection.

CaaS functionality can be classified into three types:

Voice and video calls with virtualized devices

Screen sharing

In-app calling

Voice and video calls with virtualized devices:

It allows developers to easily incorporate video calling into apps, and can define the video source themselves.

For example, Motion camera can be virtualized and can serve as phones camera which helps to make one-on-one video calls, even during athletic activities.

It is necessary to register virtual device before the call. Following are the processes for virtual camera registration:

The developer uses CaaS Kit to initiate the CaaS service.

The CaaS service initiates the DeviceVirtualization service.

The DeviceVirtualization service sends the broadcast to discover virtual devices.

The developers app receives the broadcast and links to the DeviceVirtualization service.

The DeviceVirtualization service registers the virtual camera, and sends the virtual cameraId to the CaaS service.

The CaaS service provides access to the video call in the app

Following are the processes of video call:

The user initiates a video call through the floating window.

The CaaS service enables the virtual camera using the standard Android API.

The camera service invokes the DeviceVirtualization service.

The DeviceVirtualization service uses a callback to obtain the video stream from the virtual camera interface.

After the video stream is virtualized, it is returned to the CaaS service using the standard Android API.

The CaaS service obtains the video stream through the standard Android camera API to implement video calling with the other device.

Release resources after using the CaaS service.

Screen Sharing:

It enables real-time content sharing within applications.

For example, we can show phone operations for friends and designers can show designs to the clients who were in different locations and clients can make comments, and suggest revisions.

Following are the processes for screen sharing:

Initialize the CaaS service.

Query whether there is any contact supporting the MeeTime screen sharing feature.

Display an entry to screen sharing for the user.

The user touches the entry to bring up the contact list, and selects a contact to start screen sharing.

Release resources after using the CaaS service.

[IMG="https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063211.64086919354566518381993379548287:50510818010756:2800:6789FF9787ED80D8C430447E435771B37C7B33897E80CD73F6D77391A695379F.png"]https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063211.64086919354566518381993379548287:50510818010756:2800:6789FF9787ED80D8C430447E435771B37C7B33897E80CD73F6D77391A695379F.png[/IMG]

In-app Calling:

It enables one-touch voice and video calls within applications.

Following are the processes for In-app calling:

Initialize the CaaS service.

Call the CaaS service API to query, if the number supports voice calls, or support both voice call and video calls.

CaaS service returns the query result.

The application is notified, if the MeeTime capability is supported, and will display an entry to MeeTime call.

Call the CaaS service API to initiate a voice or video call.

Release resources after using the CaaS service.

[IMG="https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063457.26458879556945807466104703762132:50510818010756:2800:300634A50D3E44022DBE792787C5CE49F69391B8C6CA22913DA975E0A1BD85FC.jpg"]https://communityfile-dre.op.hicloud.com/FileServer/getFile/cmtybbs/001/745/226/2640091000001745226.20200807063457.26458879556945807466104703762132:50510818010756:2800:300634A50D3E44022DBE792787C5CE49F69391B8C6CA22913DA975E0A1BD85FC.jpg[/IMG]

CaaS Classes:

CaaS uses the following classes for initialization, communication and resource release processes.

HwCaasServiceManager

The class is used to Initialize CaaS service and release resources after using the CaaS service. It contains methods such as init, initHandler and release

HwCaasHandler

The class provides APIs for communicating with the CaaS service. For the communication it uses the methods such as setCallAbilityCallBack, sendEventToCaasService, setFloatViewLocation, queryCallAbility, makeCall etc.

HwCaasUtils

This class is used to define CaaS service constants such as STARTVIEW, VIDEOVIEW, SCREEN_SHARING_TYPE, NORMAL_CALL_TYPE, CAAS_NOT_SUPPORT, ABILITY_NOT_SUPPORT etc.

Conclusion:

Communication as a Service (CaaS) plays an important role in business, education and entertainment by providing economical and high quality communication. It overcomes the distance and gives a real time experience even in lower bandwidth and poor network and also helps drone or motion camera to be virtualized and provide seamless experience.

Reference:

https://developer.huawei.com/consumer/en/doc/development/connectivity-Guides/caaskitlite-virtualcamera-introduction-0000001051089010