the best way is to have asterisk. i use magicjack with my asterisk for outbound calls. ipkall, sipgate, sipphone,and a few others for inbound calls. i also use google voice along with sipphone and sipsorcery for google voice in and outbound calls. for international outbound, i use voipraider. anyone wants to develope towards to this direction, please add zhaoliu@hotmail.com on msn.