Configuracion de Asterisk 1.6.X - Segunda Parte - sip.conf

Actualizado 5 septiembre 2009

Hoy empezaremos con la configuración del archivo sip.conf que es donde tenemos que definir nuestras extensiones, nuestros proveedores VoIP y todo lo relacionado con el protocolo SIP. En otro articulo hablaré del protocolo IAX, que es otra forma de configurar nuestra extensiones. El archivo sip.conf està estructurado en tres bloques. La parte general donde hay que definir la configuración general de nuestras extensiones, el bloque central donde configuraremos la registración a nuestros proveedores VoIP (y, si queremos, los datos para conectar entre ellos distintos servidores Asterisk), y la parte final del archivo donde configuraremos todas nuestras extensiones internas y externas.

Pensamos en una centralita que algún día hemos visto entrando a alguna empresa. Asterisk funciona en el mismo modo. Con las extensiones configuradas podremos llamar de una a otra, enrutar las llamadas a teléfonos fijos o celulares, hacia nuestros proveedores VoIP y utilizar las típicos servicios de estos aparados como llamadas en espera, desvío de llamadas, llamada a tres, contestador, etc.

La que sigue es la configuración de una parte de mi sip.conf; cada línea del archivo viene acompañada de una breve explicación después del punto y coma. Ahora tengo instalada la versión 1.6 de asterisk pero la mayoría de las opciones son validas también para las versiones anteriores.

[general]       ; etiqueta que introduce la parte general de la configuración

allowguest=no ; No permitir llamadas de extensiones SIP remotas sin contraseña

bindport=5060 ; el puerto utilizado para conectar las extensiones SIP al servidor asterisk (protocolo UDP)

bindaddr=0.0.0.0 : la dirección IP para conectarse al servidor Asterisk (en este caso cualquier dirección de la computadora donde está asterisk)

;tcpenable=yes ; desde la versión 1.6 es posible configurar el servidor para que permita también conexiones TCP

;tcpbindaddr=0.0.0.0:5059 ; dirección y puerto para las conexiones SIP con protocolo TCP

callevents=yes ; Cuando hay eventos (llamadas, etc.) estos vienen notificados al Asterisk Manager (útil para programas externos tipo FOP)

context=phones ; el contexto de base que todas las extensiones utilizaran si no viene especificado diversamente

domain=sip.miodominio.com ; el dominio local para el servidor asterisk. En mi caso son dos.

domain=10.8.0.1 ; Si queremos conectarnos a Asterisk usando un segundo dominio (ejemplo una red VPN)

subscribecontext = subscribe; contexto donde configurar las extensiones para activar la función subscribe del protocolo SIP

allowsubscribe=yes ; esto permite a las extensiones controlar el estado de las demás

notifyringing=yes ; notifica si la extensión está timbrando a las demás extensiones (ya veremos como funciona)

notifyhold=yes ; notifica si la extensión está en espera

disallow=all ; deshabilitar todos los codecs (audio y video)

allow=ulaw ; habilita el codec audio ulaw de base para todas las extensiones

allow=alaw ; igual que arriba para el codec alaw

useragent=X-Lite ; la centralita se presentará con este nombre. A veces algunos proveedores no permiten conectarse a ellos si reconoces que    detrás de la conexión está un servidor Asterisk. En este modo nos presentamos como si fuéramos el softphone X-Lite

realm=sip.voztovoice.com ; si definimos esta opción podremos crear las contraseñas cifradas con el protocolo MD5

t38pt_udptl=yes ; permite el uso del protocolo T38 (fax sobre IP) pero solo para conexiones directas

videosupport=yes ; Para permitir videollamadas

srvlookup=yes ; permite hacer busquedas de registros DNS SRV para llamadas SIP salientes basadas en los nombres de dominio

Ahora viene la registración a nuestros proveedores de llamadas. Si los vamos a usar solo para las llamadas salientes no hace falta configurar esta parte. Les pongo un ejemplo a modo de explicación

register => fulano:contraseña@sip.justvoip.com

Nos registramos con el proveedor con el username fulano, la contraseña y la dirección del servidor del proveedor. Si el servidor usa un puerto que no es el 5060 tenemos que especificarlo al final de la línea de este modo

 

register => fulano:contraseña@sip.justvoip.com:5061

Ahora pasamos a la configuración de las extensiones:

[2000] ; numero de la extensión

accountcode=2000 ; el código que aparecerá en el registro de llamadas para esta extensión

language=es ; si hemos instaladas locuciones en más de un idioma, aquí podemos definir cual idioma usará la extensión

type=friend ; tipo de extensión. Puede ser friend, user o peer. Friend puede hacer y recibir llamadas, user solo recibir y peer solo puede hacer (como en el caso de proveedores VoIP que usamos solo para hacer llamadas)

secret=contraseña ; la clave de la extensión

qualify=yes ; Para saber el tiempo de respuesta de una extensión y si está alcanzable o no

mailbox=2000@default ; la casilla de voz de la extensión (según la configuración del archivo voicemail.conf)

host=dynamic ; si la extensión se conecta remotamente cambiando continuamente su direccion IP se pone este parametro

dtmfmode=rfc2833 ; el protocolo para enviar los tonos DTMF

context=phones ; el contexto que usará la extensión

canreinvite=no ; yes si queremos que la extensión intente conectarse directamente con la extensión llamada. No si queremos que Asterisk haga de puente entre las dos extensiones.

nat=yes ; si la extensión se conecta al servidor asterisk detrás de un cortafuego hay que poner yes

callerid=Fulano <2000> ; el nombre y el numero de identificación de la extensión

disallow=all ; deshabilitar todos los codecs

allow=gsm ; habilita el codec audio gsm (el primero que se intentará utilizar a lo largo de una llamada)

allow=ulaw ; habilita el codec audio ulaw

allow=alaw ; habilita el codec audio alaw

allow=g729 ; habilita el codec audio g729

allow=h263 ; habilita el codec vídeo h263

Ahora un ejemplo para un proveedor de llamadas VoIP  

[justvoip] ; nombre que le asignamos al proveedor

type=peer ; lo vamos a utilizar solo para llamadas salientes (peer)

host=sip.justvoip.com ; el nombre del host del proveedor

fromdomain=sip.justvoip.com ;

fromuser=fulano ; los dato que nos pide el proveedor para conectarnos (usuario y contraseña)

username=fulano

secret=contraseña

qualify=yes
canreinvite=no
dtmfmode=rfc2833

context=from-justvoip ; el contexto de utilizar en extensions.conf para las llamadas entrantes

call-limit=2 ; numero de canales que brinda el proveedor.

language=es
disallow=all
allow=ulaw
allow=alaw
allow=g729  

Cada vez que cambiamos la configuración de nuestro sip.conf tenemos que recargarla. Abrimos la consola de asterisk

asterisk -rvvvvvvvvvv

y escribimos

CLI> sip reload

Reloading SIP

Estos son los comandos disponibles para las extensiones SIP

CLI> help sip

                    sip notify Send a notify packet to a SIP peer
            sip prune realtime [peer|all] Prune cached Realtime users/peers
              sip qualify peer Send an OPTIONS packet to a peer
                    sip reload Reload SIP configuration
sip set debug {on|off|ip|peer} Enable/Disable SIP debugging
      sip set history {on|off} Enable/Disable SIP history
sip show {channels|subscriptio List active SIP channels or subscriptions
         sip show channelstats List statistics for active SIP channels
              sip show channel Show detailed SIP channel info
              sip show domains List our local SIP domains
              sip show history Show SIP dialog history
                sip show inuse List all inuse/limits
              sip show objects List all SIP object allocations
                sip show peers List defined SIP peers
                 sip show peer Show details on specific SIP peer
             sip show registry List SIP registration status
                sip show sched Present a report on the status of the sched queue
             sip show settings Show SIP global settings
                  sip show tcp List TCP Connections
                sip unregister Unregister (force expiration) a SIP peer from the registry

Intenten probarlos todos para ver que pasa :)

Un saludo

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

26 comentarios

Duda Asterisk

Hola que tal...
Felicidades por tu pagina, esta muy entendible.
Aprovechando el viaje, quisiera exponerte una duda que tengo.

Tengo un Asterisk@Home funcionando localmente. Es decir, en una LAN.
Tengo creada la extension 1000 que funciona perfectamente dentro de mi LAN, pero al momento de querer conectarme fuera de ella, el X-Lite me dice Request Timeout.
En mi sip.conf tengo lo siguiente en general.
[general]

port = 5060 ; Se define el puerto que usa Asterisk para SIP (5060 por default)
bindaddr = 10.0.10.10 ; Defino la dirección IP de Asterisk
El asterisk lo tengo direccionado con un dominio dinamico que es el que pongo en el X-Lite para conectarlo.
Funcionaria si cambio la IP de arriba al nombre del host dinamico?
Por ejemplo; bindaddr = euriskooaxaca.dyndns.info??

Gracias!!!!

Asterisk IP publica

Para que puedas conectarte desde una fuera de la red sigue estos pasos

Abres el sip.conf

en bindaddr pones 0.0.0.0 asi asterisk estará escuchando en todas la direcciones IP (red local y IP publica)

en la linea localnet pones la direccion IP local del computador donde esté instalado asterisk. Ejemplo

Localnet 10.0.10.10/255.255.255.0

luego configuras esto

externhost=euriskoooaxaca.dyndns.org
externrefresh=180

Para terminar asegurate que en tu router/firewall tengas abiertos los puertos (normalmente 5060 UDP para la señalizacion y 10000:20000 UDP para el protocolo RTP (audio-video)

Recarcas la configuracion del sip.conf

Intentas conectar tu x-lite y mira que te aparece en la consola de asterisk

Cuentame como te fue y saludos a Oaxaca una ciudad muy bonita que tuve la suerte de conocer

Chao

Duda Asterisk

Ya hice la prueba. Y ya pude conectarme desde Internet via X-Lite con mi servidor Asterisk.
Muchas gracias por la ayuda.
Oye aprovechando tu ayuda, tengo conectado un Linksys SPA al Asterisk. Ya esta registrado con una extension y mi intencion por ahora es hacer llamadas a la PSTN via SPA.

Podrias ayudarme con esto?? Tienes algunas sugerencias???
Oye, que bueno que te gusto Oaxaca. De donde eres?

Spa y Asterisk

No teniendo un linksys spa no te puedo ayudar mucho pero me imagino que se podría hacer algo así:

abres tu extensions.conf y añades las siguientes lineas:

[pstn]

exten => _9XXX.,1,Dial(SIP/1000/${EXTEN},45)

exten => _9XXX.,n,Hangup

Creas un contexto pstn y te aseguras que la extension que quieres usar con la pstn tenga acceso a ese contexto

en la primera linea le dices a Asterisk que todas las llamadas que empiecen con un 9 sean enrutadas a la extension 1000 (la extension de tu SPA) y que si el numero marcado no contesta dentro de 45 segundos pase a la linea 2 donde se cuelga el canal

Seguro que si buscas un poquito en internet encontrarás algo más preciso.

Saludos

informacion

hola tengo un asterix conectado localmente funciona perfecto si le coloco una conexion con ip fija tambien funciona bien
pero si coloco una conecion adsl y abro los puertos solo me permite timbra o aser timbrar otras extenciones pero no se escucha ni de un lado no de otro

Duda

no puedo transeferir video por mas que halla configurado el si.conf con el videosuport y los codecs....me podrias decir a que se debe eso...alguien me dijo que necesito modificar el protocolo que usa asterisk, pero no se donde hago eso...agradesco de antemano tu ayuda

Pues tenemos el mismo

Pues tenemos el mismo problema con el video , a mi me pasa exactamente lo mismo , ¿que puertos utiliza para video?

Llamadas video

Una vez lo he probado y me ha funcionado.

Asterisk tiene problemas para la negociacion audio/video (en el sentido que lo hace muy mal).

En el sip.conf para cada extension definene un solo codec video (ej. H264) y hacen lo mismo en los softphone.

Luego recargan la configuracion y intentan hacer una llamada video.

Si no les funciona pueden poner (siempre en la configuracion de las extensiones)

canreinvite=yes

Recargan la configuracion y lo intentan otra vez

Yo lo he probado una vez on un Softphone BRIA y me ha funcionado.

INFORMACION

HOLA QUISIERA SABER SI ALGUIEN PUDIERA AYUDARME NECESITO CONFIGURAR ASTERISK 1.6
PARA VIDEOCONFERENCIA Y QUE TIPO DE CAMARAS UTILIZAR
OJALA PUDIERAN AYUDARME POR FAVOR
SALUDOS

videconferencia

Para cuartos de videoconferencia asterisk, por ahora, no es la solucion.

Para videollamadas funciona y puedes buscar más informacion en internet

INFO

QUISIERA SABER QUE TIPO DE CONFIGURACION SE NECESITA PARA PODER MONTAR ALGUN TIPO DE SERVIDOR PARA VIDEOCONFERENCIA EN LINUX EN ESPECIFICO CENTOS 5 OJALA PUEDAN ORIENTARME
SALUDOS

llamadas desde extensiones externaS

Hola amigos soy muy nuevo usando asterisk y apenas he logrado conectar asterisk de forma local con extensiones locales pero aun no he podido hacerlo con extensiones de otra lan

les agradeseria si me pudieran decir como se configura el sip.conf y el extensions.conf para hacerlo funcionar

inquietud configuracion de asterisk 1.8

primero que todo muchas gracias por tus aportes en esta pagina sobre voz ip, y quiero aprovechar la oportunidad y tus conocimientos para realizarte esta consulta.

tengo instalado freepbx distro en una maquina la cual esta detrás de un router ADSL, los puertos los he redireccionado de la forma como explica aquí en la pagina, y conectándome desde Internet ( fuera de la red donde esta el servidor asterisk) con un softphone (x-lite) funciona de maravilla, de igual forma utilizando mi telefono celular y el softphone bria ( el celular es un iphone 4).
hasta aquí parece no haber ningún problema, pero cuando intento conectar una extencion desde un ht503 esta nunca se registra, ya he reiniciado enemil veces el ht503 y configurado me todas las formas posibles y no doy para que se registre, debe ser problemas de configuración en mi asterisk o en los puertos necesarios ya que al conectarme a otro servidor si se registra y funciona perfectamente, agradezco de antemano tu colaboración

Re: inquietud configuracion de asterisk 1.8

Hola William,

si el HT503 se encuentra conectado al mismo router donde está el servidor Asterisk, en la configuración del HT503 deberías usar la IP local en lugar de la IP publica.

Si el HT503 se encuentra en otra red y no logra registrarse, deberías mirar en el servidor asterisk si las peticiones de registro están llegando correctamente.

Esto lo puedes hacer activando el debug en la consola de Asterisk:

CLI> sip set debug on

Mejor aun si lo haces con Ngrep:

ngrep -W byline port 5060

Si ves que no llega ninguna petición del HT503, el problema está en la configuración del HT503 ya que con otros dispositivos todo te funciona bien.

Saludos

consulta

primero que todo muchas gracias por tus aportes en esta pagina sobre voz ip, y quiero aprovechar la oportunidad....... este es tu comentario,
como veo que tienes configurado asterisk para llamadas entrantes y salientes , pues yo no lo consigo si fueses tan amable de colgar tus sip.conf y tu extensions.conf te lo agradeceria enormemente , yo solo consigo hacer y recibir llamadas internas cuando intento hacer llamadas externas me sale esto :
WARNING[4901]: chan_sip.c:20058 handle_response_invite: Received response: "Forbidden" from '"+3495xxxxxxx" ;tag=as19e73c14'
-- SIP/yacom-00000007 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Auto fallthrough, channel 'SIP/101-00000006' status is 'CONGESTION'

de ahi no soy capaz de salir me he atascado mi operador es ya.com
parece un poco especial ..
gracias

OPENVPN

HOLA xfa ayudenme.... tengo configurada una vpn en ubuntu y quisiera transmitir voz es x eso que configure asterisk en el servidor vpn.. pero no logro comunicarme desde un cliente remoto.. es decir desde mi cliente vpn

ayudaaaa

Hola

He leido todos los comentarios son muy buenos.

Como puedo acceder remotamente a la interfaz web de elastix. He escuchado que se puede mediante ssl pero alguién podría decirme como hacerlo paso a paso. No sé mucho de esto y me cuesta entenderlo.... graciias

puertos

En qué archivo o cómo le hago para asociar los puertos abiertos en mi router para que se conecten con elastix ojalá puedan ayudarmeeee

No recibo llamadas entrantes y extension not in context default

Hola, muchas gracias por la información, soy nuevo con esto, esto utilizando un dispositivo que lleva la versión de Digium de Asterisk, las siguientes versiones:

- Asterisk/1.8.31.1
- Asterisk GUI-version : 2.1.0-rc1

He ido configurando todo desde el GUI, y aparentemente puedo hacer todas las opciones pero no me funcionas las "incoming calls".

La conexión la hago con fibra de movistar, y lo que que no me está funcionando es que si me llaman al número fijo quiero que la llamada suene en todos los teléfonos (extensiones conectadas) pero no me está funcionando. Si hago debug veo el siguiente error:aunque no sé si falla por eso, el error es:

NOTICE[27960]: chan_sip.c:23592 handle_request_invite: Call from '' (10.31.255.134:5070) to extension 's' rejected because extension not found in context 'default'.

He leído que esto puede ser porque tengo que poner como unas reglas para las extensiones y añadir el context "default" a esas extensiones, pero yo lo que quiero no es que vaya a una extensión sino a todas y la cuestión es que para mí es un lío porque veo tutoriales y no parecen corresponder con lo que leo, quizá por ser diferente versión. El caso es que a través del gui veo las extensiones solo se pueden configurar mediante la pestaña "users" y se graban en un archivo llamado users.conf, sin embargo los tutoriales que leo parece que las extensiones tienen que ir en el archivo "extensions.conf". También he leído que tengo que añadir la línea register en dicho archivo.

¿Podría orientarme con un ejemplo qué tengo que añadir y dónde? Estoy bastante perdido y agradecería la ayuda.

Un saludo,

Javier

Resuelto pero no me aparece el número llamante

Bueno probando cosas ya he logrado resolverlo, al parecer el entorno GUI de asterisk genera las líneas que hacen falta creando nuevos "contextos" pero luego hace falta cambiarlo manualmente tocando directamente en los ficheros.

La solución para mí fue cambiar en Sip-settings donde pone default por el nombre que haya creado el gui por ejemplo em eñ aàrtadp Romg group y con eso ya se me derivan todas las llamadas... o por ejemplo otra forma es en el apartado incoming calls, ahí pones una linea con s y luego miras en el fichero el contexto que se ha generado y copias o mueves lo que hay ahí a default, como mejor te parezca. Si alguien necesita ayuda con esto se lo puedo explicar más detallado.

Lo que no me funciona es que cuando asterix me dirige la llamada entrante al móvil, aparece "asterix@ip" pero no me indica el nº de teléfono que hace la llamada no me aparece, en lugar del nº aparece la palabra asterisk y me ha dicho un amigo que a él con freepbx sí que le sale ¿alguien sabe cómo hacer que aparezca el nº que llama? Gracias

Ayuda!

Buenas noches, muchas gracias por el articulo ha sido muy interesante.
Me pusieron un proyecto en la universidad donde debo tener 3 extensiones SIP, 800, 801 y 802.
Hay una condicion que dice que la extension 802 solo debe aceptar llamadas de la 800, y de la otra no.
Sabrias como puedo hacer eso???

Suscribirse a Comentarios de "Configuracion de Asterisk 1.6.X - Segunda Parte - sip.conf" Suscribirse a VozToVoice - Todos los comentarios