Академический Документы
Профессиональный Документы
Культура Документы
Para poder entender que es la telefonía IP primero debemos tener en claro algunos
puntos sobre la telefonía que usamos diariamente.
La red de equipos y cables por donde nos prestan el servicio se denomina Red Publica,
como las conexiones entre los usuarios no son fijas, si no que se establecen
temporariamente entre distintos usuarios al momento de hacer cada llamada, se las
denomina CONMUTADAS, y la conmutación puede ser MANUAL, por medio de una
operadora o AUTOMATICA con equipos que las realizan por ellos mismos.
Al conjunto de cables y equipos que forman la red de telefonía con las que los
prestadores nos brindan el servicio se lo denomina genéricamente PSTN de las ingles
Public Switched Telephone Network, algo así como Red Publica de Telefonía
Conmutada. De la misma forma como el servicio de telefonía se lo aplica a
comunicaciones de voz se lo suele denominar "Telefonía Básica" y en otros textos
hacen referencias generales a la RTB o Red de Telefonía Básica.
Esta señalización ocurre en cada llamada, solo que nos parece tan natural que no le
prestamos atención, por ejemplo en llamada telefónica.
Así pues, todos los aparatos conectados a una red deben implementar la misma
señalización para poder comunicarse dentro de esa red.
Las empresas también pueden tener en sus ámbitos privados sus propias redes, y a las
centrales que manejan esa redes se las denomina PBX (Private Branch Excnage) o
PABX (Private Automatic Branch Excange) si bien ambos términos se suelen usar en
forma indistinta, la diferencia radica en que la PBX admite también un modo de
conmutación MANUAL o dicho de otra forma permite intervención manual sobre el
manejo de las llamadas, mientras que una PABX es solo automática.
• Analógica es aquella donde el sonido viaja por los equipos y cables conservando
la forma original en que fue generada, también se la suele denominar "Telefonía
Convencional".
En tecnologías digitales hay muchas, pero la mas conocida en la telefonía por cables es
la denominada RDSI conocida como Red Digital de Servicios Integrados (en ingles
ISDN), cuyo nombre nos deja en claro que además de poder efectuar comunicaciones
vocales puede realizar una comunicación de otro tipo entre los terminales de usuario,
por ejemplo transmitir video, o un enlace de datos entre computadoras.
Normalmente en las empresas más grandes usan centrales privadas de este tipo ya
que permiten funcionalidades mucho mas avanzadas. Los equipos que se conectan a
ellas son especialmente diseñados para estas centrales, NO SON COMPATABILES con
las líneas telefonía analógica, por eso para poder conectar los teléfonos convencionales
se arman centrales híbridas que soportan simultáneamente las dos tecnologías
permitiendo llamados entre un teléfono digital y otro analógico. A este Proceso de
conectar o "Puentear" dos tecnologías distintas por un medio de conmutación se lo
denomina BRDIGING, y normalmente requiere procesar el audio y convertirlo de un
formato a otro, o incluso aun reprocesar la señalización.
Los protocolos mas conocidos por los usuarios dentro del mundo de Internet son el
HTTP, que permite ver las paginas Web, el FTP que permite la transferencia de
archivos, SMTP y POP que permiten hacer uso del mail etc,etc.
En la telefonía IP los protocolos pueden ser varios según el servicio a realizar, los que
tiene que ver con la VOZ son el H323 y el SIP (Session Initiate Protolocol) o Protocolo
de Inicio de Sesión. El H323 fue el mas usado inicialmente, de hecho algunos
programas, como por ejemplo el Netmeeting de Microsoft, eran en realidad un cliente
de comunicaciones que implementaba este protocolo y que pueden funcionar como un
"teléfono IP H323". Este protocolo era muy rígido respecto del manejo de los recursos
de hardware y los puertos de red y al correr el tiempo el protocolo SIP prácticamente
ocupó la totalidad de las comunicaciones Voip.
Normalmente las comunicaciones SIP pueden ser entre pares (peer to peer) o por
medio de un servidor que lleva a cabo la "representación" de cada peer, a este servidor
normalmente se le suele denominar SIP Proxy, y su función es la de REGISTRAR cada
cliente SIP que se pone activo para poder localizarlo en la red, así pues cuando una
central IP o el mismo Proxy necesitan ECONTRAR un Cliente SIP sabrán donde hallarlo,
este es un proceso similar al que ocurre con las paginas WEBs y los servidores de DNS,
donde la ubicación real de la pagina es una dirección IP formada por cuatro números
de tres cifras, pero en los navegadores escribimos su nombre, y en base a éste el
servidor de DNS le brinda la dirección ip a nuestro navegador (o podríamos decirle
nuestro cliente HTTP) para que la encuentre. Esta analogía en sentido estricto es un
ejemplo grafico para poder asimilar el proceso.
Dentro de la variedad de teléfonos IP, incluso podemos encontrar una línea de equipos
WIFI, que son de una apariencia externa similar a un celular GSM.
¿Que es SoftPhone?
Es un programa que se puede instalar en una computadora de escritorio, laptop,
notebook o incluso en algunos handheld, también en terminales 3g con acceso a
Internet en los cuales se puedan agregar aplicaciones de usuario. Una vez instalados
permiten tener servicio de telefonía transportado sobre una red TCP/IP, por ejemplo
sobre Internet o una red privada LAN o una red privada WAN. Esta misma prestación la
realizan los equipos denominados ATA y VoIP GATEWAYS que posibilitan convertir una
llamada de un teléfono analógico convencional en llamada IP.
¿Y los costos?
Son mucho mas económicos que aquellos que presentan las mismas prestaciones pero
basadas en telefonía convencional. De la misma, forma si contrata un plan de llamadas
de larga distancia con un servicio VoIP, obtendrá tarifas mas económicas que con su
operador de telefonía convencional y podrá utilizar la misma cuenta desde su oficina,
desde su casa, o cuando este de viaje ahorrando cientos de $$$ en comunicaciones,
incluso podrá asignarle internos remotos a sus clientes mas importantes de forma de
mantener una comunicación fluida y gratuita.
Arquitectura IAX
El protocolo IAX se corresponde con Inter-Asterisk eXchange protocol. Como indica su
nombre fue diseñado como un protocolo de conexiones VoIP entre servidores Asterisk
aunque hoy en día también sirve para conexiones entre clientes y servidores que
soporten el protocolo.
La versión actual es IAX2 ya que la primera versión de IAX ha quedado obsoleta Es un
protocolo diseñado y pensado para su uso en conexiones de VoIP aunque puede
soportar otro tipo de conexiones (por ejemplo video), Los objetivos de IAX son:
• Minimizar el ancho de banda usado en las transmisiones de control y
multimedia de VoIP.
• Evitar problemas de NAT (Network Address Translation).
• Soporte para transmitir planes de marcación.
Entre las medidas para reducir el ancho de banda cabe destacar que IAX o IAX2 es un
protocolo binario en lugar de ser un protocolo de texto como SIP y que hace que los
mensajes usen menos ancho de banda.
Para evitar los problemas de NAT el protocolo IAX o IAX2 usa como protocolo de
transporte UDP, normalmente sobre el puerto 4569,(el IAX1 usaba el puerto 5036), y
tanto la información de señalización como los datos viajan conjuntamente (a diferencia
de SIP) y por tanto lo hace menos proclive a problemas de NAT y le permite pasar los
routers y firewalls de manera más sencilla.
Mensajes IAX
Para poder entender el protocolo IAX vamos a ver un ejemplo del flujo de datos de una
comunicación IAX2
A) Establecimiento de la llamada
El terminal A inicia una conexión y manda un mensaje "new". El terminal
llamado responde con un "accept" y el llamante le responde con un "Ack". A
continuación el terminal llamado da las señales de "ringing" y el llamante
contesta con un "ack" para confirmar la recepción del mensaje. Por último, el
llamado acepta la llamada con un "answer" y el llamante confirma ese mensaje.
El significado de los campos es similar al de las tramas F o full frame. En este caso el
bit F está puesto a 0 y el sello de tiempo o Timestamp está truncado y solo tiene 16
bits para aligerar la cabecera. Son los clientes los que deben encargarse de llevar un
timestamp de 32 bits si lo desean y para sincronizarlo mandar una trama F.
Tabla 1. Posibles valores del campo "Type Frame" de las tramas F o Full Frame
Valor "type
Descripción Detalles
frame"
00000001 DTMF Sirve para enviar dígitos DTMF
El campo subclase indica el tipo de codec de audio que se utiliza
00000002 Datos de voz
según la tabla 2
Datos de
00000003 El campo subclase indica el tipo de codec de video que se utiliza
video
Mensajes de control de sesión. Sirve para controlar el estado de los
00000004 Control dispositivos finales. El campo subclase indica el tipo concreto de
mensaje de control según tabla 3.
00000005 No usado
Mensajes de control del protocolo IAX. Gestiona las interacciones
00000006 Control IAX necesarias entre los dispositivos finales. El campo subclase indica el
tipo concreto de mensaje de control según tabla 4.
00000007 Texto
00000008 Imagen
00000009 HTML
Tabla 2. Significado de los valores del campo subclase para Frame Type = "0x02"
(datos de voz)
Valor Descripción (codec que se utiliza en la conversación)
subclase
(Type Frame
=0x02)
0x0001 G.723.1
0x0002 GSM
0x0004 G.711 u (u-law)
0x0008 G.711 a (a-law)
0x0080 LPC10
0x0100 G.729
0x0200 Speex
0x0400 iLBC
Tabla 3. Significado de los valores del campo subclase para Frame Type = "0x04"
(control)
Valor
subclase
Descripción Detalles
(Type Frame
=0x04)
0x01 Hangup La llamada se ha colgado
0x02 Ring El teléfono esta sonando
0x03 Ringing (ringback)
0x04 Answer Respuesta
0x05 Busy Condition El usuario está ocupado
Congestion
0x08 Existe congestión
Condition
0x0e Call Progress Progreso de la llamada
Tabla 4. Significado de los valores del campo subclase para Frame Type = "0x06"
(control IAX)
Valor
subclase
Descripción Detalles
(Type Frame
=0x05)
Iniciar una nueva
0x01 NEW 0x10 REGREJ Denegación de registro
llamada
0x02 PING Enviar un ping 0x11 REGREL Liberación de registro
Petición de
0x03 PONG Responder un ping 0x12 VNAK
retransmisión
0x04 ACK Respuesta afirmativa 0x13 DPREQ Petición de dialplan
0x05 HANGUP Inicio de desconexión 0x14 DPREP Respuesta de dialplan
0x06 REJECT Rechazo 0x15 DIAL Marcado
Petición de
0x07 ACCEPT Aceptación 0x16 TXREQ
transferencia
Petición de Conexión de
0x08 AUTHREQ 0x17 TXCNT
autenticación transferencia
Respuesta de Aceptación de
0x09 AUTHREP 0x18 TXACC
autenticación transferencia
0x0a INVAL Llamada no válida 0x19 TXREADY Transferencia preparad
Liberación de
0x0b LAGRQ Petición de Lag 0x1a TXREL
transferencia
0x0c LAGRP Respuesta de Lag 0x1b TXREJ Rechazo de
transferencia
Parar transmisión de
0x0d REGREQ Petición de registro 0x1c QUELCH
audio
Autenticación de Continuar transmisión
0x0e REGAUTH 0x1d UNQUELCH
registro de audio
Indicador de mensaje
0x0f REGACK ACK de registro 0x20 MWI
en espera
0x21 UNSUPPORT Mensaje no soportado
Arquitectura SIP
El protocolo SIP (Session Initiation Protocol) fue desarrollado por el grupo MMUSIC
(Multimedia Session Control) del IETF, definiendo una arquitectura de señalización y
control para VoIP. Inicialmente fue publicado en febrero del 1996 en la RFC 2543, ahora
obsoleta con la publicación de la nueva versión RFC 3261 que se publicó en junio del
2002.
El protocolo RTP se usa para transportar los datos de voz en tiempo real (igual que
para el protocolo H.323, mientras que el protocolo SDP se usa para la negociación de
las capacidades de los participantes, tipo de codificación, etc.)
Componentes SIP
SIP soporta funcionalidades para el establecimiento y finalización de las sesiones
multimedia: localización, disponibilidad, utilización de recursos, y características de
negociación.
1. User Agent (UA): consisten en dos partes distintas, el User Agent Client (UAC) y el
User Agent Server (UAS). Un UAC es una entidad lógica que genera peticiones SIP y
recibe respuestas a esas peticiones. Un UAS es una entidad lógica que genera
respuestas a las peticiones SIP.
Mensajes SIP
SIP es un protocolo textual que usa una semántica semejante a la del protocolo HTTP.
Los UAC realizan las peticiones y los UAS retornan respuestas a las peticiones de los
clientes. SIP define la comunicación a través de dos tipos de mensajes. Las solicitudes
(métodos) y las respuestas (códigos de estado) emplean el formato de mensaje
genérico establecido en el RFC 2822 , que consiste en una línea inicial seguida de un o
más campos de cabecera (headers), una línea vacía que indica el final de las
cabeceras, y por último, el cuerpo del mensaje que es opcional.
- Métodos SIP
Las peticiones SIP son caracterizadas por la línea inicial del mensaje, llamada Request-
Line, que contiene el nombre del método, el identificador del destinatario de la petición
(Request-URI) y la versión del protocolo SIP. Existen seis métodos básicos SIP (definidos
en RFC 254) que describen las peticiones de los clientes:
- INVITE: Permite invitar un usuario o servicio para participar en una sesión o para
modificar parámetros en una sesión ya existente.
- ACK: Confirma el establecimiento de una sesión.
- OPTION: Solicita información sobre las capacidades de un servidor.
- BYE: Indica la terminación de una sesión.
- CANCEL: Cancela una petición pendiente.
- REGISTER: Registrar al User Agent.
Sin embargo, existen otros métodos adicionales que pueden ser utilizados, publicados
en otros RFCs como los métodos INFO, SUBSCRIBER,etc.
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK646464100000000b43c52d6c00000d1200
000f03
Content-Length: 0
Contact: <sip:20000@192.168.0.100:5060>
Call-ID: ED9A8038-A29D-40AB-95B1-0F5F5E905574@192.168.0.100
CSeq: 36 REGISTER
From: <sip:20000@192.168.0.101>;tag=910033437093
Max-Forwards: 70
To: <sip:20000@192.168.0.101>
User-Agent: SJphone/1.60.289a (SJ Labs)
Authorization:Digest
username="20000",realm="192.168.0.101",nonce="43c52e9d29317c0bf1f885b9aaff1
522d93c7692",uri="192.168.0.101",response="f69463b8d3efdb87c388efa9be1a1e63"
Código Clases
1xx - Mensajes provisionales.
2xx - Respuestas de éxito.
3xx - Respuestas de redirección.
4xx - Respuestas de fallo de método.
5xx - Respuestas de fallos de servidor.
6xx - Respuestas de fallos globales.
- Via: Indica el transporte usado para el envío e identifica la ruta del request, por ello
cada proxy añade una línea a este campo.
- From: Indica la dirección del origen de la petición.
- To: Indica la dirección del destinatario de la petición.
- Call-Id: identificador único para cada llamada y contiene la dirección del host. Debe
ser igual para todos los mensajes dentro de una transacción.
- Cseq: Se inicia con un número aleatorio e identifica de forma secuencial cada
petición.
- Contact : Contiene una (o más) dirección que pueden ser usada para contactar con
el usuario.
- User Agent: Contiene el cliente agente que realiza la comunicación.
Message Header
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK646464100000007343c52679000020a600
000e45
Content-Length: 0
Call-ID: 911D32E5-EEDF-4572-B0B2-61B294636E88@192.168.0.100
CSeq: 1 ACK
From: "Prueba"<sip:20000@miasterisk.com>;tag=8922404614682
Max-Forwards: 70
Route: <sip:20001@192.168.0.1>
To: <sip:20001@miasterisk.com>;tag=as0a27b928
User-Agent: SJphone/1.60.289a (SJ Labs)
Contact: <sip:20100@192.168.0.100:5060>;expires=3600
Direccionamiento SIP
Una de las funciones de los servidores SIP es la localización de los usuarios y resolución
de nombres. Normalmente, el agente de usuario no conoce la dirección IP del
destinatario de la llamada, sino su e-mail.
Las entidades SIP identifican a un usuario con las SIP URI (Uniform Resource Identifiers)
definido en el RFC 2396. Una SIP URI tiene un formato similar al del e-mail, consta de
un usuario y un dominio delimitado por una @, como muestra los siguientes casos:
Arquitectura H.323
H.323 fue diseñado con un objetivo principal: Proveer a los usuarios con tele-
conferencias que tienen capacidades de voz, video y datos sobre redes de
conmutación de paquetes.
Componentes H.323
H.323 establece los estándares para la compresión y descompresión de audio y vídeo,
asegurando que los equipos de distintos fabricantes se intercomuniquen. Así, los
usuarios no se tienen que preocupar de cómo el equipo receptor actúa, siempre y
cuando cumpla este estándar. Por ejemplo, la gestión del ancho de banda disponible
para evitar que la LAN se colapse con la comunicación de audio y vídeo también está
contemplada en el estándar, esto se realiza limitando el número de conexiones
simultáneas.
También la norma H.323 hace uso de los procedimientos de señalización de los canales
lógicos contenidos en la norma H.245, en los que el contenido de cada uno de los
canales se define cuando se abre. Estos procedimientos se proporcionan para fijar las
prestaciones del emisor y receptor, el establecimiento de la llamada, intercambio de
información, terminación de la llamada y como se codifica y decodifica. Por ejemplo,
cuando se origina una llamada telefónica sobre Internet, los dos terminales deben
negociar cual de los dos ejerce el control, de manera tal que sólo uno de ellos origine
los mensajes especiales de control. Un punto importante es que se deben determinar
las capacidades de los sistemas, de forma que no se permita la transmisión de datos si
no pueden ser gestionados por el receptor.
• Terminal
• GateWay
• Gatekeeper
• Unidad de Control Multipunto
• Controlador Multipunto
• Procesador Multipunto
• Proxy H.323
1. Terminal
Un terminal H.323 es un extremo de la red que proporciona comunicaciones bi
direccionales en tiempo real con otro terminal H.323, gateway o unidad de control
multipunto (MCU). Esta comunicación consta de señales de control, indicaciones, audio,
imagen en color en movimiento y /o datos entre los dos terminales. Conforme a la
especificación, un terminal H.323 puede proporcionar sólo voz, voz y datos, voz y
vídeo, o voz, datos y vídeo.
Un terminal H.323 consta de las interfaces del equipo de usuario, el códec de video, el
códec de audio, el equipo telemático, la capa H.225, las funciones de control del
sistema y la interfaz con la red por paquetes.
d. Canal de datos: Uno o más canales de datos son opcionales. Pueden ser
unidireccionales o bi direccionales.
e. Retardo en el trayecto de recepción: Incluye el retardo añadido a las tramas
para mantener la sincronización, y tener en cuenta la fluctuación de las llegadas de
paquetes. No suele usarse en la transmisión sino en recepción, para añadir el
retardo necesario en el trayecto de audio para, por ejemplo, lograr la sincronización
con el movimiento de los labios en una videoconferencia.
g. Capa H.225: Se encarga de dar formato a las tramas de video, audio, datos y
control transmitidos en mensajes de salida hacia la interfaz de red y de
recuperarlos de los mensajes que han sido introducidos desde la interfaz de red.
Además lleva a cabo también la alineación de trama, la numeración secuencial y la
detección/corrección de errores.
El servicio de extremo a extremo no fiable (UDP, IPX) es obligatorio para los canales de
audio, los canales de video y el canal de RAS. Estos servicios pueden ser dúplex o
símplex y de unicast o multicast dependiendo de la aplicación, las capacidades de los
terminales y la configuración de la red.
2. Gateway
Un gateway H.323 es un extremo que proporciona comunicaciones bi direccionales en
tiempo real entre terminales H.323 en la red IP y otros terminales o gateways en una
red conmutada. En general, el propósito del gateway es reflejar transparentemente las
características de un extremo en la red IP a otro en una red conmutada y viceversa.
3. Gatekeeper
El gatekeeper es una entidad que proporciona la traducción de direcciones y el control
de acceso a la red de los terminales H.323, gateways y MCUs. El gatekeeper puede
también ofrecer otros servicios a los terminales, gateways y MCUs, tales como gestión
del ancho de banda y localización de los gateways.
El Gatekeeper realiza dos funciones de control de llamadas que preservan la integridad
de la red corporativa de datos. La primera es la traslación de direcciones de los
terminales de la LAN a las correspondientes IP o IPX, tal y como se describe en la
especificación RAS. La segunda es la gestión del ancho de banda, fijando el número de
conferencias que pueden estar dándose simultáneamente en la LAN y rechazando las
nuevas peticiones por encima del nivel establecido, de manera tal que se garantice
ancho de banda suficiente para las aplicaciones de datos sobre la LAN.
4. MCU
La Unidad de Control Multipunto está diseñada para soportar la conferencia entre tres
o más puntos, bajo el estándar H.323, llevando la negociación entre terminales para
determinar las capacidades comunes para el proceso de audio y vídeo y controlar la
multi difusión.
5. CONTROLADOR MULTIPUNTO
Un controlador multipunto es un componente de H.323 que provee capacidad de
negociación con todos los terminales para llevar a cabo niveles de comunicaciones.
También puede controlar recursos de conferencia tales como multicasting de vídeo. El
Controlador Multipunto no ejecuta mezcla o conmutación de audio, vídeo o datos.
6. PROCESADOR MULTIPUNTO
Un procesador multipunto es un componente de H.323 de hardware y software
especializado, mezcla, conmuta y procesa audio, vídeo y / o flujo de datos para los
participantes de una conferencia multipunto de tal forma que los procesadores del
terminal no sean pesadamente utilizados. El procesador multipunto puede procesar un
flujo medio único o flujos medio múltiples dependiendo de la conferencia soportada.
7. PROXY H.323
Un proxy H.323 es un servidor que provee a los usuarios acceso a redes seguras de
unas a otras confiando en la información que conforma la recomendación H.323.El
Proxy H.323 se comporta como dos puntos remotos H.323 que envían mensajes call –
set up, e información en tiempo real a un destino del lado seguro del firewall.
Entre los codecs que recomienda usar la norma H.323 se encuentran principalmente:
- G.711: De los múltiples códecs de audio que pueden implementar los terminales
H.323, este es el único obligatorio. Usa modulación por pulsos codificados (PCM)
para conseguir tasas de bits de 56Kbps y 64Kbps.
- H.261y H.263: Los dos códecs de video que propone la recomendación H.323. Sin
embargo, se pueden usar otros.
Señalización H.323
La función de señalización está basada en la recomendación H.225, que especifica el
uso y soporte de mensajes de señalización Q.931/Q932. Las llamadas son enviadas
sobre TCP por el puerto 1720. Sobre este puerto se inician los mensajes de control de
llamada Q.931 entre dos terminales para la conexión, mantenimiento y desconexión de
llamadas.
Los mensajes más comunes de Q.931/Q.932 usados como mensajes de señalización
H.323 son:
- Setup. Es enviado para iniciar una llamada H.323 para establecer una conexión con
una entidad H.323. Entre la información que contiene el mensaje se encuentra la
dirección IP, puerto y alias del llamante o la dirección IP y puerto del llamado.
- Call Proceeding. Enviado por el Gatekeeper a un terminal advirtiendo del intento de
establecer una llamada una vez analizado el número llamado.
- Alerting. Indica el inicio de la fase de generación de tono.
- Connect. Indica el comienzo de la conexión.
- Release Complete. Enviado por el terminal para iniciar la desconexión.
- Facility. Es un mensaje de la norma Q.932 usado como petición o reconocimiento
de un servicio suplementario.
Ejemplo H.323
A continuación se analizará detalladamente una llamada. En una llamada H.323 hay
varias fases como se indica en el siguiente gráfico y varios protocolos cada uno de un
color.
Una llamada H.323 se caracteriza por las siguientes fases:
1. ESTABLECIMIENTO
- En esta fase lo primero que se observa es que uno de los terminales se registra en
el gatekeeper utilizando el protocolo RAS (Registro, admisión y estado) con los
mensajes ARQ y ACF.
- Posteriormente utilizando el protocolo H.225 (que se utiliza para establecimiento y
liberación de la llamada) se manda un mensaje de SETUP para iniciar una llamada
H.323. Entre la información que contiene el mensaje se encuentra la dirección IP,
puerto y alias del llamante o la dirección IP y puerto del llamado.
- El terminal llamado contesta con un CALL PROCEEDING advirtiendo del intento de
establecer una llamada.
- En este momento el segundo terminal tiene que registrarse con el gatekeeper
utilizando el protocolo RAS de manera similar al primer terminal
- El mensaje ALERTING indica el inicio de la fase de generación de tono.
- Y por último CONNECT indica el comienzo de la conexión.
2. SEÑALIZACIÓN DE CONTROL
- En esta fase se abre una negociación mediante el protocolo H.245 (control de
conferencia), el intercambio de los mensajes (petición y respuesta) entre los dos
terminales establecen quién será master y quién slave, las capacidades de los
participantes y codecs de audio y video a utilizar. Como punto final de esta
negociación se abre el canal de comunicación (direcciones IP, puerto). Los
principales mensajes H.245 que se utilizan en esta fase son:
o TerminalCapabilitySet (TCS). Mensaje de intercambio de capacidades
soportadas por los terminales que intervienen en una llamada.
o OpenLogicalChannel (OLC). Mensaje para abrir el canal lógico de
información que contiene información para permitir la recepción y
codificación de los datos. Contiene la información del tipo de datos que será
transportado.
3. AUDIO
Los terminales inician la comunicación y el intercambio de audio (o video) mediante el
protocolo RTP/RTCP.
4. DESCONEXIÓN
- En esta fase cualquiera de los participantes activos en la comunicación puede
iniciar el proceso de finalización de llamada mediante mensajes
CloseLogicalChannel y EndSessionComand de H.245.
- Posteriormente utilizando H.225 se cierra la conexión con el mensaje RELEASE
COMPLETE
- Por último se liberan los registros con el gatekeeper utilizando mensajes del
protocolo RAS:
- NAT
En IAX la señalización y los datos viajan conjuntamente con lo cual se evitan los
problemas de NAT que frecuentemente aparecen en SIP. En SIP la señalización y los
datos viajan de manera separada y por eso aparecen problemas de NAT en el flujo de
audio cuando este flujo debe superar los routers y firewalls. SIP suele necesitar un
servidor STUN para estos problemas.
- Estandarización y uso
SIP es un protocolo estandarizado por la IETF hace bastante tiempo y que es
ampliamente implementado por todos los fabricantes de equipos y software. IAX está
aun siendo estandarizado y es por ello que no se encuentra en muchos dispositivos
existentes en el mercado.
- Utilización de puertos
IAX utiliza un solo puerto (4569) para mandar la información de señalización y los datos
de todas sus llamadas. Para ello utiliza un mecanismo de multiplexión o "trunking". SIP,
sin embargo utiliza un puerto (5060) para señalización y 2 puertos RTP por cada
conexión de audio (como mínimo 3 puertos). Por ejemplo para 100 llamadas
simultáneas con SIP se usarían 200 puertos (RTP) más el puerto 5060 de señalización.
IAX utilizaría sólo un puerto para todo (4569).
- Otras funcionalidades
IAX es un protocolo pensado para VoIP y transmisión de video y presenta
funcionalidades interesantes como la posibilidad de enviar o recibir planes de marcado
(dialplans) que resultan muy interesante al usarlo conjuntamente con servidores
Asterisk. SIP es un protocolo de propósito general y podría transmitir sin dificultad
cualquier información y no sólo audio o video.
El creador original de esta centralita es Mark Spencer de la compañía Digium que sigue
siendo el principal desarrollador de las versiones estables. Pero al ser de código libre,
existen multitud de desarrolladores que han aportado funciones y nuevas aplicaciones.
Originalmente fue creada para sistemas Linux pero hoy en día funciona también en
sistemas OpenBSD, FreeBSD, Mac OS X, Solaris Sun y Windows. Pero Linux sigue
siendo la que mas soporte presenta.
El paquete básico de Asterisk incluye muchas características que antes sólo estaban
disponibles en caros sistemas propietarios como creación de extensiones, envío de
mensajes de voz a e-mail, llamadas en conferencia, menús de voz interactivos y
distribución automática de llamadas. Además se pueden crear nuevas funcionalidades
mediante el propio lenguaje de Asterisk o módulos escritos en C o mediante scripts AGI
escritos en Perl o en otros lenguajes.
Pero quizás lo más interesante es que Asterisk soporta numerosos protocolos de VoIP
como SIP y H.323. Asterisk puede operar con muchos teléfonos SIP, actuando como
"registrar" o como "gateway" o entre teléfonos IP y la red telefónica convencional. Los
desarrolladores de Asterisk han diseñado un nuevo protocolo llamado IAX para una
correcta optimización de las conexiones entre centralitas Asterisk.
Una vez acabada la instalación debemos arrancar el servidor asterisk. Para ello
podemos ejecutar C:\cygroot\bin\asteriskwin32.exe
Al principio nos saldrán unos cuantos errores o warnings pero no nos preocupamos
demasiado (son debido a que no tenemos tarjetas RDSI o modems TAPI). En principio
ya tenemos instalado y funcionando Asterisk. Vamos a comprobar que funciona.
Configuramos un softphone como el SJPhone (para más info consultar configuración del
sjphone) para poder acceder a nuestro propio Asterisk. La configuración que hemos
hecho trae dos usuarios por defecto que podemos utilizar:
[20000]
type=friend
secret=a20000b
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=miprimerejemplo
mailbox=20000@miprimerbuzon
[20100]
type=friend
secret=b20100a
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=miprimerejemplo
mailbox=20100@miprimerbuzon
[miprimerejemplo]
exten => 20000,1,Dial(SIP/20000,30,Ttm)
exten => 20000,2,Hangup
exten => 20000,102,Voicemail(20000)
exten => 20000,103,Hangup
exten => 20100,1,Dial(SIP/20100,30,Ttm)
exten => 20100,2,Hangup
exten => 20100,102,Voicemail(20100)
exten => 20100,103,Hangup
[miprimerbuzon]
20000 => 1234,Pedro,pedro@midominio.com
20100 => 4321,Juan,juan@midominio.com
4. Reiniciamos el asterisk
5. Configuramos un softphone
Configuramos uno o dos softphones y probamos a llamar entre ambos usuarios o a
dejar mensajes en el contestador cuando no están disponibles. También podemos
llamar al número 30000 para escuchar nuestros mensajes. Para más información de
como configurar el sjphone ir configuración del sjphone Configuración del archivo
sip.conf
El archivo sip.conf sirve para configurar todo lo relacionado con el protocolo SIP y
añadir nuevos usuarios o conectar con proveedores SIP.
[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 teléfono 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 sección [general] que contiene la configuración
por defecto de todos los usuarios y "peers" (proveedores). Se puede sobrescribir 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 dirección lógica para que pueda ser
resuelta. Esto permite que las llamadas sean enviadas a diferentes lugares sin
necesidad de cambiar la dirección lógica. Usando el DNS SRV se ganan las
ventajas del DNS mientras que deshabilitándolo no es posible enrutar llamadas
en base a nombre de dominios. Conviene tenerlo activado, por tanto se pone la
directiva srvlookup=yes.
Cada extensión 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
extensión pedro como "friend". Puede realizar y recibir llamadas.
- Secret es la contraseña usada para la autenticación. En este caso será
"welcome".
- Se puede monitorizar la latencia entre el servidor Asterisk y el teléfono con
qualify=yes para determinar cuando el dispositivo puede ser alcanzado En este
caso Asterisk considera por defecto que un dispositivo está presente si su
latencia es menor de 2000 ms (2 segundos). Se puede cambiar este valor
poniendo el número de milisegundos en vez de yes.
- Si una extensión está detrás 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 información de contacto y usar la dirección desde la
que vienen los paquetes.
- Si ponemos host=dynamic quiere decir que el teléfono se podrá conectar desde
cualquier dirección IP. Podemos limitar a que dicho usuario solo pueda acceder
con una IP o con un nombre de dominio. Si ponemos host=static no haría falta
que el usuario se registrará con la contraseña proporcionada en "secret".
- También se ha puesto canreinvite=no. En SIP los invites se utilizan para
establecer llamadas y redirigir el audio o video. Cualquier invite después del
invite inicial en la misma conversación se considera un reinvite. Cuando dos
usuarios han establecido la comunicación con canreinvite= yes (por defecto) los
paquetes RTP de audio podrían 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 condición 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 extensión. Esto está relacionado con el contexto del archivo
extensions.conf que marca el plan de numeración para ese contexto. Por tanto
el contexto internal debe existir en el fichero extensions.conf o de lo contrario
deberíamos crearlo. Varios extensiones pueden tener el mismo contexto.
Opciones avanzadas:
En las siguientes columnas tenemos las posibilidades de configuración para los tipos
"user" y "peer". En el caso de "friend" valen las dos tablas ya que un "friend" es a la
vez ambos.
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 sección
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 través
;allow=g729 ; Licencia g729 solo a través
[xlite1]
;Se puede activar la supresión 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á detrás de un dispositivo NAT
canreinvite=no ; Se suele poner NO si está detrás 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 contraseña 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 caído si pasa más 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 teléfono 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 propósitos de tarificación
disallow=all
allow=ulaw
allow=alaw
allow=g729
allow=g723.1
Contexto [general]
El contexto [general] configura unas pocas opciones generales como son:
En general estas opciones no son muy importantes y se pueden dejar tal y como
aparecen por defecto.
Contexto [globals]
En este contexto se definen las variables globales que se van a poder utilizar en el
resto de los contextos. Por ejemplo
Resto de Contextos []
Esto es lo más importante de este fichero. Vamos a indicar ahora como crear un
contexto especifico y asignar un plan de numeración. Todas las líneas de un
determinado contexto tienen el mismo formato:
En este caso al llamar a la extensión 3000 usuamos el comando Dial (destino, tiempo
de timeout, opciones)
El destino es el usuario 3000 del archivo sip.conf, 30 segundos de timeout. El usuario
3000 debería existir en sip.conf las opciones hacen referencia a opciones del comando
dial:
Si el usuario 3000 no está conectado salta a la prioridad +101 (en nuestro caso a la
102=1+101 ya que estábamos en la prioridad 1) y hacemos que salte el contestador
para dejar un mensaje.
Es importante que por cada rama siempre se cierre el camino y se cuelgue la llamada
con un Hangup
En este caso presentamos la extensión start s que es la que coge las llamadas cuando
se esta en ese contexto pero no se sabe la extensión. También se puede entrar desde
otra extensión como en este caso marcando la extensión 1000. Con Goto podemos ir al
contexto, extensión y prioridad que queramos.
En este caso lo que hacemos es que siempre que marquemos el 340 seguido de
cualquier numero (el 340 como prefijo) llamaremos a una extensión SIP. Por ejemplo en
el primer caso si marcamos al 340600600 llamaremos al 600600 a la dirección IP del
"proveedorsip" definido en sip.conf. (EXTEN:3 significa que quitamos los tres primeros
números)
En los casos anteriores el. Sustituye a cualquier carácter pero podíamos haber utilizado
también
X - Acepta un número de 0 al 9
Z - Acepta un número de 1 al 9
N - Acepta un número de 2 al 9
[1,5-7] - Acepta el 1, el 5, el 6 o el 7
Hay dos contextos especiales llamados [general] y [zonemessages] que siempre están
presentes.
Contexto [general]
El contexto [general] configura las opciones generales del buzón de voz:
[general]
; Enviar archivos en las notificaciones de e-mail
attach=yes
; Usar el formato wav para los mensajes de voz
format=wav
; Limitar el tiempo máximo del mensaje de voz a 180 segundos
maxmessage=180
; Limitar el tiempo mínimo del mensaje a 3 segundos
minmessage=3
; Anunciar el numero que llamó antes de repetir el mensaje
saycid=yes
; Limitar el numero de intentos de registro a 3
maxlogins=3
; Define los contextos internos para especificar que vienen de una extensión interna
cidinternalcontexts=house_local,house_toll,house_admin
Vamos a poner en forma de tabla las posibilidades más destacadas a utilizar de este
contexto:
Contexto [zonemessages]
Este contexto define zonas horarias. La hora para distintos usuarios no es la misma y
para poder informarle sobre la hora en que recibió el mensaje es necesario fijar
diferentes zonas horarias:
[zonemessages]
madrid=Europe/Paris|'vm-received' Q 'digits/at' R
paris=Europe/Paris|'vm-received' Q 'digits/at' R
sthlm=Europe/Stockholm|'vm-recieved' Q 'digits/at' R
europa=Europe/Berlin|'vm-received' Q 'digits/at' kM
italia=Europe/Rome|'vm-received' Q 'digit/at' HMP
zona=Pais/Ciudad|Opciones --> El País y la ciudad deben ser válidos y son los del
archivo
/usr/share/zoneinfo de la instalación de Linux
Resto de Contextos []
En el resto de contextos se definen los buzones de los usuarios. Podemos tener todos
los usuarios en un solo contexto por ejemplo [default] o tener más de un contexto.
[default]
extension => contraseña, nombre de usuario, email de usuario, email de notificación,
opciones
Ejemplos:
[default]
1234 => 3456,Ejemplo1,mail@dominio.com
4200 => 9855,PedroPerez,pedro@dominio.com,admin@dominio.com,attach=no|
serveremail=info@ dominio.com | tz=Madrid
4069=>6522,Juan,j@dominio.net,,attach=yes|saycid=yes|dialout=fromvm|
callback=fromvm|review=yes|operator=yes|envelope=yes
4073 => 1099,Javier Perez,perez@dominio.com,,delete=1
Fuente de Información.- http://www.voipforo.com/