For long-time readers of our column, you know that we've spent lots of time looking at and testing just about every Asterisk®-compatible SIP telephone on the planet. At long last, we have found the hands-down winner. Before spilling the beans, let us just say that we really wanted to love the Cisco 7970 phone with its color display. It is certainly the most expensive phone out there and it feels solid and the voice quality on both the headset and speakerphone is excellent. The problem is that Cisco proudly hates SIP and open source. Cisco support is worse than awful. And Cisco's SIP firmware is so bad that it's embarrassing to associate it with SIP at all. After watching its evolution through five or six versions, we're convinced that the bugs, quirks, and lack of features are for the most part intentional. We actually have had XML applications for weather, news, and AsteriDex working for the better part of a year on our 7970. But we've refused to release the applications because we didn't want to do anything to encourage anyone to buy one of these phones. Nothing that Cisco has done in the last year has changed our mind. So... Adiós Cisco. Take our advice: don't waste your time. Life's too short. </rant>
So much for the bad news. We have belatedly found a phone that meets every single business requirement any company could have. And it fulfills those functions transparently with minimal installation and setup. Every phone can be configured and upgraded quickly using either a phone or web interface or simple scripts on your Asterisk server. Voice quality and the speakerphone are incredible. For those with PBX in a Flash systems, it's even easier. Download and run our install script on your server, and we'll preconfigure your phones in under a minute with every bell and whistle in the universe. If you're a reseller, this phone with its feature set will sell systems without your having to lift a finger. No other commercial offering can touch it. Period!
We've just returned from the FreePBX Telephony Training Seminar that was held in Charleston, South Carolina last week. Suffice it say, this phone stole the show. So what is it?
THE WINNER IS... Aastra's 57i or, if you'd like up to four wireless phones to go with it, the Aastra 57i CT is also a winner. One cordless handset is included with the 57iCT. Before we roll up our sleeves and put the phone to work, let's digress for a minute and provide a little background.
For those unfamilar with Aastra, they're a Canadian company that's been around for over 25 years. When the telecom industry imploded at the turn of the century, they purchased several divisions of Nortel including their Meridian Centrex products and their telephone hardware. Several years ago, they also acquired the telephony division of Ascom. Suffice it to say, like their phones, the company is rock-solid and reliable.
That brings us back to the Aastra 57i. Believe it or not, one of the most difficult transitions for many small businesses is finding a PBX that can mimic the functionality of a key telephone. Here's a typical scenario: a secretary answers a call for the boss, places the call on hold, announces the call to the boss, and the boss picks up the call on hold. Sounds simple, doesn't it? Well, the Nerd Vittles setup for the Aastra 57i using PBX in a Flash and FreePBX 2.3 or 2.4 brings it back with ease. And let's dispense with the secrecy and tell you what else lies in store using this phone. Many thanks to both Aastra and Schmooze Communications for developing and sharing this technology with the Asterisk community!
So what do you get with the 57i? For openers, you get 4 lines per phone with a voicemail message waiting indicator that actually works. The lines also can be used for Call Presence indicators. There's an intercom button, and a Day/Night button for controlling the Day and Night functionality of your system as you've implemented it in FreePBX. Then there are Park and Parking Lot buttons that simulate key telephones. When a call comes in, answer it. To place the call on "hold," press Park. The system will tell you on which extension the call is parked using the built-in speakerphone. Then announce the call in the traditional way, and the callee can retrieve the call by simply dialing that extension. If they forget the extension, no problem! The call recipient simply presses the Parking Lot button for a list of calls waiting to be answered. Scroll to the call desired after viewing the CallerID information for each of the pending calls, and press the Answer button. Presto! Finally, a drop-in key system replacement with no retraining or learning curve.
Perhaps the most creative new feature is Visual Voicemail. If you've used an iPhone, then you already know what it is. And it works the same way on the Aastra 57i. When you press the Voicemail button, a list of pending voicemails is displayed with CallerID information for each message. Highlight the message you want to retrieve and press Play. Voila! The message is played on the speakerphone of your 57i. You can delete the message by pressing the Delete button. It's simple to use and makes you wonder why no other SIP phone has it. You'll never have to wade through the VoiceMail IVR to get your messages again.
Two directories also are provided on buttons: Nerd Vittles' AsteriDex and the Asterisk Phonebook, both of which now can be incorporated into FreePBX under the Tools tab. If you'd prefer to use SugarCRM instead of one of these, the code for that one also has been provided by Aastra and is available for your use with a simple configuration change. There's also a Contacts Directory which we'll get to in a minute.
To round out the button collection on the front of the phone, there is a customizable Speed Dial list for each phone, a Redial button tied to a list of recent calls, a Call Forwarding key to redirect your calls to another location, and a Do Not Disturb button. We should mention that the Night button, Call Forwarding button and DND button all illuminate dedicated lights plus a console message when the features have been activated. And, believe it or not, the lights actually turn off and the messages disappear when the features are disabled. We're, of course, (again) poking fun at Cisco which never has been able to get all the lights working reliability on their phones using their SIP firmware.
When an incoming call arrives or whevever you place a call, the bottom third of the screen magically changes to reveal Drop, Transfer, and Conference buttons which work as advertised.
Now for the fun stuff. When the phone is sitting idle, another menu of choices is available. And the magic for most of the technology on Page 2 is thanks to the phone's beautiful display and support for XML-based web pages, all of which are generated on your Asterisk server assuming you have Apache and PHP installed. The second page of functions for your Aastra 57i is activated by pressing the More button.
Page 2 replaces the display on the bottom third of the screen and provides new buttons for Callers, Contacts, Services, Reminders, and Other Apps. The Callers button displays a list of CallerIDs for recent calls with convenient buttons to Dial a number or Save an entry into the Contacts Directory. The Contacts or Dir button displays a list of contacts which have been saved from previous incoming calls. The Other Apps button provides access to an almost unbelievable collection of XML applications, most of which were developed by Aastra specifically for the Asterisk community.
The XML Applications button basically turns your phone into an Internet access and retrieval device using almost three dozen popular RSS Feeds. The list of applications includes all of the following:
- Ask Google
- CNN News
- Top Stories
- World News
- US News
- Science and Space
- Health News
- Most Popular
- Most Recent
- ESPN News
- Top Headlines
- College Basketball
- College Football
- Stock Quotes
- Word of the Day
- Famous Birthdays
- Today in History
- Quote of the Day
- World Clocks
Today's Project. Our objective today wasn't just to tell you about the phone. We're actually going to put all of this technology in your hands, too. Sorry to report that you still have to buy the phone. They retail for just under $300. With a little Googling, you can find them for about $200 in the U.S. The 57i CT including one wireless handset runs about $100 more. Up to four handsets and nine simultaneous calls are supported on the 57i CT.
So, here we go. Step 1 is to install a TFTP server on your PBX in a Flash server if you don't already have one. If you don't have our server, then any Asterisk 1.4 server will do so long as you have installed FreePBX and the LAMP stack: Linux, Apache, MySQL, and PHP. Now you're ready to download Aastra's latest firmware for the phone as well as all of the cool applications. Finally, you need to tell your new phone the IP address of your TFTP server and reboot it to load the new firmware and Aastra's software goodies. The whole project on a PBX in a Flash system takes about 5 minutes to complete. YMMV! Setting up extensions is a simple matter of building a .cfg file with the MAC address of each phone for the filename and placing it in the /tftpboot directory. Then you reboot the phone. Complete and unbelievably thorough documentation for the commands is available here. In the alternative, you can access the web server on the phone by pointing a browser to the phone's IP address and configure everything. You can accomplish most of the configuration on the phone itself. The account name is admin and the default password is 22222. We'll leave that for your homework project.
Installing TFTP Server. Log into your server as root and issue the following commands to install the TFTP server.
yum -y install tftp-server
/sbin/chkconfig --level 345 xinetd on
/sbin/chkconfig --level 345 tftp on
service xinetd restart
To make sure that the TFTP server installed and is running, issue the following command:
netstat -nulp|grep 69
You should see a result that includes a line that looks similar to the following:
udp 0 0 0.0.0.0:69 0.0.0.0:*
Installing the Aastra 57i Firmware and Applications. While still logged in as root, issue the following commands:1
As mentioned previously, there are two config files that get loaded into your Aastra 57i from your server each time the phone is rebooted. These files are located in the /tftpboot directory along with the current firmware. The aastra.cfg config file is loaded into every Aastra phone on your network. You typically set up your line buttons in this file, but it's unnecessary to get started since you can configure those in the web interface. For now, make a change in aastra.cfg to reflect the IP address of your PBX in a Flash server. So log into your server as root and issue the following nano command:
nano -w /tftpboot/aastra.cfg
Now press Ctrl-W and enter 192.168.0.178 as the search term. Press Ctrl-R. Then press the Enter key. Then type the IP address of your server and press the Enter key. When the entries are completed, save your file: Ctrl-X, Y, then Enter.
Configuring FreePBX for Aastra 57i. First, edit /etc/asterisk/features.conf and change the blindxfer line under [featuremap] so that it looks like the following. Too many SIP phones have difficulty sending two simultaneous # codes so we'll change it to one # code to make things work all the time.
blindxfer => #
Now log into FreePBX using a web browser. First, check the upper left corner of the screen and make sure that you are running FreePBX 2.3 or later. Now we want to edit the Parking Lot Configuration under the Setup tab. Make sure your entries look something like the following. The number of Parking Lot slots is, of course, up to you to meet your requirements.
Parking Lot Options
Enable Parking Lot: checked
Parking Lot Extension: 70
Number of Slots: 5
Parking Timeout: 30
Parking Lot Context: parkedcalls
Actions for Timed-Out Orphans
Parking Alert-Info: leave blank for now
CallerID Prepend: LOT
Announcement: leave blank for now
Destination for Orphaned Parked Calls
Choose an option here to meet your needs. This is the destination for unanswered calls by both the callee and the receptionist that parked the call.
Activating Intercom and Paging in FreePBX. By default, the intercom and paging functionality is turned off. To activate it, click the Setup tab and choose Feature Codes. Scroll down the list to Paging and Intercom. Check and enable all three feature codes. *80 preceding an extension number initiates an intercom or paging call. As we have implemented it, it will switch to an open line, activate the speakerphone, and let you blast your message to the desktop whether the person is on the phone or not. *55 lets them turn that off whenever they'd like, and *54 lets them turn it back on again. If you initially read this article within the first couple days of publication, this section wasn't available. And your phone configuration (/tftpboot/aastra.cfg) needs to be modified slightly. Just substitute the following lines for the corresponding lines in the existing code that you downloaded. Then reboot your phone(s).
sip intercom type: 3
sip intercom line: 4
sip intercom prefix code: *80
sip intercom mute mic: 0
sip allow auto answer: 1
Implementing Day/Night Service in FreePBX. In order to use the Day/Night key on the Aastra 57i's, you first have to enable it in FreePBX. In a nutshell, the Day/Night feature lets you define where calls should be directed when the feature is in Day Mode and where they should go when the feature is toggled to Night Mode. For home and small business use, you may alternatively use it as an In/Out button where Day=In and Night=Out. This is the first routine triggered when an inbound call arrives in your PBX. Before you can use it, you have to create a Day/Night Feature Code. We're going to set up Feature Code 1 because that's what your phones are set up to manage with the Day/Night button.
From the Setup tab, click on Day/Night Control and choose Add Day/Night Code. Now fill in the form by inserting 1 as the Feature Code index and DayNight1 as the Description. Be sure Day is set as the Current Mode. Now you simply direct where calls should be sent if it is Daytime and Nighttime. Typically, for the Day setting, you'd send the calls to a preexisting Time Condition which has been configured to activate a certain IVR during the day and a different one at night. If you're only going to control Day and Night modes with the button, then you could redirect Day calls directly to an IVR. But then it's a manual operation whereas Time Conditions are automatic. For the Night mode, choose IVR or VoiceMail you wish to activate when Night mode is activated. Remember, if you're using this in conjunction with Time Conditions, you'd probably want the Night destination to be the same as the Night setting in your Time Condition setup. Otherwise, you get two different results depending upon whether the Day/Night button is pressed or your system automatically activates Night mode based upon a Time of Day Condition. Once you choose a Day and Night destination, save your Day/Night Control Code and reload the Asterisk dialplan. Now test it by dialing *281 from a phone connected to your system. This should toggle the Day/Night mode.
But it still doesn't do anything for Inbound Calls. Why? Because you have to define the Day/Night Control DayNight1 as the initial destination for all of your Inbound Routes. So edit the Inbound Routes that you plan to manage with the control and reload your dialplan.
So the Flow Control for inbound calls works like this. The call arrives at your PBX. The Inbound Route for the DID or CallerID or Default Inbound Route sends the call to the DayNight1 control. The DayNight1 control deciphers whether it is set to Day mode or Night mode. It doesn't really matter what time of day it actually is! Depending on the setting, the DayNight1 control sends the call on to the next destination. Usually, if its Day, the call is routed either to a realtime check using a TimeCondition control or to an IVR, but the call also could be routed directly to a ring group or an extension. That's what you define in the Day/Night Control. If it's current setting is Night, the call is routed to the next hop specified as the Night option in your Day/Night Control Code. Whew! That's all the FreePBX tweaking you'll need to do to get the most out of your new phones.
Installing AsteriDex. If you haven't already done so, let's quickly install AsteriDex which provides a web-based dialer for your system as well as a MySQL-based Rolodex-like phone directory. Log into your PBX in a Flash server as root and issue the following commands:
chmod +x asteridex.pbx
tar -zxvf /root/asteridex.tgz
The entire install takes less than 15 seconds. Complete documentation is available on our Best of Nerd Vittles site. The FreePBX module can be installed by accessing Module Admin, clicking on the AsteriDex module, highlighting Install, and clicking Process. Reload the dialplan when prompted.
PBX in a Flash 1.2 Addendum. For those using PBX in a Flash 1.2 or FreePBX 2.4 which is included in PBX in a Flash 1.2, a couple of simple changes need to be made to get all of the features above working. This is because FreePBX no longer permits you to change the ## setting for Blind Transfers, and this function is used for a number of features on the phone. As noted elsewhere on Nerd Vittles, some SIP phones do not reliably support ## transfers so we have changed it to #. To do this, go to FreePBX Setup, Feature Codes and disable BOTH the ## Blind Xfer option and the # Directory option. Reload the dialplan when prompted. Then log into your server as root and issue the following commands:
echo blindxfer=# > /etc/asterisk/features_featuremap_custom.conf
chown asterisk:asterisk /etc/asterisk/features_featuremap_custom.conf
asterisk -rx "dialplan reload"
Some Recent Nerd Vittles Articles of Interest...
- Join the following line to the original line with no intervening space when you encounter the ↩ character. [↩]