VoIP and Embedded Linux
Aplio offers an alternative to MS-Windows-based long-distance telephone calls on the Internet. Under the hood, you will find embedded Linux.
Telecommunications is a huge market that continues to grow at a frightening pace. As the market becomes more sophisticated, the need for intelligent devices grows as well. A relatively new piece of the telecommunications market is voice over ID, or VoIP. This is where speech is digitized and sent over an IP-based network.
The most common products in this market combine an MS-Windows PC and sound card with proprietary software to offer the equivalent of free long-distance telephone calls by using the Internet.
This approach has its drawbacks. You must have an MS-Windows PC turned on and available in order to place or receive phone calls. Enter Aplio or, more specifically, Aplio/Pro, a stand-alone appliance that allows you to make telephone calls over the Internet.
Like any other VoIP solution, you need a system at each end to make the call. Unlike most solutions, with Aplio you don't need computers on each end. While Aplio has had products in this market, Aplio/Pro amounts to their transition to open-source software.
Henri Tebeka, chief technology officer for Aplio, said, “Linux is the ideal operating system for our technology. Its built-in Internet connectivity, royalty-free accessibility and open-source structure will allow us to streamline our development process, and ultimately strengthen our position as the leading provider of Internet telephony appliance technology.” Combining Linux with the growing improvements in VoIP technology, Aplio brings a progressive development model to bear on one of the most vital areas of the Internet's growth as a truly multimedia, mass network capable of delivering voice data as seamlessly as it does text, still graphics and video.
Aplio/Pro features a built-in processor along with a modem, flash RAM, hardware-based full-duplex voice compression and a full-duplex speakerphone.
Jerome Calvo, president and CEO of Aplio, Inc. said, “Are users going to want to talk over the phone through their computer? With a headset? The approach we have is a non-PC approach, an Internet appliance approach, a stand-alone device...The voice over IP market is much more mature than it was one or two years ago...Still, some companies have since joined the VoIP market with software-based solutions that often don't deliver the same level of quality.”
Setting up Linux-based Aplio/Pro is easy. It connects to a telephone as simply as an answering machine and plugs into an Ethernet port.
Configuring the Aplio/Pro involves little more than entering Internet account information on the telephone keypad. There is a ten-digit number (the Aplio ID, located under the unit) which represents the ID or phone number of the Aplio unit. It can then send calls to other Aplio systems, as well as to those using multimedia computers with Internet telephony software such as Microsoft's NetMeeting.
To place a call, you pick up the telephone receiver (assuming the speakerphone is not being used), press the “Aplio” button on the unit's console, dial the Aplio ID of the individual being called and wait for the phone to ring on the other end of the line. Calling to or from an Aplio unit with an Internet telephony-enabled PC is just as easy.
To use Aplio behind a firewall or NAT (Network Address Translation) box, all that's necessary is to open up the appropriate ports much like you would do with ICQ or other real-time transfer protocols.
How does Linux fit into Aplio's picture? Fresh on the heels of its Internet telephony appliance success, Aplio embarked upon a project to develop a broadband version for the enterprise. Whereas the Aplio/Phone works over average PSTN (public switched telephone network) lines and runs the proprietary PSOS real-time operating system developed by Integrated Systems, Inc. (now a part of Wind River Systems, Inc.), Aplio/Pro is a Linux-based, stand-alone, Internet telephony appliance that routes to the Internet. Aplio/Pro, like the Aplio/Phone, has won its share of commendations, namely Product of the Year awards from both Internet Telephony and Communications Solutions magazines earlier this year. Internet Telephony said, “in our opinion, the best VoIP appliance is Aplio/Pro...” And while acknowledging the value of some competing products from Innomedia, InterStar and Komodo, the review concluded that “the Aplio/Pro is the best choice for ease of setup, economy of scale and overall usability.”
Aplio/Pro's operating system is Aplio's embedded port of the Linux kernel. The port is adapted from ucLinux/ARM (which is itself a port of uClinux, a Linux version for micro-controllers without a memory management unit or mmu). Aplio's TRIO chip was the first port of ucLinux/ARM. The ucLinux kernel was built by taking the standard 2.0.38 kernel and applying the ARM patches and the ucLinux patches. After some “manual editing”, ucLinux for ARM7TDMI was ready to roll.
Said Vadim Lebedev, chief software engineer for Aplio and the one who led the porting of ucLinux to ARM7TDMI, “the porting of the kernel itself was not especially difficult, the biggest problem was adapting the GCC/ARM compiler to generate position-independent code for user-mode application.” Lebedev first got involved with Linux during the development of the Aplio/Pro VoIP appliance and noted that the decision to use ucLinux for the Aplio/Pro (and for future TRIO chip-based products) was due to three primary reasons. For one, the availability of the source code and access to open-source software tools made modifications and enhancements easier and more efficient. Second, the ability to “comfortably” develop and test the code on Linux workstations, and then embed the code on the device by recompiling, was deemed a major advantage. And third, the high level of support Lebedev and his development team could get from the broader community of Linux developers meant that the project would not be isolated from further innovations in both Linux and embedded systems. Added Lebedev, “[now] we can say it is really much easier to develop Linux-based embedded software than, let's say, PSOS-based software...I do believe that Linux has a pretty bright future in the embedded world—even if [Linux] was not initially meant to be used in this way.”
The newly developed Aplio/TRIO chip provides the connection to the Internet (by way of an internal Ethernet port) while at the same time providing real-time voice compression and echo cancellation. The Aplio/TRIO is based around an ARM7TDMI micro-controller core running at 20MHz and a pair of DSP co-processors running at 40MHz. In a general, stand-alone environment such as the Aplio/Phone, one of the DSP co-processors manages voice processing, including voice compression and echo cancellation, while the other co-processor handles the telephony functions such as dialing, caller ID detection, etc.