Android Connection Service - KaleyraVideo/VideoAndroidSDK GitHub Wiki
The Android Connection Service allows to integrate voip calls into the system call management. The self-managed version of the connection service that has been implemented into Android sdk v4 let the integration to use our self hosted version of the call UI.
In order to be started, the connection service needs PHONE permission and optionally CONTACTS write/read permission in order to display the call handle info onto external devices such as automotive bluetooth devices, smartwatches, etc.
The self-managed connection service is available if the running device has api level > 28 (android 8.0)
A new api has been exposed on the sdk v4 facade since v4.0.0-rc07 in order to control the connection service. The connection service is enabled by default using Kaleyra Video SDK > 4.0.0-rc07.
ConnectionServiceOption
KaleyraVideo.conference.connectionServiceOption = ConnectionServiceOption.Enabled // default option
KaleyraVideo.conference.connectionServiceOption = ConnectionServiceOption.Enforced
KaleyraVideo.conference.connectionServiceOption = ConnectionServiceOption.Disabled
-
Enabled: if running android version is > api 28, PHONE permission will be required when the call UI appears, if denied, or running android version is < api 28, the call will be connected anyway and it will be used the legacy audio session in order to route and display audio devices.
-
Enforced: if running android version is > api 28, PHONE permission will be required when the call UI appears, if denied the call is automatically ended.
-
Disabled: PHONE permission will not be asked as well as no connection service will be started, the voip call will be placed anyway but this could possibly overlap with system gsm/3g/VoLTE/VoWIFI calls.
Key features using Connection Service
Using android connection service Kaleyra Video voip calls will never overlap with system gsm calls. Whenever a system call is answered, the ongoing voip call is ended. Whenever a gsm system call is ongoing, when a Kaleyra Video voip call is placed, the system gsm call will be set on hold.
Bluetooth headphones are ringing with their default ringtone on incoming calls.
Smartwatches that exposes bluetooth headset capabilities can be used to answer, and capture audio and reproduce the audio call streams (this is not available without connection service usage).
Call handle info will be displayed onto external devices such as automotive bluetooth, smartwatches, etc (if contacts permission has been optionally granted by the user).
Physical buttons on bluetooth headsets can be used to answer/hangup calls such in a system gsm/3g/VoLTE/VoWIFI call (this is not available using default legacy audio session).
No need to grant NOTIFICATION permission on android > 12 in order to prompt incoming call android notifications to the user.