As most of you will know, I've been playing with VoIP stuff over the past few months. I've come to the conclusion, given how things are, that a good, solid sip softphone would be the best over-all solution for making/taking phone calls on live shows and such, although I wouldn't use a softphone for everyday phone use. That's just a bit restricting.
Last June, I purchased a
JK Audio AutoHybrid to interface between my board and the Vonage line. After using several fake phone patch solutions over the years, this was the first true patch I had that was actually useful.
This is a dual transformer, passive patch, with no ICs or active electronics of any kind, so naturally it's not the best solution for those using pots lines unless you want to do lots of ducking on the output. If you don't, you'll get a very filtered instance of your dry signal when the line isn't active. This kind of thing works better on VoIP systems, because you don't have the loop length problem, plus input and output are rather hot compared to PSTN (unless it's attenuated by the ATA), giving a better ratio of signal-to-null by default.
Because this box is passive and has no DSP, and you're only using two wires, you'll get a bit of residual return from your input signal, which has this tendency to break things, particularly stereo images, when you have mics panned out and routed to the phone patch itself. Knowing this, and not wanting to spend $400 on a digital patch (and that was the cheapest one around), plus the fact that this particular one would have needed some serious attenuation to not suck on my line, I decided to use a side-chain on my Phonic PCL3200 compressor in conjunction with two aux sends to duck the signal down when the mic hit the side-chain. This worked OK, with the drawback of only partial full duplex. So, sometimes, things would get missed as a result of my saying things, which was slightly annoying. I say partial full duplex, because it was a bit less limited than half duplex, but not quite full. So maybe 3/4 duplex?
I was relatively happy with this setup, given it's weird issues and limitations, until I got my
Sipura SPA-2000 ATA and
Broadvoice. I could never get the phone patch to sound quite as nice with the new ATA, plus I was having some weird loopback issues. So, with Broadvoice's open equipment policy, I decided to try some softphones, thinking that would be the end to all those annoying and strange issues, plus I could cut it back down to one aux send instead of using two (one for side-chain and the other for phone input).
Well, this was great in theory, but there are still several annoying shortcomings that I'm still dealing with now.
The first softphone I tried was
ExpressTalk. It's very accessible, sounds great, and works... most of the time, anyway.
The problem with this one, however, is that it comes packaged with a lot of software that you most likely won't need if you just want a softphone, such as
IMS Telephone on hold player,
Axon PBX,
VRS recording system, and
IVM answering attendant, which, I admit, is pretty cool in it's own right. However, unsuspecting users who install ExpressTalk with default settings might be slightly annoyed at the hold music and messages coming across the sound card, a phone recording system being launched and binding itself to the default recording interface, and separate auto answering attendant and PBX modules that you probably don't want or need being automatically launched and configured in the background.
For the record, I'm currently using Axon until I get a
Trixbox system running, which I'm planning on doing shortly. It's decent if you want a basic PBX that will rout calls, but it delegates other things that
Asterisk has built in, such as music on hold, answering attendant, etc. to NCH SwiftSound's other modules. The entire package of software can get quite expensive, and is not as flexible as the Asterisk-based stuff. The IMS system is pretty neat, and IVM can do rather a lot, especially if you don't feel like writing out conf files or playing with command line thingies.
So, all the extra software aside, which is fun cleaning up, by the way, there are some other issues with ExpressTalk. For one thing, it likes to play with your incoming and outgoing volumes, taking them both incredibly high by default. There are ways around this, but I really hate it when audio apps take over my stuff like that! If I have levels set where they are, it's for a reason!!!
Then there's the fun default behavior it exhibits when you put people on hold. Now, most other hard and softphones I've seen will simply be nice, and put people on hold like they're supposed to, and not be obtrusive about it, passing things off to the PBX and letting it do whatever it's supposed to do when phones are on hold.
ExpressTalk, however, has two options:
1. Play a really, really annoying wave file over and over again (ask
beeping_becky if you don't believe me), or
2. connect to an IMS server.
Well, if you're using ExpressTalk strictly as a phone, you'll probably not be using an IMS server. Plus, the default thingies are bad, and it's one more thing you'd have to change.
Oh yeah, then there's this issue wherein sometimes, only one half of the conversation comes back when you take people off hold.
Conferencing, transfer and the intercom buttons (which I think are just quickdials) require the full version, which you can use for thirty days before lots of rather annoying reminders pop up telling you that your thirty day trial has expired, after which point you are reverted to the features of the free product. This wouldn't be so bad, although call transfer and especially conferencing are really basic features that can be found in a lot of free stuff.
I've also had it try to randomly connect to a VRS server which I don't run, regardless of the fact that I've told it that no VRS server exists.
And, as I found out last night, it will sometimes not forward incoming audio properly. For example: I have an extension on TBRN's PBX (very much in development at this time), which is registered on my own PBX. Calls in or out to TBRN mostly don't work with ExpressTalk, although they work perfectly fine with any other softphone or my ATA. I've seen it work before, and I know it's an ExpressTalk issue, but I can't seem to make it work or not work 100% of the time.
All this aside, it's the most accessible softphone I've used thus far, and it sounds great when it's not being stupid.
The next phone I tried was
SJPhone which is completely free, and showed some potential. For one thing, call transfer and conferencing didn't cost extra, and unlike ExpressTalk, it has auto answer and auto conference features, which are really neat. I, however, found several problems with SJPhone as well.
For one thing, the defaults make it look a lot less accessible to screen readers than it actually is. This is actually one of the lesser problems, as you can simply turn off any active skin, and you get a basic looking program with some obvious buttons.
The problems show up when you try to answer calls, if you're not using auto-answer, that is...
With version 1.60 (stable at the time I tried it), the incoming call dialogue would sometimes forget to exist, meaning the phone could ring forever, but you'd have no way to answer it, as they thoughtfully didn't provide a global hotkey for answer and hangup, although there is a nice, dedicated hotkeys tab in the options dialogue.
Also, while it has an auto conference feature, the version I trried did not compensate for added amplitude from additional calls. As a result, all conferenced callers would come in at the same level, and clip everything out. You're supposed to devide the total amplitude with this sort of thing, so that doesn't happen.
By default, and I never found a way to change this, making an outgoing call was torture, since it would continuously play a 2-second loop of a U.S. ring, with no gaps at all, while the call was being placed. Imagine one long, continuous "riiiiiiiiiiiiiiiing" while making calls... Very bad!
Another annoying thing about SJPhone is it's tendency to flash the call status, including name, duration, and codec being used, on top of other windows.
Also, you can't assign sound events other than incoming call, which means no more "boing" at the end of a call. That's not the end of the world or anything, and it certainly makes it no less useful, but it does make it less fun.
DirectX audio support is very broken as the audio is being under-buffered, so don't use it. Fortunately, you can turn the option off, and it does let you change buffers manually on the new stable version (more on that in a second).
Hold functionality, however, works just like it's supposed to, and doesn't break things, like ExpressTalk does.
Supposedly, the latest stable build of SJPhone fixes some of these issues, but the sip functionality is either very broken, or I have something very badly configured.
Example; a call comes in. My computer hangs for about 10 seconds. I get a short burst of ring, then the call is droppped. Uh, yeah, really useful there.
Again, it's one of those things that sounds really nice when it works. Actually, the audio quality might be a bit more solid than ExpressTalk when properly configured, and I would use it over ExpressTalk if some of the issues would go away.
Now, we have
X Lite,a free, semi-transparent, sort of accessible softphone.
When I first loaded it, I was able to see my Miranda, and through that my desktop, but not X Lite's call logs. This, of course, was rather bad. I did, however, manage to get some graphics labeled, and get it reading well enough to use it. Like SJPhone, it has a conference thingy, and auto-answer. Unlike SJPhone, it conferences properly, compensating for amplitude the way it's supposed to. However, it doesn't auto conference incoming calls, which may not be a terribly bad thing. It's another one of those things that's fun to play with, though.
Again, there are no global hotkeys for taking calls and hanging up; this all needs to be done from the X Lite window, or from the system tray. Raaaaaaaaah! This is a disturbing trend!
At least there are hotkeys for answering, hanging up, placing calls on hold and taking second calls while in the X Lite window, but how 'bout some global ones that will work in any window?
Despite your preferences, when a second call shows up, it will beep at you over your phone output device rather than the ringing device, which, in my opinion, it really shouldn't do. As a result, if you're streaming, everyone will no, by the very annoying "beep beep", that another call is coming in. This doesn't sound cool, and the other softphones I've seen have ways around this. Even setting the ringing device to "none" doesn't fix this behavior.
Also, I can't find a way to read the program and missed call logs reliably, although I can see parts of it sometimes.
The audio system on this phone isn't as good as ExpressTalk or SJPhone, as it breaks up sometimes for no particular reason, presumably another DirectX under-buffering issue which the end-user can't really do anything about, although it's not as bad as the next one I'll write about.
If the audio issues were fixed, and if the call waiting beeps could be redirected properly, I'd use it, even given it's slight lack of true readability, as it has a pretty small footprint.
Then, there's this other cute little thing called
Phoner Lite. This has to be the most non-standard looking thing I've seen in a long time. It has a bunch of tabs in multiple dialogues, with each dialogue having it's own tab control. However, all the tab controls have only one tab on them. Why?
This phone is small and cute, requiring no installer. However, it's audio system is horribly screwed up, you have to go through the entire setup wizard in the help menu to change your sound devices (not such an obvious thing to do), and there are loads of graphical buttons that some people had issues finding. I found them, but... well... it wasn't really worth it in the end.
So, getting desperate, I even tried a
sip plugin for Miranda, which really tried to work. However, it, like everything else, had some really odd issues.
Putting people on hold with this one is a really bad idea, as when you go off hold, instead of the callee hearing you, they get a nice, clean loopback of themselves. And I do mean a bloody clean one!
Incoming calls show up like authorization requests, and if you have missed calls, you'll get a long list of fake old calls that you supposedly still have coming in, which you have to manually deny, if you want them to go away.
It doesn't want to create multiple sip sessions, even though it has a conferencing feature. Of course, when you get an error every time a second call comes in when you try to answer the new call, or while making a second outbound call, that's sort of a moot point, now isn't it?
Plus, it has this bulky sort of session manager thing that really gets in the way while calls are active. So, while that would have been kind of nice in theory, that sort of broke.
Oh yeah, and of course the audio side of things just had to go and work perfectly... Just to annoy me a bit further, ya know?
I've yet to try
Diax, which is a softphone that only works with the Asterisk IAX2 protocol, but it's last update was about two years ago. So if there are any issues with it, they probably won't get fixed any time soon.
I've tried
Gizmo's sip support. Let's just not talk about that, shall we? Saves me a lot of typing.
Of course, Skype is out for two main reasons; it's huge, and it's not sip compliant. There are lots of sub-reasons, but most of you will already know my viewpoint on Skype, so I won't bother stating those again.
Conclusion; there is no decent softphone that actually does all the things it's supposed to, and does them properly, that I know of, anyway. If anyone knows something I don't, please feel free to share.
To be perfectly honest, I'd be happy if someone made a hardware sip phone with just a quarter inch (or balanced XLR) input and output, an RJ-45 with a web interface, a keypad for dialing, the ability to transfer calls, and conference both incoming and outgoing calls. Oh, and of course there would be residual from the input signal. Why should there be one at all when you're not using copper wires anymore. Sure, put a mix minus as well as mix+dry in there in case someone needs that sort of thing.
If such a device existed and it were cheap enough, I'd say screw all this softphone crap and use something like that.
This would be such a specialized thing that nobody would want to produce something like this, I'm sure.
Oh, one more thing I forgot; let's not have any filtering or other weird processing, such as autogain (unless it's optional, of course).
These hardware phone patch manufacturers have this thing for filtering the incoming and outgoing audio severely. For example,
dgl1984s patch has DSP, and is limited from about 220 to 2.7 KHZ or something like that, when the line itself, even a PSTN, can pass way more than that, especially on the low-end. They say they're doing this to comply with telecom regulations... Right. So why then, do a lot of even really cheap phones have a better frequency response than something you're paying loads and lots of money for? And don't even get me started on the $2000+ Comrex and telos patches and such!