If you're willing to throw lots of memory at the problem (say, ~1.2 Gb, assuming 10 digit phone numbers), you can turn each phone number into a bit index. Allocate a bit vector large enough to hold 10 digits worth of bits, then set the corresponding bit in the vector for excluded numbers, and probe into that vector to see if a number is excluded.
Taking advantage of the area code space being sparce, you can save some memory. Break each number into a 3 digit area code, and a 7 digit number, then lazily allocate the bit vector for the 7 digit number when you see the prefix in the exclude list. A few extra steps to build up your vectors and probe them, but still damn fast if you can fit everything into physical memory.
Implementation is left as an exercise, or as a challenge to Ben to do in under 100 characters.