Durante la semana antepasada tuvimos problemas muy latosos con una nueva troncal E1 contratada con Avantel. Utilizamos una tarjeta Digium de 4 puertos. El problema era que en ocasiones las llamadas se quedaban a medias al iniciar su establecimiento, a veces se concretaban pero se escuchaba entrecortado. Inicialmente pensamos que era un problema de hardware, sin embargo el problema continuaba aún con una tarjeta Sangoma. Después de seguirle la pista a la salida del magnifico comando strace descubri que el problema se encontraba en que algunas llamadas al sistema por medio de write() regresaban argumento inválido. Pasé muchas horas buscando la causa sin encontrarla. Después de muchas horas encontré que el driver de zaptel regresa argumento inválido si el buffer a escribir tiene longitud de cero. Con esto descarté cualquier problema en el driver, asi que el responsable era claramente libmfcr2, por que pasaba para su escritura un buffer con longitud de cero. El buffer provenÃa de una codificación por medio de ALAW de un tono generado por spandsp. Para no hacerla larga encontré el error en libmfcr2 y contacté a steve underwood, a quien ya habÃa contactado con anterioridad, pero nunca me hizo caso hasta que le envié el parche. Me indico que mi parche, a pesar de solucionar el problema, no era confiable, por que generaba un tono algo intermitente. Me dijo que en unos dias sacarÃa una versión nueva de unicall para resolver ese problema, y al fin lo ha hecho. Durante esta semana aprendà varias cosas sobre la forma de comunicación de los drivers con el kernel linux, asi como el funcionamiento interno de unicall y como se comunica con zaptel y asterisk. Aprendà también cosas interesantes sobre MFCR2. He escrito un documento que publicaré esta semana donde describo el funcionamiento de MFCR2 y como encaja en Asterisk utilizando Unicall.
-
Archives
- October 2016
- November 2015
- August 2015
- July 2015
- June 2015
- July 2014
- October 2013
- September 2013
- March 2012
- December 2011
- November 2011
- October 2011
- August 2011
- June 2011
- May 2011
- April 2011
- January 2011
- October 2010
- December 2009
- September 2009
- August 2009
- June 2009
- May 2009
- March 2009
- February 2009
- December 2008
- November 2008
- October 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- February 2007
- December 2006
- September 2006
- August 2006
- April 2006
- February 2006
- January 2006
- December 2005
- October 2005
-
Meta