April 28, 2006

Two SIP hardphones for your Asterisk PBX

Author: Joe Barr

Considering the Asterisk PBX in your SOHO, but unsure of which Session Initiation Protocol (SIP) hardphone to buy? Here's a look at two different models to help you decide which might be better for your home office: the Grandstream BT-101 or the Zultys ZIP2x2.

Grandstream BudgeTone 101

The single-line Grandstream BudgeTone 101 is one of the most economical choices for use with Asterisk and VoIP chores, with a street price considerably lower than most of the competition. I purchased mine on the Internet for $50 plus shipping. In spite of its low price, the BT-101 is a full-featured phone with all the features I need for an Asterisk PBX in a SOHO environment.

The BT-101 has an LCD display that shows the date, time, volume setting, and connectivity of the unit while it's not in use. When an incoming call arrives, it displays the caller ID. When you pick up the handset to dial, the LCD changes to a light blue background and the number you enter appears where the date had been displayed. Beneath the LCD, a pair of up and down arrow buttons allow you to raise or lower the volume, or cycle through menu options, depending on context. Next to them are buttons to display incoming and outgoing call logs, a menu button, a message waiting light, and a large button you can program to check your voicemail. Hold, Transfer, Conference, and Flash buttons are arranged in a column to the right of the BT-101's keypad. Beneath the keypad there are Speakerphone, Send/Redial, and Mute/Delete buttons.

Getting the BT-101 working with Asterisk requires configuration on both sides of the equation. You can do some configuration of the BT-101 from the phone itself, by pressing the Menu button and negotiating the items in the menu with the up/down arrows, but you can't configure it all from there. For complete access to configuration, you'll need to use the admin pages on the BT-101's built-in Web server. I used both: first configuring the BT-101 with its and the router's IP addresses from the phone, then using the Web interface to complete the configuration.

Click to enlarge

The BT-101 User's Guide offers several configuration scenarios and provides detailed guidance for each. The most important part of the configuration for use with Asterisk is the IP address of your Asterisk server. You'll also need to fill in the SIP User ID, Authenticate ID, SIP port, and RTP on the Advanced Settings page, each matching what you're using in Asterisk. Don't forget to select Send DTMF via RTP (RFC2833).

If you want the Message button to automatically dial the extension Asterisk is configured to use, enter Asterisk's voicemail extension in the Voice Mail UserID field of the Advanced Setup. Note: Ignore the request for the user ID here; only the extension is needed.

The BT-101 supports eight different codecs. You can arrange that list according to your preferences, choosing from PCMU, PCMA, G723, G729-A, G726-32, G722, G728, and iLBC. That's not a perfect match with Asterisk's offerings, but six out of eight isn't bad. Codecs vary in both quality of sound and bandwidth consumption, and careful testing can help you find the best fit for your usage. I kept the default settings with PCMU at the top of the list to match my Asterisk config.

You'll need to check the Grandstream firmware page to see if your BT-101 has the latest firmware release. Mine was several releases out-of-date when I got it. If it doesn't have the latest release, update the Advanced Configuration settings with the IP address of the appropriate server and configure it to check for new firmware.

If you're the edgy type, you might want to check out this unofficial Grandstream TFTP provisioning site courtesy of GratisSip.dk. It may have an unreleased beta on hand you can try.

Another thing that may help in configuration and debugging is to take advantage of the remote logging capabilities of the Grandstream phone. Note: Use of this feature also requires you to configure syslogd on the server specified to listen for remote machines. Near the bottom of the Advanced Settings page you'll find a place to enter the IP address of your syslogd server, and the level of reporting: NONE, DEBUG, INFO, WARNING, or ERROR.

Finally, Grandstream tech support is available by email, and promises to respond within 72 hours. Every time I've had to use it, they have either replied to my query or resolved the problem within 24 hours. Considering the cost of the phone, that is pretty good support.

Here's a sample Asterisk sip.conf entry for the BT-101:

type=friend			; peer, user, friend
context=internal                ; Where to start in the dialplan when this phone  calls
callerid=Sam Keen ; Full caller ID, to override the phones config
host=dynamic			;
user=bt101			;
secret=sauce			;
nat=no                          ; there is not NAT between phone and Asterisk
canreinvite=no                  ; allow RTP voice traffic to bypass Asterisk
dtmfmode=rfc2833                ; either RFC2833 or INFO for the BudgeTone
mailbox=101@internal		; voice mailbox
call-limit=1                    ; permit only 1 outgoing call and 1 incoming call at a time

I've had very few problems with the BT-101. My only stumbling block has been that I've not been able to get the Message Waiting Indicator to light up when there's voice mail waiting for me. According to this report on the voip-info.org wiki, nobody else has been able to get it to work either. My guess is that this problem has to do with the missing SIP address for the user in the Voicemail User ID field in Advanced Settings, but when both are given, the Message button does not dial the Voicemail extension. If any readers have a solution for this, I sure would like to hear it.

Using the BT-101 is much like using an ordinary telephone. You'll want to hit the Send button after entering the number you're calling, though, to avoid the wait period the phone goes through before deciding you've finished entering digits. The Redial, Conf(erence), Trans(fer), and Hold buttons all work just as you would expect.

At best, the Grandstream BT-101 provided sound quality as good as or better than a good connection on a POTS line. On the rare occasions when I briefly experienced "jitters" on a call, it was just as bad as interference you might experience on a normal phone call. Please note that the "jitters" may not have had anything at all to do with the phone device, but rather the result of network conditions. More expensive phones may provide slightly better sound quality, so the choice is yours.

Next: Zultys ZIP2x2
Zultys ZIP2x2

The Zultys ZIP2x2 is similar in appearance to the Grandstream BT-101, but has additional features and capabilities. The ZIP2x2 can handle two calls at once, instead of just one. It offers voice encryption when connected to another Zultys phone. And finally, there is an additional RJ-45 port on the ZIP2x2 that allows you to connect it directly to a PC as well as to your LAN. Naturally, the price is higher too; we found the Zultys ZIP2x2 on Froogle for about $160.

Beneath the LCD screen, which is large enough for three lines of 20-character text display, there are four buttons, each with its own light. They are marked Call 1, Call 2, Msg/Encrypt, and DND/Fwd. The secondary functions, printed in green instead of the white used for the primary functions, indicate the action that is taken when the button is pressed after pressing the green Fn (short for function) key on the bottom row of buttons beneath the keypad.

To the right of the keypad is a vertical row of buttons marked with primary and secondary functionality: Redial/Menu, Conf/OK, Trans/Esc, and Hold/Mute. The bottom row, beneath the keypad, has the Fn button, up and down arrows, and a speaker button.


I spent an inordinate amount of time getting the ZIP2x2 configured so that it could both send and receive calls with Asterisk. There seems to be a paucity of information available on how to configure the unit with Asterisk. I scoured the Internet, asked on IRC channels, and bothered Zultys tech support for weeks without success. I found an older Howto on configuring the ZIP2 (not the ZIP2x2) with Asterisk, but that didn't work. One of the few other tips I found early on and followed -- suggesting that the Zultys phones would only work if configured without a SIP password -- turned out to be wrong. No matter what I tried, I could make a call from the ZIP2x2, but I could not get it to answer a call.

I used tcpdump to capture the conversations between the BT-101 and Asterisk from power up to call reception, and then compared them with with the same conversations between the ZIP2x2 and Asterisk. That provided a clue as to the problem, but did not provide a way to resolve it. What I noticed was that when Asterisk placed a call to the Grandstream phone, it included both a user and an IP address, like bt101@, but when it called the Zultys, there was no user, simply the IP address, Zultys tech support and I spent more than a week puzzling over what we found, to no avail.

Finally, just as I was ready to give up and ship the phones back, Zultys tech support suggested that I simply use the same sip.conf settings for the ZIP2x2 as I was using for the Grandstream BT-101, and it worked. In hopes of saving others from the same hours of frustrations, I am including copies of both the phone's internal configuration and the sip.conf settings, shown below.

Web administration

The easiest way to configure the phone's settings is through the built-in Web admin page. Point your browser at the IP address assigned to the phone, enter the default password, and have at it. The sign-in page allows you choose from Phone Book, Information, User Settings, Protected Settings, or Log Out. If you want to store names and numbers on the phone, the Phone Book is place to do it, since it is much easier to type from a keyboard than it is from a keypad.

The critical settings are in the Protected area. It's here that you can define the Network Setup, SIP Communications, Names and Numbers, Audio, and Maintenance. Of these, Maintenance is especially valuable. You should visit it first to change the default password to one of your own choosing. The Maintenance area also allows you to save a copy of the phone's configuration on your PC. This can be a valuable aid in debugging the SIP configuration. Naturally, the SIP Communications area is the most critical in setting up the ZIP2x2 to work with your Asterisk server.

Speaking of Asterisk, this is what my entry in sip.conf ended up looking like for the ZIP2x2.

context=internal      		; Where to start in the dialplan when this phone calls
callerid=Slim Pickens ; Full caller ID, to override the phones config
nat=no				; there is not NAT between phone and Asterisk
canreinvite=no			; allow RTP voice traffic to bypass Asterisk
dtmfmode=rfc2833		; either RFC2833 or INFO for the BudgeTone
call-limit=2			; permit only 1 outgoing call and 1 incoming call at a time

If you have more than a couple of Zultys phones to tend to, you might want to consider using TFTP to update their configurations rather than the Web admin method. Using TFTP allows you to keep both a common configuration file -- for all Zultys phones of the same model -- and a MAC-specific configuration file should there be differences in configuration based on the user. Using this method, the phone checks for a new configuration file each time it is rebooted. Obviously, this feature is going to be more appealing to those with more phones to watch over than it is to most SOHO users.

Using the phone

The ZIP2x2 has a few more bells and whistles than the BT-101. It doesn't have a dedicated Send button; pressing the # key will dial the numbers you've entered and cut out the bothersome wait for the phone to decide you're finished.

To make use of the built-in Phone Book, press the Fn button and Menu, use the up and down arrows to select Phone Book from the Menu, then press OK for Search. Then use the arrow keys again to select the desired party from the list of Phone Book entries and press OK again to dial.

Need to do some serious coding or just have the need for a little "quiet time"? The DND button will make your Zultys ZIP2x2 appear busy to anyone who calls, and notify you of any missed calls on the display. I was not able to test the encryption function, but it is supposed to allow automatic or manual selection of encrypted-mode voice calls between likeminded Zultys phones.

The call forward feature is easy to use. Simply press the Fn key, then Fwd, and then select one of off, all calls, on no answer, or when busy from the scrollable menu. Unless you've chosen off, you'll then be prompted for the number where you want the calls forwarded. Press OK, and you're done.

In my unscientific estimate, the voice quality of the Zultys ZIP2x2 seemed to be slightly better than the Grandstream BT-101. I placed several calls to POTS users and nobody detected that I was speaking to them on anything but a standard telephone.


The good news is that both phones work -- mostly -- with Asterisk, but both require some tweaking of both Asterisk their own configurations to work with the open source PBX. Even then, if you're not an Asterisk guru, all the phone features -- such as the message waiting indicator -- might not work as they should.

Which is the better pick for you? That depends. If you need the ability to handle two calls at once, or to encrypt your calls, the ZIP2x2 is the obvious choice. Otherwise your decision point hinges on whether the increased functionality and better voice quality of the ZIP2x2 is worth the additional hundred-plus dollars it will cost you.

Click Here!