Permissions
Required permissions
android.permission.INTERNET
: Required all network access - both SIP and HTTP calls.android.permission.ACCESS_NETWORK_STATE
: Required for network change detection and transport configuration.android.permission.ACCESS_WIFI_STATE
: Required for network change detection and transport configuration.android.permission.BLUETOOTH
: Required to detect and connect a Bluetooth headset audio route.android.permission.RECORD_AUDIO
: Required to collect audio for VoIP transmission.android.permission.MODIFY_AUDIO_SETTINGS
: Required to establish a Bluetooth SCO for the Bluetooth audio route.android.permission.FOREGROUND_SERVICE
: Required to run the VoIP service component.android.permission.READ_PHONE_STATE
: Required for detecting an incoming PSTN call for interop with the native dialer.android.permission.ACCESS_FINE_LOCATION
: Required for Bluetooth audio route management. Something about "Bluetooth allows software to read BT beacons". Read here for more details: https://developer.android.com/guide/topics/connectivity/bluetooth#Permissions
Optional permissions
android.permission.RECEIVE_BOOT_COMPLETED
: Required when the SDK uses the SIP registration workflow, to re-register after a reboot. Not needed for other modes.
Permissions that are not required and can be safely removed:
android.permission.CHANGE_NETWORK_STATE
: not usedandroid.permission.CHANGE_WIFI_STATE
: not usedandroid.permission.BLUETOOTH_ADMIN
: Needed by a planned feature for Bluetooth discovery and pairing helpers. This feature was not implemented yet and the permission would be optional when it is ready.android.permission.BROADCAST_STICKY
: Was expected to be used by a planned feature that has since then been removed from the road map.android.permission.VIBRATE
: Needed by a planned feature for incoming call notification helpers. This feature was not implemented yet and the permission would be optional when it is ready.android.permission.WAKE_LOCK
: Needed by a planned feature for incoming call notification helpers. This feature was not implemented yet and the permission would be optional when it is ready.android.permission.DISABLE_KEYGUARD
: Needed by a planned feature for incoming call notification helpers. This feature was not implemented yet and the permission would be optional when it is ready.android.permission.WRITE_EXTERNAL_STORAGE
: Used to save logs by testing code that is not enabled for releases.android.permission.READ_LOGS
: Used with some vendors to read system logs by testing code that is not enabled for releases.android.permission.AUTHENTICATE_ACCOUNTS
: deprecated permission.android.permission.READ_SYNC_STATS
: This permission no longer needs to be declared.android.permission.READ_SYNC_SETTINGS
: This permission no longer needs to be declared.