miércoles, 22 de octubre de 2008

El lado oscuro de Skype

Jhonny Velasquez Cabrita
Sucre, 22 de octubre de 2008



En esta ocasión me puse a investigar algo sobre el Skype. Skype es un software para realizar llamadas sobre Internet, esto se conoce mas como Voz sobre IP (VoIP). Los usuarios de Skype pueden hablar entre ellos gratuitamente, también incluye otras funcionalidades que son de pago.

Skype es uno de los programas mas extendidos y que ha tenido un rápido crecimiento, tiene una buena calidad de audio, posee una gran comunidad de usuarios. Pero tiene lado oscuro y es lo que trataré de demostrar en este documento.

Aquí no vamos a ver mucho los detalles técnicos de modo que sea entendible por cualquier persona, para los que desean conocer mas sobre Skype pueden ver estos dos documentos.

Análisis y funcionamiento de Skype.-www.uv.es/montanan/redes/trabajos/skype.pdf

Explicación en profundidad de Skype.-
http://skype.nexxen.cz/dokumentace/public/SkypeProtocol/html/SkypeProtocol.htm

La arquitectura Skype se basa en un tipo de red llamada “overlay network” o red de aplicación que es un ejemplo de red P2P.



La red overlay de Skype tiene 3 tipos de nodos:

a) Nodo Normal: nodo donde se ejecuta una aplicación o cliente Skype (SC) que se puede utilizar para realizar llamadas de voz y para enviar mensajes del texto

b) Supernodo: nodo con una dirección IP pública que tiene suficiente CPU, memoria, y ancho de banda de red.

c) Skype login Server (Servidor de conexión): Servidor único y única entidad central dentro del esquema de Skype asegurándose de que los nombres de la conexión sean únicos a través del espacio de nombres de Skype. Su principal función es la de permitir la autentificación del usuario y almacenar los nombres de forma única y las contraseñas del usuario.



Aparte del servidor de conexión, no hay servidor central en la red de Skype. La información en línea y fuera de línea del usuario se almacena y se propaga de manera descentralizada y así como las búsquedas de los usuarios.

Resumiendo esta parte, el lado oscuro al que hacia referencia es que: Skype establece llamados de terceros a través de tu computadora - y tú ni te enteras, haciendo uso de tu computadora y lo peor de todo hace uso de tu ancho de banda de Internet. Entonces no se puede decir que las llamadas entre dos computadoras es gratis, porque Skype esta ganando gracias a tu computadora y tu conexión a Internet. En el supuesto caso de que Skype no este lucrando con tu ancho de banda, lo cierto es que otros están realizando llamadas a través de tu conexión a Internet, y un país como el nuestro donde las comunicaciones por Internet son tan malas no podemos darnos el lujo de regalar nuestro ancho de banda.

Skype no esta cometiendo ningún acto ilegal porque así lo establece en el contrato de instalación, pero como nunca leemos los contratos ni nos enteramos.

Artículo 4 Uso del equipo del Usuario
4.1 Uso del equipo del Usuario. Por el presente contrato Usted acepta que el Software Skype puede utilizar el procesador y el ancho de banda del equipo (u otro dispositivo según corresponda) que Usted está utilizando, con el fin limitado de facilitar la comunicación entre usuarios del Software Skype.

4.2 Protección del equipo (recursos) del Usuario. Usted comprende que Skype hará los esfuerzos que sean comercialmente razonables para proteger la privacidad e integridad de Su comunicación y de los recursos del equipo (u otro dispositivo según corresponda) que Usted esté utilizando. No obstante, Usted reconoce y acepta que Skype no puede otorgar ninguna garantía al respecto.

Pueden ver todo el contrato en http://www.skype.com/intl/es/legal/eula/ o a tiempo de instalar el programa.

En la siguiente figura vemos una comparación entre una llamada usando Skype y otra usando el protocolo SIP. Si Juan llama a Pedro por Skype, el programa busca la mejor ruta. Si el programa encuentra que Maria esta libre y le sirve para rutear el llamado, hará uso de la máquina de Maria sin que ella se de cuenta, y podría usar otras maquinas adicionales.

Fuente: http://voip180.blogspot.com/2007/11/diferencias-entre-skype-y-voip-bajo.html

En el siguiente gráfico muestro una captura realizada con NetPeeker de todos los programas y procesos que se están ejecutando en mi máquina. Entre ellos esta Skype conectado. ¿Cómo se puede explicar ese uso de 2.21 KB/s de subida y 1.61 KB/s de bajada de uso de ancho de banda?, si solo tengo el Skype conectado y no estoy realizando ninguna llamada o usando alguna de sus funciones.


Según el Firewall de NetPeeker me dice que alguien esta intentado conectarse a mi máquina desde la IP 189.69.100.190.

Hago un clic en el Botón Who is?, y me muestra más información.

Y así van conectándose desde diferentes lugares.

Si hacemos una consulta sobre esta última IP en DNSstuff, efectivamente esa dirección IP pertenece a Japón.


Resumen:
Mi intención no era hacer ver que Skype es un programa malo, sino conocer un poco más como funciona este programa. Personalmente diría que se puede seguir usando pero conectarse solo cuando sea necesario, porque si estas conectado todo el tiempo otros estarán aprovechando tu ancho de banda peor aún si en tu red hay muchos usuarios conectados a Skype.


Fuentes Consultadas:
http://www.skype.com/
http://voip180.blogspot.com/2007/11/diferencias-entre-skype-y-voip-bajo.html
http://www.uv.es/montanan/redes/trabajos/skype.pdf
http://www.skype.com/intl/es/legal/eula/
http://www.voipnovatos.es/item/2005/05/porqu-no-me-gusta-skype

jueves, 17 de abril de 2008

Conectando 3 Servidores Asterisk con IAX

En esta ocasión les traigo una pequeña demostración de como conectar servidores asterisk con IAX. Esto es parte de mi proyecto de grado, asi que es una version inicial y muy simple, seguro que le faltan muchos comandos y mejoras, esto ha funcionado en mi laboratorio.

Explicaré de forma rápida en que consiste mi proyecto. tengo que instalar tres servidores Asterisk ubicados en diferentes ciudades y que se comuniquen a traves del protocolo IAX por medio de Intenet. Tambien tengo pensado usar el codec g729 por ahora esta con el codec gsm.
Dentro de cada LAN, puedo usar el protocolo SIP o IAX y tengo tres alternativas a usar:
  1. Softphone
  2. Teléfono IP
  3. ATA+Teléfono analógico
me parecen mejor las dos últimas opciones porque asi no depende de una computadora, su tarjeta de sonido, etc. ademas que debo conectar a la consola de radio, ya que el sonido debe ir en dos direcciones, hacia el Asterisk y hacia el transmisor de radio.
en la siguiente figura pueden apreciar mas claramente.

sino se ve muy bien tb esta aqui :


Bien, entonces tengo tres maquinas con Asterisk:
chuquisaca: 192.168.2.253
potosi: 192.168.2.252
tarija: 192.168.2.251

ahora paso a mostar los codigos de configuracion de cada maquina.

;iax.conf chuquisaca
[general]
autokill=yes
language=es
register => chuquisaca:welcome@192.168.2.252 ;registrarse en potosi
register => chuquisaca:welcome@192.168.2.251 ;registrarse en tarija

[potosi]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.252/255.255.255.255

[tarija]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.251/255.255.255.255

[1001]
type=friend
host=dynamic
context=telefonos
secret=123

;sip.conf chuquisaca
[general]
language=es

[1101]
type=friend
host=dynamic
context=telefonos
secret=123

;extensions.conf iax chuquisaca
[globals]

[general]
autofallthrough=yes

[default]

[telefonos]
include => internos
include => potosi
include => tarija

[internos]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(IAX2/${EXTEN},10)
exten => _1XXX,n,Meetme(1000|M)
exten => _1XXX,n,Hangup()

[potosi]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(IAX2/potosi/${EXTEN})
exten => _2XXX,n,Hangup()

[tarija]
exten => _3XXX,1,NoOp()
exten => _3XXX,n,Dial(IAX2/tarija/${EXTEN})
exten => _3XXX,n,Hangup()

[llamadas_entrantes]
include => internos

;meetme.conf
[general]

[rooms]
conf => 1000,123,456 ;Creamos el cuarto 1000


;iax.conf potosi
[general]
autokill=yes
language=es
register => potosi:welcome@192.168.2.253 ;chuquisaca
register => potosi:welcome@192.168.2.251 ;tarija

[chuquisaca]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.253/255.255.255.255

[tarija]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.251/255.255.255.255

[2001]
type=friend
host=dynamic
context=telefonos
secret=123

;sip.conf potosi
[general]
language=es

[2101]
type=friend
host=dynamic
context=telefonos
secret=123

;extension.conf iax potosi
[globals]

[general]
autofallthrough=yes

[default]

[telefonos]
include => internos
include => chuquisaca
include => tarija

[internos]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30)
exten => _2XXX,n,Playback(vm-goodbye)
exten => _2XXX,n,Hangup()

[chuquisaca]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(IAX2/chuquisaca/${EXTEN})
exten => _1XXX,n,Hangup()

[tarija]
exten => _3XXX,1,NoOp()
exten => _3XXX,n,Dial(IAX2/tarija/${EXTEN})
exten => _3XXX,n,Hangup()

[llamadas_entrantes]
include => internos



;iax.conf tarija
[general]
autokill=yes
language=es
register => tarija:welcome@192.168.2.253 ;chuquisaca
register => tarija:welcome@192.168.2.252 ;potosi

[chuquisaca]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.253/255.255.255.255

[potosi]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=llamadas_entrantes
deny=0.0.0.0/0.0.0.0
permit=192.168.2.252/255.255.255.255

[3001]
type=friend
host=dynamic
context=telefonos
secret=123

;sip.conf tarija
[general]
language=es

[3101]
type=friend
host=dynamic
context=telefonos
secret=123

;extension.conf iax tarija
[globals]

[general]
autofallthrough=yes

[default]

[telefonos]
include => internos
include => chuquisaca
include => potosi

[internos]
exten => _3XXX,1,NoOp()
exten => _3XXX,n,Dial(SIP/${EXTEN},30)
exten => _3XXX,n,Playback(vm-goodbye)
exten => _3XXX,n,Hangup()

[chuquisaca]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(IAX2/chuquisaca/${EXTEN})
exten => _1XXX,n,Hangup()

[potosi]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(IAX2/potosi/${EXTEN})
exten => _2XXX,n,Hangup()

[llamadas_entrantes]
include => internos


Aun tengo una duda con respecto a la contreseña de la funcion register, me funciona bien cuando pongo la misma contraseña todos incluyendo los contextos, pero si cambio ya no puedo hacer llamadas entre ellos. yo entiendo que al ServidorA debo definirlo en el ServidorB y viceversa. bueno algun dia encontrare la respuesta.
aqui estoy uniendo mis asterisk todos contra todos, a modo de una red Mesh. creo que tb se puede unir usando Dundi.

otra cosa importante que debo implementar son las conferencias, esto parece simple pero me costó unas dos semanas hacer funcionar, la conferencia solo debe estar en un solo servidor, en este caso Chuquisaca, y los otros dos redireccionan sus llamadas a ese servidor para entrar a la sala de conferencias. Para esto tengo un placa TDM400P para que haga de temporizador, aunque dice que tb se puede usar el driver ztdummy, cualquiera de estos es indispensable para hacer conferencias.

esito seria por ahora.
hasta pronto....

saludos
Jhonvels

viernes, 4 de abril de 2008

Conectando 2 servidores Asterisk con SIP

Aquí les traigo una forma de conectar 2 servidores Asterisk usando el protocolo SIP, este ejemplo lo he extraido del libro de O’reilly “Asterisk: The Future of Telephony 2nd. este ejemplo lo he probado con 2 maquinas en una LAN.

Despues de probar como 20 ejemplos por fin me funcionó, todos ponen codigos a medias y cuando uno es novato se pierde, acaso es tan dificil poner el archivo completo?

en este ejemplo tengo 2 maquinas:
Toronto: 192.168.2.253
Osaka: 192.168.2.252

  1. Toronto
    ;sip.conf toronto

    [general]register => toronto:welcome@192.168.2.252/osaka

[osaka]
type=friend
secret=welcome
context=osaka_incoming
host=dynamic
disallow=all
allow=gsm
allow=ulaw

[1000]
type=friend
host=dynamic
context=phones
secret=123


;extensions.conf sip toronto
[globals]

[general]
autofallthrough=yes

[default]

[incoming_calls]

[phones]
include => internal
include => remote

[internal]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/${EXTEN},30)
exten => _1XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _1XXX,n,Hangup()

[remote]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/osaka/${EXTEN})
exten => _2XXX,n,Hangup()

[osaka_incoming]
include => internal

  1. Osaka

;sip.conf osaka
[general]
register => osaka:welcome@192.168.2.253/toronto

[toronto]
type=friend
secret=welcome
context=toronto_incoming
host=dynamic
disallow=all
allow=gsm
allow=ulaw

[2000]
type=friend
host=dynamic
context=phones
secret=123


;extensions.conf sip osaka
[globals]

[general]
autofallthrough=yes

[default]

[incoming_calls]

[phones]
include => internal
include => remote

[internal]
exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30)
exten => _2XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _2XXX,n,Hangup()

[remote]
exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/toronto/${EXTEN})
exten => _1XXX,n,Hangup()


[toronto_incoming]
include => internal

Espero que les sirva de algo, muy pronto otro ejemplo del mismo libro pero usando IAX.

saludos
Jhonvels

miércoles, 12 de marzo de 2008

Hola ingeniero

Documento en PDF. Donwnload

Es fácil ser ingeniero

Documento en Power Point Download

Por que soy ingeniero?

Chistes para ingenieros
Documento PDF Download

¿Será así la Red en el 2015?

Interesante vídeo fururista sobre la Red de redes. Video que muestra la evolución de Internet hasta el año 2015 donde Google se convertira en un gigante de la red, mas de lo que ya es.


Vía: Eduvlogs.

martes, 11 de marzo de 2008

Por que no soy ingeniero?

No a todos les gusta las matemáticas..
Archivo Power Point Download

Un dibujante genial

Un dibujante con mucha creatividad, al principio pareciera que esta dibujando un órgano sexual y termina dibujando otra cosa.

La red está abajo

Uno de esos dias le puede pasar a cualquier administrador de redes.