Requirements: - Raspberri Pi 3 B+ (RPi 4 is ok too; however RPi 3 are cheaper). - https://downloads.raspberrypi.org/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2023-02-22/2023-02-21-raspios-buster-armhf.img.xz or https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2023-02-22/2023-02-21-raspios-bullseye-armhf.img.xz - external USB bluetooth adapter https://www.amazon.com/TP-Link-Bluetooth-Receiver-Controllers-UB400/dp/B07V1SZCY6?th=1 Probably another external USB adapters are ok (it should be). However we tested with this one only - it is cheap enough. sudo pip3 install rabbitpy sox pydub pyyaml BT MAC addresses for test phones: - D0:C5:F3:E0:4E:2D - iPhone BT MAC - 50:8E:49:EC:B3:A4 - Redmi Note 9T - A8:96:75:01:AA:57 - Moto G5 - 20:F4:78:63:0E:E5 - Xiaomi 11 5G Lite Tricks: - to fix BT error 'Waiting for phone index...' load bluetooth module(s) pacmd load-module module-bluetooth-discover This happens on RPi 4 sometimes. - to avoid ALSA error "device busy" on RPi: sudo apt-get install alsa-base sudo alsa force-reload or (for raspbian) sudo /etc/init.d/alsa-utils stop sudo alsa force-reload (or sudo alsactl kill rescan) sudo /etc/init.d/alsa-utils start - to fix ofono error: sudo systemctl restart ofono - to check if mobile helper app is installed: adb shell pm path biz.sevana.qualtestgsm - to start mobile helper app: adb shell am start -n biz.sevana.qualtestgsm/.MainActivity 1. Connect bluetooth to your phone. - bluetoothctl - power on - agent on - default-agent Scan the nearby devices - scan on Once you see your phone device: - scan off Pair to your phone, remember type "yes" to confirm passkey. And in your phone also. - pair 00:D2:79:79:01:89 - trust 00:D2:79:79:01:89 - connect 00:D2:79:79:01:89 - exit try pulseaudio -k pulseaudio --start exit from bluetoothctl and start again if BT connection doesn't work