jueves, 14 de julio de 2011

Instalando y configurando Asterisk PBX en CentOS 6

En un post anterior les compartía el e-book Asterisk: The Future of the Telephony. Hoy vamos a tener un pequeño instructivo de cómo instalar Asterisk en CentOS 6 pero con la salvedad de que no utilizaremos tarjeta FXO (Foreign Exchange Office), la cual se utiliza regularmente para conectar nuestra PBX a una PSTN mediante una línea análoga. En consecuencia, la PBX que configuraremos, nos servirá únicamente para una red local y, si abrimos los puertos correspondientes en nuestro modem DSL, podremos accesarla desde Internet.

Instalando Asterisk PBX

Desde la página oficial de Asterisk podemos descargar el fuente necesario para su compilación e instalación, pero no sin antes instalar los paquetes necesarios para su compilación y la de otros componentes, que para este tutorial no son necesarios, como dadhi-linux y dadhi-tools en CentOS.



# yum install -y gcc ncurses-devel libtermcap-devel kernel-devel gcc-c++ openssl-devel newt-devel zlib-devel unixODBC-devel libtool make
Ahora nos dirigimos a /usr/src para descargar el fuente de Asterisk 1.6.2.19:
# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.19.tar.gz
# tar xzvf asterisk-1.6.2.19.tar.gz
# cd asterisk-1.6.2.19
# ./configure
# make
# make install
# make config
# make samples
Configurando Asterisk PBX
El archivo extensions.conf es la parte central de toda la configuración, dado que es donde se define el dialplan de Asterisk. Se compone de 4 partes principales: contextos, extensiones, prioridades y aplicaciones. El dialplan se divide en secciones denominadas contextos, que están rotuladas y contienen un grupo de extensiones. Los contextos se definen colocando su nombre entre corchetes ([]). Este nombre puede contener caracteres alfanuméricos además del guión y el guión bajo. Por ejemplo: [interno]

Todas las instrucciones son parte del contexto hasta que el próximo contexto es definido. Existen dos contextos especiales:
[general] (variables predefinidas)
[globals] (variables no predefinidas)
Una extensión es una instrucción que será seguida por Asterisk, luego de ser disparada por una llamada entrante o bien por dígitos discados en un canal, definida en el marco de un contexto. La sintaxis de una extensión es la siguiente: exten => nombre,prioridad,aplicación()
exten => 101,1,answer()
Extensions (start): Es una extensión especial que es utilizada si una llamada entra a un contexto sin una extensión destino específica (por ejemplo una llamada en un puerto FXO); la llamada trata de entrar automáticamente a la extensiones.
[interno]
exten => s,1,answer()
Una extensión puede tener varios pasos, denominados prioridades. Las prioridades comienzan con 1 y se ejecutan en orden numérico. Si no existe la prioridad N+1, Asterisk no salta a la siguiente prioridad (N+2). Cada prioridad ejecuta una única aplicación. Por ejemplo:
exten => 101,1,Answer()
exten => 101,2,Hangup()
Prioridades sin numerar
Asterisk introduce el uso de la prioridad n (next). Cada vez que Asterisk encuentra una prioridad n, toma el número de la prioridad anterior y le suma 1. Simplifica el proceso de escritura del dialplan, evitando tener que volver a numerar las prioridades al insertar una prioridad para la misma exten. Por ejemplo:
exten => 103,1,Answer()
exten => 103,n,hago algo
exten => 103,n,Hangup()
Nota como el orden numérico (1,2,3,etc) es reemplazado por la letra n.

Aplicaciones
Las aplicaciones realizan una acción determinada en el canal actual, controlando el comportamiento de la llamada y del sistema en sí. Algunos ejemplos son:
answer(): contesta una llamada
hangup(): cuelga una llamada
dial(): realiza una llamada saliente
playback(): reproduce un archivo de sonido
Ciertas aplicaciones requieren del pasaje de parámetros, estos se incluyen dentro de los paréntesis, separados por coma “,”.

Un Dialplan simple
Basándome en los conceptos anteriores y otros del libro de Asterisk, he creado este Dialplan sencillo y fácil de entener su funcionamiento.

Configuración del fichero extensions.conf (Todo esto va al final del fichero):
[FRATERNEO]
;Las extensiones del usuario 500.
exten => 500,1,Answer( ) ;Costumbre de que asterisk conteste la llamada
exten => 500,n,Dial(Sip/500) ;llamando al usuario 500
exten => 500,n,Voicemail(500@default,u) ;usuario no disponible
exten => 500,n,Voicemail(500@default,b) ;usuario ocupada
exten => 500,n,Hangup()  ;Otra buena costumbre que asterisk finalice proceso

;Las extensiones del usuario 510.
exten => 510,1,Answer( )
exten => 510,n,Dial(Sip/510)
exten => 510,n,Voicemail(510@default,u)
exten => 510,n,Voicemail(510@default,b)
exten => 510,n,Hangup()

;Las extensiones del usuario 520.
exten => 520,1,Answer( ) 
exten => 520,n,Dial(Sip/520) 
exten => 520,n,Voicemail(520@default,u) 
exten => 520,n,Voicemail(520@default,b) 
exten => 520,n,Hangup() 

;Las extensiones del usuario 530.
exten => 530,1,Answer( )
exten => 530,n,Dial(Sip/530)
exten => 530,n,Voicemail(530@default,u)
exten => 530,n,Voicemail(530@default,b)
exten => 530,n,Hangup()
Configuración del fichero sip.conf (Todo esto va al final del fichero):
[500]
context=FRATERNEO  ;El contexto que hablamos en el Extensions.conf
callerid="Claudio" <500> ;Identificador de llamada
secret=500 ;Contraseña
mailbox=500@fraterneo ;Correo de Voz, y esta en el contexto por FRATERNEO
type=friend
host=dynamic
canreinvite=no
call-limit=4
callgroup=1
pickupgroup=1
disallow=all
allow=gsm
allow=g729
allow=ulaw
allow=alaw

[510]
context=FRATERNEO
callerid="Jose" <510>
secret=510
mailbox=510@fraterneo
type=friend
host=dynamic
canreinvite=no
call-limit=4
callgroup=1
pickupgroup=1
disallow=all
allow=gsm
allow=g729
allow=ulaw
allow=alaw

[520]
context=FRATERNEO
callerid="Ignacio" <520>
secret=520
mailbox=520@fraterneo
type=friend
host=dynamic
canreinvite=no
call-limit=4
callgroup=1
pickupgroup=1
disallow=all
allow=gsm
allow=g729
allow=ulaw
allow=alaw

[530]
context=FRATERNEO
callerid="Dario" <520>
secret=530
mailbox=530@fraterneo
type=friend
host=dynamic
canreinvite=no
call-limit=4
callgroup=1
pickupgroup=1
disallow=all
allow=gsm
allow=g729
allow=ulaw
allow=alaw
Es sumamente importante no tocar el resto del fichero ya que todo está comentado y viene por defecto como ejemplo con sus comentarios y explicaciones.

Ahora procedemos a iniciar el servicio asterisk, hacer que cargue automáticamente al incicio y recargar el el Dialplan para que funcione con la configuración que hemos agregado.
# service asterisk start
# chkconfig asterisk --level 345 on
Para entrar a la consola de Asterisk lo haremos con el comando asterisk -rv (aunque podemos agregar muchas "v" para que sea más "verboso", es decir, nos de más información de lo que está pasando en Asterisk).
# asterisk -rvvvvvvvvvvvvv
>localhost*CLI> dialplan reload
Configurar los clientes
Solo nos queda esta parte de configurar los teléfonos. Estos pueden ser SoftPhones (aplicación) o teléfonos físicos que soporten el protocolo SIP. Un ejemplo de SoftPhone lo es Ekiga, en el cual podemos configurar una cuenta SIP.




Finalmente si abrimos los puertos de nuestro modem DSL que Asterisk utiliza, podremos accesar fuera de nuestra red local y configurar clientes amigos desde Internet. En este enlace pueden ver una lista de comandos del CLI de Asterisk.

Espero les sea de gran utilidad y aprendizaje. Cualquier sugerencia o corrección se las agradeceré en los comentarios!
ACTUALIZACION (01-11-2011): Al momento de configurar (./configure) instalando las fuentes de Asterisk podría ocurrir un error por falta de una librería XML. Sencillamente instalamos dicha librería (# yum install -y libxml2-devel), y probamos nueva vez el comando ./configure.

Gracias a Leon por el aporte.

76 comentarios:

  1. Hola estoy intentando instalar siguiendo tu opcion pero al hacer:

    #./configure
    y despues

    #make
    me marca error en
    make: *** [makeopts] Error 1

    a ver si me puedes hechar una mano muchas gracias!

    ResponderEliminar
  2. Hola Leon.

    ¿Es en CentOS? ¿Es toda la información que te da sobre el error? Es poca información y el tutorial está hecho para CentOS.

    Verifica que el sistema esté actualizado y que estén instaladas todas las dependencias.

    ResponderEliminar
  3. Creo que fue algo que se me quedo bloqueado por que reinicie el server y ya me jalo todo a la perfeccion. Ahora una pregunta, asi como esta la configuracion nada mas conecto un telefono IP sin agregarle una tarjeta o alguna otra cosa que se necesite o necesito comprar algo mas?
    o que necesito para configurarlo?
    muchisimas gracias en tu ayuda.

    ResponderEliminar
  4. Hola Leon.

    Si todo marcha bien en cuanto a configuración, no necesitas nada más. Solo debes configurar los teléfonos para que vean el Asterisk. Lo hice una vez con un Cisco, pero ahora no recuerdo. Debe haber tutoriales en la red sobre los teléfonos que tengas o mira sus manuales.

    Esa configuración funciona como una PBX local, es decir sin conexión a la red teleófinca o PSTN, para ello necesitas una tarjeta Digium o una equivalente.

    Puedes usar tus teléfonos físicos y también Softphones. Además si abres los puertos correspondientes de tu modem puedes configurar teléfonos desde cualquier lugar. Pero repito, no hay conexión a la red telefónica.

    Espero te sea de ayuda.

    Un saludo.

    ResponderEliminar
  5. Muchas gracias por la pronta respuesta, mira me encontre un telefono alcatel premium reflexes (4020) y estoy intentando configurarlo veremos como va la cosa, y muchisimas gracias por todo.

    ResponderEliminar
  6. Ya encontre el error tienes que instalar tambien
    #yum -y install libxml2-devel
    ya que al hacer el
    #./configure
    te marca un error en la libreria xml asi que debes de agregarlo

    Sigo haciendo pruebas. Buen tutorial

    ResponderEliminar
    Respuestas
    1. Esto justo era lo que me pasaba.. gracias por el apunte

      Eliminar
  7. Gracias Leon.

    Tomando nota. Por lo que veo es probable que ya mi sistema tenía esa librería instalada, por lo que no me dió ese error.

    Gracias por tu colaboración.

    Un saludo.

    ResponderEliminar
  8. Tendras algun link para prender a configurar asterisk y otro para usar dahdi tool? muchas gracias

    ResponderEliminar
  9. Hay mucha documentación en la página oficial de Asterisk. También aparecen muchos libros en páginas donde publican ebooks.

    Este manual de practicas en español es muy bueno: http://ubuntuone.com/4tRrzs69ZQCMWZgz7AoqIj

    Un saludo.

    ResponderEliminar
  10. Hola todo muy bien hasta ahora ya quedo de maravillas, pero una ultima pregunta sabras como hacer para tener una extension externa, osea que se encuentre fuera de la red y se accese por internet que necesito?

    ResponderEliminar
  11. Abre los puertos correspondientes en el modem o router.

    ResponderEliminar
  12. ya tengo los puertos abiertos, pero ahora el sip.conf como engo que poner la extension, veo algo de host, domain, nat que valor poner o como configurarlo

    ResponderEliminar
  13. A mi no me fue necesario configurar algo en los ficheros de Asterisk. SIP por lo general escucha en el puerto 5060.

    Verifica con nmap por si hay otro en uso por Asterisk.

    Eso es todo.

    ResponderEliminar
  14. Sera que puedes postear la parte de [general] del sip.conf?
    ya que las extenciones externas no jalan si no tienen una IP fija :S

    ResponderEliminar
  15. Como indico en el post, el fichero sip.conf no lo modifico, pero sí agrego al final el contenido indicado.

    Por si las moscas, prueba con Centos 5.6

    ResponderEliminar
  16. Hola que tal me ayudo mucho tu blog, me preguntaba si me puedes ayudar a configurar o cambiar la voz de la operadora no se si se instalen algunos paquetes ect. gracias

    ResponderEliminar
    Respuestas
    1. Gracias se7us.

      Claro que se puede. Solo necesitas descargar los paquetes idioma desde asterisk.org o instalarlos desde yum.

      Veré cómo se hace y luego lo publicaré por aquí.

      Eliminar
  17. Hola ya encontré la forma de hacerlo es la sig:
    se descargan los sig tar
    cd /usr/src
    mkdir voces
    cd /voces
    wget http://www.voipnovatos.es/voces/voipnovatos-core-sounds-es-ulaw-1.4.tar.gz
    wget http://www.voipnovatos.es/voces/voipnovatos-extra-sounds-es-ulaw-1.4.tar.gz
    y posteriormente se descomprimen
    tar zxvf voipnovatos-extra-sounds-es-ulaw-1.4.tar.gz
    tar zxvf voipnovatos-core-sounds-es-ulaw-1.4.tar.gz
    y por ultimo se mueven a las carpetas correspondientes...

    mkdir /var/lib/asterisk/sounds/es/dictate
    mkdir /var/lib/asterisk/sounds/es/letters
    mkdir /var/lib/asterisk/sounds/es/silence
    mkdir /var/lib/asterisk/sounds/es/followme
    mkdir /var/lib/asterisk/sounds/es/phonetic
    mkdir /var/lib/asterisk/sounds/es/digits
    mv es/* /var/lib/asterisk/sounds/es/
    mv digits/es/* /var/lib/asterisk/sounds/es/digits/
    mv dictate/es/* /var/lib/asterisk/sounds/es/dictate/
    mv letters/es/* /var/lib/asterisk/sounds/es/letters/
    mv silence/es/* /var/lib/asterisk/sounds/es/silence/
    mv followme/es/* /var/lib/asterisk/sounds/es/followme/
    mv phonetic/es/* /var/lib/asterisk/sounds/es/phonetic/
    y en el sip solo agregamos lo sig
    [general]
    language=es
    y eso es todo.
    Saludos

    ResponderEliminar
  18. hola otra vez molestando, tengo asterisk 1.6 soporta ipv6? lo que pasa que lo quiero implementar y que sofphone lo soporta?
    espero me puedas ayudar gracias.

    ResponderEliminar
    Respuestas
    1. De manera oficial Asterisk no soporta IPv6, pero existe este proyecto que lo porta a IPv6 http://www.asteriskv6.org/

      Eliminar
  19. Hola,

    Quería darte la gracias por el manual me ha servido para instalarlo en un VPS de 128MB de RAM en va fluido.

    He seguido tus pasos instalando: asterisk-1.8.16.0.tar.gz y para tener audio fuera del VPS en el fichero sip.conf he añadido estas líneas:

    [general]
    directmedia=off

    y en cada extensión:

    [500]
    nat=yes

    Un saludo!

    ResponderEliminar
  20. saludos el asterisk para windows soporta el Queue ?
    ya que estoy programandolo y me da error en la linea del Queue

    warning[7796]

    ResponderEliminar
  21. una pregunta... he hecho todo lo que dice el tutorial en mi centos 6.4 ya actualizado pero no encuentro donde se encuetnra el extensions.conf . Alguien ayuda porfavor que me quede atorado con la instalación

    ResponderEliminar
    Respuestas
    1. Al parecer no se instaló correctamente. Muestrame la salida del comando ls -l /etc/asterisk/ para ver que archivos tienes ahi.

      Eliminar
  22. buenas he configurado 2 telefonos ip Grandstream: gxp1100 y un gxp 280, y tb una pc. de la pc a ambos telefonos todo funciona bien, del gxp280 al telefono y a la pc todo bien
    pero del gxp1100 no puedo realizar ninguna llamada, en asterisk me muestra warning[2821]: Not a Sip header que puede estar fallando, ya probe cambiadole los usuarios y sigue igual

    ResponderEliminar
    Respuestas
    1. Hola alexis.

      Evidentemente es un problema del equipo. Verifica las configuraciones de cada uno y compáralas. Busca también información en la página del fabricante.

      Un saludo.

      Eliminar
  23. Hola tengo una consulta, como puedo hacer para conectarme al asterisk desde otra red?? porque yo abrí los puertos de mi router y vi el iptables que estaba en el link que dejaste pero tampoco puedo... que ip es la que se le asigna al softphone si la ip que me entrega asterisk es local y no puedo usarla fuera de mi red

    ResponderEliminar
    Respuestas
    1. Hola sbym. Con el softphone directamente no se hace, si a lo que se refiere es a hacer llamadas desde y hacia fuera de la red local via Internet.

      Si es asi, eso se logra abriendo esos puertos en su modem/router que es la puerta de enlace a Internet.

      Cada aparato de esos lo llama de distintas formas, pero es direccionamiento de puertos o reenvío de puertos. Es lo mismo que cuando abrimos los puertos para accesar al VNC o RDP de una PC en la red local desde Internet.

      Saludos...

      Eliminar
  24. hola que tal amigo veo que tus respuestas son bastante prontas y certeras me gustaría saber algo sobre la instalación de Asterisk 1.8.22
    en Centos 5.9
    ya instale dahdi y luego libpri y al intentar instalar Asterisk le doy Make clean al codigo fuente y luego ./configure (hasta el momento todo a la perfección, al menos, eso creo), por ultimo, escribo "make menuselect" y al presionar enter me bota el siguiente error:
    ----------------------------------------------
    ****
    **** The configure script must be executed before running 'make'.
    **** Please run "./configure".
    ****
    make: *** [makeopts] Error 1
    -----------------------------------------------

    ejecuto make y luego "./configure" y luego make menuselect y el error persiste. te agradezco de corazón una pronta ayuda.

    ResponderEliminar
    Respuestas
    1. Hola Germán.

      Gracias por tu consulta.

      Lo primero que veo es que estás usando CentOS 5. Yo utilicé la 6 y no se si todas las dependencias coinciden con la 5.

      Segundo, los pasos para compilar son:
      # ./configure
      # make
      # make install
      # make config
      # make samples

      El error te está informando que hay que hacer primero un ./configure antes del make.

      Entiendo que es probable que el ./configure no esté terminando satisfactoriamente por lo que mencioné en el primer punto de este comentario: Revisa las dependencias y las librerías de desarrollo y compilación para que todo salga bien.

      En CentOS 6 todo sale bien según esta guía, así que te recomiendo que pases del 5 al 6 y pruebes.

      Un saludo.

      Eliminar
    2. hola que tal muchísimas gracias por la pronta respuesta, tan pronto tenga mi ordenador cerca lo probaré tal cual como dices.

      por otro lado me gustaría saber si es necesario hacer algo sobre el selinux y no hace muchos minutos estuve leyendo que podría ser error del servidor ntp, realmente no caí en cuenta de que hora tenia mi equipo ya que Centos lo tengo instalado solamente consola y nada gráfico. ¿Tendrá algo que ver la hora y fecha? Te agradezco de antemano enormemente si me mencionas algunas recomendaciones a la hora de instalar Asterisk

      Eliminar
    3. En ese caso, deshabilita selinux. En cuanto a la hora, no creo que ese sea el inconveniente. Pero como no has probado lo que te dije anteriormente, solo estríamos especulando.

      Saludos.

      Eliminar
    4. hola que tal muchisimas gracias dehabilitar el selinux me ayudó bastante, tambien probé colocandolo en permisivo y funciona bien, el error era de escritura al instalar una dependencia "libxml2" es una L minuscula y no un 1(uno) jaja muchas gracias un saludo desde Colombia. Exitos

      Eliminar
  25. ESTOY TRATANDO DE HACER ESTO PERO EL ./configure ME DA ESTE ERROR: configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details.
    help!

    ResponderEliminar
    Respuestas
    1. Esto lo resuelve: yum install -y gcc ncurses-devel libtermcap-devel kernel-devel gcc-c++ openssl-devel newt-devel zlib-devel unixODBC-devel libtool make

      Eliminar
  26. Esto fue lo primero que hice, ya que estoy siguiendo paso a paso tu publicacion, me podrias decir por favor que otra cosa hacer?

    ResponderEliminar
  27. tambien intente con:yum -y install libxml2-devel y nada :(

    ResponderEliminar
    Respuestas
    1. Debe usar CentOS 6.3 o 6.4 para esta guía. Reinstale CentOS nuevamente y haga yum update -y antes de empezar la guia.

      Eliminar
  28. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  29. Muchas gracias me faltaba hacer el YUM UPDATE y muchas gracias por responderme tan rapido. Ahora para quien lea esto, tengo un problema con los comandos sip, por ejemplo, miren este error cuando intento ejecutar "sip show peers": bash: sip: command not found

    Ya he intentado instalando asterisk de varios modos y continuo con el mismo error...

    ResponderEliminar
  30. amigo asludos segui tu tutorial al pie de la letra y quisiera saber cual es la configuracion de los SoftPhone Ekiga gracias x tu ayuda..

    ResponderEliminar
    Respuestas
    1. Hola Bryan.

      En este mismo post está esa configuración. Fíjate bien en la imagen de la parte Configurar los clientes.

      Saludos

      Eliminar
  31. Hola ...... saludos, tengo un problema y tengo que terminar este proyecto para el colegio.... al iniciar los servicios de asterisk y abrir la consola minuciosa me da el siguiente no se si llamarlo error, por que solo me niega permisos

    [Aug 13 15:13:57] WARNING[2078]: pbx_spool.c:472 scan_thread: Unable to open directory /var/spool/asterisk/outgoing: Permission denied


    Si me pudieran ayudar se los agradecería, ingrese a la carpeta del los que me niega y se encuentra totalmente vaciá. necesito ayuda urgente....... Help Me friend please :o...

    ResponderEliminar
    Respuestas
    1. Es simple: Debes ejecutar asterisk con privilegios, ya sea con root o usando su o sudo.

      Saludos.

      Eliminar
    2. siempre lo inicio en modo root para poder configurar...pero sigue dandome la advertencia amigo.

      Eliminar
  32. HOla saludos tengo un problema como encuentro cual es mi ip del servidor de registro. si me puede ayudar se lo agradeceria mucho.

    ResponderEliminar
    Respuestas
    1. Me imagino que se refiere a la IP de su host. Use el comando ifconfig para visualizar información sobre las interfaces conectadas.

      Eliminar
  33. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  34. Hola Claudio, mi nombre es Croelan de Perú, he instalado de acuerdo a tus indicaciones, he instalado CentOS 6.4 en minimal (espero que esta bien que he instalado en minimal) con Asterisk 1.8, la verdad no me funciona, estoy utilizando con Virtualbox en mi laptop, no se que esta sucediendo, necesito hacer pruebas y hacer mis practicas. ojo no he instalado LIPBRI, DAHDI. cuando termino de instalar Asterisk 1.8, puse asterisk -rvvv me sale un aviso "Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl) y cuando vuelvo a poner asterisk -rvvv, sale un aviso otro "read() failed: Connection reset by peer, Executing last minute cleanups, y otra vez asterisk -rvvv , me sale otro error "Disconnected from Asterisk server" y en la ejecucion sale "WARNING [3841] chan_skinny.c chan_mgcp.c, Por favor Claudio necesito tu apoyo para terminar y hacer mis pruebas con los telefonos. te informo nuevamente CentOS 6.4 esta instalado en minimal y asterisk 1.8 en Virtualbox Oracle. Espero tu pronta noticia.

    ResponderEliminar
    Respuestas
    1. Como usted puede observar, esta guía s hizo con Asterisk 1.6. Si le falta cosas por instalar y no ha seguido la guía al pie de la letra, las cosas no pueden funcionar como se espera.

      Eliminar
  35. Gracias Claudio, te consulto:
    1.- He instalado CentOS 6.4 en Minimal es correcto?
    2.- O tengo que instalar CentOS 6.4 en Server?
    3.- En Asterisk.org solamente hay version de asterisk 1.8, asterisk 10, asterisk 11, asterisk 12, no hay version asterisk 1.6, que version lo puedo instalar para CentOS 6.4?
    4.- Donde consigo Asterisk 1.6 para instalar en CentOS 6.4?
    Claudio, lo estoy instalando bajo VirtualBox, por favor tu apoyo en que me he fallado.

    ResponderEliminar
    Respuestas
    1. Le recomiendo se siga la guía paso a paso, y luego de hacerla satisfactoriamente, invente su propio escenario y adapte las configuraciones a su necesidad.

      Eliminar
  36. Estimado Claudio, he seguido tus pasos con asterisk 1.6, ahora bien he ingresado las configuraciones con tus pasos con sip.conf y extensions.conf, ahi todo bien, ahora he configurado el softphone, no se comunica con asterisk, en cual que esta bien instalado el asterisk, por favor me puedes indicar los pasos porque no se comunica el asterisk con el softphone.

    ResponderEliminar
    Respuestas
    1. Configure iptables y selinux para que permitan paso a Asterisk.

      Eliminar
  37. Claudio;
    he configurado el iptables y selinux
    SELINUX=disabled, grabe el archivo y shutdown -r now

    # iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 5036 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT

    service iptables save
    service iptables start

    ya lo hice, softphone no se comunica con asterisk

    ResponderEliminar
  38. Revise los logs del sistema en busca de pistas.

    ResponderEliminar
  39. Hola buenas, por favor si alguien me puede ayudar, tengo configurado un elastix, que me funciona bien.
    Ahora he instalado un equipo grandstream gwx 4108 con lineas analógicas, que se registra en mi servidor con la extención 119, si yo llamo de cualquier extención a la extención 119, me da tono y me permite marcar por ejempro marco 119 me da tono y luego marco 911111111, la llamada me sale sin problemas.
    Lo que quiero es que me ayuden a configurar mi asterisk-elastix, para que desde cualquier extencion puedan marcar 0034911111111 y la llamada salga por la extencion 119.
    Gracias de ante mano hasta ahora tengo grandes lagunas en la configuracion del dial plan.

    ResponderEliminar
  40. Muchas gracias, me sirvio tu procedimiento al pie de la letra.. Mi servidor lo implemente en CentOS-6.3 (Versión final) y aca las observaciones de mi parte para complementar su instructivo de instalación.

    1. Al intentar compilar el ejecutable ./configure se encuentra que arroja un error. Es necesario correr previamente un script con unos pre-requisitos que esta dentro de las carpetas de asterisk. La solución la encontre en http://matrixsust.blogspot.com/2014/03/asterik-configure-error-uuid-support.html

    contrib/scripts/install_prereq install

    El scritpt le indica al sistema más paquetes y sus dependencias.

    2. Vuelve a arrojar errror el ./configure.. Hace falta una libreria JSON Se configura siguiendo el link http://itgalaxy.net/linux-asterisk-configure-error-json-support-not-found-this-typically-means-the-libjansson-development-package-is-missing/

    ************************************* Proceso...****************

    cd /usr/src/ && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
    tar -zxf jansson-2.5.tar.gz
    cd jansson*
    ./configure --prefix=/usr/ && make clean && make && make install && ldconfig
    ******************************************

    3. Arroja otro error...

    configure: WARNING: *** Asterisk now uses SQLite3 for the internal Asterisk database.
    configure: WARNING: *** Please install the SQLite3 development package.

    Se soluciona con este enlace http://matrixsust.blogspot.com/2014/03/asterik-configure-warning-please.html con el siguiente comando..

    yum install sqlite, sqlite-devel

    ************por fin paso el ./configure...!!!!*********************

    Se sigue continuando con el manual de instalación de http://fraterneo.blogspot.com/2011/07/instalando-y-configurando-asterisk-pbx.html

    Se procede a configurar los archivos de extensions y al intentar iniciar arrojo un error raro, aparentemente se soluciono con esto..
    ERROR
    [root@localhost asterisk]# asterisk -rvvvvvvvvvvvvv
    asterisk: error while loading shared libraries: libasteriskssl.so.1: cannot open shared object file: No such file or directory
    SOLUCION
    [root@localhost asterisk]# echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local.conf
    [root@localhost asterisk]# /sbin/ldconfig

    Por ultimo descargue el zoiper para android y no registraba. Desactive el selinux (Por si las moscas) y al bajar el iptables (Service iptables stop) registro mi telefono... (Tengo pendiente pulir las reglas del firewall para dejarlo bien activado porque debo hacer nat o una DMZ para colocar este server en internet.

    Realice pruebas y estoy muy contento (Casi compro un appliance zycoo de 300USD) viendo que por aca podía hacerlo mas facil.. Voy a comprar una tarjeta asterisk de FXO para conectar mi linea telefonica.

    Lo monte con una board MSI viejita con un procesador de 1 solo nucleo y 500MB de ram y anda de maravilla.

    Mil y mil gracias..!!

    ResponderEliminar
    Respuestas
    1. Excelente.

      Me alegra saber que le fue de ayuda.

      Recuerde no deshabilitar Selinux ni Iptables, mejor busque la forma de configurarlos para que permita los servicios y puertos para que Asterisk funcione.

      Un saludo.

      Eliminar
  41. hola ....soy novate en esto ,tengo como tarea configurar asterisk en un servidor centos..será solo local ..y no tengo telefonos analogicos ni IP entonces que software(softphone) me recomiendas utilizar???

    ResponderEliminar
    Respuestas
    1. Hola José.

      Yo uso Ekiga y Linphone. Hay alternativas que puedes instalar en GNU Linux http://alternativeto.net/software/ekiga/

      Saludos.

      Eliminar
  42. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  43. Hola que tal Excelente aporte y ¿puedo utilizar la versión 6.5 de Centos?

    ResponderEliminar
  44. consulta que puertos tienen que estar habilitados

    ResponderEliminar
  45. Hola, amigo estoy tratando de crear una centralita telefónica integrando la pstn de una empresa, tienes algun ejemplo de como configurar dahdi con la pstn? gracias

    ResponderEliminar
    Respuestas
    1. Hola.

      Por ahora no tenemos una guía como esa. Pero puedes consultar la documentación en la página de Asterisk.

      Saludos.

      Eliminar
  46. SRP547W asterisk fxs

    Hola he conseguido hacer funcionar el fxs del ruter adsl con lo siguiente en sip.conf
    [101]
    type=friend
    username=101 ; va en el userid de line1 en el ruter
    secret=101 ; va en el pasword de line1 en el ruter
    qualify=yes
    nat=yes
    host=192.168.1.1 ; direccion ip del ruter en dynamic asterisk no sabe donde esta, poner ip.
    canreinvite=no
    context=phones
    regext=101

    En el ruter poner transport udp sin el puerto con que hara el rtp, suele poner transport a 5061, borrar esto, dejar vacio.

    En proxy y registration nada sin proxy, ni outbound, ni register a yes, solo cogeremos los fxs con un asterisk instalado en un ordenador, yo lo tengo en un MacBook, me explico podras hacer llamadas internas desde un zoiper hacia y desde los fxs que son los telefonos de teclas de casa.

    Yo en el display name le pongo srp547w ya que solo es una etiqueta que se le puede poner a los mensages sip.

    Finalmete ponemos esto en el dialplan de nuestro line 1 (... |10xS0<:@192.168.1.100>) esta será´la ip de nuestro ordenador con el asterisco instalado, eso de ahí arriba va a continuacion de la conf por defecto o la que tengais suele ser algo así (*xx|[3469]11|0|00|[2-9] ... cada orden de dialplan se separa por un | palito de estos indica una o haz esto o otra cosa bueno pues le poneis un palito al final 10x extensiones 101,102,103,etc, en el admin guide del ruter lo explica, y ahí la ip y cerramos parentesis.
    http://www.cisco.com/c/dam/en/us/td/docs/routers/srp520_series/srp521w/administration/srp500_admin.pdf

    Registro, fxo, enable IP dialing, etc, aun no he sido capaz de configurarlo, la idea es poner el fallback pstn como una opcion de salida, esdecir hacer y recibir llamadas por un zoiper en la wifi por registro istp, skype, etc... o fxo. Ni tampoco conozco los parametros electricos de cada pais creo que en España son 12V 50 V y 100 V en llamada, pero no se cual es la conf forward/reverse de la fxs ni tampoco los tonos regional y amperage de la FXO.

    Por lo demás el equipo funciona muy bien hay que afinar los automaticos no acaban de sincronizar los windows apple, etc, me explico, todo lo que pone manual, auto, etc hay que ponerlo buscandolo, adsl incluso. El firewall hay que ajustarlo trabaja con el servidor sip levantado, hay que afinar protegiendo con spi y filtro dos, el proxy tambien se puede filtrar obretodo en ios, y bueno cerrar los puertos de acceso al router desde internet ssh, http, etc, y el resto nat hace lo que debe.

    Un saludo, espero poder descargar las configuraciones en breve

    ResponderEliminar
  47. Asterisk con sipura, spa o srp.

    Hola segun he probado puedes configurar un asterisk en varios modos de funcionamiento para acceder a el hardware por IP y así usar los telefonos: fxo, fxs, voip ...
    Uno de ellos es el que hace que asterisk identifique una extension poniendo al hw un usuario y un passwd, y pasandole al asterisk la @ip del hw y el usr y passwrd, esto da visibilidad a los fxs con asterisk.
    Otra manera es haciendo que asterisk sea el proxy, por tanto al hw le pasamos la ip del asterisk y la ponemos en proxy, le decimos que registre.
    Según he leido estos aparatos de red, sólo aplican el dialplan al marcado del usuario, y ahí podemos indicar hacia a que host, interface mandar la llamada Ss([69]xxxxxxxx<:@asterisk>| ...) esto quiere decir que es algo parecido a llamadas salientes: dialplan saliente. En caso de una llamada entrante, o llamadas entre extensiones fxs, o etc, en caso necesario, no he encontrado ningún dialplan que me mande las llamas hacia asterisk, ya que un resgistro en un proxy, no tiene porque saber mis llamadas en la pstn, fxo, telefono normal de línea, es decir si le pongo un skype, no va a mandar las llamadas de mi línea a skype puesto que es otra línea, otro problema es que se suele perder el tono, hay configuración regional, reset de fáfrica, configuración de tonos, seguimiento de línea, asterisk, etc, que lo solucionan, yo lo desconozco. Me gustaria saber cual es el dialplan que envía las llamadas del fxo al asterisk, y el dialplan que manda las llamadas del asterisk al ruter, sip.conf, extensions.conf y el dialplan del ruter. Sigo buscando...

    ResponderEliminar
  48. Configuración de proxy (servidor VoIP de contrato) en ruters con fxo.

    Hola, como puedo especificar la dirección de la llamadas, si me llaman por el proxy las puedo mandar a los fxs, he visto que a veces el srp cuando recibe llamadas hace peticiones sip y rtp, lo que no se es por que no puedo identificar que pasa, creo que si contrato un número IP puedo hacer sonar los fxs pero desconozco que pasará con esos paquetes sip, creo que hay configuracion sip en el pstn y enable ip equivale a los sipura voip to pstn o algo así pero cada vez que consigo hacer algo el equipo pierde configuraciones o tal vez esté pasando pr varias centrales en el fxo y por esto no acaba de funcionar el adaptador del IOS cisco y no se volver a la primera central, o algo así me he esperado pero nada no detecta el fallo y no va, sobre todo suele perder tonos en el fxs y llamadas entrantes, y a veces el tono en la fxo.

    ResponderEliminar
  49. Configuración de proxy (servidor VoIP de contrato) en ruters con fxo.

    Hola, como puedo especificar la dirección de la llamadas, si me llaman por el proxy las puedo mandar a los fxs, he visto que a veces el srp cuando recibe llamadas hace peticiones sip y rtp, lo que no se es por que no puedo identificar que pasa, creo que si contrato un número IP puedo hacer sonar los fxs pero desconozco que pasará con esos paquetes sip, creo que hay configuracion sip en el pstn y enable ip equivale a los sipura voip to pstn o algo así pero cada vez que consigo hacer algo el equipo pierde configuraciones o tal vez esté pasando pr varias centrales en el fxo y por esto no acaba de funcionar el adaptador del IOS cisco y no se volver a la primera central, o algo así me he esperado pero nada no detecta el fallo y no va, sobre todo suele perder tonos en el fxs y llamadas entrantes, y a veces el tono en la fxo.
    El proxy asterisk (servidor en mac) me enseña esto, bueno te deja comprobar funcionalidades para mandar llamadas entre oficinas o ver que le pasa a tu telefono SIP.

    SIP/2.0 200 OK
    To: ;tag=afa6e570d2160c87i0
    From: "asterisk" ;tag=as482fd221
    CALL-ID: 44ccef1a116545094de6154d49b71fdd@192.168.1.105:5060
    CSeq: 102 OPTIONS
    Via: SIP/2.0/UDP 192.168.1.105:5060;branch=z9hG4bK064d78f0
    Server: Cisco/SRP547-1.2.6(003)
    Content-Length: 0
    Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
    Supported: x-sipura, replaces
    Accept-Language: en


    GREAT DAY!!

    ResponderEliminar
  50. :D muchas gracias por el manual, me ayudo mucho y gracias por sus aportes, me esta corriendo a la perfección..

    ResponderEliminar
  51. que tal buen día yo tengo el siguiente problema y no puedo crear campañas, en elastix y no se por donde empezar.

    Error de conexion a la base de datos - SQLSTATE[28000] [1045] Access denied for user 'asterisk'@'localhost' (using password: YES)

    ResponderEliminar
  52. buen día a todos que tal he tenido el siguiente error en el modulo de call center ya que no he podido crear campañas, si alguien me puede guiar se lo agareceria. Error de conexion a la base de datos - SQLSTATE[28000] [1045] Access denied for user 'asterisk'@'localhost' (using password: YES)

    ResponderEliminar