At work we use SIP/VoIP, and since I’m the one without a hard phone (e.g., a real phone), I use a soft phone (e.g., software + headset) when I need to make or take a call. I’ve been using X-Lite for the past few months, which by all outward appearances is a solid, working softphone. However, it’s become increasingly annoying to me since it:
* Likes to forget to make my headset the default audio device
* Refuses to allow me to use the “Transfer” feature (pay upgrade)
* Pops up that annoying as hell “Video” window on start
* Has an ugly interface
* Sometimes just freezes randomly
I’ve been trying to find an alternate softphone, and finally seem to have. [3CX Phone](http://www.3cx.com/VOIP/voip-phone.html) seems to work like a charm, doesn’t nag me to pay for anything (I don’t even think there is a paid version), and lets me easily transfer calls, etc.
We’ll see how it goes on call quality, but so far, so good. Eat it, X-Lite.
Update: I now just use a Polycom Hardphone. But I do have 3CX installed on my Android for those “out of office” times I need it!
[proxycheck](http://www.corpit.ru/mjt/proxycheck.html) is a small program design to (surprise) check for proxies. What’s not so clear, however, is how to use it. The default examples are for mail servers, which I guess was the thing to do back in 2004 when the last version was released. However, I need to adapt it for use with [pypsd](http://bitbucket.org/rad/pypsd). Here’s how to check a host for open proxies in an IRC context:
./proxycheck -c "chat::real.irc" -d real.irc.server.here:6667 -aaaa host.to.check
The chat parameter confused me for awhile until I figured out what it was for. proxycheck takes care of scanning ports and connecting to hosts using a number of methods, but once connected, you need some way to verify a real hit. -d tells proxycheck to try connecting to the supplied host:port, and -c chat:: tell it to try sending some text and scanning for watch. If it matches, you have a positive hit.
In the case of IRC, the first thing that happens when you connect to an IRC server is a series of notices from the IRCD (at least in hybrid), so watching for “real.irc” (e.g., replace this with part of your ircd’s hostname) is good enough
If you want more verbose output (checking the data stream), don’t bother with Wireshark. Just add -vvvv to the command.