Está en la página 1de 9

onfiguracion de Asterisk 1.6.X - Segunda Parte - sip.

conf
Jue, 16/10/2008 - 12:15 admin

Actualizado 5 septiembre 2009 Hoy empezaremos con la configuracin 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 configuracin general de nuestras extensiones, el bloque central donde configuraremos la registracin 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 algn da 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 telfonos fijos o celulares, hacia nuestros proveedores VoIP y utilizar las tpicos servicios de estos aparados como llamadas en espera, desvo de llamadas, llamada a tres, contestador, etc. La que sigue es la configuracin de una parte de mi sip.conf; cada lnea del archivo viene acompaada de una breve explicacin despus del punto y coma. Ahora tengo instalada la versin 1.6 de asterisk pero la mayora de las opciones son validas tambin para las versiones anteriores. [general] ; etiqueta que introduce la parte general de la configuracin

allowguest=no ; No permitir llamadas de extensiones SIP remotas sin contrasea bindport=5060 ; el puerto utilizado para conectar las extensiones SIP al servidor asterisk (protocolo UDP) bindaddr=0.0.0.0 : la direccin IP para conectarse al servidor Asterisk (en este caso cualquier direccin de la computadora donde est asterisk) ;tcpenable=yes ; desde la versin 1.6 es posible configurar el servidor para que permita tambin conexiones TCP ;tcpbindaddr=0.0.0.0:5059 ; direccin 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 funcin subscribe del protocolo SIP allowsubscribe=yes ; esto permite a las extensiones controlar el estado de las dems notifyringing=yes ; notifica si la extensin est timbrando a las dems extensiones (ya veremos como funciona) notifyhold=yes ; notifica si la extensin 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 detrs de la conexin est un servidor Asterisk. En este modo nos presentamos como si furamos el softphone X-Lite realm=sip.voztovoice.com ; si definimos esta opcin podremos crear las contraseas 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 registracin 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 explicacin

register => fulano:contrasea@sip.justvoip.com Nos registramos con el proveedor con el username fulano, la contrasea y la direccin del servidor del proveedor. Si el servidor usa un puerto que no es el 5060 tenemos que especificarlo al final de la lnea de este modo

register => fulano:contrasea@sip.justvoip.com:5061 Ahora pasamos a la configuracin de las extensiones: [2000] ; numero de la extensin accountcode=2000 ; el cdigo que aparecer en el registro de llamadas para esta extensin language=es ; si hemos instaladas locuciones en ms de un idioma, aqu podemos definir cual idioma usar la extensin type=friend ; tipo de extensin. 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=contrasea ; la clave de la extensin qualify=yes ; Para saber el tiempo de respuesta de una extensin y si est alcanzable o no mailbox=2000@default ; la casilla de voz de la extensin (segn la configuracin del archivo voicemail.conf) host=dynamic ; si la extensin 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 extensin canreinvite=no ; yes si queremos que la extensin intente conectarse directamente con la extensin llamada. No si queremos que Asterisk haga de puente entre las dos extensiones. nat=yes ; si la extensin se conecta al servidor asterisk detrs de un cortafuego hay que poner yes callerid=Fulano <2000> ; el nombre y el numero de identificacin de la extensin

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 vdeo 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 contrasea) username=fulano secret=contrasea 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 configuracin 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

Configuracin del archivo sip.conf


El archivo sip.conf sirve para configurar todo lo relacionado con el protocolo SIP y aadir nuevos usuarios o conectar con proveedores SIP.

Aqu hay un ejemplo bsico del archivo sip.conf: [general] context=default port=5060 ; Puerto UDP en el que responder el Asterisk bindaddr=0.0.0.0 ; Si queremos especificar que Asterisk est en una IP (si un equipo tiene 3 IPs por ej.) 0.0.0.0 vale para cualquiera srvlookup=yes ; Habilita servidor DNS SRV [pedro] type=friend secret=welcome qualify=yes ;Tiempo de latencia no superior a 2000 ms. nat=no ; El telefono no usa NAT host=dynamic ; El dispositivo se registra con una IP variante canreinvite=no ; Asterisk por defecto trata de redirigir context=internal ; El contexto que controla todo esto El fichero sip.conf comienza con una seccin [general] que contiene la configuracin por defecto de todos los usuarios y "peers" (proveedores). Se puede sobreescribir los valores por defecto en las configuraciones de cada usuario o peer. - En general los servidores SIP escuchan en el puerto 5060 UDP. Por tanto configuramos port=5060 . En algunos casos, por ejemplo si utilizamos SER (Sip Express Router) con Asterisk debemos cambiar este puerto. - DNS es una forma de configurar una direccin lgica para que pueda ser resuelta. Esto permite que las llamadas sean enviadas a diferentes lugares sin necesidad de cambiar la direccin lgica. Usando el DNS SRV se ganan las ventajas del DNS mientras que deshabilitandolo no es posible enrutar llamadas en base a nombre de dominios. Conviene tenerlo activado, por tanto se pone la directiva srvlookup=yes Cada extensin est definida por un user o usuario, un peer o proveedor o un friend o amigo y viene definida con un nombre entre corchetes []. - El tipo (type) "user" se usa para autenticar llamadas entrantes, "peer" para llamadas salientes y "friend" para ambas. En nuestro caso hemos definido una extensin pedro como "friend". Puede realizar y recibir llamadas. - Secret es la contrasea usada para la autenticacin. En este caso ser "welcome". - Se puede monitorizar la latencia entre el servidor Asterisk y el telefono con qualify=yes para determinar cuando el dispositivo puede ser alcanzado En este caso Asterisk considera por defecto que que un dispositivo est presente si su latencia es menor de 2000 ms (2 segundos). Se puede cambiar este valor poniendo el numero de milisegundos en vez de yes. - Si una extensin est detrs de un dispositivo que realiza NAT (Network Address Translation) como un router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campo informacin de contacto y usar la direccin desde la que vienen los paquetes. - Si ponemos host=dynamic quiere decir que el telefono se podr conectar desde cualquier direccin IP. Podemos limitar a que dicho usuario solo pueda acceder con una IP o con un nombre de dominio. Si ponemos host=static no hara falta que el usuario se registrar con la contrasea proporcionada en "secret", - Tambin se ha puesto canreinvite=no. En SIP los invites se utilizan para establecer llamadas y redirigir el audio o video. Cualquier invite despus del invite inicial en la misma conversacin se considera un reinvite. Cuando dos usuarios han establecido la comunicacin con canreinvite= yes (por defecto) los paquetes RTP de audio podran ser enviados extremo a extremo sin pasar por el servidor Asterisk. Esto, normalmente, no suele ser conveniente en casos en los que haya NAT en alguno de los clientes. (NAT=yes). Usando canreinvite=no se fuerza a Asterisk a estar en medio no permitiendo que los puntos finales intercambien mensajes RTP directamente.

De todos modos, existen numerosas condiciones en que Asterisk no permite el reinvite a pesar de que no pongamos esta condicin ya que necesita controlar el flujo RTP. Por ejemplo: Si los clientes usan codecs diferentes, si hay opciones de Music On hold o temporizadores en la llamada, etc ... Por ltimo context=internal indica el contexto donde est las instrucciones para dicha extensin. Esto est relacionado con el contexto del archivo extensions.conf que marca el plan de numeracin para ese contexto. Por tanto el contexto internal debe existir en el fichero extensions.conf o de lo contrario deberiamos crearlo. Varios extensiones pueden tener el mismo contexto. Opciones avanzadas: En las siguientes columnas tenemos las posibilidades de configuracin para los tipos "user" y "peer". En el caso de "friend" valen las dos tablas ya que un "friend" es a la vez ambos
User Peer Explicacin y opciones

context permit deny secret md5secret

Indica el contexto asociado en el dialplan para un usuario o peer Permitir una IP No permitir una IP Contrasea para el registro Contrasea encriptada con md5 El modo en el que se transmiten los tonos. Pueden ser "RFC2833" o dtmfmode dtmfmode "INFO" Con "no" se fuerza a Asterisk a no permitir que los puntos finales canreinvite canreinvite intercambien mensajes RTP directamente. nat nat Indica si el dispositivo est detrs de un NAT con "yes" callgroup callgroup Define un grupo de llamadas pickupgroup pickupgroup Define el grupo de llamadas validas para una aplicacion pickup() Define las seales para un pais. Debe estar presente en el archivo language language indications.conf permite habilitar un codec. Pueden ponerse varios en un mismo usuario Posibles Valores: allow allow "allow=all" ,"allow=alaw", "allow=ulaw", "allow=g723.1" ; allow="g729" , "allow=ilbc" , "allow=gsm". disallow disallow permite deshabilitar un codec. Puede tomar los mismos valores que allow Define como manejar las conexiones con peers Tiene los siguientes insecure insecure valores very|yes|no|invite|port Por defecto es "no" que quiere decir que hay que autenticarse siempre. trustpid trustpid Si la cabecera Remote-Party-ID es de confianza. Por defecto "no" progressinband progressinband Si se deben generar seales en banda siempre. Por defecto never promiscredir promiscredir Permite soportar redirecciones 302. Por defecto "no" callerid Define el identificador cuando no hay ninguna otra informacion disponible Los usuarios pueden estar asociados con un accountcode . Se usa para accountcode facturacion. Se usa para guardar en los CDR y temas de facturacin . Puede ser amaflags "default", "omit", "billing", o "documentation" incominglimit Limite de llamadas simultaneas para un cliente restrictcid Se usa para esconder el ID del llamante. Anticuada y en desuso mailbox Extensin del contestador Si Asterisk actua como cliente SIP este es el nombre de usuario que username presenta en el servidor SIP al que llama fromdomain Pone el campo From: de los mensajes SIP regexten fromuser Pone el nombre de usuario en el from por encima de lo que diga el callerID direccin o host donde se encuentra el dispositivo remoto. Puede tomar valores: host - Una IP o un host concreto - "dynamic" con lo que valdra cualquier IP pero necesita contrasea - "static" vale cualquier IP pero no es necesario contrasea

context permit deny secret md5secret

mask port qualify defaultip rtptimeout

Puerto UDP en el que responder el Asterisk Para determinar cuando el dispositivo puede ser alcanzado IP por defecto del cliente host= cuando es especificado como "dynamic" Termina la llamada cuando llega a ese timeout si no ha habido trfico rtp Termina la llamada cuando llega a ese timeout si no ha habido trfico rtp rtpholdtimeout "on hold" Ejemplos: [grandstream1] type=friend ; es peer y user a la vez context=micontexto ; nombre del contexto username=grandstream1 ; suele ser el mismo que el titulo de la seccion fromuser=grandstream1 ; sobreescribe el callerid callerid=Jose Dos<1234> host=192.168.0.23 ; se tiene una IP privada dentro de una LAN nat=no ; no hay NAT canreinvite=yes ; dtmfmode=info ; puede ser RFC2833 o INFO mailbox=1234@default ; mailbox 1234 en el contexto "default" del fichero voicemail.conf disallow=all ; deshabilitamos todo allow=ulaw ; Permitimos el codec ulaw ; listed with allow= does NOT matter! ;allow=alaw ;allow=g723.1 ; Asterisk solo soporta g723.1 a travs ;allow=g729 ; Licencia g729 sl a travs [xlite1] ;Se puede activar la supresin de silencio ;Xlite manda paquetes NAT keep-alive, por tanto qualify=yes no es necesario type=friend username=xlite1 callerid="juan Perez " <5678> host=dynamic ; el softphone xlite puede estar en cualquier IP nat=yes ; X-Lite est detrs de un dispositivo NAT canreinvite=no ; Se suele poner NO si est detrs de un dispositivo que hace NAT disallow=all allow=gsm ; GSM consume menos ancho de banda que alaw o ulaw allow=ulaw allow=alaw [user1_snomsip] type=friend secret=blah ; en este caso es la contrasea para registrarse host=dynamic dtmfmode=inband ; las posibilidades son inband (en banda), rfc2833, o info defaultip=192.168.0.59 ; la IP del dispositivo mailbox=1234; Contestador para mensajes disallow=all allow=ulaw ; dado que se ha elegido en banda (inband) para el dtmf se debe seleccionar alaw o ulaw (G.711) allow=alaw [user2_pingtel] type=friend username=user2_pingtel secret=blah host=dynamic qualify=1000 ; Se considera caido si pasa ms de 1 segundo sin contestar callgroup=1,3-4 ; Es miembro de los grupos 1,3 y 4

pickupgroup=1,3-4 ; Se puede hacer un "pickup" para los grupos 1,2 y 4 defaultip=192.168.0.60 ;IP disallow=all allow=ulaw allow=alaw allow=g729 [user3_cisco] type=friend username=user3_cisco secret=blah nat=yes ; El telefono est nateado host=dynamic canreinvite=no ; qualify=200 ; Tiempo de 200 ms para recibir respuesta defaultip=192.168.0.4 disallow=all allow=ulaw allow=alaw allow=g729 [user4_cisco1] type=friendusername=user4_cisco fromuser=pedro ; secret=blah defaultip=192.168.0.4 ; amaflags=default ; Las posibilidades son default, omit, billing o documentation accountcode=pedro ; Para propsitos de tarificacin disallow=all allow=ulaw allow=alaw allow=g729 allow=g723.1

También podría gustarte