Understanding the Relationship between Phone Amego and Bluetooth
Phone Amego is a client application that uses the Bluetooth networking stack to access
Bluetooth services running on a remote server. This is similar to the way Safari uses the TCP/IP
networking stack to access Internet services.
Unlike WiFi which borrows heavily from Ethernet and TCP/IP to provide smooth interoperability,
Bluetooth re-invented the entire network stack. While few applications use Bluetooth SCO Audio
as a HandsFree headset on the Mac, many people are using Bluetooth headsets with their Macs
which also relies on Bluetooth SCO Audio.
If you have feedback concerning Bluetooth performance and interoperability with iPhone, Apple
has kindly provided a web page for this here:
http://www.apple.com/feedback/iphone.html
I believe Apple pays a great deal of attention to the user experience of their products. Imagine
you work in a sales related business that involves placing many calls. Daylite from MarketCircle
dominates the Mac CRM space. Instead of having to pickup the iPhone and dial many times a
day, users want to bring up a contact in Daylite and press a button to dial their iPhone. At the
same time, they want to use a Bluetooth headset to take the call. From the user's point of view,
they have an iPhone, a Mac, and a Bluetooth headset which they would like to use together.
I'm including some of my own feedback to Apple below.
Dear Apple:
Bluetooth between the Mac and iPhone could be so much better!
While Mac to iPhone integration and hands free speakerphone is kind of cool, it involves a
number of challenges for a 3rd party developer at this time.
(1) The only way to access the mobile phone capability of the iPhone via Bluetooth is through
the HandsFree Profile (HFP) which insists on routing phone audio to the Mac. This unfortunate
limitation prevents using Phone Amego and a Bluetooth headset at the same time. It also
disrupts using Siri on the iPhone 4S since Siri tries to communicate through the Bluetooth HFP
(connected to the Mac) even when no call is in progress and the Mac is configured to reject
incoming audio requests (I believe this is inconsistent with the Bluetooth HFP). Most Bluetooth
phones support or expose the Serial Port Profile (SPP) in addition to HFP (since HFP is built on top
of SPP). The commands and responses are identical. The only difference is that the SPP does less
by not attempting to transfer phone or call audio. This would allow users to enjoy the benefits of
Computer Telephone Integration (click-to-dial, on-screen caller ID, database lookup, call logging
etc.) while using a Bluetooth headset or Siri at the same time.
(2) No echo cancelation support. In the Bluetooth HFP, echo cancellation and noise reduction
are optional. iPhone does not make them available via Bluetooth. The VPIO audio unit in iOS is
not provided on Mac OS X. iChat has built-in echo cancellation, but there is no API or echo
cancellation library offered to 3rd party developers.
(3) No handsfree way to enable the iPhone's built-in speakerphone via Bluetooth. Kind of ironic
since the point of a speakerphone is to allow handsfree operation. Instead of routing the call
audio via Bluetooth SCO and Mac OS X Core Audio to the Macs speaker and microphone (without
echo cancellation or noise reduction, and with added latency), it would work better to just allow
a Bluetooth client to turn on the speakerphone already built-in to the iPhone.
Many of Apple's products offer a great user experience not by doing more, but by doing less.
With a little attention to doing less, Bluetooth support between the Mac and iPhone could be so
much better!
Request Summary:
(1) Allow a reduced function Bluetooth SPP along side HFP.
(2) Allow built-in speakerphone to be enabled from a Bluetooth client.
(3) Make echo cancellation and noise reduction available to Bluetooth clients, or support echo
cancellation on Mac OS X similar to the VPIO audio unit or iChat.
Respectfully Submitted,
Sustainable Softworks
Apple Bug Reporter Reference (RADAR)
9750786 Bluetooth between the Mac and iPhone could be so much better!