There is no doubt that open source Asterisk has taken IP telephony by storm resulting in many vendors offering solutions based on Asterisk. Because the "free" Asterisk software is open source, it has helped drive down the cost of installing an IP-PBX. Only one major cost factor remains - the hardware. If you install Asterisk on a traditional PC, you have several hardware components - the motherboard, the CPU, the memory, the hard drive, the power supply, CD/DVD drive, etc. Some of these hardware components aren't necessarily required to operate a fully-functional IP-PBX or could be replaced with inexpensive alternatives. For instance, instead of a hard drive, why not use Flash memory? It's cheaper, more reliable, is more easily upgraded, and can be easily swapped after a failure. It also uses less electricity than a hard drive resulting in a "greener" Asterisk solution. When you consider how tight profit margins are when offering an IP-PBX to the SMB market, shaving off a few dollars in hardware costs can be a huge pricing competitive edge. For these reasons, PIKA Technologies offers an embedded Asterisk appliance called the WARP Appliance targeting the SMB market with a cost-effective telephony development platform. PIKA pointed out that WARP is not exclusively tied to Asterisk explaining, "Our customers have developed call logging system, IVRs, predictive dialers and 50% of them use Asterisk, 50% don't."
The PIKA WARP Appliance isn't a turn-key Asterisk IP-PBX, but instead is a development platform that enables resellers and VARs configure Asterisk 1.4.x to their liking, and then offer a customized version of Asterisk through their distribution channel. In fact, PIKA sells what they call the "PIKA WARP Appliance for Asterisk Developers Kit", which includes a PIKA WARP Appliance for Asterisk, one 4 port FXO (trunk) module, one 4 port FXS (station) module, one SD Memory Card (1Gb), one Serial Cable (programming), a network cable, and Getting Started Guide. The PIKA WARP Appliance for Asterisk Developers Kit is discounted to $550 (limit 1 per company) to encourage developers. The normal non-discounted list price is $725. The main concept behind the WARP Appliance is to offer resellers and VARs an inexpensive Asterisk hardware platform that they can OEM and offer under their own brand name. I should also mention that the WARP Appliance now also works with FreeSWITCH, so developers can also choose to embed FreeSWITCH instead of Asterisk. In fact, any telephony application such as IVRs, call logging, predictive dialer etc. built using PIKA's telephony APIs can be integrated onto the appliance, whether it is a proprietary application or based on an open source platform.
Back Panel and the cover taken off to show the inner guts of the WARP Appliance
Importantly, the Kit comes with 4 analog phone ports and 4 analog trunk lines, or essentially a 4x4 "development" phone system, which is perfect for many SOHO and SMBs. In fact, considering many IP Phones are >$200 and analog phones can be had for $20, one should not underestimate how many small businesses would like to dip their feet into VoIP but aren't ready to commit to expensive IP phones. The PIKA WARP Appliance allows them to get a fully-featured Asterisk IP-PBX while offering up to 4 analog phone stations and 4 analog trunk lines. In fact, resellers can even offer 8 analog stations by swapping out one FXO card and instead including two FXS cards - all modules can be mixed and matched in any combination, including BRI in future For inbound and outbound calling the reseller can offer 100% SIP for the trunking side, which has the added benefit of lower per minute charges compared to traditional PSTN dialing. The configuration of the appliance is modular and can include up to 9 ports of a combination of FXO/FXS/BRI plus VoIP stations and trunks.
Top View looking inside the WARP Appliance
While there are many DIYers (Do It Yourself) out there that have built their own home-brewed embedded Linux Asterisk appliances, PIKA has spent considerable resources on choosing reliable embedded hardware and performing quality assurance (QA) testing. When building your own appliance, DIYers have to be concerned with EOL (end of life) on components such as motherboard, memory etc and have to deal with software installation issues and integration with the hardware (ie. drivers)
WARP comes pre-loaded with the 2.6x Linux Kernel (stripped down PIKA version) and includes SSH (Dropbear), Asterisk and Asterisk GUI (1.4.x), database (SQlite3), Httpd (webserver), PHP5, NTP, DHCP, TFTP server & client, as well as VLAN and DNS. As previously mentioned, you have the ability to add any software package that your application requires.
I got to test drive the PIKA WARP Appliance in the lab and was pretty impressed how easy it was to load firmware, add packages, and build a fully-functional copy of Asterisk. The unit includes a RAM disk, full root access, 256MB of RAM, and 256MB of Flash for loading the Linux kernel. Additionally, you can add an SD memory card for additional memory storage, useful for storing voicemail. The processor is powered by a AMCC Power PC 440EP, which operated at 533MHz. The outside of the unit features a 2 x 20 backlit LCD display, with API-controlled front-panel scroll button. You can even control the LED with simple shell commands.
Make the LED red:
echo 1 > /sys/class/leds/warp-red/brightness
echo 0 > /sys/class/leds/warp-green/brightness
Make the LED green:
~ #> echo 0 > /sys/class/leds/warp-red/brightness
~ #> echo 1 > /sys/class/leds/warp-green/brightness
Make the LED orange:
~ #> echo 1 > /sys/class/leds/warp-red/brightness
~ #> echo 1 > /sys/class/leds/warp-green/brightness
To turn the LED off you just echo 0 to both.
I learned this tip on David Clarke's blog/community. David is the Business Development Manager at PIKA Technologies and he started the blog of a place where developers can find 3rd party add-ons such as various Asterisk GUIs and WARP tips. It is relatively new but content is growing daily. You can check it out here: www.pikawarp.org
The back of the unit includes Music-on-hold audio in, paging system audio out, an SD slot, a single Ethernet port and one USB port. I'm told PIKA is working on a dual-Ethernet port WARP Appliance in the near future. This would allow the appliance to add NAT firewall capabilities. Importantly, the unit includes a power failure switchover emergency PSTN port. In the event of a power failure, you can still make an outbound call, i.e. 911.
The appliance can run software from flash memory or via a network file system (NFS) located on your development computer. According to PIKA, "Initially, you will use NFS to execute the software( kernel and ramdisk). NFS will be the primary method for running software on the appliance during development. It is faster to boot using NFS, updates to files can be done without taking the time to write new images into flash and, depending on the file type being modified, without rebooting." There are 3 methods available to load software onto the Appliance.
a) svn checkout of PADS
b) tarball of PADS
c) pre-built images file for the appliance
Building the software is very straightforward using PADS (Pika Application Development Suite) to compile the various packages and then transferring it to the WARP Appliance. You can also compile directly on the WARP Appliance itself using gcc. (See: http://pikawarp.org/?p=53) If using PADS, your development computer requires the following Linux packages in order to use PADS:
• A serial client (e.g. minicom on Linux or HyperTerminal on Windows)
• TFTP (Trival File Transfer Protocol) Server
• NFS (Network File System) Server
• Subversion (SVN)
• SSH client
• GCC 4.x or greater
On your development Linux PC you go to the location of your unpacked source or SVN checkout of PADS and simply type:
This command displays the package selection menu. This will include default menu selections, but you can easily add/remove packages from the Appliance. Next you select 'Exit, choose 'Yes' when asked if you want to save your configuration and then enter the command:
This will build the software with the packages you chose. When the build is complete, you will have an NFS mount point at <Your PADS path>/build_warp/root.
The software image for the kernel (cuImage.warp) is created during the previous step. To create software images for the ramdisk and the persistent file system, you simply enter the command:
The following compressed images will be located in <Your PADS path>/images:
• cuImage.warp (kernel)
• uRamdisk (ramdisk)
• image.jffs2 (persistent filesystem)
The next step is loading the images into the appliance. There's a few ways of doing it, including entering a special bootloader mode called U-Boot and using a serial cable and software like HyperTerminal. But a much easier method is doing it across the network using TFTP or SCP to transfer and load the software onto the appliance. To actually write software to flash you use warploader. warploader is a PIKA's tool that allows you to write software into flash memory while the appliance is running. The tool provides a single step to replace software eliminating the need to enter the special U-Boot prompt and a serial connection to load new software.
After transferring the image to the appliance, you just type this command to load the software into Flash:
#warploader -p <partition name> filename
#warploader -p kernel /root/cuImage.warp (kernel)
#warploader -p root /root/uRamdisk (RAM Disk)
Flash memory has a limited number of write-erase cycles. A utility is provided to track the writes to the NAND flash and can be used to monitor excessive or rapidly increasing amounts of data written to flash which may indicate a problem with an application.
To view the amount of data written, enter the following at the Linux prompt on the appliance:
or on my version:
Unfortunately, the number of writes is reset to zero after a reboot, but still a useful utility.
Two additional partitions called persisent1 and persistent2 are provided in flash memory for user-defined purposes. This space can be used for additional persistent data or for files that will not fit into the ramdisk image. I should point out that when the system is booted, the ramdisk is read from flash or NFS into memory and therefore, the size of the ramdisk is an important consideration for system performance. The maximum size of the ramdisk, using the current settings is 64 Megabytes, out of the total 256M of RAM. PIKA claims that this size is sufficient for a load that includes all of the packages currently made available by PIKA in PADS, with the exception of GDB (GNU Project Debugger).
I hooked up some analog trunk lines using a Teltone analog simulator as well as a few analog phones. I also registered a Polycom IP650 and an Aastra 57i IP phone. I was able to make extension-to-extension calls, outbound calls through the Teltone simulator, and inbound calls to the auto-attendant. In my testing of the PIKA WARP Appliance, it handles fax just fine. It doesn't currently support T.38 real-time fax over IP because T.38 is very processor intensive, but PIKA told me T.38 support is in the works. PIKA includes some special built-in extensions to speed development and testing. For instance, I was able to dial 500 and make an IAX VoIP call to Digium's corporate auto-attendant (misery.digium.com) with no firewall configuration. I'm always impressed how IAX is able to traverse NAT firewalls without messing with the firewall.
Here's a list of the built-in testing extensions:
2222 - Connects to the audio in port to listen to the audio sent from an external device such as an MP3 player.
2233 - Connects the handset microphone to the audio out port on the appliance, used for paging.
2244 - Begins playing pre-recorded prompts to the audio out port on the appliance. After dialing, if you hang up, the prompts will continue to play.
2255 - Stops the pre-recorded prompts started by dialing extension 2244.
4001 to 4005 - These extensions call FXS lines 1 to 5, respectively. If the FXS module is not present, the call will be routed to voice mail.
4006 to 4010 - These extensions call the sample SIP Agents defined in sip.conf. If the SIP agent associated with the extension is not registered, the call will be routed to voice mail.
4060 - PIKA FAX receive test. Connect a FAX machine to one of the FXS ports, dial this extension and the
appliance will receive the FAX. A tiff file will be stored in /tmp/warpfax.
4061 - PIKA FAX transmit test. Connect a FAX machine to one of the FXS ports, dial this extension and the appliance will send a test FAX (the PIKA logo) to your FAX machine.
9<number> - Calls out on an available FXO extension. If no FXO extensions are available, congestion will be received.
500 - IAX test call to Digium's auto-attendant.
- Operating system -- Denx ELDK, with a 18.104.22.168 Linux kernel
- AMCC Power PC 440EP Embedded 533 MHz Processor 1200 mips
- Supports floating point and MMU (memory management unit)
- Internal flash 256 MB NAND(OS + apps) plus 4 MB NOR memory (uboot)
- 256MB RAM
- External removable 1 GB SD flash memory (no hard drive improves reliability) for additional voice mail prompts / storage
- back -up of configuration files and custom settings (facilitates unit replacement)
- Reset function remotely controlled
- Maximum IP ports 75
- Maximum FXS ports 9
- Built-in FXS ports 1
- Maximum FXO ports 8
- Maximum BRI ports 4 / channels 8 (future)
- Simultaneous calls 32
- Dynamic thermal management (fan)
- Power failure transfer
- Music on Hold input
- Paging system output
- Echo cancellation
- WAN/LAN ports 1
- RS-232 interface
- USB ports 1
- Size 2x20 character
- Desk mountable
- Wall mountable
- 9.25" W x 6.65" D x 2.18"H
Comparisons will no doubt be made with Digium's Asterisk Appliance 50 (AA50), so I thought it might be useful to offer my own comparative analysis. I haven't tested the Digium Asterisk Appliance, so I can't compare the development environments between the two. Though, I am under the impression that Digium not longer supports an open development environment. Looking strictly at feature-specs, I see that the PIKA WARP Appliance does have some key advantages, including built-in Music-on-Hold, paging, LCD display, 5 more FXS ports, and higher scalability (75 vs. 50). The Digium Asterisk Appliance does however have 4 LAN ports to the WARP's single WAN/LAN port and the Digium Asterisk Appliance has an additional WAN port which currently the PIKA WARP Appliance does not have. The PIKA WARP Appliance offers 256MB of RAM to Digium's 64MB of RAM and WARP offers 256MB of Flash memory to Digium's 8MB of Flash.
Feature-specs aside, perhaps the WARP's greatest advantage is that is flexible and customizable while the AA50 supports Asterisk only. I asked PIKA why the AA50 isn't conducive to 3rd party applications and development and PIKA told me, "With such a small amount of memory and a more complex development environment, allowing 3rd party apps is not realistic to the typical Asterisk developer and Digium likely found it too difficult to support. PIKA has made the development process easy with PADS so it is a more viable option for Asterisk developers."
The PIKA WARP Appliance for Asterisk is a compelling platform for developers, resellers, and VARs looking for a low cost, reliable, feature-rich Asterisk appliance to offer to the SMB market. The complete customizability and its ability to support analog trunks, analog phones, as well as IP phones and IP trunks makes it a great solution for small businesses that don't have voice T1/PRI lines. Further, unlike Asterisk on a traditional PC, the WARP Appliance comes pre-installed with Music on Hold (MOH) and Paging built-in, as well as power failure transfer (PFT). Another key advantage is that it is modular allowing you're the choice of up to 9 ports of a combination of FXO/FXS/BRI ports. Further, the WARP Appliance can handle up to 75 IP phones and 32 simultaneous calls, which is quite impressive for this very small and surprisingly light device. I should point out that many new small businesses are started each day and these "green fields" are looking for a cost-effective and feature-rich phone system. The PIKA Warp Appliance fits the small business market segment quite nicely both from a price and feature perspective.
Further, medium-sized businesses that have outgrown their current key system or PBX could be enticed to switch to the PIKA WARP Appliance even if their current phone system lease isn't up yet. The reason is super low-cost of the WARP Appliance. Of course, resellers, VARs, and developers will no doubt package together their own applications and offer a profit premium over the $725 list price. Still, I'd expect the PIKA Appliance to allow developers to offer a full-fledged Asterisk IP-PBX with strong analog support for around $1000, which is a very competitive price. All-in-all, I really liked the PIKA WARP Appliance and I think developers will too.