IP Phone
VoIP software integration project
In 2007, one of Russian government agencies came to Mentorel with a prototype of a IP phone. That phone was designed by the agency’s engineers but the software was not brought up and therefore the hardware was not functionally tested. The base hardware design was cloned from the TI OSK5912 evaluation platform, however with minor changes in the schematic. Therefore our engineers had to port an initial bootstrap to the platform to support necessary hardware features like an Ethernet controller, then a real-time OS to it. As a RTOS the choice was made for MontaVista Linux. In embedded systems, a board support package (BSP) is implementation specific support code (software) for a given (device motherboard) board that conforms to a given operating system. It is commonly built with a bootloader that contains the minimal device support to load the operating system and device drivers for all the devices on the board.
Any board support package usually consists of:
- Bootloader. For the most of the embedded platforms “Das U-boot” from Denx Engineering is the standard in the industry.
- Linux bootstrap code, to initialize the hardware properly. This includes programming Interrupt Service Routine controller, clock and power management code.
- Linux device drivers, to support internal or external devices used in the system
Once the board related software was ported to MontaVista Linux and tested on the device Mentorel’s engineers began a long and complex path to add the VoIP functionality to the phone. After investigating the most popular Open Source VoIP clients in the market we decided (and this decision was eventually granted!) to take the Open Source project Linphone. Linphone is a audio and video SIP softphone for Linux and Windows supplied both in binary and sources. In tight collaboration with Linphone maintainers we could add and implement following features:
- VoIP-client Linphone porting to MontaVista Linux;
- SRTP-lib porting and integration to Linphone;
- keyboard and LCD integration with the Linphone core;
- UI development and implementation with Linphone;
- Phone testing in local and global networks with public SIP-servers;
The finished product was used for government communications between Vancouver and Moscow during Olympics 2010.
Product development for IP phone
After the first success with the IP phone software integration project our customer (the government agency) decided to have a second phase for this project and let our engineers develop an IP phone from scratch fully in electronics and software. This was a challenge for us because we had to elaborate all necessary security standards intrinsic to Secure Terminal Equipment used by the government communications.
The new IP Phone had to support following features:
Hardware
- ARM based processor, frequency 200MHz;
- NOR flash for OS and applications;
- Embedded LCD controller;
- Color TFT screen 3.5″
- Fast Ethernet;
- Encryption engine;
- Buzzer with different melodies and the volume regulated from the UI
Software
- OS Linux;
- Fast boot;
- VoIP software based on Linphone;
- Simple and intuitive UI similar to rivals’ devices in the market
Solutions
Since we already had in production the System on Module SBC-9263 based on the Atmel chip AT91SAM9263 (arm926 core) – we decided to use the existing schematics for the SBC-9263 and add necessary hardware features to it. For the encryption feature we added a Texas Instruments DSP. All voice data (input and output) was handled only by the DSP protecting secret data from leakage in vulnerable environment of the operating system. The only interaction allowed between the ARM9 and the DSP was a simple signaling protocol. ARM9 processor handled all key pressings and the LCD connected to it. A custom Linux root file system was compiled to enable only necessary services and utilities on the target. To support graphical user interface we ported Linphone application to the Qt library combining powerful GUI library with the unprecedented VoIP client Linphone.
At present the developed IP Phone is in production by our client and is commercially successful. It is used mainly by government agencies or businesses that need voice encryption certified by the government.
Our Expertise in Software
Embedded Hardware Design
- Embedded systems design
- Design for Manufacturability
- Microprocessors: MSP430, AVR, ARM9, ARM Cortex-M3, ARM Cortex-A8, ARM Cortex-A9, TI DSP
- Networks and communication: USB, Ethernet, CAN, Bluetooth
- Wireless: Wifi, GSM, LTE