New in version 0.9.21
- Hold a button down and the other hears you, even with their sound off.
- The other’s voice levelled: faint or loud, it arrives nearly the same.
- When a new version is out, Duetto says so and leads to it.
- Two versions: the full one, which sounds other apps’ notifications in the channel; the light one, without, which Google does not block from a file.
- Duetto stays upright.
- And various other minor improvements.
Duetto is a tiny "Discord" made to measure for two people only. It is not an app for calling: it is a permanent channel. Open the app and you are in; if the other person is there too you connect by yourselves, and otherwise you stay reachable and are told the moment they arrive.
Audio and video travel end-to-end encrypted straight between the two phones. The server - yours, or one somebody let you in to - is only there to let you find each other, and cannot read anything. No account, no phone number, no service of anybody's.
- One tap and you are in the channel, and you stay: the app survives the night, the pocket, the change of network.
- Video when you want it, with the quality chosen for both phones.
- The other person can call you back with a sound that gets through even with the ringer down.
- Pairing with an eight-digit code or a QR code held up to the other phone; invitations for whoever is to open connections of their own on your server.
- Silent during a phone call, back when it ends.
- Free software, GPL-3, and a server you run yourself: a small Node.js process and coturn.
You need Android 7 or later, and a server: the README says how to put one up in a quarter of an hour.
Donate
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid
-
arm64-v8a
armeabi-v7a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
route calls through the system
Allows the app to route its calls through the system in order to improve the calling experience.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
read phone status and identity
Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
42 MiB
PGP Signature
|
Build Log
New in version 0.9.20
- The standing notification shows each connection on its own, with where the other stands and the Call and Enter buttons.
- Each phone can ask the other to turn its diagnostics on.
- When the server restarts, Duetto says so and comes back by itself within seconds; a conversation under way goes on.
- The 32-bit version is back, for older phones.
- A long press on the volume figure opens Android's volumes.
- And various other minor improvements.
-
arm64-v8a
armeabi-v7a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
route calls through the system
Allows the app to route its calls through the system in order to improve the calling experience.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
read phone status and identity
Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
42 MiB
PGP Signature
|
Build Log
New in version 0.9.19
- Duetto now works as a call, like WhatsApp; before it was a different kind of app.
- Two separate buttons, microphone and listening.
- Bluetooth headsets: each device remembers whether it takes the sound by itself; its battery level is in the button.
- The other connections stay reachable even when not in use.
- The screen without video shows with icons the microphone and output, yours and the other person's.
- And various other minor improvements.
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
route calls through the system
Allows the app to route its calls through the system in order to improve the calling experience.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
read phone status and identity
Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
28 MiB
PGP Signature
|
Build Log