lunes, 13 de mayo de 2013

Explicacion detallada del fichero sip.conf

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.

 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.



[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 



Espero que les sirba de ayuda 

No hay comentarios:

Publicar un comentario