Asterisk based SIP Server in ARM-Linux Embedded Device

July 7, 2014   

TL;DR:

This blog post introduces a product which I designed/developed, with following rough specifications:

• Allwinner A20 dual Core Cortex-A7 CPU
• 1Gbyte DDR3 RAM
• 8Gbyte eMMC
• Ethernet & Wifi networking capabilities
• Debian 7/8 Linux
• Asterisk SIP Server
• Digium Web Interface

Figure 1 SIP Server

Introduction

SIP (Session Initiation Protocol) is an application layer communication protocol used to make voice / video / messaging applications. [1]

Especially for Home Automation market, voice communication has large user base. Especially for multi-flat apartments, typically there are a few SIP Intercom devices, and up to hundreds of SIP Clients in every house.

Figure 2 Typical Infrastructure for SIP communication in an Apartment/Residence

In order to provide a reliable digital communication, SIP protocol is widely used. A SIP Server is used to manage connections between subscribers, a Touch Panel or a Mobile Phone.

Implementation

Major Requirements for this project was:

• Extremely Low cost
• Use open-source components
• Handle basic SIP management
• Easy commissioning tool

In order to comply with above requirements, I decided to reuse my existing ARM based PCBA design, and ported Debian 8 to it.

In order to handle basic SIP management, I installed Asterisk SIP server, and customized Digium Web interface.

You can see photos below for the final product:

Figure 3 ARM Linux SIP Server

As seen in above photos, since I reused my ARM based PCBA, the final product had many more hardware interfaces than found in typical SIP servers in the market. Such as:

• HDMI
• USB
• KNX
• 3x Dry Contact Input 
• 3x Output Relays

Conclusion

During my work as R&D / Project Manager, I developed this Asterisk based Arm Linux SIP server between 2013-2014.

Hundreds of thousands of private homes / apartments / buildings / offices are using these products with a reliable SIP communication for 7 years without any issue.

References

1: https://en.wikipedia.org/wiki/Session_Initiation_Protocol



comments powered by Disqus