Asterisk, Sangoma A101 y OpenR2.

Instalaremos Asterisk, DAHDI, OpenR2 y WANPIPE para configurar un enlace telefónico E1 de TELMEX en México, sera la tercera guía rápida que hago cada una con distintas tarjetas, Digium y OpenVox.
El sistema operativo que utilizaremos sera Linux Red Hat Enterprise Linux 5.6 para arquitectura de 64 bits, el equipo donde desarrollaremos las pruebas es un HP Proliant ML150, una tarjeta Sangoma A101 1-port T1/E1/J1 y conectores para los coaxiales para la conversión a RJ45. Instalaremos el sistema y utilizaremos únicamente paquetes que vienen junto con los discos de instalación, no usaremos yum para instalar ni actualizar paquetes principalmente para verificar los paquetes que son necesarios para compilar asterisk, dahdi y wanpipe (puedes utilizar CentOS por aquello de la licencia de RedHat).

No cubriremos la instalación de Red Hat hay demasiada información en la red para consultar solo hacemos mención que se instala sin entorno gráfico y demás aplicaciones no necesarias para un servidor de las características mencionadas. Los paquetes los tomaremos y los instalaremos usando la imagen ISO de RHEL montándolo en un directorio para instalarlos mediante RPM, ya que tenemos instalado todo el sistema operativo y conectado adecuadamente a una red con acceso a Internet procederemos a lo siguiente:

Crearemos un directorio denominado IPBX dentro de /usr/src que sera nuestro directorio de instalación, dentro de el crearemos otro directorio denominado Disco donde montaremos la ISO de instalación de Red Hat, para acceder a los paquetes.

[root@asterisksangoma ~]# mkdir /usr/src/IPBX
[root@asterisksangoma ~]# cd /usr/src/IPBX/
[root@asterisksangoma IPBX]# mkdir Disco
[root@asterisksangoma IPBX]# mount -t iso9660 -o loop rhel-server-5.6-x86_64-dvd.iso Disco/
[root@asterisksangoma IPBX]# cd Disco/Server/

Estos son los paquetes que tuve que instalar para la compilación de wanpipe, dahdi, asterisk y openr2, hay dependencias entre ellos por lo tanto es necesario instalarlos todos, con yum o createrepo es mas automático sin embargo no son muchos paquetes y de esta manera uno se da cuenta de los necesarios.

[root@asterisksangoma Server]# rpm -ivh kernel-devel-2.6.18-238.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh ncurses-devel-5.5-24.20060715.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh ncurses-5.5-24.20060715.x86_64.rpm *
[root@asterisksangoma Server]# rpm -ivh kernel-headers-2.6.18-238.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh glibc-headers-2.5-58.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh glibc-devel-2.5-58.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh gcc-4.1.2-50.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh flex-2.5.4a-41.fc6.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh patch-2.5.4-31.el5.x86_64.rpm *
[root@asterisksangoma Server]# rpm -ivh libtermcap-devel-2.0.8-46.1.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh bison-2.3-2.1.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh imake-1.0.2-3.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh autoconf-2.59-12.noarch.rpm
[root@asterisksangoma Server]# rpm -ivh automake-1.9.6-2.3.el5.noarch.rpm
[root@asterisksangoma Server]# rpm -ivh libtool-1.5.22-7.el5_4.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh libstdc++-devel-4.1.2-50.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh gcc-c++-4.1.2-50.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh slang-devel-2.0.6-4.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh newt-devel-0.52.2-15.el5.x86_64.rpm 
[root@asterisksangoma Server]# rpm -ivh zlib-devel-1.2.3-3.x86_64.rpm 
[root@asterisksangoma Server]# rpm -ivh libxml2-devel-2.6.26-2.1.2.8.el5_5.1.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh e2fsprogs-devel-1.39-23.el5_5.1.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh keyutils-libs-devel-1.2-1.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh libsepol-devel-1.15.2-3.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh libselinux-devel-1.33.4-5.7.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh krb5-devel-1.6.1-55.el5.x86_64.rpm
[root@asterisksangoma Server]# rpm -ivh openssl-devel-0.9.8e-12.el5_5.7.x86_64.rpm

En el directorio de IPBX descargaremos las ultimas versiones de cada una de las aplicaciones que vamos a utilizar, para este caso usaremos Wanpipe 3.5.20, Asterisk 1.8.4, DAHDI linux 2.4.1.2, DAHDI tools 2.4.1 y OpenR2 1.3.1.

[root@asterisksangoma IPBX]# wget ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-3.5.20.tgz
[root@asterisksangoma IPBX]# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.4.1.2.tar.gz
[root@asterisksangoma IPBX]# wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.4.1.tar.gz
[root@asterisksangoma IPBX]# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.4.tar.gz
[root@asterisksangoma IPBX]# wget http://openr2.googlecode.com/files/openr2-1.3.1.tar.gz

Antes que nada debemos conectar al equipo la tarjeta y verificar que se reconocida por Linux, mediante lspci verificamos que adecuadamente el sistema operativo la reconoció y nos muestra donde esta conectada físicamente.
La tarjeta en cuestión:
A102
Puerto PCI del equipo.

[root@asterisksangoma ~]# lspci | grep Net
07:00.0 Network controller: Sangoma Technologies Corp. A200/Remora FXO/FXS Analog AFT card
07:01.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5703X Gigabit Ethernet (rev 02)

Procedemos con la instalación de los módulos de DAHDI y posteriormente la instalación de Wanpipe ya que vamos a utilizar DAHDI especificamos al script de instalación el parámetro dahdi.

[root@asterisksangoma IPBX]# tar xfz dahdi-linux-2.4.1.2.tar.gz
[root@asterisksangoma IPBX]# cd dahdi-linux-2.4.1.2
[root@asterisksangoma dahdi-linux-2.4.1.2]# make
[root@asterisksangoma dahdi-linux-2.4.1.2]# make install
[root@asterisksangoma dahdi-linux-2.4.1.2]# cd ..
 
[root@asterisksangoma IPBX]# tar xfz wanpipe-3.5.20.tgz
[root@asterisksangoma IPBX]# cd wanpipe-3.5.20


El script de instalación verificara los componentes necesarios como son paquetes, librerías del kernel utilizado y el directorio de DAHDI a utilizar.

[root@asterisksangoma wanpipe-3.5.20]# ./Setup dahdi
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
WANPIPE INSTALLATION FOR DAHDI
 
You are about to install WANPIPE TDM Voice drivers
for Asterisk/Dahdi framework.
 
You will be prompted for path to DAHDI source.
 
Wanpipe drivers will compile into dahdi WITHOUT any
dahdi patching or need to recompile dahdi modules.
 
You must have Linux Kernel Headers along with
full development tools (i.e. GNU C compiler and utilities)
installed in order to be able to install this product.
 
If you have previoulsy installed WANPIPE, this release
will overrite/upgrade full release without the need to
uninstall first!
 
IMPORTANT:
It is always recommended to say YES to all options
prompted during the install!
 
Please visit: http://wiki.sangoma.com for more info.
 
Would you like to install WANPIPE now? [y] (y/n) y
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
Fixing file permissions...
 
Verifying files and fixing permissions ...Done
Checking for C developement tools ...(gcc) OK
Checking for C++ developement tools ...OK
Checking for Make utility ...OK
Checking for ncurses library ... OK
Checking for Perl developement tools ...OK
Checking for AWK ...OK
Checking for FLEX ...OK
Checking for Patch ...OK
Checking for libtermcap-devel...OK
Checking for bison...OK
Checking for libtool...OK
 
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
 
Installing WANPIPE Device Drivers: Linux KERNEL
 
To integrate WANPIPE Multi-Protocol Voice & WAN Router 
modules into the Linux kernel, the kernel has to be 
updated with latest wanpipe sources.  Install will only
modify existing wanpipe source that is already in the
Kernel. 
 
IMPORTANT:
It is always recommended to say YES to all options 
prompted during the install!
 
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
 
Please specify absolute path name of your linux headers/source directory
 
Press Enter for Default: /lib/modules/2.6.18-238.el5/build
 
#>Setting linux directory to /lib/modules/2.6.18-238.el5/build
 
 
 
Upgrading WANPIPE kernel documentation ...Done.
 
 
Installing WANPIPE include headers ...Done.
 
WANPIPE device drivers upgraded successfully!
 
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
WANPIPE KERNEL DRIVER COMPILATION
 
The next step in WANPIPE installation involves compiling 
WANPIPE kernel modules.  
 
This script will compile and install WANPIPE modules
into the currently running linux kernel.
 
For greater customization you will be prompted to
select which Protocol/Drivers you would like to
build into the WANPIPE kernel modules.
 
Wanpipe for Asterisk/Dahdi/Zaptel
	Default for Asterisk/Dahdi/Zaptel
Wanpipe for Wan Routing/API 
	Default for Wan/IP Routing and Data API
Wanpipe for Asterisk SMG/SS7
	Default for Asterisk SS7
Wanpipe for TDM API
	Default for FreeSwitch and Voice API 	
 
Custom Compilation:
------------------
  Customise WANPIPE driver compilation to add only the
  protocols that you need.  This way one can reduce
  the size of the WANPIPE kernel drivers.
 
Refer to http://wiki.sangoma.com for more info
 
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
 
	Please Select Compilation Mode
 
1. WAN Protocols Support 
       Protocols: Frame Relay, CHDLC, PPP, ATM, X25, ADSL, TDM API
       Default for: Wan Routing, Data & Voice API devel.
 
2. TDM Voice (Dahdi/Zaptel) Support 
       Protocols: TDMV (Dahid/Zaptel), TDM API on AFT adatpers.
       Default for: Asterisk & CallWeaver
 
3. TDM Voice (Dahid/Zaptel) + WAN Protocol Support
 
4. SMG (SS7) (Default for Asterisk SMG/SS7 install)
 
5. SMG (SS7) + TDM Voice (Dahdi/Zaptel)
       Default for: Asterisk SS7 + PRI
 
6. SMG (BRI) (Default for Asterisk SMG/BRI install)
 
7. SMG (BRI) + TDM Voice (Dahdi/Zaptel)
       Default for: Asterisk BRI + PRI + Analog
 
8. SMG (PRI) (Default for Asterisk SMG/PRI install)
 
9. SMG (PRI) + TDM Voice (Dahdi/Zaptel)
       Default for: Asterisk SMG/PRI + Analog
 
10. TDM API  
       Protocols: TDM API on AFT adapters:
       Default for: FreeSwitch, Yate, Sunrise
                    Custom voice development 
 
11. Custom Compilation Mode
       Specify protocols to be added into the WANPIPE
       kernel drivers.
 
Please select (1-11) [Default: 1]: 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
 
Looking for zaptel/dahdi directory in /usr/src ...
-------------------------------------------
1 : /usr/src/IPBX/dahdi-linux-2.4.1.2 
------------------------------------------ 
------------------------------------------ 
m : Enter zaptel path manually
 
(ctrl-c to Exit)
Please select working zaptel directory [1-1][m]: 1
 
Enabling the TDM Voice Asterisk Support
 
Dahdi HW HDLC Support Detected: Enabling DCHAN Feature
Native Dahdi HW HDLC Support Detected - No patch required
Dahdi source unmodified
 
Checking for UDEV Zaptel compatibility...     Dahdi installed, no need to add UDEV rules
Enabling the AFT TE1 Support
 
Checking for SMP support ...Enabled.
 
Checking current processor type ...x86_64
 
Wan Update Flags:  -DAF_WANPIPE_2612_FORCE_UPDATE -DWANPIPE_MOD_266_FORCE_UPDATE
 
 
--------------------------------------------------
CFLAGS: gcc -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I/usr/include/wanpipe -I/lib/modules/2.6.18-238.el5/build/include  -DMODULE   -DAF_WANPIPE_2612_FORCE_UPDATE -DWANPIPE_MOD_266_FORCE_UPDATE   -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Wstrict-prototypes -Wundef -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -fwrapv -Os  -mtune=generic -m64 -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -fno-asynchronous-unwind-tables -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h  
--------------------------------------------------
 
Checking for REGPARM kernel option ...Disabled.
 
Compiling General WANPIPE Driver for 2.6.X Kernel .....Done.
 
 
WAN HWEC module enabled and compiled!
Linking Wanpipe Driver and protocols ...Done.
 
Updating Kernel Modules ...Done.
 
Compilation Successful.
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
WANPIPE META CONFIGURATION
 
There are two configuration files associated with WANPIPE.  
 
1) /usr/src/IPBX/wanpipe-3.5.20/wanrouter.rc: 
	- defines locations of important files such as lock
	  and configuration files as well as start/stop 
	  order of multiple WANPIPE devices.
2) /usr/src/IPBX/wanpipe-3.5.20/wanpipe1.conf:
	- main configuration file for each WANPIPE device.
	- defines interfaces, hardware and protocol information.
	- this file can be created using the 'wancfg' GUI
	  utility or manually based on sample files located
	  in /etc/wanpipe/samples.
 
Please read the WanpipeInstallation.(pdf/txt) manual for further
information.
 
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
WANPIPE UTILITIES SETUP
 
WANPIPE utilities are used to:
	1) create configuration files: for Zaptel and Asterisk
		/usr/sbin/wancfg_zaptel	#Zaptel and Asterisk
		/usr/sbin/wancfg_dahdi	#Dahdi and Asterisk
		/usr/sbin/wancfg_smg	#BRI/SS7, Zaptel and Asterisk
		/usr/sbin/wancfg_tdmapi	#TDM API
	2) create WANPIPE WAN/IP configuration files.
		(/usr/sbin/wancfg)
	3) start,stop,restart individual/all devices and interfaces.
		(/usr/sbin/wanrouter)
	4) debug line, protocol and driver problems.
		(/usr/sbin/wanpipemon)
	5) aid in WANPIPE API development
		(/etc/wanpipe/api)
 
Refer to the WanpipeInstallation.(pdf/txt) for more information.
 
 
Compiling WANPIPE Utilities ...Done.
 
 
Compiling WANPIPE WanCfg Utility ...Done.
 
 
Compiling WANPIPE LibSangoma API library ...Done.
 
 
Compiling WANPIPE LibStelephony API library ...Done.
 
 
Compiling WANPIPE API Development Utilities ...Done.
 
Compiling WANPIPE HWEC Utilities ...Done.
 
 
	WANPIPE Environment Setup Complete !!!
 
Installing WANPIPE Files ... !
Installing  WANPIPE Utilities in /usr/sbin
Installing wanrouter.rc in /etc/wanpipe
Installing wanpipe libraries in /etc/wanpipe
Installing firmware in /etc/wanpipe/firmware
Installing documentation in /usr/share/doc/wanpipe
Installing sample api code in /etc/wanpipe/api
Installing AFT Firmware update utility in /etc/wanpipe/util
Installing driver headers in /etc/wanpipe/api/include/linux
Installing Hardware Echo Cancel Utilites
 
	----------------------------------------------------------
	          WANPIPE v3.5.20 Installation Script
	    Copyright (c) 1995-2010, Sangoma Technologies Inc.
	----------------------------------------------------------
 
WANPIPE INSTALLATON: COMPLETE
 
WANPIPE installation is now complete. WANPIPE kernel drivers 
and configuration/debug utilities have been compiled and installed.
 
	1) Proceed to configure the WANPIPE drivers:
		Asterisk/Zaptel  : /usr/sbin/wancfg_zaptel
		Asterisk/Dahdi   : /usr/sbin/wancfg_dahdi
		TDM API          : /usr/sbin/wancfg_tdmapi
		SMG SS7/BRI/PRI  : /usr/sbin/wancfg_smg
		WAN Routing/API  : /usr/sbin/wancfg
	2) Use the /usr/sbin/wanrouter startup script to start and stop
	   the router. (eg: wanrouter start)
	3) To uninstall WANPIPE package run ./Setup remove
 
Please read http://wiki.sangoma.com for further instructions.
 
 
Wanpipe / Zaptel Configuration
==============================
 
wancfg_zaptel configurator can create all wanpipe config files
for ZAPTEL including /etc/zaptel.conf file.
Optionally: the configurator can also create Asterisk zapata.conf
-----------------------------------------------------
Would you like to configure wanpipe devices for DAHDI? (y/n) n
Wanpipe Installation Complete
-----------------------------
Please proceed to configure wanpipe user /usr/sbin/wancfg_dahdi

Hasta aquí termina la instalación le dimos la opción de que no configurara de momento los dispositivos esto lo haremos después con otro script del programa instalado aparte de que al final editaremos manualmente nuestro archivo de configuración.
Con el comando wanrouter recién instalado verificamos que nuestra tarjeta sea reconocida efectivamente por wanpipe.

[root@asterisksangoma wanpipe-3.5.20]# wanrouter hwprobe
 
-------------------------------
| Wanpipe Hardware Probe Info |
-------------------------------
1 . AFT-A101-SH : SLOT=0 : BUS=7 : IRQ=7 : CPU=A : PORT=1 : HWEC=32 : V=37
 
Card Cnt: A101-2=1

Vemos que satisfactoriamente esta reconocida por la aplicación, aquí en este punto especial introduzco el siguiente error que se presento en diversos intentos de instalación con otros kernel o sin la tarjeta E1 en el puerto PCI del equipo en cuestión.

FATAL: Error inserting wanpipe (/lib/modules/2.6.18-238.el5/kernel/drivers/net/wan/wanpipe.ko): Unknown symbol in module, or unknown parameter (see dmesg)
Would you like to generate /etc/asterisk/zapata.conf

Iniciamos el script de configuración tomando los pasos de un white paper denominado “Running MFC/R2 with Sangoma Wanpipe® using OpenR2 (libopenr2)“, para generar el archivo de configuración de wanpipe.

[root@asterisksangoma wanpipe-3.5.20]# wancfg_dahdi 
 
########################################################################
#    		           Sangoma Wanpipe                             #
#        Dahdi/Zaptel/SMG/TDMAPI/BOOT Configuration Script             #
#                             v2.39                                  #
#                     Sangoma Technologies Inc.                        #
#                        Copyright(c) 2009.                            #
########################################################################
 
Would you like to generate /etc/asterisk/chan_dahdi.conf
 1. YES
 2. NO
[1-2]:1
 
---------------------------------------------
Configuring T1/E1 cards [A101/A102/A104/A108]
---------------------------------------------
A101 detected on slot:0 bus:7
 
-----------------------------------------------------------
Configuring port 1 on A101 slot:0 bus:7.
-----------------------------------------------------------
 
Select media type for AFT-A101 on port 1 [slot:0 bus:7 span:1]
 1. T1
 2. E1
 3. Unused
 4. Exit
[1-4]:2
 
Configuring port 1 on 101 as E1, line coding:HDB3, framing:CRC4 
 1. YES - Keep these settings
 2. NO  - Configure line coding and framing
[1-2, ENTER='YES']:1
 
Select clock for AFT-A101 on port 1 [slot:0 bus:7 span:1]
 1. NORMAL
 2. MASTER
[1-2]:1
 
Select signalling type for AFT-A101 on port 1 [slot:0 bus:7 span:1]
 1. Zaptel/Dahdi - PRI CPE
 2. Zaptel/Dahdi - PRI NET
 3. Zaptel/Dahdi - E & M
 4. Zaptel/Dahdi - E & M Wink
 5. Zaptel/Dahdi - FXS - Loop Start
 6. Zaptel/Dahdi - FXS - Ground Start
 7. Zaptel/Dahdi - FXS - Kewl Start
 8. Zaptel/Dahdi - FX0 - Loop Start
 9. Zaptel/Dahdi - FX0 - Ground Start
 10. Zaptel/Dahdi - FX0 - Kewl Start
 11. Sangoma SMG/sangoma_prid- PRI CPE
 12. Sangoma SMG/sangoma_prid- PRI NET
[1-12]:5
 
 
Would you like to enable hardware DTMF detection?
 1. YES
 2. NO
[1-2, ENTER='YES']:1
 
Would you like to enable hardware fax detection?
 1. YES
 2. NO
[1-2, ENTER='NO']:1
 
Configuring port 1 on AFT-A101 as a full E1
 1. YES - Use all channels
 2. NO  - Configure for fractional
[1-2, ENTER='YES']:1
 
Select dialplan context for AFT-A101 on port 1
 1. from-pstn
 2. from-internal
 3. Custom
[1-3]:1
 
 
Port 1 on AFT-A101 configuration complete...
Press any key to continue: 
 
T1/E1 card configuration complete.
Press any key to continue: 
 
------------------------------------
Configuring analog cards [A200/A400/B600/B700/B800]
------------------------------------
 
------------------------------------
Configuring USB devices [U100]
------------------------------------
 
###################################################################
#                             SUMMARY                             #
###################################################################
 
  1 T1/E1 port(s) detected, 1 configured
  0 ISDN BRI port(s) detected, 0 configured
  0 analog card(s) detected, 0 configured
  0 usb device(s) detected, 0 configured
 
Configurator will create the following files:
	1. Wanpipe config files in /etc/wanpipe
	2. Dahdi config file /etc/dahdi/system.conf
	3. Chan-Dahdi config file /etc/asterisk/chan_dahdi.conf
 
 
Your original configuration files will be saved to:
	1. /etc/dahdi/system.conf.bak 
	2. /etc/asterisk/chan_dahdi.conf.bak 
 
 
Your configuration has been saved in /etc/wanpipe/debug-2011-05-15.tgz.
When requesting support, email this file to techdesk@sangoma.com
 
 
###################################################################
 
Configuration Complete! Please select following:
 1. YES - Continue
 2. NO - Exit
[1-2]:
 
Dahdi and Wanpipe configuration complete: choose action
 1. Save cfg: Restart Asterisk & Wanpipe now
 2. Save cfg: Restart Asterisk & Wanpipe when convenient
 3. Save cfg: Stop Asterisk & Wanpipe now
 4. Save cfg: Stop Asterisk & Wanpipe when convenient
 5. Save cfg: Save cfg only (Not Recommanded!!!)
 6. Do not save cfg: Exit
[1-6]:5
 
 
Removing old configuration files...
 
Copying new Wanpipe configuration files...
 
Copying new Dahdi configuration file (/etc/dahdi/system.conf)...
cp: cannot create regular file `/etc/dahdi/system.conf': No such file or directory
Error executing command:
cp -f /etc/wanpipe/wancfg_zaptel/tmp_cfg/zaptel.conf /etc/dahdi/system.conf
 
Would you like to continue?
 1. No - exit
 2. YES
[1-2, ENTER='No']:2
 
 
Copying new Chan-Dahdi configuration files (/etc/asterisk/chan_dahdi.conf)...
cp: cannot create regular file `/etc/asterisk/chan_dahdi.conf': No such file or directory
Error executing command:
cp -f /etc/wanpipe/wancfg_zaptel/tmp_cfg/zapata.conf /etc/asterisk/chan_dahdi.conf
 
Would you like to continue?
 1. No - exit
 2. YES
[1-2, ENTER='No']:2
 
Saving files only
Current boot level is 3
 
Wanrouter boot scripts configuration...
 
Removing existing wanrouter boot scripts...OK
Would you like wanrouter to start on system boot?
 1. YES
 2. NO
[1-2]:1
 
Verifying Dahdi boot scripts...
Verifying Dahdi boot scripts...Not installed
Verifying Dahdi shutdown scripts...Not installed
Enabling wanrouter boot scripts ...(level:8)
Enabling wanrouter shutdown scripts ...(level:91)
Remvoing old smg_ctrl boot.....OK
Remvoing old smg_ctrl_safe boot.....OK

Posteriormente realizaremos unos cambios en el archivo de configuración, vamos a verificar que wanrouter nos muestre el dispositivo.

[root@asterisksangoma wanpipe-3.5.20]# wanrouter start
 
Starting up device: wanpipe1
--> Loading ec image OCT6116-64S.ima...
Configuring interfaces: w1g1 
done.
 
[root@asterisksangoma wanpipe-3.5.20]# wanrouter list
 
Devices currently active:
	wanpipe1
 
[root@asterisksangoma wanpipe-3.5.20]# wanrouter status
 
Devices currently active:
	wanpipe1
 
 
Wanpipe Config:
 
Device name | Protocol Map | Adapter  | IRQ | Slot/IO | If's | CLK | Baud rate |
wanpipe1    | N/A          | A101/1D/A102/2D/4/4D/8| 169 | 0       | 1    | N/A | 0         |
 
Wanrouter Status:
 
Device name | Protocol | Station | Status        |
wanpipe1    | AFT TE1  | N/A     | Disconnected  |

Instalamos las herramientas de DAHDI para usar dahdi_tool.

[root@asterisksangoma wanpipe-3.5.20]# cd ..
[root@asterisksangoma IPBX]# tar xfz dahdi-tools-2.4.1.tar.gz 
[root@asterisksangoma IPBX]# cd dahdi-tools-2.4.1
[root@asterisksangoma dahdi-tools-2.4.1]# ./configure
[root@asterisksangoma dahdi-tools-2.4.1]# make
[root@asterisksangoma dahdi-tools-2.4.1]# make install
[root@asterisksangoma dahdi-tools-2.4.1]# make config
[root@asterisksangoma dahdi-tools-2.4.1]# cd ..

Compilamos e instalamos OpenR2 según las indicaciones del manual colocado en la pagina del autor.

[root@asterisksangoma IPBX]# tar xvfz openr2-1.3.1.tar.gz 
[root@asterisksangoma IPBX]# cd openr2-1.3.1
[root@asterisksangoma openr2-1.3.1]# ./configure --prefix=/usr
[root@asterisksangoma openr2-1.3.1]# make
[root@asterisksangoma openr2-1.3.1]# make install

Por ultimo compilamos e instalamos Asterisk.

[root@asterisksangoma IPBX]# tar xfz asterisk-1.8.4.tar.gz 
[root@asterisksangoma IPBX]# cd asterisk-1.8.4
[root@asterisksangoma IPBX]# ./configure
[root@asterisksangoma IPBX]# make
[root@asterisksangoma IPBX]# make install
[root@asterisksangoma IPBX]# make samples

Verificamos que el soporte de OpenR2 este correctamente instalado en Asterisk.

[root@asterisksangoma asterisk-1.8.4]# ldd channels/chan_dahdi.so | grep openr2
	libopenr2.so.3 => /usr/lib64/libopenr2.so.3 (0x00002ab1f4dbe000)

Configuraremos DAHDI con los siguientes parámetros específicos para el E1 de TELMEX, son treinta canales posibles de comunicación con el canal 16 para señalización.

[root@asterisksangoma IPBX]# vi /etc/dahdi/system.conf 
span=1,1,0,cas,hdb3
cas=1-15:1101
dchan=16
cas=17-31:1101
 
loadzone=us
defaultzone=us

Cargamos la configuración.

[root@asterisksangoma IPBX]# dahdi_cfg -vv
DAHDI Tools Version - 2.4.1
 
DAHDI Version: 2.4.1.2
Echo Canceller(s): 
Configuration
======================
 
SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
 
Channel map:
 
Channel 01: CAS / User (Default) (Echo Canceler: none) (Slaves: 01)
Channel 02: CAS / User (Default) (Echo Canceler: none) (Slaves: 02)
Channel 03: CAS / User (Default) (Echo Canceler: none) (Slaves: 03)
Channel 04: CAS / User (Default) (Echo Canceler: none) (Slaves: 04)
Channel 05: CAS / User (Default) (Echo Canceler: none) (Slaves: 05)
Channel 06: CAS / User (Default) (Echo Canceler: none) (Slaves: 06)
Channel 07: CAS / User (Default) (Echo Canceler: none) (Slaves: 07)
Channel 08: CAS / User (Default) (Echo Canceler: none) (Slaves: 08)
Channel 09: CAS / User (Default) (Echo Canceler: none) (Slaves: 09)
Channel 10: CAS / User (Default) (Echo Canceler: none) (Slaves: 10)
Channel 11: CAS / User (Default) (Echo Canceler: none) (Slaves: 11)
Channel 12: CAS / User (Default) (Echo Canceler: none) (Slaves: 12)
Channel 13: CAS / User (Default) (Echo Canceler: none) (Slaves: 13)
Channel 14: CAS / User (Default) (Echo Canceler: none) (Slaves: 14)
Channel 15: CAS / User (Default) (Echo Canceler: none) (Slaves: 15)
Channel 16: D-channel (Default) (Echo Canceler: none) (Slaves: 16)
Channel 17: CAS / User (Default) (Echo Canceler: none) (Slaves: 17)
Channel 18: CAS / User (Default) (Echo Canceler: none) (Slaves: 18)
Channel 19: CAS / User (Default) (Echo Canceler: none) (Slaves: 19)
Channel 20: CAS / User (Default) (Echo Canceler: none) (Slaves: 20)
Channel 21: CAS / User (Default) (Echo Canceler: none) (Slaves: 21)
Channel 22: CAS / User (Default) (Echo Canceler: none) (Slaves: 22)
Channel 23: CAS / User (Default) (Echo Canceler: none) (Slaves: 23)
Channel 24: CAS / User (Default) (Echo Canceler: none) (Slaves: 24)
Channel 25: CAS / User (Default) (Echo Canceler: none) (Slaves: 25)
Channel 26: CAS / User (Default) (Echo Canceler: none) (Slaves: 26)
Channel 27: CAS / User (Default) (Echo Canceler: none) (Slaves: 27)
Channel 28: CAS / User (Default) (Echo Canceler: none) (Slaves: 28)
Channel 29: CAS / User (Default) (Echo Canceler: none) (Slaves: 29)
Channel 30: CAS / User (Default) (Echo Canceler: none) (Slaves: 30)
Channel 31: CAS / User (Default) (Echo Canceler: none) (Slaves: 31)
 
31 channels to configure.
 
Setting echocan for channel 1 to none
Setting echocan for channel 2 to none
Setting echocan for channel 3 to none
Setting echocan for channel 4 to none
Setting echocan for channel 5 to none
Setting echocan for channel 6 to none
Setting echocan for channel 7 to none
Setting echocan for channel 8 to none
Setting echocan for channel 9 to none
Setting echocan for channel 10 to none
Setting echocan for channel 11 to none
Setting echocan for channel 12 to none
Setting echocan for channel 13 to none
Setting echocan for channel 14 to none
Setting echocan for channel 15 to none
Setting echocan for channel 16 to none
Setting echocan for channel 17 to none
Setting echocan for channel 18 to none
Setting echocan for channel 19 to none
Setting echocan for channel 20 to none
Setting echocan for channel 21 to none
Setting echocan for channel 22 to none
Setting echocan for channel 23 to none
Setting echocan for channel 24 to none
Setting echocan for channel 25 to none
Setting echocan for channel 26 to none
Setting echocan for channel 27 to none
Setting echocan for channel 28 to none
Setting echocan for channel 29 to none
Setting echocan for channel 30 to none
Setting echocan for channel 31 to none

Configuramos los parámetros con respecto a MFCR2, los DNIS, el contexto y los canales a utilizar, en este caso de los canales uno al veintiuno (el 16 se usa señalización) debido a que mi E1 tiene veinte lineas disponibles.

[root@asterisksangoma ~]# cat /etc/asterisk/chan_dahdi.conf 
[channels] 
signalling=mfcr2 
mfcr2_variant=mx 
mfcr2_get_ani_first=no 
mfcr2_max_ani=10 
mfcr2_max_dnis=4 
mfcr2_category=national_subscriber 
mfcr2_mfback_timeout=-1 
mfcr2_metering_pulse_timeout=-1 
; this is for debugging purposes 
mfcr2_logdir=log 
mfcr2_logging=all 
; end debugging configuration 
context=from-pstn 
group=1 
restrictcid=yes 
hidecallerid=yes 
channel => 1-15 
channel => 17-21

Con esto ya tenemos configurada la parte de Asterisk y DAHDI para solo recibir la señal del E1, vamos a terminar de configurar Wanpipe. Conectar el E1 no basta para que nuestra tarjeta inmediatamente empiece a trabajar, en dado caso wanpipemon nos ayudara a identificar las posibles alarmas existente para lograr poner en verde el led indicador del estado de nuestra tarjeta.
Aquí cito una pagina de la wiki de sangoma donde nos muestran la descripción de cada una de estas alarmas. Aquí wanpipemon muestra las alarmas cuando no tenemos conexión alguna en la tarjeta, nota la alarma de open circuit, loss of framing y loss of frame signal.

[root@asterisksangoma IPBX]# wanpipemon -i w1g1 -c Ta
 
***** w1g1: E1 Rx Alarms (Framer) *****
 
ALOS:	OFF	| LOS:	ON
RED:	ON	| AIS:	OFF
LOF:	ON	| RAI:	OFF
 
***** w1g1: E1 Rx Alarms (LIU) *****
 
Short Circuit:	OFF
Open Circuit:	ON
Loss of Signal:	ON
 
***** w1g1: E1 Tx Alarms *****
 
AIS:	OFF	| YEL:	ON
 
 
***** w1g1: E1 Performance Monitoring Counters *****
 
Line Code Violation	: 0
Far End Block Errors	: 0
CRC4 Errors		: 0
FAS Errors		: 0
 
 
Rx Level	: < -44db

Aquí un ejemplo de la tarjeta conectada con un loop en los coaxiales, esto con el fin de comparar ciertas alarmas que van desde una mala señal enviada por el otro lado de nuestro enlace así como cables invertidos en la conexión, la alarma es la de loss of framing.

[root@asterisksangoma IPBX]# wanpipemon -i w1g1 -c Ta
 
***** w1g1: E1 Rx Alarms (Framer) *****
 
ALOS:	OFF	| LOS:	OFF
RED:	ON	| AIS:	OFF
LOF:	ON	| RAI:	OFF
 
***** w1g1: E1 Rx Alarms (LIU) *****
 
Short Circuit:	OFF
Open Circuit:	OFF
Loss of Signal:	OFF
 
***** w1g1: E1 Tx Alarms *****
 
AIS:	OFF	| YEL:	ON
 
 
***** w1g1: E1 Performance Monitoring Counters *****
 
Line Code Violation	: 725
Far End Block Errors	: 0
CRC4 Errors		: 0
FAS Errors		: 0
 
 
Rx Level	: > -2.5db

En los logs del sistema se pueden presentar mensajes similares a los siguientes haciendo referencia al reloj, en mi caso fue por que el Rx y Tx de los coaxiales estaban invertidos en el balun, sin embargo en la FAQ de Sangoma hay mas causas posibles, también nota que aparecen otras alarmas diferentes en especial la de short circuit que nos indica que los cables están cruzados, y la de remote alarm indication.

[root@asterisksangoma ~]# wanpipemon -i w1g1 -c Ta 
 
***** w1g1: E1 Rx Alarms (Framer) ***** 
 
ALOS:	OFF	| LOS:	OFF 
RED:	ON	| AIS:	OFF 
LOF:	ON	| RAI:	ON 
 
***** w1g1: E1 Rx Alarms (LIU) ***** 
 
Short Circuit:	ON 
Open Circuit:	OFF 
Loss of Signal:	OFF 
 
***** w1g1: E1 Tx Alarms ***** 
 
AIS:	OFF	| YEL:	ON 
 
 
***** w1g1: E1 Performance Monitoring Counters ***** 
 
Line Code Violation	: 826634 
Far End Block Errors	: 0 
CRC4 Errors		: 0 
FAS Errors		: 2166 
 
 
Rx Level	: -40db to -44db
[root@asterisksangoma ~]# tail -f /var/log/messages 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:53 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:54 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:54 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus! 
May 19 20:48:54 asterisksangoma kernel: wanec1: The CT_C8_A clock behavior does not conform to the H.100 spec! 
May 19 20:48:54 asterisksangoma kernel: wanec1: The H100 slave has lost its framing on the bus!

En los casos anteriores el comando dahdi_tool nos mostrara la alarma en la tarjeta y mientras exista Asterisk no podra usarla.


La alarma RED se quitara hasta que logremos configurar adecuadamente la tarjeta y nos deje de mostrar las demás alarmas, anteriormente configuramos con el script, necesitamos cambiar en el archivo wanpipe1.conf dentro del directorio /etc/wanpipe, el tipo de framing a NCRC4 en vez de CRC4 y confirmar la configuración del reloj se encuentre en modo normal.

FE_FRAME	= NCRC4 
TE_CLOCK 	= NORMAL

Conectamos el E1 a la tarjeta y comprobamos las alarmas en ella.

[root@asterisksangoma ~]# wanpipemon -i w1g1 -c Ta 
 
***** w1g1: E1 Rx Alarms (Framer) ***** 
 
ALOS:	OFF	| LOS:	OFF 
RED:	OFF	| AIS:	OFF 
LOF:	OFF	| RAI:	OFF 
 
***** w1g1: E1 Rx Alarms (LIU) ***** 
 
Short Circuit:	OFF 
Open Circuit:	OFF 
Loss of Signal:	OFF 
 
***** w1g1: E1 Tx Alarms ***** 
 
AIS:	OFF	| YEL:	OFF 
 
 
***** w1g1: E1 Performance Monitoring Counters ***** 
 
Line Code Violation	: 2620 
Far End Block Errors	: 0 
CRC4 Errors		: 0 
FAS Errors		: 1507 
 
 
Rx Level	: > -2.5db




Satisfactoriamente no hay ninguna alarma, nuestra tarjeta se pone en verde y esta lista para recibir llamadas, confirmamos con dahdi_tool.


Entramos a la consola de Asterisk y verificamos que los canales estén listos.

asterisksangoma*CLI> mfcr2 show channels 
Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS   Rx CAS  
   1 MX      10      4        No        No               IDLE     IDLE    
   2 MX      10      4        No        No               IDLE     IDLE    
   3 MX      10      4        No        No               IDLE     IDLE    
   4 MX      10      4        No        No               IDLE     IDLE    
   5 MX      10      4        No        No               IDLE     IDLE    
   6 MX      10      4        No        No               IDLE     IDLE    
   7 MX      10      4        No        No               IDLE     IDLE    
   8 MX      10      4        No        No               IDLE     IDLE    
   9 MX      10      4        No        No               IDLE     IDLE    
  10 MX      10      4        No        No               IDLE     IDLE    
  11 MX      10      4        No        No               IDLE     IDLE    
  12 MX      10      4        No        No               IDLE     IDLE    
  13 MX      10      4        No        No               IDLE     IDLE    
  14 MX      10      4        No        No               IDLE     IDLE    
  15 MX      10      4        No        No               IDLE     IDLE    
  17 MX      10      4        No        No               IDLE     IDLE    
  18 MX      10      4        No        No               IDLE     IDLE    
  19 MX      10      4        No        No               IDLE     IDLE    
  20 MX      10      4        No        No               IDLE     IDLE    
  21 MX      10      4        No        No               IDLE     IDLE    
asterisksangoma*CLI>

DAHDI también se muestra configurado adecuadamente.

asterisksangoma*CLI> dahdi show channels 
   Chan Extension  Context         Language   MOH Interpret        Blocked    State     
 pseudo            default                    default                         In Service 
      1            from-pstn                  default                         In Service 
      2            from-pstn                  default                         In Service 
      3            from-pstn                  default                         In Service 
      4            from-pstn                  default                         In Service 
      5            from-pstn                  default                         In Service 
      6            from-pstn                  default                         In Service 
      7            from-pstn                  default                         In Service 
      8            from-pstn                  default                         In Service 
      9            from-pstn                  default                         In Service 
     10            from-pstn                  default                         In Service 
     11            from-pstn                  default                         In Service 
     12            from-pstn                  default                         In Service 
     13            from-pstn                  default                         In Service 
     14            from-pstn                  default                         In Service 
     15            from-pstn                  default                         In Service 
     17            from-pstn                  default                         In Service 
     18            from-pstn                  default                         In Service 
     19            from-pstn                  default                         In Service 
     20            from-pstn                  default                         In Service 
     21            from-pstn                  default                         In Service 
asterisksangoma*CLI>

Si tenemos la tarjeta con alarma los canales se nos mostraran de la siguiente manera:

asterisksangoma*CLI> dahdi show channels 
   Chan Extension  Context         Language   MOH Interpret        Blocked    State     
 pseudo            default                    default                         In Service 
      1            from-pstn                  default               R         In Service 
      2            from-pstn                  default               R         In Service 
      3            from-pstn                  default               R         In Service 
      4            from-pstn                  default               R         In Service 
      5            from-pstn                  default               R         In Service 
      6            from-pstn                  default               R         In Service 
      7            from-pstn                  default               R         In Service 
      8            from-pstn                  default               R         In Service 
      9            from-pstn                  default               R         In Service 
     10            from-pstn                  default               R         In Service 
     11            from-pstn                  default               R         In Service 
     12            from-pstn                  default               R         In Service 
     13            from-pstn                  default               R         In Service 
     14            from-pstn                  default               R         In Service 
     15            from-pstn                  default               R         In Service 
     17            from-pstn                  default               R         In Service 
     18            from-pstn                  default               R         In Service 
     19            from-pstn                  default               R         In Service 
     20            from-pstn                  default               R         In Service 
     21            from-pstn                  default               R         In Service 
 
asterisksangoma*CLI> mfcr2 show channels 
Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS   Rx CAS  
   1 MX      10      4        No        No               IDLE     BLOCK   
   2 MX      10      4        No        No               IDLE     BLOCK   
   3 MX      10      4        No        No               IDLE     BLOCK   
   4 MX      10      4        No        No               IDLE     BLOCK   
   5 MX      10      4        No        No               IDLE     BLOCK   
   6 MX      10      4        No        No               IDLE     BLOCK   
   7 MX      10      4        No        No               IDLE     BLOCK   
   8 MX      10      4        No        No               IDLE     BLOCK   
   9 MX      10      4        No        No               IDLE     BLOCK   
  10 MX      10      4        No        No               IDLE     BLOCK   
  11 MX      10      4        No        No               IDLE     BLOCK   
  12 MX      10      4        No        No               IDLE     BLOCK   
  13 MX      10      4        No        No               IDLE     BLOCK   
  14 MX      10      4        No        No               IDLE     BLOCK   
  15 MX      10      4        No        No               IDLE     BLOCK   
  17 MX      10      4        No        No               IDLE     BLOCK   
  18 MX      10      4        No        No               IDLE     BLOCK   
  19 MX      10      4        No        No               IDLE     BLOCK   
  20 MX      10      4        No        No               IDLE     BLOCK   
  21 MX      10      4        No        No               IDLE     BLOCK   
asterisksangoma*CLI>

Configuramos rápidamente un extensión SIP 1000 con el contexto from-pstn para que pueda recibir las llamadas, marcamos y vemos como la llamada entra con el primer DNI y se dirige a la extensión 1000.

asterisksangoma*CLI> 
New MFC/R2 call detected on chan 11. 
MFC/R2 call offered on chan 11. ANI = , DNIS = 5900, Category = National Priority Subscriber 
MFC/R2 call has been accepted on backward channel 11 
    -- Executing [5900@from-pstn:1] Dial("DAHDI/11-1", "SIP/1000") in new stack 
  == Using SIP RTP CoS mark 5 
    -- Called 1000 
    -- SIP/1000-00000001 is ringing 
    -- SIP/1000-00000001 answered DAHDI/11-1 
  == Spawn extension (from-pstn, 5900, 1) exited non-zero on 'DAHDI/11-1' 
    -- Hungup 'DAHDI/11-1' 
MFC/R2 call end on channel 11

Sobre esa misma extensión realizamos una llamada de salida.

asterisksangoma*CLI> 
  == Using SIP RTP CoS mark 5 
    -- Executing [46028079@pruebas:1] Dial("SIP/1000-00000007", "DAHDI/g1/46028079") in new stack 
    -- Called g1/46028079 
MFC/R2 call has been accepted on forward channel 1 
    -- DAHDI/1-1 is ringing 
    -- DAHDI/1-1 is making progress passing it to SIP/1000-00000007 
MFC/R2 call has been answered on channel 1 
    -- DAHDI/1-1 answered SIP/1000-00000007 
Chan 1 - Far end disconnected. Reason: Normal Clearing 
MFC/R2 call disconnected on channel 1 
    -- Hungup 'DAHDI/1-1' 
  == Spawn extension (pruebas, 46028079, 1) exited non-zero on 'SIP/1000-00000007'


El teléfono es un MITEL 5312, diseñados específicamente para el protocolo MINET sin embargo tiene soporte para SIP, solo es cuestión de que inicie con el protocolo, y lo podremos registrar con cualquier proxy SIP mediante su pagina web de configuración.

Utilizamos dos tipos de conectores de coaxial a RJ45 que se muestran a continuación:


Este conector lo utiliza el conmutador MITEL de donde tome el E1.


Y aquí el conector de la marca AC and E, 408809069 K162.

De momento es todo configuraciones mas especificas quedan fuera de esta guía, quedan puntos pendientes como instalar una tarjeta Digium junto con la Sangoma, la instalación de Wanpipe en Debian que esperamos abordar en otro momento. Saludos dejo las paginas de donde se tomo la información.

Referencias:
http://code.google.com/p/openr2/downloads/list
http://wiki.sangoma.com/wanpipemon-T1-E1-line-alarms-0
http://www.fonality.com/trixbox/forums/vendor-forums-certified/sangoma/sangoma-a101d-alarm-redon-lofon
http://wiki.sangoma.com/konrads-cheat-sheet
http://wiki.sangoma.com/mfcr2
http://wiki.sangoma.com/wanpipe-linux-asterisk-debugging#pri_span_debugging
http://wiki.sangoma.com/wanpipe-linux-asterisk-appendix
http://libopenr2.org
http://code.google.com/p/openr2/downloads/list
http://edocs.mitel.com/UG/EN/5312-5324_SIP7.2_UG_GA.pdf
http://sangoma.com/assets/docs/misc/MFCR2_and_Sangoma_English.pdf

28 Comments

  1. Reply
    Moises Silva September 29, 2011

    Excelente post!, muy buen blog, deberias ponerlo en PDF y asi lo subo al sitio libopenr2.org y en google code como otra guia.

    Veo que estas en el D.F. Asistirás a Elastix World? de ser asi, por ahi nos vemos en Noviembre!

    Saludos!

  2. Reply
    Andres Gregori October 19, 2011

    FABULOSO !!! EXCELENTE TUTORIAL !!!

  3. Reply
    Alvaro Rios Malfert October 19, 2011

    Muy buen post! fue de mucha utilidad para los seguidores de *.
    Muchas Gracias

  4. Reply
    Andres Gregori October 20, 2011

    Gabriel,

    Te quisiera preguntar lo siguiente:

    en la configuracion de “chan_dahdi.conf” pusiste lo siguiente

    channel => 17-21

    cuando normalmente es
    channel => 17-31

    fue un error de tipeo o tiene alguna razon de ser ese valor, (21 en lugar de 31).

    Saludos!

    Gregori Andres.

  5. Reply
    gabriel October 27, 2011

    Se pone la contestación que se dio por correo:

    Ok, la razón del numero esta en este párrafo del articulo:

    —-
    Configuramos los parámetros con respecto a MFCR2, los DNIS, el contexto y los canales a utilizar, en este caso de los canales uno al veintiuno (el 16 se usa señalización) debido a que mi E1 tiene veinte lineas disponibles.
    —-

    En la empresa donde realice las pruebas cuento con dos E1 uno tiene 30 canales y el otro tiene 20, otras oficinas mas pequeñas solo tienen 10 esto se le conoce como E1 fraccionado y así se le especifica al proveedor aparte de ser mas barato debido a que no todas las oficinas dependiendo de su cantidad de usuarios usarían los 30 canales por lo tanto desperdiciarías tu medio de comunicación.

    Como yo en el E1 solo tengo 20 lineas lo pongo hasta 20 canales, en los que tienen 10 lineas lo pongo a 10 canales.

    Lo puedes especificar igual a 31 en mi caso si lo hago así los 10 canales restantes me aparecen bloqueados por que mi proveedor solo me manda 20, como agregado te comento que este servidor se instalo en oficinas Matriz con un E1 de 20 y en su destino final solo esta un E1 de 10 lineas, por lo tanto las otras 10 me aparecían como bloqueadas, es cuestión que hagas pruebas y compares que pasa con cada valor.

    Cosa distinta del archivo system.conf, en donde ahí si se especifica 1-15, 16, 17-31.

  6. Reply
    MAX November 7, 2011

    Hola, ya sé mas o menos configurar una tarjeta de este tipo, solo que en esta ocasión me manda el siguiente error: [Oct 24 16:27:06] ERROR[29766]: res_timing_timerfd.c:171 timerfd_timer_ack: Read error: Bad file descriptor
    [Oct 24 16:40:03] WARNING[30280]: udptl.c:937 ast_udptl_new_with_bindaddr:
    Unable to allocate socket: Too many open files

    [Oct 24 16:40:03] ERROR[30280]: chan_sip.c:7540 sip_alloc: UDPTL creation
    failed

    == Using SIP RTP CoS mark 5

    Esto ocasiona que el tema es que
    de repente deja de funcionar se cae el servicio de Asterisk y deja de
    funcionar y lo único que hago es levantarlo nuevamente y ya queda. Espero me puedan decir a que se debe, gracias.

  7. Reply
    Latre December 1, 2011

    Excelente guia, te felicito.

  8. Reply
    Ricardo February 23, 2012

    Buen dia, como van, siguiendo el hilo, si es posible, me colaboren con alguna solucion para poder sincronizar un Asterisk 1.4.42, con un DAHDI Tools Version – 2.4.1, DAHDI Version: 2.4.1.2.
    se cuenta con una tarjeta
    pci:0000:06:08.0 wct4xxp+ d161:1220 Wildcard TE220 (5th Gen)

    [1]
    active=yes
    alarms=OK
    description=T2XXP (PCI) Card 0 Span 1
    name=TE2/0/1
    manufacturer=Digium
    devicetype=Wildcard TE220 (5th Gen) (VPMOCT064)
    location=Board ID Switch 0
    basechan=1
    totchans=31
    irq=16
    type=digital-E1
    syncsrc=0
    lbo=0 db (CSU)/0-133 feet (DSX-1)
    coding_opts=AMI,HDB3
    framing_opts=CCS,CRC4
    coding=HDB3
    framing=CAS

    y la planta es una panasonic emss336

    se tiene una configuracion
    /etc/dahdi/system.conf
    # Span 1: WCT1/0 “Wildcard TE122 Card 0”
    span=1,0,0,cas,hdb3,crc4
    cas=1-15,17-31:1101
    echocanceller=mg2,1-15,17-31
    #
    # # Global data
    #
    loadzone=mx
    defaultzone=mx

    chan_dahdi.conf
    [trunkgroups]
    ;
    [channels]
    usecallerid=yes
    language=es
    callwaiting=yes
    usecallingpres=yes
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    canpark=yes
    cancallforward=yes
    callreturn=yes
    echocancel=no
    echocancelwhenbridged=no
    ;
    signalling=mfcr2
    mfcr2_variant=ar
    mfcr2_get_ani_first=no
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_suscriber
    mfcr2_logdir=span1
    mfcr2_logging=all
    mfcr2_call_files=yes
    mfcr2_mfback_timeout= 5000
    mfcr2_metering_pulse_timeout=200
    ;
    context=from-pstn
    group=0
    callgroup=0
    pickupgroup=0
    channel => 1-15
    channel => 17-31

    con esta configuracion dahdi sube
    SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)

    Channel map:

    Channel 01: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 01)
    Channel 02: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 02)
    Channel 03: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 03)
    Channel 04: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 04)
    Channel 05: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 05)
    Channel 06: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 06)
    Channel 07: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 07)
    Channel 08: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 08)
    Channel 09: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 09)
    Channel 10: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 10)
    Channel 11: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 11)
    Channel 12: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 12)
    Channel 13: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 13)
    Channel 14: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 14)
    Channel 15: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 15)
    Channel 17: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 17)
    Channel 18: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 18)
    Channel 19: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 19)
    Channel 20: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 20)
    Channel 21: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 21)
    Channel 22: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 22)
    Channel 23: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 23)
    Channel 24: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 24)
    Channel 25: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 25)
    Channel 26: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 26)
    Channel 27: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 27)
    Channel 28: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 28)
    Channel 29: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 29)
    Channel 30: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 30)
    Channel 31: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 31)

    CLI> dahdi show status
    Description Alarms IRQ bpviol CRC4
    T2XXP (PCI) Card 0 Span 1 OK 0 0 0

    CLI> dahdi show channels
    Chan Extension Context Language MOH Interpret
    pseudo default default
    1 from-pstn es default
    2 from-pstn es default
    3 from-pstn es default
    4 from-pstn es default
    5 from-pstn es default
    6 from-pstn es default
    7 from-pstn es default
    8 from-pstn es default
    9 from-pstn es default
    10 from-pstn es default
    11 from-pstn es default
    12 from-pstn es default
    13 from-pstn es default
    14 from-pstn es default
    15 from-pstn es default
    17 from-pstn es default
    18 from-pstn es default
    19 from-pstn es default
    20 from-pstn es default
    21 from-pstn es default
    22 from-pstn es default
    23 from-pstn es default
    24 from-pstn es default
    25 from-pstn es default
    26 from-pstn es default
    27 from-pstn es default
    28 from-pstn es default
    29 from-pstn es default
    30 from-pstn es default
    31 from-pstn es default

    pero los canales de
    CLI> mfcr2 show channels
    Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS
    1 AR 10 4 No No SEIZE AC SEIZE
    2 AR 10 4 No No SEIZE AC SEIZE
    3 AR 10 4 No No SEIZE AC SEIZE
    4 AR 10 4 No No SEIZE AC SEIZE
    5 AR 10 4 No No SEIZE AC SEIZE
    6 AR 10 4 No No SEIZE AC SEIZE
    7 AR 10 4 No No SEIZE AC SEIZE
    8 AR 10 4 No No SEIZE AC SEIZE
    9 AR 10 4 No No SEIZE AC SEIZE
    10 AR 10 4 No No SEIZE AC SEIZE
    11 AR 10 4 No No SEIZE AC SEIZE
    12 AR 10 4 No No SEIZE AC SEIZE
    13 AR 10 4 No No SEIZE AC SEIZE
    14 AR 10 4 No No SEIZE AC SEIZE
    15 AR 10 4 No No SEIZE AC SEIZE
    17 AR 10 4 No No SEIZE AC SEIZE
    18 AR 10 4 No No SEIZE AC SEIZE
    19 AR 10 4 No No SEIZE AC SEIZE
    20 AR 10 4 No No SEIZE AC SEIZE
    21 AR 10 4 No No SEIZE AC SEIZE
    22 AR 10 4 No No SEIZE AC SEIZE
    23 AR 10 4 No No SEIZE AC SEIZE
    24 AR 10 4 No No SEIZE AC SEIZE
    25 AR 10 4 No No SEIZE AC SEIZE
    26 AR 10 4 No No SEIZE AC SEIZE
    27 AR 10 4 No No SEIZE AC SEIZE
    28 AR 10 4 No No SEIZE AC SEIZE
    29 AR 10 4 No No SEIZE AC SEIZE
    30 AR 10 4 No No SEIZE AC SEIZE
    31 AR 10 4 No No SEIZE AC SEIZE

    luego de un rato, envia los siguientes errores
    New MFC/R2 call detected on chan 12.
    [Feb 23 12:43:00] ERROR[16995]: chan_dahdi.c:1683 dahdi_r2_write_log: Chan 13 – Protocol error. Reason = Invalid CAS, R2 State = Idle, MF state = MF Engine Off, MF Group = No Group, CAS = 0x04
    DNIS = , ANI = , MF = 0x20
    [Feb 23 12:43:00] ERROR[16995]: chan_dahdi.c:1455 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 13: Invalid CAS
    New MFC/R2 call detected on chan 28.
    [Feb 23 12:43:00] ERROR[16996]: chan_dahdi.c:1683 dahdi_r2_write_log: Chan 29 – Protocol error. Reason = Invalid CAS, R2 State = Idle, MF state = MF Engine Off, MF Group = No Group, CAS = 0x04
    DNIS = , ANI = , MF = 0x20
    [Feb 23 12:43:00] ERROR[16996]: chan_dahdi.c:1455 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 29: Invalid CAS

    Feb 23 16:41:48] ERROR[11065]: chan_dahdi.c:1683 dahdi_r2_write_log: Chan 25 – Protocol error. Reason = Invalid CAS, R2 State = Seize ACK Transmitted, MF state = Seize ACK Transmitted, MF Group = Backward MF init, CAS = 0x0C
    DNIS = , ANI = , MF = 0x20
    [Feb 23 16:41:48] ERROR[11065]: chan_dahdi.c:1455 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 25: Invalid CAS
    [Feb 23 16:41:48] ERROR[11064]: chan_dahdi.c:1683 dahdi_r2_write_log: Chan 9 – Protocol error. Reason = Invalid CAS, R2 State = Seize ACK Transmitted, MF state = Seize ACK Transmitted, MF Group = Backward MF init, CAS = 0x0C
    DNIS = , ANI = , MF = 0x20
    [Feb 23 16:41:48] ERROR[11064]: chan_dahdi.c:1455 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 9: Invalid CAS

    == Manager ‘sendcron’ logged off from 127.0.0.1
    [Feb 23 15:40:32] NOTICE[1420]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 29
    [Feb 23 15:40:32] NOTICE[1420]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 30
    [Feb 23 15:40:32] NOTICE[1420]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 31
    [Feb 23 15:40:32] NOTICE[1419]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 13
    [Feb 23 15:40:32] NOTICE[1419]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 14
    [Feb 23 15:40:32] NOTICE[1419]: chan_dahdi.c:1713 dahdi_r2_on_line_idle: Far end unblocked on chan 15

    cuando se intenta marcar, no encuentra canales

    — Executing [141@phones:1] Answer(“SIP/cc6105-00000000”, “nocdr”) in new stack
    — Executing [141@phones:2] Dial(“SIP/cc6105-00000000”, “Dahdi/g0/141|50”) in new stack
    [Feb 23 16:01:25] WARNING[8180]: app_dial.c:1310 dial_exec_full: Unable to create channel of type ‘Dahdi’ (cause 34 – Circuit/channel congestion)
    == Everyone is busy/congested at this time (1:0/1/0)
    — Executing [141@phones:3] GotoIf(“SIP/cc6105-00000000”, “0?unavailable:hangup”) in new stack
    — Goto (phones,141,5)
    — Executing [141@phones:5] Hangup(“SIP/cc6105-00000000”, “”) in new stack
    == Spawn extension (phones, 141, 5) exited non-zero on ‘SIP/cc6105-00000000’

    [Feb 23 16:12:07] WARNING[9372]: chan_dahdi.c:1680 dahdi_r2_write_log: Chan 12 – Seize Timeout Expired!
    [Feb 23 16:12:07] ERROR[9372]: chan_dahdi.c:1683 dahdi_r2_write_log: Chan 12 – Protocol error. Reason = Seize Timeout, R2 State = Seize Transmitted, MF state = MF Engine Off, MF Group = Forward MF init, CAS = 0x08
    DNIS = 141, ANI = 6105, MF = 0x20
    [Feb 23 16:12:07] ERROR[9372]: chan_dahdi.c:1455 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 12: Seize Timeout
    [Feb 23 16:12:07] WARNING[9372]: app_dial.c:801 wait_for_answer: Unable to forward voice or dtmf
    — Hungup ‘DAHDI/12-1’
    == Everyone is busy/congested at this time (1:0/0/1)
    — Executing [141@phones:3] GotoIf(“SIP/cc6105-00000003”, “0?unavailable:hangup”) in new stack
    — Goto (phones,141,5)
    — Executing [141@phones:5] Hangup(“SIP/cc6105-00000003”, “”) in new stack
    == Spawn extension (phones, 141, 5) exited non-zero on ‘SIP/cc6105-00000003’

    agradezco cualquier idea

  9. Reply
    Antonio Mariche March 20, 2012

    te felicito Gabo, muy buen post, excelente trabajo! saludos

  10. Reply
    fabian March 22, 2012

    Hola como estan tengo una sangoma 102DE y tengo un balun de coaxil a RJ45. Lo que no tengo claro es si desde la placa el conector RJ45 necesita al balun un cable normal, uno cruzado o una secuencia especial.

    El loop del cable me funciona ok,

    Agradezco la predisposicion

  11. Reply
    rey July 1, 2012

    Hola tengo una sangoma a101 todo se muestra bien peroa l momento de dar en asterisk mfcr2 show channels no me despilega ningun canal pordias ayudarme.

    gracias

    • Reply
      gabriel July 4, 2012

      Hola gracias por tu comentario:

      Ya verificaste que el modulo de dahdi este activo y compilado con el soporte de OpenR2, ya pusiste los parámetros en system.conf y chan_dahdi.conf, si como comentas que todo esta bien tal vez solo te falte especificar los canales que vas a utilizar.

      Saludos.

  12. Reply
    Sergio Campos January 16, 2014

    Hola Gabriel. Actualmente estoy trabajando con la plantaforma inConcert. Desde hace 3 días que el debug de MFCR2 me arroja un mensaje que provoca que no todas mis llamadas se conecten.

    Te comento que tengo 2 servidores que fungen como gateway, en uno recibo 6 enlaces y en otro 2, pero el error que te menciono me sale en ambos.

    Si corro el comando asterisk -r | grep “ERROR” me sale

    [Jan 16 16:51:43] ERROR[2968]: chan_dahdi.c:2004 dahdi_r2_write_log: Chan 66 – Protocol error. Reason = Invalid Multi Frequency Tone, R2 State = Seize ACK Received, MF state = DNIS Digit Transmitted, MF Group = Forward Group I, CAS = 0x0C
    [Jan 16 16:51:43] ERROR[2968]: chan_dahdi.c:1789 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 66: Invalid Multi Frequency Tone

    Y en el verbose de asterisk veo

    [Jan 16 16:52:21] ERROR[3025]: chan_dahdi.c:2004 dahdi_r2_write_log: Chan 173 – Protocol error. Reason = Invalid Multi Frequency Tone, R2 State = Seize ACK Received, MF state = DNIS Digit Transmitted, MF Group = Forward Group I, CAS = 0x0C
    DNIS = 3121481402, ANI = 6561026845, MF = 0x46
    [Jan 16 16:52:21] ERROR[3025]: chan_dahdi.c:1789 dahdi_r2_on_protocol_error: MFC/R2 protocol error on chan 173: Invalid Multi Frequency Tone
    MFC/R2 call has been answered on channel 29
    — Hungup ‘DAHDI/173-1’
    == Everyone is busy/congested at this time (1:0/0/1)
    — Auto fallthrough, channel ‘SIP/gw_astconr2-0000788d’ status is ‘CHANUNAVAIL’
    — DAHDI/29-1 answered SIP/gw_astconr2-00007877
    [Jan 16 16:52:21] NOTICE[4364]: chan_dahdi.c:2035 dahdi_r2_on_line_idle: Far end unblocked on chan 173

    La verdad ya estoy desesperado. Según me dicen que el problema es de sincronización, pero no hemos detectado si es nuestro o del carrier.

    Me podrías echar la mano ?

    • Reply
      gabriel January 22, 2014

      Hola Sergio antes que nada gracias por leer mi guía.

      Te comento que no recuerdo haber visto ese error y una de las cosas relativamente difíciles es saber la sincronización de la tarjeta del conmutador o del carrier ya que el proveedor en la mayoría de los casos te dirán que ellos están bien, te comento que los E1 a los que me he enfrentado son exclusivamente de Telmex ya que son los que tiene la empresa donde paso la mayor parte de mi tiempo y los problemas de sincronización son evidentes cuando la tarjeta no levanta o no tiene el estado de Ok ya que los canales siempre están bloqueados (Local end unblocked y el Far end unblocked) lo que tu tienes al parecer seria algo de configuración o algo que cambio en el lado del carrier que te afecto tal vez una modificacion en los DNI o algo que te están mandando y ya no es compatible con tu configuración ya que al final de tu log tienes el Far end unblocked y eso dice que es del lado de tu carrier.

      La ventaja que yo he tenido por decirlo así es que los E1 que he utilizado para estas configuraciones están mas que probados previamente con conmutadores Mitel y por lo tanto siempre la falla ha estado de mi lado.

      Saludos y que tengas un buen día, siento no poder ayudarte mas.

      • Reply
        Sergio Campos January 22, 2014

        Gracias por la respuesta Gabriel.

        En mi tarjeta Sangoma tengo 6 enlaces de Telcel y uno de Axtel. Inicialmente me decía que el tener dos carriers en la misma Sangoma estaba provocando el problema.

        Al final Telcel hizo un cambio en sus centrales y el flujo de llamadas se normalizó.

        Qué podrías comentar con respecto al tema de dos carriers en una misma tarjeta ?

        También me comentaron el tema sobre qué Span tiene el reloj en la configuraciòn del system.conf.

        Saludos !!

        • Reply
          gabriel January 27, 2014

          Hola,

          Te podría decir que puede ser problemático ya que hay que definir que carrier lo origina pero solo es cuestión de enfoques los conmutadores luego tienen que recibir servicios de diferentes carriers debido a la necesidad y solamente es acertar en la configuración para que no entren en conflicto.

          El reloj lo proporciona el carrier a menos que te estés conectando a otro conmutador o algo similar.

          When connected directly to the Telco, the clocking in /etc/wanpipe/wanpipeX.conf MUST be set to NORMAL
          When connected to another pbx/channel bank, clocking in /etc/wanpipe/wanpipeX.conf MUST be set to MASTER

          La wiki de sangoma menciona lo siguiente que es tu caso.

          If at least one of the lines connected to a port on the card has a different clock signal than the others, this can cause the dma buffers to be filled at different times. When the hardware interrupt is signalled, buffers are filled, while others are not full. This scenario causes wanpipe overruns.

          Typically all telco’s in the same geographical region will use the same clock signal. Sometimes though, if one or more of the lines connected are from different telco’s, the clock signal can be slightly off and cause overruns.

          Es probable que tuvieras dos relojes en la tarjeta y eso provocara tus problemas, seria interesante saber que cambio hizo Telcel en sus centrales aunque luego no te dicen.

          http://wiki.sangoma.com/Wanpipe-Debugging

          Saludos.

  13. Reply
    Sergio Campos January 28, 2014

    Te agradezco la respuesta Gabriel.

    Y definitivamente Telcel no nos dice con claridad qué hizo. Supongo que todo viene a raíz de que les urge cambiar todos a ISDN y dejar fuera R2.

  14. Reply
    jaime tite July 23, 2014

    favor me pueden ayudar configurando una tarjeta e1 a101, en cas, ya que al selecionar este parametro se me alarma el enlace con la central.

    att. Jaime Tite

    • Reply
      gabriel July 23, 2014

      Hola Jaime,

      Tienes algún mensaje de error en la consola que te de algo descriptivo del error.

      Saludos.

  15. Reply
    jaime tite July 28, 2014

    73, gabriel, no me sale nada solo que se alarma el led de enlace, adicional te cuento, al momento lo reconoce con señalización CCS, pero la aplicación corre con CAS con wanpippe en windows-7.
    por favor si está al alcance demen una mano.

    att. jaime

  16. Reply
    Isaac Giovanni December 18, 2014

    Vendo una tarjeta A102 con cancelador de eco usada, pero en buenas condiciones por si a alguien le interesa

  17. Reply
    walter May 16, 2016

    estimados, tengo una E1 instalada en elastix conel hardware detector me reconoce la placa y tambien el enlace ya esta en servicio, osea estan de color verde, la cuestion es la siguiente, depues de eso no se como hacer para recivir llamadas o hacer llamadas, me dieron un rango de telefonos desde xxxx8900 hasta el xxxx8949, ahora no se como redirigir o configurar esos DID para que pueda recivir las llamadas, espero que puedadn ayudarme

    • Reply
      gabriel May 16, 2016

      Hola, es cuestión de configurar tu plan de marcado “dialplan” en el archivo extensions.conf.

      Normalmente tienes que crear un contexto de entrada donde van a llegar las llamadas y dirigir esos DID que llegan. Con un ejemplo sencillo se aprecia mejor.

      [entrantes]

      exten => 8900,1,Dial(SIP/${EXTEN})
      exten => 8901,1,Dial(SIP/${EXTEN})
      exten => 8902,1,Dial(SIP/${EXTEN})
      exten => 8903,1,Dial(SIP/${EXTEN})

      Aquí por ejemplo entraría a los DID 8900, 8901, 8902 y 8903 y los mandaría a extensiones SIP de número igual ya si internamente tienes otras extensiones sustituyes la parte de ${EXTEN}. La parte de “entrantes” que es el contexto de entrada tienes que definirla también como el contexto de la troncal digital.

      Ahora que si tienes una cabeza de grupo y quieres que haga función de operadora puedes darte una idea armando algo así:

      [entrantes]

      exten => _X.,1,NoOP(${EXTEN})
      exten => _X.,n,NoOP(${CALLERID})
      exten => _X.,n,Set(CALLERID(all)=”Llamada”)
      exten => _X.,n,Background(custom/ivrcentro)
      exten => _X.,n,WaitExten(8)
      exten => _X.,n,Macro(voicemailivr,SIP/2100)

      exten => i,1,Macro(voicemailivr,SIP/2100)
      exten => t,1,Macro(voicemailivr,SIP/2100)

      Saludos, gracias por visitar y comentar.

  18. Reply
    andy November 21, 2017

    hola que tal quisiera un poco de su ayuda, instale :asterisk-13.18.0, dahdi-linux-complete-2.11.1+2.11.1, penr2-1.3.3 ,wanpipe-7.0.23. en centos 7..

    realice toda la instalación me guie de una configuración de un enlace E1 de mexico con sangoma y señalizacion mfc-r2.

    la orden del servicio me indica que son 15 circuitos salientes con señalizacion de linea r2
    y 15 entrantes con señalizacion de registro mfcr2.

    bueno esto es lo que configure
    loadzone=ve
    defaultzone=ve

    #Sangoma A102 port 1 [slot:4 bus:5 span:1]
    span=1,1,0,cas,hdb3
    cas=1-15:1101
    dchan=16
    cas=17-31:1101
    #hardhdlc=16
    echocanceller=mg2,1-15,17-31

    #Sangoma A102 port 2 [slot:4 bus:5 span:2]
    span=2,1,0,cas,hdb3
    cas=32-46:1101
    dchan=47
    cas=48-62:1101
    echocanceller=mg2,32-46,48-62
    :______________________________

    [trunkgroups]

    [channels]
    context=from-pstn
    signalling=mfcr2
    rxwink=300
    usecallerid=yes
    hidecallerid=no
    callwaiting=yes
    usecallingpres=yes
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    canpark=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=no
    faxdetec=incoming
    echotraining=800
    rxgain=0.0
    txgain=0.0
    callgroup=1
    pickupgroup=1
    immediate=no
    ___-
    ____________________
    grupo=1
    context=salientes-CANTV
    signalling=mfcr2
    channel=>17-31
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=log
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes

    group=2
    context=entrantes CANTV
    switchtype=euroisdn
    channel=>1-15
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=CANTV
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes

    grupo=3
    context=salientes-CANTV
    signalling=mfcr2
    channel=>48-62
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=log
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes

    group=4
    context=entrantes CANTV
    switchtype=euroisdn
    channel=>32-64
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=CANTV
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes
    ___________- me muestra esto:
    Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS
    1 VE 10 4 Yes Yes IDLE IDLE
    2 VE 10 4 Yes Yes IDLE IDLE
    3 VE 10 4 Yes Yes IDLE IDLE
    4 VE 10 4 Yes Yes IDLE IDLE
    5 VE 10 4 Yes Yes IDLE IDLE
    6 VE 10 4 Yes Yes IDLE IDLE
    7 VE 10 4 Yes Yes IDLE IDLE
    8 VE 10 4 Yes Yes IDLE IDLE
    9 VE 10 4 Yes Yes IDLE IDLE
    10 VE 10 4 Yes Yes IDLE IDLE
    11 VE 10 4 Yes Yes IDLE IDLE
    12 VE 10 4 Yes Yes IDLE IDLE
    13 VE 10 4 Yes Yes IDLE IDLE
    14 VE 10 4 Yes Yes IDLE IDLE
    15 VE 10 4 Yes Yes IDLE IDLE
    17 ITU 10 4 Yes No IDLE BLOCK
    18 ITU 10 4 Yes No IDLE BLOCK
    19 ITU 10 4 Yes No IDLE BLOCK
    20 ITU 10 4 Yes No IDLE BLOCK
    21 ITU 10 4 Yes No IDLE BLOCK
    22 ITU 10 4 Yes No IDLE BLOCK
    23 ITU 10 4 Yes No IDLE BLOCK
    24 ITU 10 4 Yes No IDLE BLOCK
    25 ITU 10 4 Yes No IDLE BLOCK
    26 ITU 10 4 Yes No IDLE BLOCK
    27 ITU 10 4 Yes No IDLE BLOCK
    28 ITU 10 4 Yes No IDLE BLOCK
    29 ITU 10 4 Yes No IDLE BLOCK
    30 ITU 10 4 Yes No IDLE BLOCK
    31 ITU 10 4 Yes No IDLE BLOCK
    32 VE 10 4 Yes Yes IDLE BLOCK
    33 VE 10 4 Yes Yes IDLE BLOCK
    34 VE 10 4 Yes Yes IDLE BLOCK
    35 VE 10 4 Yes Yes IDLE BLOCK
    36 VE 10 4 Yes Yes IDLE BLOCK
    37 VE 10 4 Yes Yes IDLE BLOCK
    38 VE 10 4 Yes Yes IDLE BLOCK
    39 VE 10 4 Yes Yes IDLE BLOCK
    40 VE 10 4 Yes Yes IDLE BLOCK
    41 VE 10 4 Yes Yes IDLE BLOCK
    42 VE 10 4 Yes Yes IDLE BLOCK
    43 VE 10 4 Yes Yes IDLE BLOCK
    44 VE 10 4 Yes Yes IDLE BLOCK
    45 VE 10 4 Yes Yes IDLE BLOCK
    46 VE 10 4 Yes Yes IDLE BLOCK
    48 VE 10 4 Yes Yes IDLE BLOCK
    49 VE 10 4 Yes Yes IDLE BLOCK
    50 VE 10 4 Yes Yes IDLE BLOCK
    51 VE 10 4 Yes Yes IDLE BLOCK
    52 VE 10 4 Yes Yes IDLE BLOCK
    53 VE 10 4 Yes Yes IDLE BLOCK
    54 VE 10 4 Yes Yes IDLE BLOCK
    55 VE 10 4 Yes Yes IDLE BLOCK
    56 VE 10 4 Yes Yes IDLE BLOCK
    57 VE 10 4 Yes Yes IDLE BLOCK
    58 VE 10 4 Yes Yes IDLE BLOCK
    59 VE 10 4 Yes Yes IDLE BLOCK
    60 VE 10 4 Yes Yes IDLE BLOCK
    61 VE 10 4 Yes Yes IDLE BLOCK
    62 VE 10 4 Yes Yes IDLE BLOCK

    quisiera saber porque los canales del 17 – 31 no me los reconoce … ( tengo en uso 1 puerto de la sangoma ) . de ante mano gracias por su colaboración

    • Reply
      gabriel November 29, 2017

      Hola,

      ¿Y esos quince primeros canales están funcionando?, ¿puedes recibir llamadas en tu enlace E1?, me atrevo a opinar que es problema del proveedor de telefonía. ¿La tarjeta Sangoma tiene alguna alarma?, hace unos meses tuve un tema similar con Telmex aquí en México y fue tema del lado del proveedor. ¿En los logs más avanzados tienes alguna información adicional?

      Saludos.

  19. Reply
    andy December 1, 2017

    hola grabriel agradecido por tu respuesta. te cuento que trate de solucionar algunos problemas en cuanto a la configuracion del nano /etc/asterisk/chan_dahdi.conf
    context=from-pstn
    group=0
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=log
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes
    channel=>17-31

    context=from-pstn
    group=1
    signalling=mfcr2
    mfcr2_variant=ve
    mfcr2_get_ani_first=yes
    mfcr2_immediate_accept=yes
    mfcr2_max_ani=10
    mfcr2_max_dnis=4
    mfcr2_category=national_subscriber
    mfcr2_logdir=CANTV
    mfcr2_logging=all
    mfcr2_mfback_timeout=-1
    mfcr2_call_files=yes
    channel=>1-15
    Sangoma A102 port 2 [slot:4 bus:5 span:2] (lo configure igual solo cambie los parametros de los canales 32-64- 48-62.
    ______ la tarjeta no me genera ninguna alarma el led esta en verde. esto me muestra el mfcr2 del CLI

    1 VE 10 4 Yes Yes IDLE IDLE
    2 VE 10 4 Yes Yes IDLE IDLE
    3 VE 10 4 Yes Yes IDLE IDLE
    4 VE 10 4 Yes Yes IDLE IDLE
    5 VE 10 4 Yes Yes IDLE IDLE
    6 VE 10 4 Yes Yes IDLE IDLE
    7 VE 10 4 Yes Yes IDLE IDLE
    8 VE 10 4 Yes Yes IDLE IDLE
    9 VE 10 4 Yes Yes IDLE IDLE
    10 VE 10 4 Yes Yes IDLE IDLE
    11 VE 10 4 Yes Yes IDLE IDLE
    12 VE 10 4 Yes Yes IDLE IDLE
    13 VE 10 4 Yes Yes IDLE IDLE
    14 VE 10 4 Yes Yes IDLE IDLE
    15 VE 10 4 Yes Yes IDLE IDLE
    17 VE 10 4 Yes Yes IDLE BLOCK
    18 VE 10 4 Yes Yes IDLE BLOCK
    19 VE 10 4 Yes Yes IDLE BLOCK
    20 VE 10 4 Yes Yes IDLE BLOCK
    21 VE 10 4 Yes Yes IDLE BLOCK
    22 VE 10 4 Yes Yes IDLE BLOCK
    23 VE 10 4 Yes Yes IDLE BLOCK
    24 VE 10 4 Yes Yes IDLE BLOCK
    25 VE 10 4 Yes Yes IDLE BLOCK
    26 VE 10 4 Yes Yes IDLE BLOCK
    27 VE 10 4 Yes Yes IDLE BLOCK
    28 VE 10 4 Yes Yes IDLE BLOCK
    29 VE 10 4 Yes Yes IDLE BLOCK
    30 VE 10 4 Yes Yes IDLE BLOCK
    31 VE 10 4 Yes Yes IDLE BLOCK
    +++ los otros canales del puerto 2. que estan configurados pero sin conexion.
    _________configure 2 usuarios sip. solo para probar llamadas internas con 2 telefonos fisicos marca Grandstream y ver que sucede.
    sip.conf

    [general]
    ;udpbindaddr=0.0.0.0:5060
    ;context=default
    srvlookup=yes
    allowguest=no
    alwaysauthreject=yes

    [6700]
    type=friend
    host=dynamic
    username=6700
    secret=xxxx
    callerid=”juan”
    context=from-pstn
    canreinvite=no
    dtmfmode=rfc2833
    qualify=yes

    [6701]
    type=friend
    host=dynamic
    username=6701
    secret=xxxx
    callerid=”luis”
    context=from-pstn
    canreinvite=no
    dtmfmode=rfc2833
    qualify=yes
    ____ extension.conf
    [general]

    static=yes
    writeprotect=yes
    autofallthrough=yes
    extenpatternmatchnew=yes
    clearglobalvars=no

    [globals]

    [from-pstn]

    exten => 6700,n,Dial (SIP/6700,30,Tr)

    exten => 6701,n,Dial (SIP/6701,30,Tr)

    [globals]

    [from-pstn]

    exten => 6700,n,Dial (SIP/6700,30,Tr)

    exten => 6701,n,Dial (SIP/6701,30,Tr).
    _____ bueno te cuento lo que pasa de verdad que he estado buscando mucha información en 2 meses que llevo configurando no se si sea mucho o poco pero tiempo pero la verdad que no tenia nada de conocimiento al respecto.
    realice la debida configuración de esos usuarios en los teléfonos marca grandstream la ip del servidor donde tengo instalado asterisk es 192.168.40.x a los teléfonos le coloque la configuración de ip en STATIC dentro del mismo rango de servidor.
    al realizar la llamada del teléfono 1 al telefono 2 me muestra en el servidor que esta entrando una llamada pero en teléfono 2 no suena ni me indica que esta entrando una llamada.
    si no le dio aceptar la llamda en el servidor en un tiempo estimado de 2 segundos se cae la llamada y el telefono llamante me sale time out 408..
    de verda que no se que esta pasando y he tratado de ver y cambiar configuraciones para ver que pasa pero no logro solucionar. le estaría agradecido de su información.. gracias

    • Reply
      gabriel December 13, 2017

      Hola,

      Supongo que las extensiones las estas formando de acuerdo a los últimos cuatro dígitos de tu número telefónico, 6700 es tu cabeza de grupo y 6701, 6702 son tus sucesivos DIDs.

      En la parte de tu contexto de entrada que es: from-pstn cambia la n por un 1 ya que solo estas teniendo una linea por extensión al armar tu plan de marcado.

      Coloca algo así:

      exten => 6700,1,Dial(SIP/6700)
      exten => 6701,1,Dial(SIP/6701)

      Solo para probar tus entradas.

      Por otra parte en la cuestión de las lineas yo tengo un E1 que le llamamos fraccionado y solo me muestra 10 lineas digitales, de momento no puedo conectarme a ese conmutador Asterisk, tan pronto tenga el dato lo coloco para que comparemos la salida.

      Saludos.

    • Reply
      gabriel December 14, 2017

      En complemento a mi comentario anterior te digo que yo tengo un E1 que aquí en México le llamamos fraccionado, de los 30 canales que puede dar un E1 solo se me proporcionan 10 y por lo tanto solo funcionan 10 canales y de esta forma se observa en el estado del conmutador.

      centropbx*CLI> mfcr2 show channels
      Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS
      1 MX 10 4 No No IDLE IDLE
      2 MX 10 4 No No IDLE IDLE
      3 MX 10 4 No No IDLE IDLE
      4 MX 10 4 No No IDLE IDLE
      5 MX 10 4 No No IDLE IDLE
      6 MX 10 4 No No IDLE IDLE
      7 MX 10 4 No No IDLE IDLE
      8 MX 10 4 No No IDLE IDLE
      9 MX 10 4 No No IDLE IDLE
      10 MX 10 4 No No IDLE IDLE
      11 MX 10 4 No No IDLE BLOCK
      12 MX 10 4 No No IDLE BLOCK
      13 MX 10 4 No No IDLE BLOCK
      14 MX 10 4 No No IDLE BLOCK
      15 MX 10 4 No No IDLE BLOCK
      17 MX 10 4 No No IDLE BLOCK
      18 MX 10 4 No No IDLE BLOCK
      19 MX 10 4 No No IDLE BLOCK
      20 MX 10 4 No No IDLE BLOCK
      21 MX 10 4 No No IDLE BLOCK
      22 MX 10 4 No No IDLE BLOCK
      23 MX 10 4 No No IDLE BLOCK
      24 MX 10 4 No No IDLE BLOCK
      25 MX 10 4 No No IDLE BLOCK
      26 MX 10 4 No No IDLE BLOCK
      27 MX 10 4 No No IDLE BLOCK
      28 MX 10 4 No No IDLE BLOCK
      29 MX 10 4 No No IDLE BLOCK
      30 MX 10 4 No No IDLE BLOCK
      31 MX 10 4 No No IDLE BLOCK
      centropbx*CLI> dahdi show channels
      Chan Extension Context Language MOH Interpret Blocked State
      pseudo default default In Service
      1 entrantescentro default In Service
      2 entrantescentro default In Service
      3 entrantescentro default In Service
      4 entrantescentro default In Service
      5 entrantescentro default In Service
      6 entrantescentro default In Service
      7 entrantescentro default In Service
      8 entrantescentro default In Service
      9 entrantescentro default In Service
      10 entrantescentro default In Service
      11 entrantescentro default R In Service
      12 entrantescentro default R In Service
      13 entrantescentro default R In Service
      14 entrantescentro default R In Service
      15 entrantescentro default R In Service
      17 entrantescentro default R In Service
      18 entrantescentro default R In Service
      19 entrantescentro default R In Service
      20 entrantescentro default R In Service
      21 entrantescentro default R In Service
      22 entrantescentro default R In Service
      23 entrantescentro default R In Service
      24 entrantescentro default R In Service
      25 entrantescentro default R In Service
      26 entrantescentro default R In Service
      27 entrantescentro default R In Service
      28 entrantescentro default R In Service
      29 entrantescentro default R In Service
      30 entrantescentro default R In Service
      31 entrantescentro default R In Service
      centropbx*CLI>

Leave a Reply

Your email address will not be published. Required fields are marked *