Skip to main content

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 used
  • android.permission.CHANGE_WIFI_STATE: not used
  • android.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.