max transmit distance

I have the class 1 bluesmirf RP-SMA on my arduino, 100mW 20dBm transmit power. My phone, I'm assuming, is a typical class 2 bluetooth device, 2.5mW 4 dbm transmit power.

I'm shooting for a connection of minimum 100 feet optimal 300 feet.

The phone I can't do anything about. But what antenna should I put on my bluesmirf. right now I have the plain-jane 3" antenna off a desktop wifi card and I get about 40 ft by path/30 ft thru walls. I'm looking at a cheaper-ish 8db antenna vs splurging a tad for a 14db directional...

$25 8dbi directional: http://www.frys.com/product/5233027?site=sr:SEARCH:MAIN_RSLT_PG

$55 14dbi directional: http://www.frys.com/product/5233067?site=sr:SEARCH:MAIN_RSLT_PG

My phone, I'm assuming, is a typical class 2 bluetooth device, 2.5mW 4 dbm transmit power.

The limiting factor in the exchange of data via bluetooth is the lowest powered/rated device. It doesn't matter what is on the other end. A class 2 device has a range of approximately 10 meters. That's far short of 100 feet.

I measured the range before class this morning. 110 feet with the cheap 2.5dbf or whatever antenna on it, it was connected but had a 1 second or so latency. Around 115 feet is where it disconnected at.