There are ways that you can get the number or atleast screen the calls, but it might cost you a little. There are services like
spokenbuzz where you can get a phone number that will automatically screen calls from unkonwn callerids. Then it will forward that call to your real phone.
SO you can give everyone your spokenbuzz number instead of your real number. Or, you can forward all your calls to your SpokenBuzz number and then have it forward to another number, like your cell, etc.
-Dave
p.s. I have noticed that the callerid of some blocks shows up on the forwarded call, so that might the answer right there.