To call and text any US or Canadian number for free, you need a Google/Gmail account with Google Voice activated. All of this is free. You can get a Google account here. If you already have a Gmail/Google Account, but haven’t signed up for Google Voice, you can sign up here.
You also need a supported mobile device:
iPhone (3GS, 4, 4S, 5) running iOS 5.1+
Android: 2.3.3+, armv7 or x86 CPU
iPad (2, 3rd Generation, 4th Generation, Mini) running iOS 5.1+
- iPod Touch (3rd Gen, 4th Gen, 5th Gen) running iOS 5.1+
Note that full Google Voice functionality is only available for US users. If you live in Canada, check out this answer. If you live in Europe, check out this answer. Everyone else, check out this answer.