Up to 48 E1 in an Asterisk Server By OpenVox D430E Telephony Cards



Contents

Keyword

Asterisk, 48E1, 48T1,48J1 1440 concurrent call, freeswitch

Overview

Background

It is a challenge to make an Asterisk server to support up to 16 E1. However, OpenVox invested much research in it and found that lower interrupt frequency and less I/O operation are effective and feasible. With these two factors, OpenVox has successfully been able to make up to 48 E1 worked in a single Asterisk server.

About D430

With Features of adjustable interrupt frequency, modifiable interrupt PIN, and field upgradable firmware, OpenVox D430P/E is supposed to be the most advanced 4 port T1/E1/J1 Asterisk® card with superior quality in the open source community. D430P supports PCI bus and D430E supports PCI-Express. While OpenVox was working on D430 firmware improvement to achieve higher performance, now the V1.5 version of firmware perfectly solves running up to 48 E1 interfaces in the single Asterisk server, i.e. realizing 1440 concurrent SIP to TMD calls.

About the Firmware

There are two optional Enhanced functions with the combination of D430 and V1.5 or higher firmware version, which are APU (embedded Application specific processor unit) and IRQ (interrupt agent). Benefits of APU and IRQ are described as follows:
APU: Processor unit collects dozens even hundreds read and write transmissions firstly, and then transmit them suddenly. The function greatly reduces CPU usage rate of each card need, and provide excellent conditions running multiple telephony cards in a single Asterisk server.

IRQ Agent: This function just allows only one card among several to register and apply interrupt, which avoids interrupt number sharing and conflict and reduces assignment change over head of the system.

The specialized and customized DAHDI driver of OpenVox controls these issues by two parameters use_apu and irq_agent which are able in default.

Hardware Environments

1. 12 D430 V1.5 cards run in the single PC
2. Motherboard: Intel DBS2600CP2, dual CPU
3. CPU: Intel(R) Xeon(R) CPU E5-2640 @ 2.5GHz
http://wiki.openvox.cn/images/8D430/8-D43-dual-CPU-motherboard.jpg

4. PCI Bridge: There are 4 PCI-E and 1 PCI slots in the motherboard, therefore, it can install only 5 cards and other 3 cannot be setup. So a product called PCI-E backplane appliance is designed by OpenVox, which can spread PCI-E interface to 1m in space by a common CAT6 twisted-pair line and extend more PCI-E interface. Figure 2 shows OpenVox D430E and the PCI-E backplane appliance.
http://wiki.openvox.cn/images/8D430/8-D430-D430Eand-PCI-E-backplane.jpg

5. Please refer to figure 3 for information how to connect and extend PCI-E interfaces.
http://wiki.openvox.cn/images/8D430/8-D430-card-access.jpg

6. After connecting 12 D430E V1.5 cards, please configure 6 D430E as NET and other 6 as CPE in the file dahdi-channels.conf. Every pair of NET and CPE interface connects each other by an E1 line (RJ48, the line order is 1245). Calling NET interfaces by Winsip and getting through CPE by E1 lines, answering and playing music in CPE side.
http://wiki.openvox.cn/images/8D430/8-D430-interface-interconnect.jpg http://wiki.openvox.cn/images/8D430/8-D430-call-flow.jpg

7. After connecting according to above figures and supplying power by ATX, it time to start up your machine to test.

Software configuration

Step 1. Examination
Execute command “lspci” to check if the firmware version is V1.5. Because only V1.5 or higher version supports to run 12 D430 cards in the same server. When the version is lower than V1.5, it is able to upgrade by the software called openvox-update.
http://wiki.openvox.cn/images/48E1/lspci-48E1.jpg

Step 2. Modification
Since 12 Asterisk telephony cards run in the same server simultaneously, Asterisk has to open 15000 files that have outnumber 1024 in default, it is need to run “ulimit –n” to modify. Because different system has its own method to change open file number, “ulimit –n” is just a one-time command, that is to say, you should run it every time when start up machine. Modifying the opened file number in the relevant configuration file is also a feasible way.

Step 3. Installation
After installing D430E http://downloads.openvox.cn/pub/manuals/V2.2/English/D430E%20DE430E_on_DAHDI_User_Manual.pdf and load the driver correctly, there will be 1488 channels (31*4*12) initialized.

Step 4. Interrupt
After running command “cat /proc/interrupts”, you will see that only one card’s driver wct4xxp registered interrupt number 193. While before interrupt agent is enable, all 12 cards will register interrupt.
http://wiki.openvox.cn/images/48E1/interrupt-48E1.jpg

Step 5. Activation
After command “asterisk –vvvgc”, there will be 48 active spans.
http://wiki.openvox.cn/images/48E1/asterisk-vvvgc-48E1.jpg


Step 6. Call
Please Call NET interfaces by Winsip. 
http://wiki.openvox.cn/images/48E1/WINSIP-48E1.jpg

Step 7. Check
Run command “top” to check CPU usage rate. After a period time of observe, you will find that CPU occupancy rate is between 50% and 400%, so it is reluctant if using a single CPU with dual-core or quad-core to run 12 cards simultaneously. It is advised that using dual CPU and it is quad-core to process 12 D430 call.
http://wiki.openvox.cn/images/8D430/top.png

ToDo

In most server motherboard, it is unable to run 8 D430 cards and can just support 4 cards. To solve this, OpenVox will research a product and solution to support 12 or even 16 D430 cards in a single server. And our customers are able to build those solutions by OpenVox PCI-E backplane cards.

Our engineers were trying to run 16 D430 cards in a server with dual Intel Xeon CPU, by changing DAHDI source code to support more than 1024 channels and activing flag's LOTS_OF_SPANS when compile Asterisk. The next goal of OpenVox is to put efforts in R&D to meet requirements for more E1 interfaces.