The Definition of Asterisk is described as follows: Asterisk is a complete PBX in software. It runs on Linux, BSD, Windows(emulated) and provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in four protocols, and can interoperate with almost all standard-based telephony equipment using relatively cost-effective hardware. Asterisk provides Voicemail services with Directory, Call Conferencing, Interactive Voice Response, Call Queuing. It supports for three-way calling, caller ID services, ADSI, IAX, SIP, H323 (as both client and gateway), MGCP(call manager only) and SCCP/Skinny(voip-info.org).
1.2What is A400P
OpenVox A400P delivers great voice quality in the telephony systems. With interchangeable FXS/FXO modules, it can eliminate the requirements for separate channel banks or access gateways. The A400P contains 4 module banks. Each bank supports one analog interface. The module banks may be filled with up to 4 FXO or FXS modules enabling the creation of any combination of ports. Scaling of an analog card solution is accomplished by simply adding additional cards. A400P works with Asterisk®, Elastix®, FreeSWITCH™, PBX in a Flash, trixbox®, Yate™ and IPPBX/IVR projects as well as other Open Source and proprietary PBX, Switch, IVR, and VoIP gateway applications.
Sample application When you need 2 PSTN lines and 2 extension sets, for example, 2 FXO-100 modules and 2 FXS-100 modules should be installed. PSTN lines correspond to FXO modules which are red while extension set lines should be connected to FXS modules which are green.
Figure 2 Sample application Key benefits
High performance with low price
Modular Design: Up to 4 FXS, FXO or mixed FXS/FXO ports per card. Each port can be set as FXO or FXS via plugging different modules in it
LEDs display the board's status
Scalable: Just adding more cards to extend the system.
Easy to use: the modules are Pin to Pin compatible with Digium's X100M and S100M. Users are also able to apply Digium's X100M/S100M modules on this card, or setup our FXO-100/ FXS-100 modules on TDM400P
Worldwide usable: Configurable line interface to meet global telephone line interface requirements
Certificates: CE, FCC, A-Tick
trixbox TM Officially Certified
Elastix® Officially Certified
Supports PCI 2.2 or above, 3.3 V and 5 V PCI slots
Industry standard full size length PCI card
Open source driver working with Zaptel, DADHI and so on.
Chapter 2 A400P Hardware Setup
There are some points that should be paid attention to when setting up A400P.
2.1 Power supply
The board should be powered when any FXS module is installed; please connect the power source with A400P board by a 4-pin power source connector.
2.2 Slot compatibility
A400P is compatible with 32-bit 5.0V PCI slot (slot 2), 64-bit 3.3V PCI slot (slot 3) or 64-bit 5.0V PCI slot (slot 4) while PCI-E slot is fit for A400E; you should confirm your slot type and insert A400P into any type of PCI slot as previously described.
Figure 3 PCI-E and PCI slots
2.3 Timing cable
If you have just one card in the system, all channels on that card have already run under the same clock source, so timing cable is unnecessary. But if there are more than one card, using timing cable has some advantages. Before using the clock line, each card works on its own clock, therefore precision of the clock is limited; each card will send /receive voice data at different speeds. In voice usage, this small issue can be omitted, but in data communication such as Fax/Modem, it will cause big problem. Data loss will cause communication broken or fax broken. Timing cable will force all cards to work at the same clock source, send data at the same speed, as a result no data will lost. If you found J914 (input) and J915 (output) interfaces on the card, it means the card supports clock line, for the details, please refer to HERE.
2.4 FXO and FXS modules
There is so much difference between FXO modules and FXS modules, they can be identified by color, the former ones are red and the latter ones are green. FXO modules use FXS signaling while FXS modules use FXO signaling. FXO modules correspond to FXO port and the same with FXS modules and FXS ports. FXO ports allow A400P connect to PSTN lines and FXS ports connect to extension sets.
2.5 Hardware setup procedure
Power off your PC, remember unplug the AC power cable
Insert A400P into a 3.3V or 5.0V PCI slot
Put timing cable correctly if necessary, for more details, please refer to HERE
Please plug PSTN lines into FXO ports and extension telephone lines into FXS ports before you have detected your PSTN line works well.
Fix the board by a screw
Power on PC
Figure 4 Hardware setup
Caution: If any FXS module is setup, you should make power on. During the above processes, an ESD wrist strap is needed. Once power is on, you must not attempt to install or take down the board. Do not forget to connect PSTN lines into analog phones directly to make sure the lines and phones are available before insert the PSTN lines into FXO ports. After hard ware setup, it is time to install software.
Chapter 3 A400P Software Installation and Configuration
A400P supports DAHDI software driver on Linux. To make full use of A400P, you should download, compile, install and configure DAHDI and Asterisk.
Check the outcome and confirm your system has recognized A400P. If it has been recognized, "Network controller" will be displayed in the output information like that:
Figure 5 Hardware detection
If A400P is not recognized by the system, you have to power off and take out the card, then try to insert it into other PCI slot.
2. Software installation Some dependencies are crucial. If any of them is absent, the software installation process would not go through successfully. Let's run "yum install XX" (XX stands for the dependency's name) to check the availability of dependencies.
#yum install bison
#yum install bison-devel
#yum install ncurses
#yum install ncurses-devel
#yum install zlib
#yum install zlib-devel
#yum install openssl
#yum install openssl-devel
#yum install gnutls-devel
#yum install gcc
#yum install gcc-c++
#yum install libxml2
#yum install libxml2-devel
Notice: If there is no kernel-devel source in the system, users should run the following command to install the kernel-devel to peer current kernel:
#yum install kernel-devel-`uname –r`
While if there is no matched kernel-devel found, you should download matched RPM package to install it, or execute the following command to update to the latest and stable kernel version:
#yum install kernel kernel-devel After installed, please reboot your machine to apply the new kernel and install the dependencies. If the dependency has been installed, system indicates that nothing to do which means you could go to next one directly. Otherwise, the system will keep on installing it.
After install the dependencies, please change to the directory dahdi-linux-complete-XX (XX represents DAHDI version), then perform commands one by one to install DAHDI.
#make config Caution: If there is something wrong after "make", please refer to HERE. In the url link, the moderator introduces you a method how to patch. After patching, save your changes and exit. Then run "make" again, if successfully, you are going to install Asterisk. Please operate those commands to install Asterisk.
Notice: " make samples" will install the standard sample configuration file in the directory /etc/asterisk. As a freshman, you should perform make samples, that is to say, it is unnecessary to perform make samples every time. Because once performed, it will cover the old sample configuration files you have installed.
1.Driver loading After compiling and installing DAHDI and Asterisk, please load the driver by running:
#modprobe wctdm opermode=CHINA
Notice: After running "modprobe dahdi" or "modprobe wctdm opermode=CHINA", there is not any indication information displayed if loaded normally and successfully. "wctdm" is the driver module name of A400P. "opermode" applies to FXO port and is invalid for FXS port, and you are allowed to take place of "CHINA" to other mode name which is available in the file: ../dahdi-linux-XX/linux/drivers/dahdi/fxo_modules.h
If there is any error, please trace the cause. Until all errors are clear up, you could execute "dahdi_genconf" again, and then go to the next step. By running "dahdi_genconf", it will generate /etc/dahdi/system.conf and etc/asterisk/dahdi-channels.conf automatically. Checking whether the generated files information agrees with your hardware setup, if not, you should modify to your specific requirements. Do not forget to confirm dahdi-channels.conf is included in chan_dahdi.conf, if not, run command: # echo "#include dahdi-channels.conf" >> /etc/asterisk/chan_dahdi.conf
FXO ports use FXS signaling, while FXS ports adopt FXO signaling. A part of system.conf which is one of the basic channel configuration files is displayed.
Figure 6 A part of system.conf
2. Country mode modification In order to match your country pattern, you need to change parameters loadzone and defaultzone to your country. For example, your system is in CHINA, you would like them change to: loadzone = cn defaultzone = cn
Notice: Some zonedata is available in the file ".. /dahdi-XX/tools/zonedata.c", you can refer to it to match your country mode. Meanwhile, you also need to modify another parameter which is in file /etc/asterisk/indications.conf. country=cn
A part of file /etc/asterisk/dahdi-channels.conf is showed as below. (Modification, if it is not agree with the hardware setup)
Figure 7 A part of dahdi-channels.conf
After modifying the country mode, please execute the following command:
The command is used for reading and loading parameters in the configuration file system.conf and writing to the hardware. A part of outputs are showed in the following figure.
Figure 8 Channel map
3. Asterisk initiation
If Asterisk is already activate, run "asterisk –r" instead. In the CLI, please run the following command: localhost*CLI> dahdi show channels
Figure 9 channels show
If DAHDI channels are found, it means they have been loaded into Asterisk. You are going to edit dialplan by your requirements.
4. Dialplan edit Users must make sure that the context "from-pstn" and "from-internal" are in extensions.conf, here a simple example is given:
Figure 10 dial plan
Notice: You should write the destination number instead of the outgoing_number in the above dial plan. The dialplan achieves that when an extension telephone dials 200, Asterisk will transfer through channel 3 to the external destination. While a call comes from PSTN line, Asterisk answers firstly, and then gets through to the extension set which connects channel 1.
After saving your dialplan, please run "asterisk –r", then execute "reload" in the CLI. Next you are able to make calls.