Up to 32 E1 in an Asterisk Server By OpenVox D430E Telephony Cards
Content
Keyword
Asterisk, 32E1, 32T1,32J1 960 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 32 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 32 E1 interfaces in the single Asterisk server, i.e. realizing 960 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. 8 D430 V1.5 cards run in the single PC
2. Motherboard: Intel S5500B, dual-core CPU
3. CPU: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
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 8 D430E V1.5 cards, please configure 4 D430E as NET and other 4 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 8 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/8D430/lspci.png
Step 2. Modification
Since 8 Asterisk telephony cards run in the same server simultaneously, Asterisk has to open 8192 files that have outnumber 1024 in default, it is need to run “nlimit –n” to modify. Because different system has its own method to change open file number, “nlimit –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 992 channels (31*4*8) 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 8 cards will register interrupt.
http://wiki.openvox.cn/images/8D430/cat_proc_interrupts.png
Step 5. Activation
After command “asterisk –vvvgc”, there will be 32 active spans.
http://wiki.openvox.cn/images/8D430/32spans.png
Step 6. Call
Please Call NET interfaces by Winsip. The following figure shows the outcome after 3 hours and 50 minutes call.
http://wiki.openvox.cn/images/8D430/8-D430-winsip-outcome.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 8 cards simultaneously. It is advised that using dual CPU and it is quad-core to process 8 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 8 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 , but found that Asterisk is disallowed to active 992 channels at the same time. The next goal of OpenVox is to put efforts in R&D to meet requirements for more E1 interfaces.