http://www.irontec.com
Introducción a la VoIP y Asterisk
http://www.irontec.com
Parte II: SIP
Curso: Introducción a la VoIP y Asterisk
3
Introducción
● Ya tenemos Asterisk instalado
– Ahora nos falta que haga algo :D
● Asterisk soporta canales de múltiples tecnologías.
– Entre ellas, el protocolo de señalización 'estándar de
facto' en la VoIP: SIP.
● Al final de este bloque conseguiremos:
– Conocer el protocolo SIP
– Entender las trazas básicas
– Realizar llamadas con los hardphones
SAP, SDP y SIP
Curso: Introducción a la VoIP y Asterisk
5
Punto de partida: SAP
● Session Announcement Protocol (RFC 2974).
● Sirve para 'anunciar' una sesión multimedia
– “Hoy a las 8, película de noseke...”
– Como la revista de la TV
● No se encarga de describir la sesión,
para eso tenemos SDP.
Curso: Introducción a la VoIP y Asterisk
6
SDP
● Session Description Protocol (RFC 4566)
● Contiene toda la información que un usuario puede
necesitar para unirse a una sesión multimedia.
● Ofrece la siguiente información
– IP/puerto para conectarse a la sesión
– Codecs soportados
– Información descriptiva
Curso: Introducción a la VoIP y Asterisk
7
Recapitulando...
● Hasta ahora sabemos hacer 2 cosas
– Anunciar una sesión multimedia
– Describirla
● Pero... ¿como indicamos a alguien que se una?
– Hay que INVITARLE a inicial una sesión
SIP: Session Initiation Protocol
Curso: Introducción a la VoIP y Asterisk
8
Origen
● Para cubrir la carencia de no poder iniciar una sesión
multimedia con alguien, surgió SIP.
● Estándar de la IETF, recogido en el RFC3261 (SIPv2)
● 'Merge' entre
– SIPv1 (Session Invitation Protocol)
– SCIP (Simple Conference Invitation Protocol)
● Capa de transporte: UDP / TCP (Websocket, TLS).
● La más habitual: UDP (puerto 5060)
Curso: Introducción a la VoIP y Asterisk
9
Funcionalidades
● SIP proporciona un mecanismo para iniciar, modificar y
finalizar una sesión.
● Independiente del tipo de sesión multimedia y de su
descripción.
– Podemos invitar a alguien a una partida online de mus mediante
SIP, utilizando MGDP (Mus Game Description Protocol) para
describir la sesión. XD
● Movilidad del usuario
– Necesidad de conocer su localización.
– SIP URIs: identificar a usuario SIP.
sip:carlos@irontec.com
– Los usuarios registran su ubicación en el servidor.
Curso: Introducción a la VoIP y Asterisk
10
Direccionamiento SIP
● Hay que distinguir 2 conceptos: la dirección SIP lógica de
un usuario y su dirección 'física'.
● La dirección SIP lógica es la URI SIP y está ligada al
usuario.
– Es equivalente a una dirección de correo electrónico:
userA@sipDomainA
● La dirección 'física' es la dirección del dispositivo desde el
que se registra un usuario SIP.
● La asociación entre ambas la gestiona el Location Server.
Curso: Introducción a la VoIP y Asterisk
11
Entidades SIP
● User-Agent: entidad con la que interactúa el usuario.
– Teléfono SIP
– Softphone
● Servidor Proxy: servidor que gestiona las invitaciones a las
sesiones de un determinado dominio SIP.
– Recibe peticiones de UAs y otros Proxy.
– Se apoya en el Location Server para transformar/resolver
direcciones SIP.
Curso: Introducción a la VoIP y Asterisk
12
Entidades SIP (2)
● Registrar: servidor que acepta peticiones de registro y
transmite la información al Location Server.
● Location Server: Guarda la relación entre la dirección SIP
lógica y la dirección física de los subscribers de un
determinado dominio SIP.
● Normalmente los 3 últimos son el mismo software.
● La relación entre estas entidades se divide en:
● Conexiones dentro del dominio SIP.
● Conexiones entre distintos dominios.
Curso: Introducción a la VoIP y Asterisk
13
Relación de entidades SIP (1)
Conexión entre dos subcribers del mismo dominio SIP
Curso: Introducción a la VoIP y Asterisk
14
Relación de entidades SIP (2)
Conexión entre dos usuarios de diferentes dominios SIP
Curso: Introducción a la VoIP y Asterisk
15
Por qué SIP es el camino a seguir
● Diferencia entre el establecimiento y la descripción de la
sesión
– Extensible
● Protocolo de extremo a extremo
– Un usuario ES DUEÑO DE SU SESIÓN
– Paradigma IP vs. Paradigma SS7
● Favorece la interoperabilidad
– El 'core' es “””relativamente””” sencillo: 6 métodos
– Funcionalidades adicionales mediante extensiones
● Es escalable
– La inteligencia esta en los extremos
– La red guarda muy pocos datos del estado
Curso: Introducción a la VoIP y Asterisk
16
Métodos SIP RFC 3261
● INVITE
– Invita a un usuario a una sesión multimedia
– Modifica una sesión multimedia existente
● ACK
– Proporciona un 3-way-handshake en el INVITE, sirve para confirmar la
recepción de una respuesta final a un INVITE
● CANCEL
– Cancela una transacción en curso
● BYE
– Se utilizan para abandonar una sesión
● REGISTER
– Sirven para informar al servidor de la ubicación del usuario
● OPTIONS
– Nos permite consultar qué métodos soporta un usuario.
Curso: Introducción a la VoIP y Asterisk
17
Transacciones Cliente-Servidor
● Un cliente GENERA peticiones.
● Un servidor RECIBE peticiones.
● El UA que genera peticiones se conoce como UAC:
User Agent Client.
● El UA que responde a las peticiones se conoce como
UAS: User Agent Server.
● Una petición, junto con las respuestas que genera, es una
TRANSACCIÓN.
Curso: Introducción a la VoIP y Asterisk
18
Respuestas SIP
● 100 – 199: provisional e informativa
● 200 – 299: afirmativa
● 300 – 399: redirección
● 400 – 499: error del cliente
● 500 – 599: error del servidor
● 600 – 699: fallo global
● Las respuestas incluyen un mensaje descriptivo, pero lo
importante es el código numérico.
Curso: Introducción a la VoIP y Asterisk
19
INVITE
INVITE
180 Ringing
Alice Bob
200 OK
Curso: Introducción a la VoIP y Asterisk
20
ACK
INVITE
180 Ringing
ACK
200 OK
Conversación
Alice Bob
Curso: Introducción a la VoIP y Asterisk
21
ACK (2)
● INVITE es el único método que utiliza 3 way
handshake.
● El resto de mensajes esperan una respuesta veloz, pero
en el caso del INVITE, esta puede tardar.
● El UAC manda al UAS un ACK, indicando que ha
recibido su respuesta.
● Aseguramos el correcto establecimiento de la sesión
sobre un medio no fiable: UDP
Curso: Introducción a la VoIP y Asterisk
22
CANCEL
INVITE
180 Ringing
ACK
200 OK
Alice Bob
CANCEL
487 Transaction Cancelled
Curso: Introducción a la VoIP y Asterisk
23
BYE
INVITE
180 Ringing
ACK
200 OK
Alice Bob
BYE
200 OK
Conversación
Curso: Introducción a la VoIP y Asterisk
24
REGISTER
REGISTER
401 Unauthorized
REGISTER
200 OK
Alice Servidor SIP
Curso: Introducción a la VoIP y Asterisk
25
OPTIONS
OPTIONS
Alice Bob
200 OK
Curso: Introducción a la VoIP y Asterisk
26
Cabeceras SIP
● From
– Identifica al que origina una petición.
● Call-ID
– Representa una relación entre 2 dispositivos SIP, relacionando
un INVITE y todas las transacciones asociadas.
● Contact
– Incluye una SIP URL, indicando donde se puede contactar con
el usuario.
● To
– Identifica al receptor de una petición.
● Vía
– Contiene todos los proxys que han gestionado una petición.
– Hace que las respuestas sigan el mismo camino que las
peticiones
Curso: Introducción a la VoIP y Asterisk
27
Conceptos importantes: Transacción y Diálogo
● Transacción
– Una petición + respuesta, SI la respuesta es afirmativa
(INVITE + 200 OK)
– Una petición + respuesta negativa + ACK
(INVITE + 404 Not Found + ACK)
– Identificado unívocamente por el 'branch' de la cabecera Vía.
● Diálogo
– Concepto de 'llamada'
– Identificado unívocamente por el From tag, To tag y Call-ID.
NB
Curso: Introducción a la VoIP y Asterisk
28
Tipos de proxys SIP
● Stateful Proxy
– Su ámbito es la transacción.
– No entiende de diálogos, pero sí de transacciones.
● Stateless Proxy
– No guardan ningún tipo de estado.
IMPORTANTE: Asterisk NO es un proxy SIP!!
Curso: Introducción a la VoIP y Asterisk
29
Asterisk NO es un proxy SIP!!
● Un proxy SIP simplemente conecta UAC.
● Rara vez permanece en medio una vez establecida la
sesión (salvo por motivos de facturación).
● NUNCA es el endpoint de una llamada.
● Asterisk es:
– Location Server
– Registrar Server
– Media Gateway
– B2BUA
Curso: Introducción a la VoIP y Asterisk
30
Routing de mensajes SIP
Alice BobServidor SIP
INVITE INVITE
180 Ringing180 Ringing
200 OK200 OK
ACK
Conversación
BYE
200 OK
Curso: Introducción a la VoIP y Asterisk
31
Routing de mensajes SIP (2)
● Después del 200 OK, Alice ya sabe donde esta Bob
(Contact)
● Las transacciones siguientes (ACK y BYE-200 OK) van
directamente de extremo a extremo.
● Podemos alterar este comportamiento con las cabeceras
Record-Route y Route
– Si queremos facturar, queremos estar al tanto de la señalización...
Curso: Introducción a la VoIP y Asterisk
32
Routing de mensajes SIP (3)
INVITE INVITE
180 Ringing
180 Ringing
200 OK
200 OK
Conversación
ACK
ACK
BYE
BYE
200 OK
200 OK
Alice Servidor SIP Bob
Curso: Introducción a la VoIP y Asterisk
33
Routing de mensajes SIP (4)
● Cada proxy que quiere quedarse 'en medio' añade una
cabecera Record-Route al invite que pasa a través de él.
● Las cabeceras se mantienen y se envían de vuelta en la
respuesta.
● Las siguientes transacciones se generan con la cabecera
Route (en orden inverso que las Record-Route).
● En mensaje se envía al proxy que indica su primera
cabecera Route y el proxy la elimina.
Curso: Introducción a la VoIP y Asterisk
34
Extendiendo SIP
● Con lo visto hasta ahora, solo podemos hacer y recibir
llamadas :-O
● PEEEERO, SIP se diseñó para ser extensible, por lo que
se le han añadido servicios mediante extensiones al
protocolo.
– Mensajería
– Notificaciones Asíncronas de Eventos
– Transferencia de sesiones
– ...
Curso: Introducción a la VoIP y Asterisk
35
Métodos SIP posteriores
● SUBSCRIBE
Subscripción a eventos
● NOTIFY
Notificaciones de eventos a subscriptores
● PUBLISH
Notificación de evento por parte del UAC
● INFO
● UPDATE
● REFER (call tranfer)
● MESSAGE
● PRACK
Curso: Introducción a la VoIP y Asterisk
36
Mensajería Instantánea
INVITE
180 Ringing
Alice Bob
200 OK
ACK
MESSAGE “Como mola SIP!!”
200 OK
Curso: Introducción a la VoIP y Asterisk
37
Notificaciones Asíncronas de Eventos
INVITE
484 Busy Here
Alice Bob
200 OK
ACK
SUBSCRIBE Estado de Bob
200 OK
NOTIFY Bob esta ocupado
200 OK
NOTIFY Bob esta disponible
INVITE
Curso: Introducción a la VoIP y Asterisk
38
Transferencia de sesiones
SIP y el NAT
Curso: Introducción a la VoIP y Asterisk
40
NAT
Problema del NAT
● El 'supuesto' agotamiento de los rangos de direcciones IP
utilizables en Internet ha obligado a utilizar direcciones IP
privadas dentro de las redes de empresas y usuarios domésticos.
● Un equipo IP para ser alcanzado en Internet debe utilizar una IP
pública para sus comunicaciones. Es necesario por tanto
'enmascarar' la red interna en una o varias IPs públicas (Source
NAT).
● El proceso de NAT no es nada sencillo: varios tipos de NAT,
varios tipos de soluciones.
● Tesis Heinz Herlitz:
– http://www.uct.cl/biblioteca/tesis-on-line/heinz-herlitz/tesis.pdf
Curso: Introducción a la VoIP y Asterisk
41
NAT y SIP
Esquema Base
Red local
IP's privadas:
192.168.0.0/16
172.16.0.0/12
10.0.0.0/8
Internet
Router NAT
Proceso NAT:
conversión
IP privada » IP pública
Problema en entrada:
mapeo de puertos
Problema en salida:
encapsulación IP
y puerto de RTP
a nivel de aplicación
Curso: Introducción a la VoIP y Asterisk
42
NAT y SIP
Tipos de NAT (I)
● NAT full cone: Todas las peticiones desde la misma IP/puerto
de la LAN son mapeadas a la misma IP/puerto público.
Cualquier máquina puede enviar paquetes a la máquina interna
por esa IP/puerto mediante redirección de puertos.
Router NAT
Google
Irontec
2050 4702
80
4702
3590
2050
Máquina interna
Curso: Introducción a la VoIP y Asterisk
43
NAT y SIP
Tipos de NAT (II)
● NAT restringido: Lo mismo, pero una máquina externa con IP
X puede enviar paquetes a la máquina interna sólo si ésta le ha
enviado paquetes previamente. No importa el puerto.
Router NAT
Google
Irontec
2050 4702
80
1025
3590
1025
Máquina interna
1025
2231
Curso: Introducción a la VoIP y Asterisk
44
NAT y SIP
Tipos de NAT (III)
● NAT puerto restringido: Lo mismo que NAT restringido, pero
la máquina externa con IP X y puerto P sólo puede enviar
paquetes a la máquina interna si ésta le ha enviado previamente
paquetes al puerto P.
Router NAT
Google
Irontec
2050 4702
80
125
3590Máquina interna
125
2231
Curso: Introducción a la VoIP y Asterisk
45
NAT y SIP
Tipos de NAT (IV)
● NAT simétrico: Todas las peticiones desde la misma IP/puerto de la
LAN a una IP/puerto externos específicos son mapeadas a la misma
IP/puerto público. Si la máquina interna envía un paquete a una
IP/puerto distintos el mapeo cambia. Por lo tanto, sólo la máquina
externa que recibe un paquete puede devolver paquetes a la máquina
interna.
Router NAT
Google
Irontec
2050 4702
80
Máquina interna 125
2231
2050 9055
80
Curso: Introducción a la VoIP y Asterisk
46
NAT y SIP
Tipos de NAT (V)
● La clasificación anterior está abandonada hoy en día.
Muchas implementaciones NAT oscilan entre varios de
los tipos.
– Preservación de puerto: Se mapea la misma IP/puerto externo
para la misma IP/puerto interno. Si dos máquinas internas
tratan de conectar con la misma IP/puerto externo, el puerto
exterior mapeado a la segunda máquina se elige
aleatoriamente. También se conoce como NAT restricted
cone.
Curso: Introducción a la VoIP y Asterisk
47
NAT y SIP
¿Cómo nos afecta el NAT?
● El paquete SIP que enviamos contiene IPs privadas:
– Cabecera 'Via'
– Cabecera 'Contact'
– Campo 'c' en el SDP
Curso: Introducción a la VoIP y Asterisk
48
NAT y SIP
INVITE sip:destino@mydomain.org SIP/2.0
Via: SIP/2.0/UDP 192.168.1.33:5060;rport;branch=z9hG4bKjyofoqmp
Max-Forwards: 70
To: <sip:destino@mydomain.org>
From: "Iñaki" <sip:ibc@mydomain.org>;tag=nrrrx
Call-ID: xetazdjyktlpsfo@192.168.1.33
CSeq: 800 INVITE
Contact: <sip:ibc@192.168.1.33:5060>
Content-Type: application/sdp
Allow:
INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Supported: replaces,norefersub,100rel
User-Agent: Twinkle/1.1
Content-Length: 312
v=0
o=ibc 1090098764 894503441 IN IP4 192.168.1.33
c=IN IP4 192.168.1.33
t=0 0
m=audio 8000 RTP/AVP 98 97 8 0 3 101
Curso: Introducción a la VoIP y Asterisk
49
NAT y SIP
Soluciones para NAT
● Solución por parte del cliente:
– Utilización de servidores STUN.
– SIP ALG
● Soluciones de en los equipos de comunicaciones IP:
– VPN
– Mapeo de puertos
● Soluciones en los servidores SIP:
– NAT helpers.
Curso: Introducción a la VoIP y Asterisk
50
STUN: Simple Traversal of UDP through NATs
Teoría de Funcionamiento
● Protocolo de red que permite a clientes detrás de NAT averiguar
su IP pública, tipo de NAT y puerto exterior.
● El cliente STUN solicita a un servidor STUN la IP y puerto por
los que ha salido a Internet. En función de varios test contra el
servidor STUN el cliente averigua el tipo de NAT en el que se
encuentra.
● El servidor STUN dispone de dos IPS públicas.
● No soluciona el problema del NAT simétrico.
● En VoIP se utiliza para facilitar la recepción de los datos de voz
RTP (UDP).
● Servidores STUN públicos:
– stun.fwd.net, stun.xten.com, ...
Curso: Introducción a la VoIP y Asterisk
51
SIP ALG
● SIP Application Level Gateway
● Implementado en routers de todas las gamas
– Comtrend de Telefónica
– SpeedTouch de Orange
● El 99,99% de los ALG no funcionan
● Es necesario deshabilitarlo para poder utilizar VoIP
Configuración de canales SIP
Curso: Introducción a la VoIP y Asterisk
53
Canales SIP
Configuración para canales SIP
● La instalación crea ficheros de ejemplo con la
sintaxis bastante comentada a modo de guía.
sip.conf
● En este fichero se definen:
– Variables generales de SIP.
– Clientes SIP.
– Servidores SIP.
Curso: Introducción a la VoIP y Asterisk
54
Canales SIP
sip.conf: Sección General
● En primer lugar existe la sección [general], donde se
definen variables globales y aspectos por defecto para
todos los canales SIP.
● La sintaxis es la siguiente:
[general]
variable1=valor1
variable2=valor2
Curso: Introducción a la VoIP y Asterisk
55
Canales SIP
sip.conf: Sección General
● Las variables generales más importantes son:
– allow y disallow: indican los codecs permitidos / no
permitidos.
– dtmfmode: permite especificar el método por el cual se
enviaran los tonos DTMF valores posibles: rfc2833, INFO,
inband.
– context: Contexto por defecto donde entraran las llamadas
entrantes por SIP.
– {udp,tcp,tls}bindaddr: Dirección IP en la que se escucha.
Puerto opcional con ':'.
– transport: Protocolo de transporte preferido.
Curso: Introducción a la VoIP y Asterisk
56
Canales SIP
sip.conf: Clientes y Servidores
● En sip.conf se definen tanto los clientes que se conectarán a Asterisk, como
los proveedores que se utilizaran para encaminar llamadas.
● 3 tipos de usuarios. En función del tipo, Asterisk se fija en unos campos o en
otros a la hora de identificar sus peticiones SIP:
– peer: IP y puerto (proveedor IP o otros servers)
– user: From header (sin domain) == [snom] / defaultuser (en desuso)
– friend: Mezcla de los anteriores (UACs). Asterisk internamente crea user
y peer.
● Primero Asterisk busca en la tabla de users con el From sin dominio. Si no
encuentra, pasa a la tabla de peer fijándose en IP/puerto.
● La sintaxis para definir un friend o un peer es:
[nombre]
type = friend / peer
Curso: Introducción a la VoIP y Asterisk
57
Canales SIP
sip.conf: Clientes y Servidores
● Las variables más importantes que deben ser configuradas
inicialmente son:
– type: peer / friend
– context: Contexto donde entraran las llamadas generadas.
– nat: Indica si el usuario o peer se encuentran tras NAT.
– host: IP remota o 'dynamic' si se registrará.
– fromuser: nombre de usuario.
– secret: contraseña de acceso.
– allow y disallow: Configuraciones de codecs específicas para
cada friend/peer.
– qualify: Evalúa el estado del extremo SIP para conocer su
accesibilidad y latencia.
Curso: Introducción a la VoIP y Asterisk
58
Canales SIP
sip.conf: Ejemplo: usuario
● Vamos a declarar de forma básica dos clientes en el
fichero sip.conf:
[jon]
type = friend
secret = jon
disallow=all
allow = alaw
context = desde-usuarios
host=dynamic
[leire]
type = friend
secret = leire
disallow = all
allow = alaw
context = desde-usuarios
host=dynamic
Curso: Introducción a la VoIP y Asterisk
59
Canales SIP
sip.conf: Ejemplo: peer
● Vamos a configurar un proveedor en sip.conf:
[sarenet]
type=peer
host = sarevoz.com
disallow = all
allow = g729
allow = alaw
fromuser= 24162
fromdomain = sarevoz.com
defaultuser=24162
secret=iwonttellyou
insecure=port,invite
directmedia=no
sendrpid=pai
Curso: Introducción a la VoIP y Asterisk
60
Canales SIP
sip.conf: Verificación de la configuración
● Mediante el comando module reload en el CLI de
Asterisk, le indicamos que recargue la configuración.
Aunque es posible recargar la configuración SIP de
forma independiente: sip reload
● Una vez recargada, podemos comprobar los usuarios y
peers que tenermos definidos haciendo: sip show peers
Conectando servidores Asterisk
Curso: Introducción a la VoIP y Asterisk
62
Trunks SIP en Asterisk
● A parte de para registrar teléfonos podemos utilizar SIP para
enlazar Asterisk con cualquier PBX, gateway, proxy, ... que hable
SIP.
– Configuración de un peer/user/friend.
– Proveedor IP
– Si el proveedor IP nos va a meter llamadas, necesitaremos una
línea de register en sip.conf antes de la sección
[authentication]:
register => 24162:iwonttellyou@194.30.0.111/943943943
El protocolo IAX2
Curso: Introducción a la VoIP y Asterisk
64
IAX2
Protocolo IAX2
● IAX2: Inter Asterisk eXchange
● Creado y estandarizado por la centralita Asterisk.
● Utiliza el puerto 4569 UDP.
● Características Principales:
– Media y señalización por el mismo flujo de datos.
– Trunking
– Cifrado
Curso: Introducción a la VoIP y Asterisk
65
IAX2(2)
Protocolo IAX2: Ventajas
● NAT: Al enviar tanto señalización como streaming
por el mismo flujo de datos (flujo UDP), se evitan
los problemas derivados del NAT. No es necesario
abrir rangos de puertos para RTP.
● Trunking: Es posible enviar varias conversaciones
por el mismo flujo, lo cual supone un importante
ahorro de ancho de banda (overhead de la capas IP y
transporte UDP).
Ejercicios
Curso: Introducción a la VoIP y Asterisk
67
Ejercicios
1)
El objetivo de este ejercicio es registrar un hardphone en vuestro
flamante nuevo Asterisk. Para ello:
– Conectar hardphone al SW y ver qué IP obtiene.
– Configurar un usuario de tipo 'friend' en sip.conf
– Acceder a la web de configuración del teléfono
(introduciendo su IP en un navegador web) y configurar
cuenta SIP.
– Verificar registro con 'sip show peers'
Curso: Introducción a la VoIP y Asterisk
68
Ejercicios(2)
2) Realiza un trunk SIP contra la PBX de tu compañero.
3) Realiza un trunk SIP contra el proveedor IP Sarevoz.
Bonus)
Previa introducción mínima al Dialplan de Asterisk, haz posible:
● Llamar a tu móvil (saliendo por Sarevoz)
● Llamar al teléfono de tu compañero.
Hint1: qualify=yes en la definición del peer puede ayudar
Hint2: *CLI> sip set debug on
Hint3: # ngrep -qt -W byline -d any port 5060 and udp
Curso: Introducción a la VoIP y Asterisk
69
Soluciones
Solución 1:
[1001]
type=friend
secret=mysecret
context=desde-usuarios
host=dynamic
disallow=all
allow=alaw
Solución 2:
En la centralita A:
[pbxB]
type=peer
host=ipB
defaultuser=pbxA
secret=sh4r3dk3y
context=desde-trunksip
disallow=all
allow=alaw
En la centralita B:
[pbxA]
type=peer
host=ipA
defaultuser=pbxB
secret=sh4r3dk3y
context=desde-trunksip
disallow=all
allow=alaw
Curso: Introducción a la VoIP y Asterisk
70
Soluciones(2)
Solución 3:
[sarevoz]
type=peer
host = sarevoz.com
disallow = all
allow = g729
allow = alaw
defaultuser=24162
fromuser= 24162
fromdomain = sarevoz.com
secret=iwonttellyou
directmedia=no
sendrpid=pai
Bonus:
extensions.conf:
[desde-usuarios]
exten => 1001,1,Dial(SIP/pbxX/1001)
exten => _X.,1,Dial(SIP/sarevoz/${EXTEN})
[desde-trunksip]
exten => 1001,1,Dial(SIP/1001)

Curso de VoIP / Parte 02: SIP

  • 1.
  • 2.
  • 3.
    Curso: Introducción ala VoIP y Asterisk 3 Introducción ● Ya tenemos Asterisk instalado – Ahora nos falta que haga algo :D ● Asterisk soporta canales de múltiples tecnologías. – Entre ellas, el protocolo de señalización 'estándar de facto' en la VoIP: SIP. ● Al final de este bloque conseguiremos: – Conocer el protocolo SIP – Entender las trazas básicas – Realizar llamadas con los hardphones
  • 4.
  • 5.
    Curso: Introducción ala VoIP y Asterisk 5 Punto de partida: SAP ● Session Announcement Protocol (RFC 2974). ● Sirve para 'anunciar' una sesión multimedia – “Hoy a las 8, película de noseke...” – Como la revista de la TV ● No se encarga de describir la sesión, para eso tenemos SDP.
  • 6.
    Curso: Introducción ala VoIP y Asterisk 6 SDP ● Session Description Protocol (RFC 4566) ● Contiene toda la información que un usuario puede necesitar para unirse a una sesión multimedia. ● Ofrece la siguiente información – IP/puerto para conectarse a la sesión – Codecs soportados – Información descriptiva
  • 7.
    Curso: Introducción ala VoIP y Asterisk 7 Recapitulando... ● Hasta ahora sabemos hacer 2 cosas – Anunciar una sesión multimedia – Describirla ● Pero... ¿como indicamos a alguien que se una? – Hay que INVITARLE a inicial una sesión SIP: Session Initiation Protocol
  • 8.
    Curso: Introducción ala VoIP y Asterisk 8 Origen ● Para cubrir la carencia de no poder iniciar una sesión multimedia con alguien, surgió SIP. ● Estándar de la IETF, recogido en el RFC3261 (SIPv2) ● 'Merge' entre – SIPv1 (Session Invitation Protocol) – SCIP (Simple Conference Invitation Protocol) ● Capa de transporte: UDP / TCP (Websocket, TLS). ● La más habitual: UDP (puerto 5060)
  • 9.
    Curso: Introducción ala VoIP y Asterisk 9 Funcionalidades ● SIP proporciona un mecanismo para iniciar, modificar y finalizar una sesión. ● Independiente del tipo de sesión multimedia y de su descripción. – Podemos invitar a alguien a una partida online de mus mediante SIP, utilizando MGDP (Mus Game Description Protocol) para describir la sesión. XD ● Movilidad del usuario – Necesidad de conocer su localización. – SIP URIs: identificar a usuario SIP. sip:carlos@irontec.com – Los usuarios registran su ubicación en el servidor.
  • 10.
    Curso: Introducción ala VoIP y Asterisk 10 Direccionamiento SIP ● Hay que distinguir 2 conceptos: la dirección SIP lógica de un usuario y su dirección 'física'. ● La dirección SIP lógica es la URI SIP y está ligada al usuario. – Es equivalente a una dirección de correo electrónico: userA@sipDomainA ● La dirección 'física' es la dirección del dispositivo desde el que se registra un usuario SIP. ● La asociación entre ambas la gestiona el Location Server.
  • 11.
    Curso: Introducción ala VoIP y Asterisk 11 Entidades SIP ● User-Agent: entidad con la que interactúa el usuario. – Teléfono SIP – Softphone ● Servidor Proxy: servidor que gestiona las invitaciones a las sesiones de un determinado dominio SIP. – Recibe peticiones de UAs y otros Proxy. – Se apoya en el Location Server para transformar/resolver direcciones SIP.
  • 12.
    Curso: Introducción ala VoIP y Asterisk 12 Entidades SIP (2) ● Registrar: servidor que acepta peticiones de registro y transmite la información al Location Server. ● Location Server: Guarda la relación entre la dirección SIP lógica y la dirección física de los subscribers de un determinado dominio SIP. ● Normalmente los 3 últimos son el mismo software. ● La relación entre estas entidades se divide en: ● Conexiones dentro del dominio SIP. ● Conexiones entre distintos dominios.
  • 13.
    Curso: Introducción ala VoIP y Asterisk 13 Relación de entidades SIP (1) Conexión entre dos subcribers del mismo dominio SIP
  • 14.
    Curso: Introducción ala VoIP y Asterisk 14 Relación de entidades SIP (2) Conexión entre dos usuarios de diferentes dominios SIP
  • 15.
    Curso: Introducción ala VoIP y Asterisk 15 Por qué SIP es el camino a seguir ● Diferencia entre el establecimiento y la descripción de la sesión – Extensible ● Protocolo de extremo a extremo – Un usuario ES DUEÑO DE SU SESIÓN – Paradigma IP vs. Paradigma SS7 ● Favorece la interoperabilidad – El 'core' es “””relativamente””” sencillo: 6 métodos – Funcionalidades adicionales mediante extensiones ● Es escalable – La inteligencia esta en los extremos – La red guarda muy pocos datos del estado
  • 16.
    Curso: Introducción ala VoIP y Asterisk 16 Métodos SIP RFC 3261 ● INVITE – Invita a un usuario a una sesión multimedia – Modifica una sesión multimedia existente ● ACK – Proporciona un 3-way-handshake en el INVITE, sirve para confirmar la recepción de una respuesta final a un INVITE ● CANCEL – Cancela una transacción en curso ● BYE – Se utilizan para abandonar una sesión ● REGISTER – Sirven para informar al servidor de la ubicación del usuario ● OPTIONS – Nos permite consultar qué métodos soporta un usuario.
  • 17.
    Curso: Introducción ala VoIP y Asterisk 17 Transacciones Cliente-Servidor ● Un cliente GENERA peticiones. ● Un servidor RECIBE peticiones. ● El UA que genera peticiones se conoce como UAC: User Agent Client. ● El UA que responde a las peticiones se conoce como UAS: User Agent Server. ● Una petición, junto con las respuestas que genera, es una TRANSACCIÓN.
  • 18.
    Curso: Introducción ala VoIP y Asterisk 18 Respuestas SIP ● 100 – 199: provisional e informativa ● 200 – 299: afirmativa ● 300 – 399: redirección ● 400 – 499: error del cliente ● 500 – 599: error del servidor ● 600 – 699: fallo global ● Las respuestas incluyen un mensaje descriptivo, pero lo importante es el código numérico.
  • 19.
    Curso: Introducción ala VoIP y Asterisk 19 INVITE INVITE 180 Ringing Alice Bob 200 OK
  • 20.
    Curso: Introducción ala VoIP y Asterisk 20 ACK INVITE 180 Ringing ACK 200 OK Conversación Alice Bob
  • 21.
    Curso: Introducción ala VoIP y Asterisk 21 ACK (2) ● INVITE es el único método que utiliza 3 way handshake. ● El resto de mensajes esperan una respuesta veloz, pero en el caso del INVITE, esta puede tardar. ● El UAC manda al UAS un ACK, indicando que ha recibido su respuesta. ● Aseguramos el correcto establecimiento de la sesión sobre un medio no fiable: UDP
  • 22.
    Curso: Introducción ala VoIP y Asterisk 22 CANCEL INVITE 180 Ringing ACK 200 OK Alice Bob CANCEL 487 Transaction Cancelled
  • 23.
    Curso: Introducción ala VoIP y Asterisk 23 BYE INVITE 180 Ringing ACK 200 OK Alice Bob BYE 200 OK Conversación
  • 24.
    Curso: Introducción ala VoIP y Asterisk 24 REGISTER REGISTER 401 Unauthorized REGISTER 200 OK Alice Servidor SIP
  • 25.
    Curso: Introducción ala VoIP y Asterisk 25 OPTIONS OPTIONS Alice Bob 200 OK
  • 26.
    Curso: Introducción ala VoIP y Asterisk 26 Cabeceras SIP ● From – Identifica al que origina una petición. ● Call-ID – Representa una relación entre 2 dispositivos SIP, relacionando un INVITE y todas las transacciones asociadas. ● Contact – Incluye una SIP URL, indicando donde se puede contactar con el usuario. ● To – Identifica al receptor de una petición. ● Vía – Contiene todos los proxys que han gestionado una petición. – Hace que las respuestas sigan el mismo camino que las peticiones
  • 27.
    Curso: Introducción ala VoIP y Asterisk 27 Conceptos importantes: Transacción y Diálogo ● Transacción – Una petición + respuesta, SI la respuesta es afirmativa (INVITE + 200 OK) – Una petición + respuesta negativa + ACK (INVITE + 404 Not Found + ACK) – Identificado unívocamente por el 'branch' de la cabecera Vía. ● Diálogo – Concepto de 'llamada' – Identificado unívocamente por el From tag, To tag y Call-ID. NB
  • 28.
    Curso: Introducción ala VoIP y Asterisk 28 Tipos de proxys SIP ● Stateful Proxy – Su ámbito es la transacción. – No entiende de diálogos, pero sí de transacciones. ● Stateless Proxy – No guardan ningún tipo de estado. IMPORTANTE: Asterisk NO es un proxy SIP!!
  • 29.
    Curso: Introducción ala VoIP y Asterisk 29 Asterisk NO es un proxy SIP!! ● Un proxy SIP simplemente conecta UAC. ● Rara vez permanece en medio una vez establecida la sesión (salvo por motivos de facturación). ● NUNCA es el endpoint de una llamada. ● Asterisk es: – Location Server – Registrar Server – Media Gateway – B2BUA
  • 30.
    Curso: Introducción ala VoIP y Asterisk 30 Routing de mensajes SIP Alice BobServidor SIP INVITE INVITE 180 Ringing180 Ringing 200 OK200 OK ACK Conversación BYE 200 OK
  • 31.
    Curso: Introducción ala VoIP y Asterisk 31 Routing de mensajes SIP (2) ● Después del 200 OK, Alice ya sabe donde esta Bob (Contact) ● Las transacciones siguientes (ACK y BYE-200 OK) van directamente de extremo a extremo. ● Podemos alterar este comportamiento con las cabeceras Record-Route y Route – Si queremos facturar, queremos estar al tanto de la señalización...
  • 32.
    Curso: Introducción ala VoIP y Asterisk 32 Routing de mensajes SIP (3) INVITE INVITE 180 Ringing 180 Ringing 200 OK 200 OK Conversación ACK ACK BYE BYE 200 OK 200 OK Alice Servidor SIP Bob
  • 33.
    Curso: Introducción ala VoIP y Asterisk 33 Routing de mensajes SIP (4) ● Cada proxy que quiere quedarse 'en medio' añade una cabecera Record-Route al invite que pasa a través de él. ● Las cabeceras se mantienen y se envían de vuelta en la respuesta. ● Las siguientes transacciones se generan con la cabecera Route (en orden inverso que las Record-Route). ● En mensaje se envía al proxy que indica su primera cabecera Route y el proxy la elimina.
  • 34.
    Curso: Introducción ala VoIP y Asterisk 34 Extendiendo SIP ● Con lo visto hasta ahora, solo podemos hacer y recibir llamadas :-O ● PEEEERO, SIP se diseñó para ser extensible, por lo que se le han añadido servicios mediante extensiones al protocolo. – Mensajería – Notificaciones Asíncronas de Eventos – Transferencia de sesiones – ...
  • 35.
    Curso: Introducción ala VoIP y Asterisk 35 Métodos SIP posteriores ● SUBSCRIBE Subscripción a eventos ● NOTIFY Notificaciones de eventos a subscriptores ● PUBLISH Notificación de evento por parte del UAC ● INFO ● UPDATE ● REFER (call tranfer) ● MESSAGE ● PRACK
  • 36.
    Curso: Introducción ala VoIP y Asterisk 36 Mensajería Instantánea INVITE 180 Ringing Alice Bob 200 OK ACK MESSAGE “Como mola SIP!!” 200 OK
  • 37.
    Curso: Introducción ala VoIP y Asterisk 37 Notificaciones Asíncronas de Eventos INVITE 484 Busy Here Alice Bob 200 OK ACK SUBSCRIBE Estado de Bob 200 OK NOTIFY Bob esta ocupado 200 OK NOTIFY Bob esta disponible INVITE
  • 38.
    Curso: Introducción ala VoIP y Asterisk 38 Transferencia de sesiones
  • 39.
  • 40.
    Curso: Introducción ala VoIP y Asterisk 40 NAT Problema del NAT ● El 'supuesto' agotamiento de los rangos de direcciones IP utilizables en Internet ha obligado a utilizar direcciones IP privadas dentro de las redes de empresas y usuarios domésticos. ● Un equipo IP para ser alcanzado en Internet debe utilizar una IP pública para sus comunicaciones. Es necesario por tanto 'enmascarar' la red interna en una o varias IPs públicas (Source NAT). ● El proceso de NAT no es nada sencillo: varios tipos de NAT, varios tipos de soluciones. ● Tesis Heinz Herlitz: – http://www.uct.cl/biblioteca/tesis-on-line/heinz-herlitz/tesis.pdf
  • 41.
    Curso: Introducción ala VoIP y Asterisk 41 NAT y SIP Esquema Base Red local IP's privadas: 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 Internet Router NAT Proceso NAT: conversión IP privada » IP pública Problema en entrada: mapeo de puertos Problema en salida: encapsulación IP y puerto de RTP a nivel de aplicación
  • 42.
    Curso: Introducción ala VoIP y Asterisk 42 NAT y SIP Tipos de NAT (I) ● NAT full cone: Todas las peticiones desde la misma IP/puerto de la LAN son mapeadas a la misma IP/puerto público. Cualquier máquina puede enviar paquetes a la máquina interna por esa IP/puerto mediante redirección de puertos. Router NAT Google Irontec 2050 4702 80 4702 3590 2050 Máquina interna
  • 43.
    Curso: Introducción ala VoIP y Asterisk 43 NAT y SIP Tipos de NAT (II) ● NAT restringido: Lo mismo, pero una máquina externa con IP X puede enviar paquetes a la máquina interna sólo si ésta le ha enviado paquetes previamente. No importa el puerto. Router NAT Google Irontec 2050 4702 80 1025 3590 1025 Máquina interna 1025 2231
  • 44.
    Curso: Introducción ala VoIP y Asterisk 44 NAT y SIP Tipos de NAT (III) ● NAT puerto restringido: Lo mismo que NAT restringido, pero la máquina externa con IP X y puerto P sólo puede enviar paquetes a la máquina interna si ésta le ha enviado previamente paquetes al puerto P. Router NAT Google Irontec 2050 4702 80 125 3590Máquina interna 125 2231
  • 45.
    Curso: Introducción ala VoIP y Asterisk 45 NAT y SIP Tipos de NAT (IV) ● NAT simétrico: Todas las peticiones desde la misma IP/puerto de la LAN a una IP/puerto externos específicos son mapeadas a la misma IP/puerto público. Si la máquina interna envía un paquete a una IP/puerto distintos el mapeo cambia. Por lo tanto, sólo la máquina externa que recibe un paquete puede devolver paquetes a la máquina interna. Router NAT Google Irontec 2050 4702 80 Máquina interna 125 2231 2050 9055 80
  • 46.
    Curso: Introducción ala VoIP y Asterisk 46 NAT y SIP Tipos de NAT (V) ● La clasificación anterior está abandonada hoy en día. Muchas implementaciones NAT oscilan entre varios de los tipos. – Preservación de puerto: Se mapea la misma IP/puerto externo para la misma IP/puerto interno. Si dos máquinas internas tratan de conectar con la misma IP/puerto externo, el puerto exterior mapeado a la segunda máquina se elige aleatoriamente. También se conoce como NAT restricted cone.
  • 47.
    Curso: Introducción ala VoIP y Asterisk 47 NAT y SIP ¿Cómo nos afecta el NAT? ● El paquete SIP que enviamos contiene IPs privadas: – Cabecera 'Via' – Cabecera 'Contact' – Campo 'c' en el SDP
  • 48.
    Curso: Introducción ala VoIP y Asterisk 48 NAT y SIP INVITE sip:destino@mydomain.org SIP/2.0 Via: SIP/2.0/UDP 192.168.1.33:5060;rport;branch=z9hG4bKjyofoqmp Max-Forwards: 70 To: <sip:destino@mydomain.org> From: "Iñaki" <sip:ibc@mydomain.org>;tag=nrrrx Call-ID: xetazdjyktlpsfo@192.168.1.33 CSeq: 800 INVITE Contact: <sip:ibc@192.168.1.33:5060> Content-Type: application/sdp Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE Supported: replaces,norefersub,100rel User-Agent: Twinkle/1.1 Content-Length: 312 v=0 o=ibc 1090098764 894503441 IN IP4 192.168.1.33 c=IN IP4 192.168.1.33 t=0 0 m=audio 8000 RTP/AVP 98 97 8 0 3 101
  • 49.
    Curso: Introducción ala VoIP y Asterisk 49 NAT y SIP Soluciones para NAT ● Solución por parte del cliente: – Utilización de servidores STUN. – SIP ALG ● Soluciones de en los equipos de comunicaciones IP: – VPN – Mapeo de puertos ● Soluciones en los servidores SIP: – NAT helpers.
  • 50.
    Curso: Introducción ala VoIP y Asterisk 50 STUN: Simple Traversal of UDP through NATs Teoría de Funcionamiento ● Protocolo de red que permite a clientes detrás de NAT averiguar su IP pública, tipo de NAT y puerto exterior. ● El cliente STUN solicita a un servidor STUN la IP y puerto por los que ha salido a Internet. En función de varios test contra el servidor STUN el cliente averigua el tipo de NAT en el que se encuentra. ● El servidor STUN dispone de dos IPS públicas. ● No soluciona el problema del NAT simétrico. ● En VoIP se utiliza para facilitar la recepción de los datos de voz RTP (UDP). ● Servidores STUN públicos: – stun.fwd.net, stun.xten.com, ...
  • 51.
    Curso: Introducción ala VoIP y Asterisk 51 SIP ALG ● SIP Application Level Gateway ● Implementado en routers de todas las gamas – Comtrend de Telefónica – SpeedTouch de Orange ● El 99,99% de los ALG no funcionan ● Es necesario deshabilitarlo para poder utilizar VoIP
  • 52.
  • 53.
    Curso: Introducción ala VoIP y Asterisk 53 Canales SIP Configuración para canales SIP ● La instalación crea ficheros de ejemplo con la sintaxis bastante comentada a modo de guía. sip.conf ● En este fichero se definen: – Variables generales de SIP. – Clientes SIP. – Servidores SIP.
  • 54.
    Curso: Introducción ala VoIP y Asterisk 54 Canales SIP sip.conf: Sección General ● En primer lugar existe la sección [general], donde se definen variables globales y aspectos por defecto para todos los canales SIP. ● La sintaxis es la siguiente: [general] variable1=valor1 variable2=valor2
  • 55.
    Curso: Introducción ala VoIP y Asterisk 55 Canales SIP sip.conf: Sección General ● Las variables generales más importantes son: – allow y disallow: indican los codecs permitidos / no permitidos. – dtmfmode: permite especificar el método por el cual se enviaran los tonos DTMF valores posibles: rfc2833, INFO, inband. – context: Contexto por defecto donde entraran las llamadas entrantes por SIP. – {udp,tcp,tls}bindaddr: Dirección IP en la que se escucha. Puerto opcional con ':'. – transport: Protocolo de transporte preferido.
  • 56.
    Curso: Introducción ala VoIP y Asterisk 56 Canales SIP sip.conf: Clientes y Servidores ● En sip.conf se definen tanto los clientes que se conectarán a Asterisk, como los proveedores que se utilizaran para encaminar llamadas. ● 3 tipos de usuarios. En función del tipo, Asterisk se fija en unos campos o en otros a la hora de identificar sus peticiones SIP: – peer: IP y puerto (proveedor IP o otros servers) – user: From header (sin domain) == [snom] / defaultuser (en desuso) – friend: Mezcla de los anteriores (UACs). Asterisk internamente crea user y peer. ● Primero Asterisk busca en la tabla de users con el From sin dominio. Si no encuentra, pasa a la tabla de peer fijándose en IP/puerto. ● La sintaxis para definir un friend o un peer es: [nombre] type = friend / peer
  • 57.
    Curso: Introducción ala VoIP y Asterisk 57 Canales SIP sip.conf: Clientes y Servidores ● Las variables más importantes que deben ser configuradas inicialmente son: – type: peer / friend – context: Contexto donde entraran las llamadas generadas. – nat: Indica si el usuario o peer se encuentran tras NAT. – host: IP remota o 'dynamic' si se registrará. – fromuser: nombre de usuario. – secret: contraseña de acceso. – allow y disallow: Configuraciones de codecs específicas para cada friend/peer. – qualify: Evalúa el estado del extremo SIP para conocer su accesibilidad y latencia.
  • 58.
    Curso: Introducción ala VoIP y Asterisk 58 Canales SIP sip.conf: Ejemplo: usuario ● Vamos a declarar de forma básica dos clientes en el fichero sip.conf: [jon] type = friend secret = jon disallow=all allow = alaw context = desde-usuarios host=dynamic [leire] type = friend secret = leire disallow = all allow = alaw context = desde-usuarios host=dynamic
  • 59.
    Curso: Introducción ala VoIP y Asterisk 59 Canales SIP sip.conf: Ejemplo: peer ● Vamos a configurar un proveedor en sip.conf: [sarenet] type=peer host = sarevoz.com disallow = all allow = g729 allow = alaw fromuser= 24162 fromdomain = sarevoz.com defaultuser=24162 secret=iwonttellyou insecure=port,invite directmedia=no sendrpid=pai
  • 60.
    Curso: Introducción ala VoIP y Asterisk 60 Canales SIP sip.conf: Verificación de la configuración ● Mediante el comando module reload en el CLI de Asterisk, le indicamos que recargue la configuración. Aunque es posible recargar la configuración SIP de forma independiente: sip reload ● Una vez recargada, podemos comprobar los usuarios y peers que tenermos definidos haciendo: sip show peers
  • 61.
  • 62.
    Curso: Introducción ala VoIP y Asterisk 62 Trunks SIP en Asterisk ● A parte de para registrar teléfonos podemos utilizar SIP para enlazar Asterisk con cualquier PBX, gateway, proxy, ... que hable SIP. – Configuración de un peer/user/friend. – Proveedor IP – Si el proveedor IP nos va a meter llamadas, necesitaremos una línea de register en sip.conf antes de la sección [authentication]: register => 24162:iwonttellyou@194.30.0.111/943943943
  • 63.
  • 64.
    Curso: Introducción ala VoIP y Asterisk 64 IAX2 Protocolo IAX2 ● IAX2: Inter Asterisk eXchange ● Creado y estandarizado por la centralita Asterisk. ● Utiliza el puerto 4569 UDP. ● Características Principales: – Media y señalización por el mismo flujo de datos. – Trunking – Cifrado
  • 65.
    Curso: Introducción ala VoIP y Asterisk 65 IAX2(2) Protocolo IAX2: Ventajas ● NAT: Al enviar tanto señalización como streaming por el mismo flujo de datos (flujo UDP), se evitan los problemas derivados del NAT. No es necesario abrir rangos de puertos para RTP. ● Trunking: Es posible enviar varias conversaciones por el mismo flujo, lo cual supone un importante ahorro de ancho de banda (overhead de la capas IP y transporte UDP).
  • 66.
  • 67.
    Curso: Introducción ala VoIP y Asterisk 67 Ejercicios 1) El objetivo de este ejercicio es registrar un hardphone en vuestro flamante nuevo Asterisk. Para ello: – Conectar hardphone al SW y ver qué IP obtiene. – Configurar un usuario de tipo 'friend' en sip.conf – Acceder a la web de configuración del teléfono (introduciendo su IP en un navegador web) y configurar cuenta SIP. – Verificar registro con 'sip show peers'
  • 68.
    Curso: Introducción ala VoIP y Asterisk 68 Ejercicios(2) 2) Realiza un trunk SIP contra la PBX de tu compañero. 3) Realiza un trunk SIP contra el proveedor IP Sarevoz. Bonus) Previa introducción mínima al Dialplan de Asterisk, haz posible: ● Llamar a tu móvil (saliendo por Sarevoz) ● Llamar al teléfono de tu compañero. Hint1: qualify=yes en la definición del peer puede ayudar Hint2: *CLI> sip set debug on Hint3: # ngrep -qt -W byline -d any port 5060 and udp
  • 69.
    Curso: Introducción ala VoIP y Asterisk 69 Soluciones Solución 1: [1001] type=friend secret=mysecret context=desde-usuarios host=dynamic disallow=all allow=alaw Solución 2: En la centralita A: [pbxB] type=peer host=ipB defaultuser=pbxA secret=sh4r3dk3y context=desde-trunksip disallow=all allow=alaw En la centralita B: [pbxA] type=peer host=ipA defaultuser=pbxB secret=sh4r3dk3y context=desde-trunksip disallow=all allow=alaw
  • 70.
    Curso: Introducción ala VoIP y Asterisk 70 Soluciones(2) Solución 3: [sarevoz] type=peer host = sarevoz.com disallow = all allow = g729 allow = alaw defaultuser=24162 fromuser= 24162 fromdomain = sarevoz.com secret=iwonttellyou directmedia=no sendrpid=pai Bonus: extensions.conf: [desde-usuarios] exten => 1001,1,Dial(SIP/pbxX/1001) exten => _X.,1,Dial(SIP/sarevoz/${EXTEN}) [desde-trunksip] exten => 1001,1,Dial(SIP/1001)