Thanks Joe!
Calls to the user in question were going straight to her voicemail--even though she was getting call notifications, she couldn't accept the calls.
I used the ideas in https://help.mypurecloud.com/articles/troubleshoot-purecloud-web-based-phone/ to help pinpoint the problem:
By trying calls between other users with the same phones, I eventually figured out that the issue was with the broken user's web browser: her Web RTC phone was attempting to use "Microphone 1" and "Speaker 1," while functioning phones in different browsers were using the default microphones and speakers.
I switched her to a different web browser profile in Chrome, and her phone can now access the default microphone and make and accept calls. So her previous browser profile must have not been allowing correct access to the right microphone? The correct microphone/speakers were not even a choice in her list.