Odistuff está en actualmente en fase de desarrollo. Todas las versiones de los parches son “release-candidate” por lo que no son recomendadas para sistemas en producción.
NOTA: Recomendamos la instalación directa por SVN para no tener que aplicar los parches.
Obtenemos los paquetes de asterisk / dahdi / libpri y los parches de odistuff por dos vias:
Descargamos y descomprimimos los archivos en nuestra zona de instalación preferida. En este caso /usr/src.
[root@asterisk-es-rsp ~]# cd /usr/src
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-2.1.0.4.tar.gz
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-2.1.0.2.tar.gz
[root@asterisk-es-rsp ~]# wget http://tests.p3dq.com/elastix/odi-dahdi-linux-2.1.0.4.diff
[root@asterisk-es-rsp ~]# wget http://tests.p3dq.com/elastix/odi-dahdi-tools-2.1.0.2.diff
Para asterisk 1.4
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.24.tar.gz
[root@asterisk-es-rsp ~]# wget http://tests.p3dq.com/elastix/odi-asterisk-1.4.24.1.diff
Para asterisk 1.6
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.6.1.tar.gz
[root@asterisk-es-rsp ~]# wget http://downloads.digium.com/pub/asterisk/asterisk-1.6.1.0-rc3.tar.gz
Los descomprimimos:
[root@asterisk-es-rsp ~]# tar zxvf asterisk.tar.gz
[root@asterisk-es-rsp ~]# tar zxvf asterisk-addons.tar.gz
[root@asterisk-es-rsp ~]# tar zxvf libpri-1.4.9.tar.gz
[root@asterisk-es-rsp ~]# tar zxvf dahdi-linux-2.1.0.4.tar.gz
[root@asterisk-es-rsp ~]# tar zxvf dahdi-tools-2.1.0.2.tar.gz
Aplicamos los parches a dahdi. Para aplicarlos debemos estar en la carpeta donde estén los archivos descomprimidos de dahdi:
[root@asterisk-es-rsp ~]# cd /usr/src
[root@asterisk-es-rsp ~]# patch -p0 < odi-dahdi-linux-2.1.0.4.diff
[root@asterisk-es-rsp ~]# patch -p0 < odi-dahdi-tools-2.1.0.2.diff
Aplicamos los parches a asterisk. Para aplicarlos debemos estar dentro de la carpeta asterisk:
[root@asterisk-es-rsp ~]# cd /usr/src/asterisk-1.4.24
[root@asterisk-es-rsp ~]# patch -p1 < /usr/src/odi-asterisk-1.4.24.1.diff
Otro método de descarga es directamente desde el svn de asterisk-es-rsp en el branch principal. Obtendremos las versiones ya parcheadas de asterisk, dahdi-linux, dahdi-tools y libpri.
[root@asterisk-es-rsp ~]# svn checkout http://dev.irontec.com:8080/svn/asterisk-es-rsp/team/Odicha --username guest --password guest
Esto nos creará una carpeta branches con la siguiente estructura, donde versión corresponde a la versión en producción de asterisk-es-rsp:
Odicha/asterisk
Odicha/asterisk/version
Odicha/libpri
Odicha/libpri/version
Odicha/dahdi-linux
Odicha/dahdi-linux/version
Odicha/dahdi-tools
Odicha/dahdi-tools/version
Es importante si tienes instalaciones de dahdi previas en la máquina o si se ha producido algú error durante la instalación anterior:
Entornos redhat:
[root@asterisk-es-rsp ~]# service dahdi start
[root@asterisk-es-rsp ~]# service dahdi stop
[root@asterisk-es-rsp ~]# service dahdi start otra vez
Entornos debian: todos deshabilitados en modprobe
[root@asterisk-es-rsp ~]# /etc/init.d/dahdi stop
o
[root@asterisk-es-rsp ~]# lsmod | grep dahdi
[root@asterisk-es-rsp ~]# modprobre -r .....
Empezamos la instalación habitual de asterisk.
Compilamos Libpri:
[root@asterisk-es-rsp ~]# cd ../libpri
[root@asterisk-es-rsp ~]# make && make install
Compilamos Dadhi:
[root@asterisk-es-rsp ~]# cd dahdi-linux
[root@asterisk-es-rsp ~]# make && make install
[root@asterisk-es-rsp ~]# cd ../dahdi-tools
[root@asterisk-es-rsp ~]# ./configure
[root@asterisk-es-rsp ~]# make menuselect; make clean && make && make install
[root@asterisk-es-rsp ~]# make config
Compilamos asterisk:
[root@asterisk-es-rsp ~]# cd ../asterisk
[root@asterisk-es-rsp ~]# ./configure
[root@asterisk-es-rsp ~]# make menuselect; make clean && make && make install
[root@asterisk-es-rsp ~]# make config
Compilamos Asterisk-Addons (si se desea):
[root@asterisk-es-rsp ~]# cd ../addons
[root@asterisk-es-rsp ~]# ./configure
[root@asterisk-es-rsp ~]# make menuselect; make clean && make && make install
[root@asterisk-es-rsp ~]# make config
Opcionalmente se puede instalar el módulo de cancelación de echo de Octware que no colisiona con los parches de Odicha.
[root@asterisk-es-rsp ~]# shutdown -r now
Generamos los archivos de configuración y levantamos el sistema.
[root@asterisk-es-rsp ~]# mv genconf_parameters genconf_parameters.sample
[root@asterisk-es-rsp ~]# /etc/init.d/dahdi start
[root@asterisk-es-rsp ~]# dahdi_genconf
[root@asterisk-es-rsp ~]# dahdi_cfg -vv
Adaptamos el archivo system.conf a nuestra targeta:
[root@asterisk-es-rsp ~]# vim /etc/dahdi/system.conf
span=1,0,1,ccs,ami
span=2,0,1,ccs,ami
bchan=1,2
dchan=3
bchan=4,5
dchan=6
loadzone=es
defaultzone=es
Levantamos los modulos necesarios en modules:
[root@asterisk-es-rsp ~]# vim /etc/dahdi/modules
dahdi_dummy
wcb4xxp
Configuramos /etc/dahdi/system.conf
configuracion por defecto:
* oslec,modo mas hispano para las bri
* hardhdlc por defecto
* dchan para HFC-S
Variación para tarjetas basadas en HFC-S:
[root@asterisk-es-rsp ~]# echo " " >> /etc/dahdi/modules
[root@asterisk-es-rsp ~]# echo "# Cologne Chips HFC-S PCI A" >> /etc/dahdi/modules
[root@asterisk-es-rsp ~]# echo "zaphfc" >> /etc/dahdi/modules
Configuramos /etc/dahdi/system.conf
Obsoleto
En el caso de las HFC-S dahdi_cfg avisa de que el modo no es correcto (hardhdlc)
y se tiene que cambiar por dchan
Modificamos el parámetro bri_l1_check para controlar los mensajes de consola de D channel Up/Down con RDSI con ahorro de energia. Recomiendo ajustar todo sin habilitarlo y hacerlo solo cuando ya todo esta ok.
[root@asterisk-es-rsp ~]# vim /etc/asterisk/chan_dahdi.conf
[channels]
;bri_l1_check=0 ;Deshabilita el parámetro
;bri_l1_check=1 ;Habilita el parámetro
;resetinterval=never ;Evitar los problemas con las RDSI que tienen ahorro de energía
El driver "nuevo" es hardhdlc
dchan necesitaba los parches de bristuff y al soportar dahdi hardhdlc de
forma nativa rehice el driver a modo hardhdlc
Para un asterisk 1.6 no haria falta ningun parche... Para nuestro 1.4 el
soporte de canales BRI que no esta en chan_dahdi
Cuando migremos a 1.6 no hará falta ningun parche salvo el propio driver
(para soportar las hfc-s)
Un poco mas sobre el tema.
zaphfc y vzaphfc se hicieron para zaptel originalmente.
Obviamente necesitaban los parches de bristuff, que utilizaban canales
dchan.
Yo opte por trabajar con vzaphfc, que aunque estaba abandonado desde hacia
varios años, estaba (para mi gusto) bastante mejor escrito que el zaphfc del
bristuff
Al dar soporte con dahdi a las Digium b410p se preparo soporte hardhdlc para
estas tarjetas pero solo para el branch 1.6
Nosotros hemos ido modificando el driver para que tambien soporte todas las
tarjetas basadas en los chips hfc-4s y 8s (casi todas las bri de 2,4 y 8
puertos que andan por ahi)
A la par, con una tarjeta que me presto J.C. Valero (un dia de estos te la
devuelvo...) prepare el soporte para las hfc-s de un puerto bajo dahdi.
Originalmente necesitaba los parches de bristuff, pero reescribi la parte de
los canales D para que usara hardhdlc como medio de comunicacion. Así
reducimos al mínimo los parches sobre los fuentes originales de asterisk. O
sea que salvo el tema de timing (que no he querido tocar esperando a ver que
pasa con las dahdi 2.2... y a tener tiempo) para el resto su comportamiento
y configuracion es identico a las B410P y similares.
A diferencia de instalaciones con mISDN es necesario la instalación de libpri.
Se ha probado con libpri-1.4.9.
Para que no tengamos problemas con lineas RDSI con gestion de energia (telefonica por ej.) añadir a chan_dahdi.conf dentro de la seccion channels y antes de cualquier include la linea resetinterval=never. Asi podremos llamar sin problema a traves de cualquier canal o grupo. Tambien se puede hacer span por span, por si tenemos algun primario que necesite resetear lineas de cuando en cuando.
En el parche para la version 1.4 agregamos además un parametro bri_l1_check. Si lo ponemos =no evitara que recibamos en consola los mensajes Pri d channel up / down cada 15 segundos. si lo ponemos =yes o lo omitimos recibiremos los mensajes de aviso
Para hacer un make install de dahdi-tools hay que borrar las carpetas svn del directorio xpp/perl_modules y sus directorios hijos. Este error ya ocurría en el svn de Digium así que los que lo hayan instalado desde el SVN con anterioridad ya lo saben.
Atencion a las dahdi-tools si ya estaban instaladas. No reescribe el fichero /etc/dahdi/modules asi que habria que agregarle a mano zaphfc y opvxa1200 asi como revisar que los modulos queden incluidos en /etc/modprobe.d/dahdi.blacklist
haces dahdi_genconf y dahdi_cfg -vv
tiene que darte un aviso en una b100p diciendote que el canal d esta mal configurado (cambias de hardhdlc a dchan)
para el dahdi-channels.conf le haces un include tal cual desde chan_dahdi.conf
Le he hecho 700 combinaciones b200p b400p b100p a800p y todas van Lo de dahdi spanconfig es error de retirada de placa o de modulo no arrancado Intenta configurar un span que no existe seguramente
Si puedes cogete una maquina limpia
y despues de cualquier cambio de tarjetas dahdi_genconf y dahdi_cfg -vv
tocas etc/dahdi/modules (que moduilos arrancas y en que orden)
tocas etc/dahdi/system.conf (principalmente cambiar el canal d de hardhdlc a dchan en la B100p
hazle un include desde chan_dahdi.conf a dahdi-channels.conf
en dahdi-channels.conf no hay que tocar casi nada pridialplan si tienes cosas de numeracion raras….
Buenas, estoy tratando de instalarlo en una debian lenny, con una tarjeta RDSI de hfc. Todo se instala way, no da ningun error.
Pero a la hora de arrancar el asterisk me salta el siguiente error:
Asterisk Event Logger Started /var/log/asterisk/event_log
[Jun 3 16:26:12] ERROR[2542]: asterisk.c:3085 main: Asterisk has
detected a problem with your DAHDI configuration and will shutdown for
your protection. You have options:
1. You only have to compile DAHDI support into Asterisk if you
need it. One option is to recompile without DAHDI support.
2. You only have to load DAHDI drivers if you want to take
advantage of DAHDI services. One option is to unload DAHDI modules if
you don't need them.
3. If you need Zaptel services, you must correctly configure
DAHDI.
Tengo configurado el system.conf, chan_dahdi.conf, modules para que solo arranque el zaphfc, pero sigue saliendome ese error.
Alguna idea de porque podria ser??
me refiero a que DAHDI no está teniendo timming: DAHDI "ticks" once per millisecond (1000 times per second). On each tick every active DAHDI channel reads and 8 bytes of data. Asterisk also uses this for timing, through a DAHDI pseudo channel it opens.
Si he cargado el dahdi_dummy y parece que funciona, me carga el asterisk ok.
Pues ya que lo tenía a medias, lo acabé, con el espero dar soporte a las HFC con los últimos kernels.
Si queréis, podéis subirlo al svn, unirlo a los parches de Odicha o lo que creáis mas conveniente.
Explicación del parche: adapta el driver zaphfc, que añadió Odicha, para que funcione con las últimas versiones del kernel.
Apliqué los siguientes cambios:
-En el archivo “dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc/base.c”: Cambio “SA_SHIRQ” por “IRQF_SHARED” para kernels superiores a 2.6.24 Cambio “proc_root_driver” por “NULL” para kernels superiores a 2.6.23 Comento “SET_MODULE_OWNER” para kernels superiores o iguales a 2.6.26
-En el archivo “dahdi-linux-2.1.0.4/drivers/dahdi/zaphfc/lapd.c”: Borro para kernels superiores a 2.6.24:
netdev->hard_header = NULL;
netdev->rebuild_header = NULL;
netdev->hard_header_cache = NULL;
netdev->header_cache_update= NULL;
Para aplicarlo,desde la raíz de los sources : -Primero Aplicar el parche de Odicha, si no lo hemos hecho (en el team/Odicha ya esta aplicado)
[root@asterisk-es-rsp ~]# patch -p0 < odi-dahdi-linux-2.1.0.4.diff
-Luego, aplicar el nuevo parche:
[root@asterisk-es-rsp ~]# patch -p0 < ru080-odi-zaphfc.diff
Parche: ru080-odi-zaphfc.diff