The long and sort of it is that when anything is plugged into the 3.5mm headphone jack, the phone will only play call audio over that jack.
In order to route the audio through the earpiece, bluetooth or speakerphone, you must pull the plug out of the jack. This is at the very least annoying, and at the very worst potentially dangerous if, for example, you're driving.
Download the APK attached below for your android version.
Install like any other APK using adb or your favorite file manager.
What it does
This simple application allows you to pick the audio device to use for call audio to override this behavior, and can be changed on the fly.
All in-call audio will be routed to the device you specify when something is plugged into the 3.5mm headphone jack. If nothing is in the jack, the default behavior for the phone applies.
This also allows you to use the Speaker Phone when the headphone jack is occupied, even though the button on the call screen is disabled!
Your configuration should persist between reboots.
What it doesn't do
This app does not route any other type of audio. Your music, notifications, etc will still play over the headphone jack or phone speaker.
Again, this *only* affects in-call voice audio, and only when something is plugged into the headphone jack.
This app completely overrides the options on the call page! If you want to switch outputs during a call, you will have to do it from this app - your call will not be dropped when changing the output device.
In order to route the call audio properly, the system's mediaserver service must be restarted, however.
This means that any other audio you have playing when you apply the change will be disrupted, and related services may force close. For example, Pandora will skip to the next song. Other applications may not behave that well.
This app modifies files in the /system partition, so use this at your own risk! I am not responsible for any problems that arise from this hotfix on your device!
This is currently for the EPIC4G *ONLY* - Do not use this on any other device. Please contact me if you have a different phone which experiences this bug and I will see if I can get it working for you as well.
This is *BETA* software, a work in progress, please post here if you experience any issues, but I cannot guarantee it will work for you!
ROM DEVs, feel free to bake this into your roms in whole or part, I encourage it as this provides a workaround for a safety issue, but please give credit if you use or derive from this application.
Special thanks to UberPinguin - his initiative, debugging, code-diving and testing helped make this happen every step of the way!
Many, many thanks to everyone in #samsung-epic for helping me test and work this out.
Be sure to download the APK for the right android version on your phone!
epicBT - v0.3.5 (Froyo)
* Fixed crash/reboot when applying settings in DK17 roms
epicBT - v0.3
* Layout cleanup when root is unavailable
epicBT - v0.2
* Requires root!
* Superuser compatible
* auto-remounts /system RW if necessary
* Sends call audio to wired device ( default ), speaker phone, or bluetooth