Thursday, December 03, 2009

En defensa de nuestros derechos fundamentales en internet

Ante la inclusión en el Anteproyecto de Ley de Economía Sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…
  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Por favor difunde este manifiesto en tu blog, Twitter, en redes sociales, en foros o imprímelo y repártelo.

Wednesday, November 04, 2009

Incluido en Asterisk el parche PacketCable NCS 1.0 Support for Docsis / Eurodocsis Networks

Por fin, se ha incorporado a Asterisk el parche PacketCable NCS 1.0 Support for Docsis / Eurodocsis Networks

La gran cantidad de trabajo realizado en Alea Soluciones para integrar Asterisk en redes que usen PacketCable NCS ha dado sus frutos y desde ayer, Asterisk incluye este código de forma oficial, lo que facilitará en gran medida su mantenimiento y mejora.

Esto permitirá de forma sencilla usar Asterisk como Call Manager en redes de cable Docsis en las que todos o parte de los eMTAs usen el protocolo PacketCable NCS.

En este tipo de redes HFC se está produciendo un proceso de migración a SIP, pero es muy normal encontrarse con redes mixtas SIP / NCS, o incluso algunas NCS en exclusiva, para las que era complicado tener un buen soporte de telefonía debido sobre todo a la falta de software que implementase el protocolo PacketCable NCS. Este parche y su incorporación oficial el Asterisk aporta su grano de arena a la solución de este problema.

Por supuesto, para estas redes (HFC con señalización de telefonia con PacketCable NCS) existen varios Call Managers privativos, pero aparte de tener precios elevados, no permitian crear soluciones flexibles, ni implementar muchos de los servicios de usuario que con Asterisk se pueden realizar facilmente. Además estos productos, en la mayor parte de los casos no permitian crear soluciones mixtas SIP/NCS.

Más información sobre el parche en
http://svn.digium.com/view/asterisk?view=rev&revision=227049

Ahora queda pendiente introducir a Asterisk algunas otras partes de código que han aparecido durante el proceso de desarrollo del parche y que no se han incluido en el "commit" realizado ayer (soporte de digimaps, mejoras de uso de memoria, etc)...

Sunday, September 20, 2009

Calendario del VoIp2Day

Esta semana se celebra el voip2day... Comenzó el año pasado y fue muy interesante... esperemos que las conferencias de este año estén al mismo nivel o incluso mejor (como conozco a bastantes de la organización y a algunos de los conferenciantes, estoy casi por asegurar que será así casi seguro...)

El calendario de ponencias se puede ver en voip2day pero para mi propia comodidad lo he cargado en un calendario público de google calendar... si ha alguien más le viene bien, lo puede consultar en:



Importante: La información está copiada de la página web voip2day y no es oficial...

A Continuación se puede ver la agenda completa de las jornadas:

Friday, September 18, 2009

Libro de citas (VI)

"If you know what you're doing, three layers is enough; if you don't, even seventeen levels won't help"

Michael Padlipsky

Thursday, September 10, 2009

Entrando en producción / asoma-t / asomat / plataforma Tv

asoma-t o asomat es la plataforma de televisión (incluyendo televisión de pago y contenidos) en los que he estado trabajando estos últimos meses...

Estos días estamos entrando en producción de una parte de la plataforma, por lo que he estado bastante atareado.

Aunque en la web de asoma-t ahora no hay contenido, la verdad es que el proyecto es técnicamente bastante interesante y parece que estamos haciendo razonablemente las cosas, puesto que está entrando en producción sin sobresaltos, con trabajo, pero sin sobresaltos...

Así que, como se suele decir por la puerta grande...

Sunday, August 16, 2009

Boscli Creating Interactive domain specific Shells in Python

Boscli is a framework to create interactive command line interfaces. Our mission is to help developers write interactive shells for domain specific task. It provides an easy way to wrap and join together command line apps and utilities and create specific shells with security levels and modes, history, auto-completion and so on.

Using this framework any developer can build an interactive command line interface for configuration or monitor an appliance in a few minutes.

The Boscli can be used as a great "glue code" for appliance's interfaces or to create a "homogeneous" administration interface for different systems and applications.

For example if you need to integrate different services and applications (asterisk, linux conf, monit, apache, etc...) but you want to offer to your users or to the systems administrator an integrated line oriented interface, you can use Boscli as a framework to create thin wrappers around the apps/services you want to integrate and create one or more boscli shells.

All the commands are defined as a Boscli plugin that can be reused for different shells in different configurations, so with the same code you can create different shells, for different users or for different task (initial conf, admon, etc....)

The main features are:
  • For developers:
    • Integrated plugin system
    • Easy new plugin creation
    • Easy new command definition
    • Easy new types definition
    • Auto generated help
    • Basic types support
    • Function access control support
    • Function mode support
    • Command execution Log
  • For final shell users
    • Command Autocompletion
    • Interactive line edition
    • Contextual Help
    • Pagination
    • Filters
    • Command history



More info at:
Home page: http://oss.alea-soluciones.com/trac/wiki/BoscliOss
Freshmeat entry http://freshmeat.net/projects/boscli-oss

Wednesday, July 29, 2009

Asterisk DTMF Alarms Telecare and other industrial appliances

Alarms, Tele care devices and other industrial appliances, use DTMF tones based protocol for controlling the communication or for transmit information. In a lot of scenarios Asterisk can be a great "bridge" server to connect this kind of appliances, but in some cases we can find some weakness/problems related with Asterisk implementation or with VoIP.

The goal of this article is trying to expose some problems we can encounter connecting this kind of devices to Asterisk and if applicable the solutions we can use. In a lot of cases this solutions include adapting the Asterisk code.

Asterisk implementation problems (for DTMFs exchange):

1) DTMFs/DTMFs Gaps timings
Asterisk defines minimal DTMF tone duration and minimal amount of time between two consecutive DTMFs tones. Using this constants Asterisk can decide to ignore a DTMF or to regenerate a DTMF tone with a greater duration than the original.
The related code can be found at main/channel.c.
The normal values defined are:
#define AST_MIN_DTMF_DURATION 80
#define AST_MIN_DTMF_GAP 45
For resolve some problems we found with some Telecare devices (sending DTMF with 50 ms duration), we changed this values to:
#define AST_MIN_DTMF_DURATION 30
#define AST_MIN_DTMF_GAP 20
This problem can be detected with Asterisk 1.4.x and 1.6.x versions.

2) Initial weird sound at DTMFs tone beginning
When the DTMF are sent inband, Asterisk is always listening the audio channel to detect the DTMFs and execute the corresponding action. Sometimes the action is to activate a feature, or select an option in an IVR or in our case to regenerate the DTMF tone in the output channel. In the last mentioned case, at the output channel we can hear the original RTP of the DTMF (a few milliseconds), followed by few milliseconds of silence, and followed with the regenerated DTMF tone.
The first few milliseconds is the time used by the DSP (main/dsp.c) code to detect the DTMF, the silence is the time between the DSP module detect the DTMF and the regenerated DTMF tone begin.
For example, if we use RFC2833 for DTMF signaling, we can receive a few milliseconds of RTP original DTMF, followed by the DTMF tone as RFC2833 signal, so we can hear a "little" weird sound at the begining of the DTMF tone.

The first and second periods can be improved (reduced) changing the Asterisk DSP code, but it seems a difficult patch. Other possibility is to inhibit Asterisk from detecting DTMFs in inband audio. Of course it can be easy to avoid the DTMF detection globally (for example following http://astrecipes.net/index.php?n=248), but a better solution can be some kind of DTMF detection/regeneration configuration at channel level. Anyone can help me to implement this patch???

We don't have any proof that this "little" weird sound affect the DTMFs exchange with the devices we usually use, but of course, it won't be a great surprise if in the future we have problems with other devices.
As far as we know, this problem can be detected with Asterisk 1.4.x and 1.6.x versions.

3) Incorrect regeneration of DTMFs when conversion from inband to rfc2833
We take the following scenario:
  • Tlf A (DTMFs inband) (SIP/MGCP/ZAP/ etc... Always having the DTMFs in audio, codec G711 a or u law)
  • Tlf B (DTMFs rfc2833)
  • Asterisk bridges channels Tlf A and Tlf B

In this scenario and independent who initiates the call, if on the channel using inband a DTMF is received, on the receiving channel (Tlf B) we hear the original RTP of the DTMF (a short time, just the same as described in point 2), followed by silence for the whole duration of the DTMF, and followed (when the received DTMF ends on the inband channel) with the regenerated DTMF tone in rfc2833 for a fixed time (100 ms).

E.g. If on channel A we receive inband a 2 seconds long DTMF (keep the button 2 secs pushed), we hear on channel B (rfc2833) the short tone when the DTMF begins, 2 seconds of silence and then the DTMF tone of 100 ms.

Looking at traces in the Asterisk it looks like the Asterisk only detects the end of the DTMF and not the beginning.
DTMF end '1' received on SIP/mta419-1-081efc60, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on SIP/mta419-1-081efc60
DTMF end emulation of '1' queued on SIP/mta419-1-081efc60

DTMF end '2' received on SIP/mta419-1-081efc60, duration 0 ms
DTMF begin emulation of '2' with duration 100 queued on SIP/mta419-1-081efc60
DTMF end emulation of '2' queued on SIP/mta419-1-081efc60

In this same call a DTMF generated by B (rfc2833) is heard perfectly on side A (inband) (not taking into account the initial short tone)
DTMF begin '1' received on SIP/mta419-2-081adcd0
DTMF begin passthrough '1' on SIP/mta419-2-081adcd0
DTMF end '1' received on SIP/mta419-2-081adcd0, duration 5170 ms
DTMF end accepted with begin '1' on SIP/mta419-2-081adcd0
DTMF end passthrough '1' on SIP/mta419-2-081adcd0

This behavior was verified in versions Asterisk 1.4.17, 1.4.24-rsp, 1.4-svn-trunk and 1.6.0, Although it looks like it has been fixed in 1.6.1, and now we were trying to determine at what point in the code it has been fixed to try to backport the fix to the 1.4.x code.

4) Asterisk detects a valid DTMF tone as a DTMF echo, and ignores it.
Thanks to Iñaki Civico for reporting the problem and the possible solution.
In this case we can find at the Asterisk logs the message "Ignore potential DTMF echo from ..." This message indicates that Asterisk thinks that there is no enough separation between the end of the previous DTMF and the DTMF we are trying to send now.

The related code can be found at main/rtp.c
static struct ast_frame *send_dtmf(struct ast_rtp *rtp, enum ast_frame_type type)
{
if (((ast_test_flag(rtp, FLAG_DTMF_COMPENSATE) && type == AST_FRAME_DTMF_END) ||
(type == AST_FRAME_DTMF_BEGIN)) && ast_tvcmp(ast_tvnow(), rtp->dtmfmute) < 0) {
ast_debug(1, "Ignore potential DTMF echo from '%s'\n", ast_inet_ntoa(rtp->them.sin_addr));
...
}
The rtp->dtmfmute is initiated to 500ms in the same file:
int ast_rtp_senddigit_begin(struct ast_rtp *rtp, char digit)
{
...
rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
..
}

int ast_rtp_senddigit_end(struct ast_rtp *rtp, char digit)
{
...
rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
...
}
Of course, to avoid this problem we can change the initialization of rtp->dtmfmute to a smaller amount of time.
This problem can be detected with Asterisk 1.4.x and 1.6.x versions.


This Article is published at oss.alea-soluciones.com AsteriskDTMF

Wednesday, July 01, 2009

Buscando info para desarrollo en el IRC

En muchos casos, a nivel de desarrollo no hay nada como la información directa e interactiva de un canal IRC. En muchos casos en estos canales están los desarrolladores principales del software al que está dedicado el canal.

Para evitar molestar a estos desarrolladores principales, suele ser muy útil buscar en los archivos del IRC por las palabras claves sobre las que estás buscando información. Como no he encontrado ningún buscador interesante (si alguien conoce alguno que lo diga) para los logs de estos canales suelo simplemente usar google restrigiendo la búsqueda a una web en la que se almacenen los logs de IRC de los canales que me interesan.

Normalmente suelo usar http://ibot.rikers.org que incluye los canales sobre los que más búsquedas suelo realizar.

Por ejemplo si quiero buscar información sobre DTMFs en Asterisk, puedo hacer la siguiente consulta a google:
DTMF asterisk site:http://ibot.rikers.org/

Si por el contrario quiero restringir la búsqueda al canal #asterisk-dev lo que puedo hacer es añadir a la url del site el directorio del canal en el que quiero buscar, en este caso la consulta google quedaría de la siguiente forma:
DTMF site:http://ibot.rikers.org/%23asterisk-dev/

Este post es un recordatorio de que sabiendo buscar, existe gran cantidad de información de mucha calidad en los canales de IRC... No sólo de wikis, FAQs y código vive el desarrollador.

Tuesday, June 16, 2009

Gato antigravedad

Todos sabemos que los gatos caen siempre de pie y siguiendo las leyes de Murphy, sabemos que la tostada siempre cae por el lado de la mantequilla


Luego el dispositivo con antigravedad más barato es... el gato con la tostada de mantequilla pegada a la espalda... por su puesto con la mantequilla hacia arriba...




Wednesday, June 10, 2009

Internet speed meme

Siguiendo el meme de moda, aquí está el resultado del test de velocidad realizado con speedtest.net

Wednesday, June 03, 2009

Tuesday, May 26, 2009

Saturday, May 23, 2009

Alan Kay / Citas / Que grande!

Considero a Alan Kay como uno de los tecnólogos más inspiradores que han existido.... Algunos de sus trabajos más interesantes son el Dynabook, el ambiente de objetos Smalltalk, la implementación de smalltalk Squeak, y la plataforma para entornos de colaboración / mundos virtuales Open Croquet

Ahora, algunas citas:
The best way to predict the future is to invent it.
Simple things should be simple and complex things should be possible.
If you don't fail at least 90 percent of the time, you're not aiming high enough.
Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.

Alan Kay

Retorno a Dynabook. Una conversación con Alan Kay

Friday, May 15, 2009

Uno de los mejores momentos de The Big Bang Theory




Señores de la SGAE. creo que esto se podría considerar "uso legítimo" de contenido con Copyright, así que mejor vayan a ver si alguna ONG u hogar de Jubilados organiza algún concierto y pueden meterle mano (Ver La SGAE cobró 3.324 euros de otro concierto benéfico que tuvo pérdidas)....

Libro de citas (IV)

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Martin Fowler

Wednesday, May 06, 2009

En linea web de Alea Soluciones

Aunque me gusta mi trabajo, cuando la gente me preguntaba por él, siempre me daba mucho reparo darles la dirección web de Alea Soluciones, puesto que se trataba de una web bastante patética...

Después de mucho tiempo con esa espinita clavada, por fin he sacado un poco de tiempo para crear un sitio web sencillito, pero con una apariencia, creo que aceptable... Esperemos que ahora sea mucho más fácil de mantener...

Si quereis ver cómo ha quedado podeís pasaros por Alea Soluciones

Tuesday, May 05, 2009

Otro Alter Ego ''Mi(i) pingüino''





Como cualquiera que se precie tengo varias personalidades (aunque casi
siempre uso la misma). Asi que aquí os presento, en exclusiva, mi
segundo Alter Ego, "Mi(i) pingüino"

Tuesday, April 21, 2009

La resistencia viscosa / Desencadenado

No me gusta introducir en el blog entradas copiadas de otros sitios, pero este post "La resistencia viscosa" me ha parecido muy bueno, y no quiero quedarme sin compartirlo....

El post es del blog Desencadenado y ha sido escrito por Borja Prieto

Entre los individuos que se resisten al cambio en una gran organización, o quieren sabotear un proyecto, la técnica que mejores resultados suele dar es la resistencia viscosa. Consiste en no oponerse frontalmente a nada pero generar tal viscosidad alrededor de los que intentan llevar adelante el proyecto que éstos acaban agotados del esfuerzo, como si tuvieran que nadar en una piscina de mermelada.....
Seguir leyendo....

Saturday, April 18, 2009

arpspoof, "Man in the middle"

En muchas ocasiones necesitamos poder analizar el tráfico de una comunicación, bien en desarrollo o en producción. Existen casos en que bien por no poder controlar la infraestructura de red o para poder hacer depuraciones rápidas sin necesidad de reestructurar partes de la red, necesitamos poder tener una máquina "en medio" de la comunicación de otras dos máquinas con el fin de poder capturar y analizar tráfico de red.

En estas situaciones puede ser muy interesante ser capaz de instalar un "Man in the middle" para poder capturar y análizar el tráfico con alguna de las clásicas herramientas Tcpdump, wireshark y tshark,...

En muchos de los casos queremos interceptar las comunicaciones de un host con su gateway de salida, así que ese es el escenario que voy a comentar...

Supongamos que tenemos:
  • HostA en el que realizaremos la captura
  • HostB del que queremos analizar las comunicaciones
  • Gateway de Salida GW

Pasamos a la acción... Todas las operaciones a realizar las tenemos que ejecutar en el hostA.

Instalamos la herramienta arpspoof que se encuentra incluido en dentro de las utilidades dsniff, así que:
sudo apt-get install dsniff
Como vamos a ponernos en el medio de las comunicaciones y debemos dejar pasar el tráfico, activamos el forwarding IPv4
echo 1 > /proc/sys/net/ipv4/ip_forward
Ahora tenemos que convencer al HostB de que el gateway de salida GW somos nosotros (HostA) y al gateway de salida GW le tenemos que convencer de que el HostB somos nosotros (HostA).
Así que ahora tenemos que dejar ejecutando de forma continua los siguientes comandos (podemos lanzar cada uno en un shell/session diferente):
arpspoof -i eth1 -t HostBIP GWIP
arpspoof -i eth1 -t GWIP HostBIP
Siendo HostBIP la ip del HostB y GWIP la ip del gateway de salida GW. El interface de red a usar, en este caso eth1, es el correspondiente al interface que este conectado a la misma red que el GW y el HostB.
Esperamos unos segundetes, medio minuto o así, a que todos los implicados actualicen sus tablas arp y finalmente ya podemos ponernos a capturar tráfico desde otro shell/sesión:
tcpdump -i eth1 host HostBIP and not arp

Libro de citas (III)

Time is so short, you can't make a debug...
Scott Adams

Thursday, April 09, 2009

Libro de citas (II)

Las tres mentiras más gordas del desarrollo del software:
  • El programa está completamente testado y está libre de errores
  • Estamos trabajando en la documentación
  • Por supuesto que podemos modificarlo

WTFs/min "Métrica Calidad Código"

Saturday, April 04, 2009

Ethervendor Soft libre Alea Soluciones

Poco a poco comenzamos a subir contenido a la web Soft libre Alea Soluciones. En esta ocasión voy a comentar el paquete Ethervendor que permite entre otras cosas, consultar los Ethernet Vendors correspondientes a una MAC.

Inicialmente este paquete le pusimos el nombre MacUtils, pero ese nombre de paquete ya existía por lo que se ha renombrado a EtherVendors.

Este paquete de software incluye utilidades para identificar/consultar Ethernet Vendors. Actualmente se dispone de las siguientes utilidades:
  • update-ethervendor Descarga/Actualiza la lista oficial de Ethernet Vendors (desde el IEEE) a nuestro equipo, para que sea usada por el resto de utilidades.
  • ethervendor Muestra el nombre del fabricante (vendor/manufacturer) correspondiente a una tarjeta de red partiendo de su dirección Ethernet Mac.
  • ethervendorsfind Muestra los nombres de fabricantes que contienen una cadena dada.
  • ethervendorids Muestra todos los OUIs/Prefijo Dirección MAC, correspondientes a un nombre de fabricante especificado.

La url oficial es: EtherVendors home
El paquete es muy simplón, pero bastante útil para todos aquellos que trabajamos en entornos ethernet todos los días.
Cualquier sugerencia/comentario al respecto de este será bienvenida...

Friday, April 03, 2009

Libro de citas (I) (bis)

Tal como me han sugerido pongo aqui una frase que se ha oido muchas veces en conversaciones entre informáticos, o entre informáticos y fauna relacionada con la tecnologia (JPs, charcuteros-proxenetas, etc Ver dic informático y Comerc. RRHH / Proxeneta)

Bueno a los que íbamos, La cita dice así:

"Y por qué no me comes la poll....."
Apa

Libro de citas (I)

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough todebug it."
Brian Kernigan

Saturday, March 14, 2009

Soft libre Alea Soluciones

En la empresa en la que trabajo (Alea Soluciones) además de utilizar gran cantidad de software libre tanto para uso interno, como dentro de nuestros productos, se está empezando a liberar parte de los desarrollos que hemos realizado....

Para poder poner este software a disposición de todos, hemos creado la Web http://oss.alea-soluciones.com que contiene un Wiki y un repositorio de Subversion, donde colgaremos el soft que se vaya liberando, los correspondientes fuentes y la documentación....


Por ahora hay muy poca cosa, pero espero que poco a poco se vaya completando con más software. Tengo que decir que el motivo de que por ahora no exista casi contenido, no es tanto de que Alea Soluciones sea reacio a liberar código, sino de la cantidad de tiempo que requiere preparar el código para liberarlo sin dependencias de configuraciones o de comportamientos muy específicos de nuestros sistemas...

Inicialmente yo me encargo del mantenimiento de este sitio, por lo que para cualquier consulta o sugerencia podéis enviar un mensaje a eferro@alea-soluciones.com.