Phone Bridge lets Python place, answer, and manage carrier calls through a phone paired to macOS over Bluetooth HFP. Calls use the phone's SIM, carrier, and number.
Requires macOS, Python 3.11 or newer, and a paired Bluetooth HFP phone. Call audio is experimental and depends on macOS exposing the SCO route as CoreAudio devices.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install phone-call-bridge
phone-bridge doctorfrom phone_bridge import MacPhoneBridge
with MacPhoneBridge() as phone:
phone.call("+12125551212")
try:
phone.wait_for_answer()
while not phone.call_ended:
phone.poll(0.1)
finally:
if not phone.call_ended:
phone.hangup()See the Python usage guide for phone selection, incoming calls, events, async use, and call audio.
make setup
source .venv/bin/activate
make test