Un poco de Asterisk 1.6 + DAHDI (y otro poco de ojos rojos)
Posted by odicha en 27 febrero 2009
Esta entrada es obsoleta. Revisar https://odicha.wordpress.com/2009/06/30/asterisk-es-rsp/
****************
Como montar una Centralita Asterisk – 4 líneas (2 x ISDN)/ 8 extensiones analógicas con CentOs 5.2 + Asterisk 1.6.1 + FreePbx 2.5 + A800P + B200P sin enloquecer en el intento.
¿Para qué? Pues, por ejemplo, porque sale más barato que cualquier 4/8 analógica de las que se ven por ahí, que nisiquiera tiene identificación de llamada, y aunque nuestro primer objetivo no sea la telefonía VoIP, a medio plazo tener esos equipos da mucho pero que mucho juego. De entrada, sustituimos en plan quitar y poner una centralita tradicional por nuestra Asterisk y todo sigue en marcha.
Esto no pretende ser más que una guía de ayuda para los que se encuentren como yo hace una semana (más perdido que un pulpo en un garaje). Hay gran cantidad de contenido que está tomada de otras páginas o foros. Si quieren leer e informarse yo recuerdo haber estado por…
- http://groups.google.es/group/asterisk-es (grupo en español de asterisk)
- http://www.saghul.net/blog/ (muchas cosas interesantes… y varias en mi lista de pruebas particular)
- http://www.freepbx.org/ y más en concreto http://www.freepbx.org/support/documentation/installation/install-process-for-centos-5-1
- Por supuesto http://www.elastixconnection.com/downloads/elastix_without_tears.pdf (custom contexts y alguna que otra aclaración de conceptos)
- http://bugs.digium.com y más en concreto http://bugs.digium.com/view.php?id=13897 (trabajo en desarrollo sobre las HFC-4S)
- y seguro que más sitios que me estoy dejando atrás…
Este es el ejemplo. Obviamente no recomendable aún para usar en producción porque los parches de la B200P//B400P no son oficiales. Para ver como va el tema avanzando pueden echar un vistazo en http://bugs.digium.com/view.php?id=13897 . También podría usarse una A1200P o una B400P, por ejemplo.
Que necesitamos.
- Un equipo normal (un Core2Duo, 1 Gb de RAM, 2 discos SATA en RAID 1, lector de DVD… ) nada especialmente difícil de conseguir.
- Conexión a Internet
- 1 OpenVox A800P con 8 puertos FXS (para conectar teléfonos)
- 1 OpenVox B200P (2 puertos RDSI)
- Los parches para usar las OpenVox (enlaces para descargar más abajo)
- Conocimientos básicos a nivel de usuario de Linux. Si nunca has instalado uno, «googlea» un poco antes de comenzar con lo que no entiendas del documento.
En el ejemplo que voy a poner uso 1 RDSI de Telefónica / Ono (o cualquier otro operador nacional)
1 router RDSI /GSM. Yo he probado con éxito con TelecomFM GSM-Route BRI (Vodafone) y ComSat ISDN Basic y Plus (MoviStar)
Si quieres usar las OpenVox del ejemplo, las mías las compré en Capatres (Barcelona). Serios y eficaces (www.capatres.com)
Primero que nada el DVD de CentOs 5.2. Si aún no lo tienes (son cerca de 4 Gb.) te va a dar tiempo de leerte el documento con mucha calma en lo que se baja…
Vamos al trapo. Instalación de CentOs 2.5
Arrancamos la instalación desde el DVD
Pulsamos Enter (la tecla entrar, return, la de la flechita….) jijiji
Seleccionamos idioma de sistema y de teclado.
Pasamos a la parte de selección de destino de instalación
** Atención. Si en donde vas a instalar tenías datos, con esta opción los pierdes.
Configuramos la red
Pulsamos en modificar. Desactivamos IPV6 (a no ser que se vaya a usar). Lo que no esta en marcha, no da problemas. Colocamos la direccion IP y la mascara de red que le otorgamos a nuestra máquina
Y a continuación el nombre del equipo, del servidor DNS y de la puerta de enlace
Seleccionamos nuestra zona horaria y colocamos nuestra contraseña de “root”
Ahora pasamos a la configuración de paquetes que vamos a instalar. Aquí en función de si queremos soporte GUI en consola local (entorno X11) dejaremos marcada la opción de Desktop-Gnome o no. No instalarlo te dará un sistema más ligero pero tendrás que usar FreePBX desde otro equipo. Al gusto…
Pulsamos en “personalizar ahora” y picamos en “Siguiente”
Opciones a añadir además de las que ya están seleccionadas por defecto
Seleccionamos Servidor de Nombres (DNS), Servidor Web, Servidor de Correo y Base de Datos MySQL en la opción de Servidores
En Desarrollo seleccionamos Bibliotecas de Desarrollo y Herramientas de Desarrollo
En Sistema Base seleccionamos Herramientas del Sistema y pulsamos Paquetes Opcionales
Aquí agregamos “mc” si queremos tener un gestor de archivos en consola al estilo «Norton Conmmander», y podemos continuar pulsando siguiente.
…un café, una cocacola, unas galletas…al gusto. Tarda un ratito en copiar e instalar el sistema Es más, yo me fui a cenar mientras.
Proceso de post-instalación (si seleccionamos el Gnome Desktop).
Desactivamos el firewall
Desactivamos SELinux
Y creamos un usuario
El sistema se reiniciará.
Post-instalación si no seleccionamos entorno gráfico
Seleccionamos Configuración de la red. Aquí deshabilitamos Iptables (Nivel de Seguridad-> Deshabilitado) y SELinux.
Reiniciamos el equipo y seguimos.
A partir de aquí trabajaremos bien en consola local bien a través de consola remota via ssh, usando putty (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe) por ejemplo (si nos conectamos desde un cliente Windows).
Nos conectamos al equipo remoto con el usuario root y la contraseña que definimos en la instalación
Antes de continuar actualizaremos el sistema con el comando
yum –y update
Es el momento de fregar la loza de la cena y recoger la cocina. Otro buen ratito.
Reiniciamos
shutdown –r now
Volvemos a conectarnos a la consola via ssh
Nos validamos y ahora instalaremos algunos paquetes necesarios antes de Asterix en si mismo
yum install libtiff-devel php-pear php-pear-DB php-gd php-mysql php-pdo audiofile-devel mysql-devel perl-DateManip
(es posible copiar y pegar en putty usando el botón derecho del ratón)
Seguimos descargando cosas
cd /usr/src
wget http://kent.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz
wget http://kent.dl.sourceforge.net/sourceforge/amportal/freepbx-2.5.1.tar.gz
svn checkout http://svn.digium.com/svn/asterisk/branches/1.6.1/ asterisk-1.6.1
svn checkout http://svn.digium.com/svn/asterisk-addons/branches/1.6.1/ asterisk-addons-1.6.1
wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-2.1.0.4.tar.gz
wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-2.1.0.2.tar.gz
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz
tar zxvf freepbx-2.5.1.tar.gz
tar zxvf libpri-1.4.9.tar.gz
tar zxvf dahdi-linux-2.1.0.4.tar.gz
tar zxvf dahdi-tools-2.1.0.2.tar.gz
tar zxvf lame-398-2.tar.gz
Instalamos lame
cd lame-398-2
./configure
make
make install
cd /usr/src
Instalamos libpri
cd libpri-1.4.9
make
make install
cd /usr/src
Parcheamos los fuentes de dahdi-linux y dahdi-tools
******Esta sección sólo es necesaria si queremos instalar la OpenVox A800P/A1200P o la B200P/B400P ******
Para la A800P – A1200P
Descargamos el siguiente parche de la web de OpenVox. Ver aquí la documentación del mismo
wget http://openvox.com.cn/downloadsFile/a1200p-a800p_driver_with_dahdi.c
mv a1200p-a800p_driver_with_dahdi.c opvxa1200.c
cp opvxa1200.c /usr/src/dahdi-linux-2.1.0.4/drivers/dahdi/opvxa1200.c
Editamos el fichero Kbuild
vi /usr/src/dahdi-linux-2.1.0.4/drivers/dahdi/Kbuild
y añadimos debajo de esta línea: obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM) += wctdm.o
obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM) += opvxa1200.o
Guardamos el fichero y listo para instalar
Para la B200P – B400P
Este parche no es oficial. Se anda testeando para dar soporte nativo a las tarjetas HFC-4S y HFC-8S bajo DAHDI aprovechando las similitudes con la B410P que vende Digium.
cd /usr/src/dahdi-linux-2.1.0.4
wget ‘http://bugs.digium.com/file_download.php?file_id=21977&type=bug’ -O – | patch -p0
cd /usr/src/dahdi-tools-2.1.0.2
wget ‘http://bugs.digium.com/file_download.php?file_id=21995&type=bug’ -O – | patch -p0
Y tenemos las Dahdi preparadas para instalar.
******Aquí acaba la sección particular «OpenVox» *******
Instalamos dahdi-linux
cd dahdi-linux-2.1.0.4
make
make install
cd /usr/src
Instalamos dahdi-tools
cd dahdi-tools-2.1.0.2
./configure
make
make install
make config
cd /usr/src
Preparamos algunos valores (usuario, carpetas, etc.) necesarios para instalar Asterisk. (Ojo con las comillas, copiando y pegando las comillas no son correctas. Mejor escribe a mano los comandos con comillas)
useradd -c «Asterisk PBX» -d /var/lib/asterisk asterisk
mkdir /var/run/asterisk
mkdir /var/log/asterisk
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/lib/php/session/
nano +231 /etc/httpd/conf/httpd.conf
Cambiamos en el fichero el usuario apache y grupo apache a usuario asterisk y grupo asterisk.
Bajamos unas líneas y encontramos AllowOverride None. Lo cambiamos por AllowOverride All
Pulsamos control+x para guardar el fichero. Le decimos que si (si no para que editarlo?) y cerramos.
Instalamos asterisk
cd asterisk-1.6.1/
./configure
make
make install
Creamos y poblamos las bases de datos, sustituyendo a partir de aquí «mipassword» por la contraseña que se quiera usar.
/etc/init.d/mysqld start
cd /usr/src/freepbx-2.5.1
mysqladmin create asterisk
mysqladmin create asteriskcdrdb
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql
mysql
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY ‘mipassword’;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘mipassword’;
flush privileges;
\q
mysqladmin -u root password ‘mipassword’
Instalamos asterisk-addons
cd /usr/src/asterisk-addons-1.6.1/
./configure
make
make install
Y ahora FreePBX
cd /usr/src/freepbx-2.5.1
./start_asterisk start
yum install –y php-pear-DB
yum install –y php-mysql
./install_amp – -username=asteriskuser – -password=mipassword *****Los dos guiones NO llevan espacios entre ellos… Cosas de WordPress
./install_amp – -username=asteriskuser – -password=mipassword – -my-svn-is-correct *****Los dos guiones NO llevan espacios entre ellos
echo «/usr/local/sbin/amportal start» >> /etc/rc.local
chkconfig httpd on
chkconfig mysqld on
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
nano +73 /var/www/html/recordings/includes/main.conf.php
modificamos la línea
$ari_admin_password = » mipassword»;
guardamos los cambios y reiniciamos
shutdown –r now
Si todo ha ido bien, ya tenemos FreePbx en marcha
Nos conectamos via explorador Web a http://<ip_asterisk>/admin
Y nos vamos a Module Admin
>Pulsamos Check for Updates Online
>Download All
>Upgrade All
>Proccess
>Confirmamos
Repetimos el proceso hasta que no quede nada por instalar/actualizar
Instalación de Custom Contexts.
Es un módulo no oficial de FreePBX que sirve para controlar el acceso a las líneas salientes (al estilo de las PBX tradicionales). Más adelante veremos como funciona.
Descargamos http://mirror.freepbx.org/modules/release/contributed_modules/customcontexts-0.3.4.tgz
Lo renombramos a customcontexts.tar.gz
Desde FreePBX > Module Admin > Upload Module > Seleccionamos customcontexts.tar.gz > Lo subimos > Manage Local Modules > Custom Contexts > Install
Solo nos faltarían los ficheros de audio en español. Publicaré una configuración básica de Asterisk y FreePBX de ejemplo tan pronto como la tenga revisada.
Para ser el primer post en el blog, salió una sábana….
Asterisk 1.6 + DAHDI (Continuación) « El rincón de Odicha said
[…] Comentarios (RSS) « Un poco de Asterisk 1.6 + DAHDI (y otro poco de ojos rojos) […]
edgar said
les pido ayuda con ss7 estoy con la tarjeta te412p ccancelacion de eco y es muy difernte creo hacerlo fncionar con asterisk-gui el asunto son los pasos las deendencias y demas para que cora bien no uedo hacer levantar asterisk, no vi de veras en internet nadie que haya dicho por fin o hice fncionara pesar de que las compiaciones me dan bien a la hora de iniciar asterisk me dice que la configuracion de dahdi tene cnfictos para as informacion podemos hablar en linea ncluso edgarriverq@hotmail.com por favor ya estoy 2 smanas en esto y nada gracias anticipadas al buen corazon que me pueda ayudar
odicha said
Hola.
Te recomendaria que te pasaras por aqui http://groups.google.es/group/asterisk-es y verás como se resuelven tus dudas con la ayuda de todos
master said
Cuando coloque un manual de estos en la red asegurese que funcione y envie en total de los repositorios que sedeben instalar para que funcione tuve muchas complicaciones al seguir este manual una persona que tenga pocos conocimientos en linux nunca podria instalar asterisk si sigue estos pasos.
asterisk-es-rsp « El rincón de Odicha said
[…] Comentarios odicha on Odistuff rc1Disckey on Odistuff rc1Disckey on Odistuff rc1Disckey on Odistuff rc1master on Un poco de Asterisk 1.6 + DAHDI (y otro poco de ojos rojos) […]
Daniel said
Estuve compilando freepbx y cuando ejecuto
./install_amp –username=asteriskuser –password=mipassword
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Using username: asteriskuser
Using password: *********
Checking user..PHP Fatal error: Call to undefined function posix_getpwuid() in /home/dcorrea/freepbx-2.5.1/install_amp on line 708
te paso eso?
Alguna sugerencia ?
ruben said
hola tengo el mismo problema al ejecutar ./install_amp –username=asteriskuser –password=XXXX, me da error en la linea 725 en la funcion posix_getpwuid(), alguien lo ha solucionado??, espero que me puedan ayudar pues no puedo instalar freepbx en centos.
luis said
Hola, ante todo felicitarte por tu manual, al menos creo que avance mucho con tus escritos.
Solo tengo un detalle sucede que el lame y el libpri no pude instalarlo, tendre algun problema a futuro sino instalo esos dos programas????
Enormemente agradecido
Saludos cordiales
Luis
odicha said
Lame es para gestion de mp3 y libpri es necesario para todo lo que es rdsi y primarios. ¿Que problemas te dio al instalarlos? De todos modos este manual es bien antiguo… para usar solo como referencia, obsoleto diria yo.
Saludos