Table of Contents

Voice over IP

There are a few different protocols for transmitting phone calls over the Internet; the one I use is called SIP.

This stands for Session Initiation Protocol, and is very similar to HTTP in the way client and server communicate with each other. It also has a horrible similarity to FTP, with IP addresses embedded in the messages, which make working across NAT connections potentially "interesting".

I mostly work with Asterisk as a SIP server, although I've done some work with FreeSwitch as well.

I've collected quite a variety of makes and models of SIP phones over the past few years, and as I get round to it, I plan to mention some of their quirks and occasionally surprising incapabilities here.

Cisco

Don't bother.

Most Cisco phones come with firmware installed on them which doesn't talk SIP, and although SIP firmware is available from Cisco, actually obtaining it is what I would euphemistically call a "non-trivial exercise".

Having installed SIP firmware on a Cisco phone, it'll work perfectly well, except that several of the buttons may not actually be usable, and you'll almost certainly decide pretty quickly that you wish you'd just gone for a SIP-capable phone in the first place.

You also need to be very careful about models which offer PoE - this may well turn out to be "Cisco PoE", which is totally incompatible with 802.3af, and therefore unless you bought a Cisco PoE switch (which won't power any non-Cisco equipment) you can well find that "PoE" means "use a mains power adapter".

Polycom

I used to really like Polycom phones; they do SIP as standard, they have a decent web-interface management system, all the buttons work as expected, and they support (cabled) headsets easily, alongside the handset.

However, Polycom only releases the current firmware to registered users who've paid for a support contract; anyone else can get any previous version of the firmware, but not the current release.

They also tend to be pretty expensive (although I've bought all mine second-hand on eBay).

All but the most basic models do PoE, which I use for all my cameras and telephones.

Yealink

Yealinks are nice.

They have a better web interface management system than Polycoms, most of them do standard PoE, and little things like the button layout, or simply pressing "OK" to get basic networking information for the device, are very well thought-out.

Current firmware is also trivially available from Yealink.

Just please don't, whatever you do, use Yealink's zero-touch remote provisioning service (or whatever they might have renamed it to this year). It is totally insecure (as are all such systems from every vendor I've seen so far), and could well end up with you being defrauded for several hundred (or more) local currency units. Use remote provisioning on your phones by all means; just don't use the vendor-provided "take it out of the box and plug it in" system.

Aastra

These are weird. I haven't found a model which I like the look of sufficiently to think I'd like to use it as a daily telephone (I have a couple just so I'm familiar with them, and they're weird).

Grandstream

Grandstream make fairly cheap and basic telephones; also ATAs (analogue to SIP (for both analogue telephones and analogue phone lines) converters), door entryphones, and videophones.

They're standard SIP, do standard PoE, and work well enough, but the auto-provisioning system is total shit. It's a not-quite-binary (ie: cryptic, although not encrypted, text) file format which is inconsistent between different models. It's a totally crazy idea, and makes management of any reasonable number of these into a maintenance nightmare.

Avaya

Don't.

These are even weirder than Cisco and Aastra, and for example once you've persuaded them to talk SIP, won't connect to a server on the other side of a router. It has to be on the same local subnet as the phones.

My recollection is that the auto-provisioning format is actually binary, although I haven't wanted to try working with an Avaya phone for so long that this may be a false memory.


Go up
Return to main index.