10/16/2013

Creando cuentas SIP






Para que nuestros teléfonos puedan comunicarse con los demás, tenemos que configurar una cuenta para cada teléfono en el canal de drivers  al cual corresponda al protocolo que los teléfonos usan. Como ambos teléfonos están usando el protocolo SIP, nosotros configuraremos las cuentas en el archivo de configuración del canal de drivers SIP, llamado sip.conf (este reside en el directorio de configuración de Asterisk, el cual típicamente es /etc/Asterisk, usaremos nombres sencillos para identificar nuestro teléfonos fácilmente, pero por razones de seguridad es muy importante utilizar nombre más complejos, como por ejemplo la  dirección MAC del dispositivo o cualquier otros que no se tan fácil identificar por los ataques de fuerza bruta.
 
Navegue hasta el directorio de configuración de Asterisk, en mi caso es /etc/asteisk, habrá o cree, si no está creado, el archivo sip.conf con su editor favorito. Para este ejemplo usare vim, pero puedo usar cualquier otro como nano, emacs, etc. Ok ahora escriba en la interface de línea de comando de Linux el comando siguiente:

$ cd /etc/asterisk/
$ vim sip.conf

Para editar  este archivo presione la tecla “i” y ya estamos listo para comenzar a introducir el código necesario. Como todos los archivos en Asterisk, este está compuesto de varias secciones llamadas contexto, en la sección [general] copie o pegue las siguientes instrucciones:




[general]
context=public
allowguest=no
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp
srvlookup=yes
language=es                     ; si su idioma es el español

; Ahora declaramos las cuentas para registrar nuestros teléfonos

[phone1]                                  ; cuenta para el primer teléfono
type=friend
host=dynamic
secret=   coloque aquí una contraseña segura
context=from-internal                ; en el dialplan crear un contexto from-internal, donde entraran las llamadas interna
dtmfmode=auto                       
disallow=all
allow=ulaw
allow=alaw
nat=auto


[phone2]                                  ; cuenta para el segundo teléfono
type=friend
host=dynamic
secret=   ; coloque aquí una contraseña segura
context=from-internal
dtmfmode=auto
disallow=all
allow=ulaw
allow=alaw
nat=auto

; Esto también los podemos hacer usando témplate  o plantilla de la manera siguiente:

[phone-interno](!)                   ; Esta es la plantilla con todos los parámetros que usaran
type=friend                               ; los teléfonos         
host=dynamic
secret=    ; coloque aquí una contraseña segura
context=from-internal
disallow=all
allow=ulaw
allow=ulaw
nat=auto

; Ahora para crear las cuentas para registrar los teléfonos hacemos los siguientes:


[phone1](phone-interno)

[phone2](phone-interno)   


Cuando termine de editar el archivo sip.conf  para grabar presione la tecla ESC y luego escriba :wq (w: graba y la q sale del archivo.


Listo ya tenemos 2 cuenta para registrar dos teléfonos que utilicen protocolo SIP.  Ahora debemos escribir el comando siguiente en la línea de comando de Linux:



$ asterisk -r                          ; esto nos muestra el CLI de Asterisk



Desde la línea de comando de Asterisk ejecute el comando:


*CLI> sip reload

Reloading  SIP

*CLI>


Este comando nos permite cargar el modulo chan_sip.so que es el módulos que controlas los canales SIP.

Si ejecutamos el comando sip show peers o sip show users veremos que aún no tenemos ningún dispositivos o usuarios registrados en Asterisk.  Por lo que nuestros siguientes pasos es registrar los teléfonos con las cuentas que ya creamos para que se comuniquen con Asterisk.

Para esto voy a utilizar un teléfono físico (Cisco 7912) y un Softphone (3CXPhone). Si no tienes teléfonos SIP físico, puedes usar softphone que para los fines de prácticas es lo mismo. Algunos que puedes descargar son Zoiper y X-Lite. A continuación realice las siguientes instrucciones:

En el Teléfonos  Cisco 7912
  • Presiones el botón de menú sobre el teclado del teléfono
  • En el menú busque la opción setting y presiones el botón select
  • Luego busque la opción  SIP Configuration  y presione el botón select
  • Ahora digite  **#, le pedirá el password, en esto teléfonos el password por defecto es 1234, si lo ha cambiado entonces introduzca el que le puso. Esto lo hacemos para que el teléfono nos permita editar las opciones siguientes:
  • Colóquese sobre la opción SIP Proxy y presione el botón Edit, luego introduzca aquí la dirección IP de su central Asterisk. Presiones Aceptar.
  • Ahora busque la opción  User ID y presione el botón Edit. Introduzca aquí unas de las cuentas que creamos en el sip.conf, en mi caso pondré phone1. Presiones Aceptar
  • El siguiente paso es buscar la opción PASSWORD y presiones el botón Edit. Aquí ponemos el password que creamos en la opción secret,  cuando creamos las cuentas en el sip.conf. Ejemplo:

            [phone1]                                  ; cuenta para el primer teléfono

            type=friend

            host=dynamic

            secret=   coloque aquí una contraseña segura

Una vez ponemos el password correspondiente, presionamos Aceptar.

Ahora buscamos la opción Use Login ID: presiones Edit y debe quedar así:

Use Login ID: YES

En la opción Login ID ponemos la cuenta de teléfonos, en nuestro caso phone1.

Login ID: phone1

Por último selecciones la opción Local SIP Port, presiones el botón Edit  y verifique que tenga el puerto 5060. Presiones Aceptar el teléfono debe reiniciarse y listo.

Lo que nos resta ahora es configurar el Softphone 3CX para que se registre con Asterisk, tranquilo que esto es bien sencillo. Lo puede descargar de la página oficial http://www.3cx.com/3CXPhone/Windows/

Ok. Una vez descargado el software, el proceso de instalación es igual a cualquier aplicación Windows. Con el software ya instalado, habrá el 3CXPhone y configurelo como se muestra:


  1. Abre el 3CXPhone
  2. Click derecho sobre la pantalla de 3CXPhone
  3. Elegir la opción Accounts
  4. El la siguiente pantalla hacer clic en el botón New.
  5. En la pantalla siguiente rellena los siguientes campos:
          Account Name: phone2
          Caller ID:   phone2                        ; o el nombre de quien usa el telefono.
 
      Credenciales
          Extensions: phone2
          ID: phone2
          Password:                  ; la contraseña que puse en la opción secret de su archivos sip.conf

     My location
          I am in the office - local IP:         ; coloque la dirección IP de su central Asterisk.

Presiones OK, si todo esta correcto su teléfonos debe registrarse con Asterisk. Para confirmar si se registraron los teléfonos, ejecute el comando desde el CLI de asterisk el comando:

$ sip show peers

Name/username               Host                Dyn                 NAT       ACL            Port         Status
phone1                       192.168.1.104           D                                    A               5060    Unmonitored
phone2                       192.168.1.105           D                                    A               5060    Unmonitored
2 sip peers     [Monitored:  0 online,   0 offline  Unmonitored:  2 online, 0 offline]

Si la salida del comando sip show peers es similar a esta, su teléfonos se están comunicando con Asterisk. Pero tranquiloooo, todavía no podemos hacer llamadas. Para realizar llamadas debemos crear las extensiones correspondiente en dialplan. Hablaremos de este tema en la próxima entrega.       
         
Nota: los teléfonos Cisco 79XX no soportan el protocolo SIP por defecto, para hacer que trabaje con SIP debemos actualizar el Fimeware, con una versión para SIP.


 
Aprende a Implementar Asterisk paso a paso y en español
Libro: Asterisk PBX: Instalación, implementación y puesta en marcha.


Descargar ahora