DICE's most recent statement on Battlefield 3 in-game voice over IP (VOIP) on PC is it's "investigating" it, so don't give up hope yet. In the meantime, however, you may be frustrated in playing with random players or even a group through your VOIP program of choice due to the lack of teamwork, and looking for a solution. Well, that's what we're here for, sweetie.
A recent technological development in the PC world has helped matters tremendously. It goes by the name of TeamSync, and is designed to automatically place gamers into team or squad VOIP channels in TeamSpeak or Mumble VOIP programs automatically, essentially emulating the in-game VOIP many players want. It's fully compatible with Battlefield 3, and a handful of server owners are currently using it to full effect. We've tested it personally, and it works wonders. The good news is very little work is involved on your part.
Step 1: Favourite TeamSync servers
The following is a list of servers -- courtesy of Reddit -- which utilize TeamSync. Favourite one or a few and note their VOIP info. Some are located in the UK, and some in North America, for your convenience. If you know of any others, feel free to let us know and we'll add them to the list.
[FBHW] 24/7 Conquest Large| TeamSync (Mumble) | Chicago (Conquest 32p, Custom, FF off)
VoipInfo: Mumble: furrer.dyndns.org:64738 (Squad VOIP)
TacticalGamer.com - TeamSync VOIP, Large Maps Only, FF On (Conquest 64p, Custom, FF on)
TacticalGamer.com - TeamSync VOIP, Full rotation, FF On (Conquest 44p, Custom, FF on)
TacticalGamer.com - TeamSync VOIP, Rush/CQ Mix, FF On (Rush/Conquest 32p, Custom, FF on)
VoipInfo : TeamSpeak: TS.TacticalGamer.com:9988 (Squad VOIP)
VoipInfo: TeamSpeak: 126.96.36.199 (Team VOIP)
Studly Boyz - Chicago - Conquest/Rush - All Maps - Teamsync (24p Rush/Conquest, Custom, FF off)
VoipInfo: TeamSpeak: 188.8.131.52 TS3 Password: bonerjams (Squad VOIP)
-:Uis:-:Recruiting:-:TeamSync:-: (32p Conquest, Normal, FF off)
BlackIntel.org All Conquest - TeamSync VOIP (32p Rush/Conquest, Custom, FF on)
VoipInfo: TeamSpeak: TS.BlackIntel.org:9987 (Team VOIP)
Team Delta Pigs | Conquest / Rush | B2K | Map Vote (32p Rush, Normal, FF off)
VoipInfo: TeamSpeak: 184.108.40.206
Step 2: Run VOIP
Getting them set up is easy enough. Assuming your headset is ready to go (or God forbid, a mic and speakers), a 'wizard' should automatically pop up after each program's installation to make sure everything checks out. Be sure to uncheck 'Volume Control' during this step.
Once that's done, go to Connections > Connect, then paste the info above into the 'Server Address' box.
Note there is an in-game overlay plugin, but we couldn't get it to work (let us know if you know a way).
For Mumble, navigate to Server > Connect > Add New, and paste the URL info above into the Address box, and the numbers into the Port box. Give the server a name in the Label box, input your in-game username in the Username box, and you're on your way. As with TeamSync, the Mumble overlay unfortunately does not work (in this case, it's a DirectX 11 issue). There is a test build which is compatible, but it significantly impacts performance. However, you may want to keep a lookout for new versions which don't.
Step 3: Play Battlefield 3
At least with TeamSpeak, you may want to boot the game beforehand, as issues seem to occur otherwise, at least for some. In any case, after joining your server of choice, boot the appropriate VOIP program. If the server is using squad VOIP, look for squad channels which have 1-3 players, then try to join that squad in-game. For example, if the Bravo channel has three players, and you see in-game there are three players in that squad, you'll want to join that channel, so as to be playing with three other people using VOIP. Within a second or a few, you'll be placed into the VOIP channel corresponding to that squad, and ready to go. Enjoy.