Skip to main content.

7 Marzo 2007

Parche para APP_Rxfax : Consultar estado

SpanDSP es una librería para el Procesamiento Digital de Señales (DSP) que necesitaremos para poder transmitir/recibir Fax a través de asterisk. Junto con SpanDSP los autores facilitan dos aplicaciones para enviar fax y recibir fax en asterisk (rx_fax y tx_fax). A pesar de que puedes encontrar buenos manuales para hacerlas funcionar no siempre consigues los resultados esperados.

Y es que si consultamos la ayuda de txFax:

----------------------------------------
TxFAX(filename[|caller][|debug]): Send a given TIFF file to the channel as a FAX.
The “caller” option makes the application behave as a calling machine,
rather than the answering machine. The default behaviour is to behave as
an answering machine.
Uses LOCALSTATIONID to identify itself to the remote end.
LOCALHEADERINFO to generate a header line on each page.
Sets REMOTESTATIONID to the receiver CSID.
Returns -1 when the user hangs up, or if the file does not exist.
Returns 0 otherwise.
—————————————-
El retorno (0 y -1) es una practica común en el desarrollo de aplicaciones para c, pero no así en asterisk, donde es mas común devolver algún valor en una variable o saltar a una prioridad +101.

Por lo que se hace muy difícil consultar el estado del envío, si se ha enviado con éxito o no, ya que la manera de actuar de esta aplicación es la siguiente:

Aplicando la siguiente linea a la aplicación se consigue modificar el comportamiento de esta:


static void phase_e_handler(t30_state_t *s, void *user_data, int result)
{
struct ast_channel *chan;
char far_ident[21]; chan = (struct ast_channel *) user_data;
if (result == T30_ERR_OK)
{
t30_get_far_ident(s, far_ident);
pbx_builtin_setvar_helper(chan, “REMOTESTATIONID”, far_ident); /******************* LINEA PARA MODIFICAR ******************************/
pbx_builtin_setvar_helper(chan, “RESULTADO”, “ENVIADO”); }
else
{
ast_log(LOG_DEBUG, “==============================================================================n”);
ast_log(LOG_DEBUG, “Fax send not successful - result (%d) %s.n”,result,t30_completion_code_to_str(result));
ast_log(LOG_DEBUG, “==============================================================================n”); /******************* LINEA PARA MODIFICAR ******************************/
pbx_builtin_setvar_helper(chan, “RESULTADO”, “ERROR”);
}
}
/*- End of function ——————————————————–*/

Gracias a esa función se puede dar un valor a una variable de canal, y como ocurre cuando el resultado es correcto se continúa con el dialplan.

Aqui dejamos el parche para que app_txfax devuelva una variable de estado. Su uso es muy facil:

# cd /usr/src/asterisk/apps

# patch app_txfax.c < app_txfax.patch

Posted by David in Asterisk, Howto

Esta entrada se publicó el Miércoles, Marzo 7th, 2007 a las 10:24 y está archivada bajo la categoría Asterisk, Howto. Puede seguir cualquier comentario a esta entrada a través del feed RSS 2.0 . Puede dejar un comentario, o trackback desde su propio sitio.

3 comentarios to “Parche para APP_Rxfax : Consultar estado”

  1. Sébastien Cramatte says:

    Hola,

    Acobo de acabar de patchear el paquete asterisk_app_fax ubuntu feisty con vuetro patch.

    Ningún problema … creo que deberiás mandarlo al autor o a por lo menos a la persona que mantenga el paquete ?

    Estoy buscando una configuracion completa para el fax utilizando app_rfax , app_tfax. Parece que hay que utilizar un programa más para detectar el fax como el NV Faxdetect …

    Si teneis unas pistas le agredeceriá un monton
    Saludo

  2. David says:

    Hola Sébastien,
    Me alegro mucho de que te haya funcionado, en cuanto a NVFaxDetect, echale un vistazo a la otra entrada que tenemos sobre eso, espero poder escribir pronto sobre hylafax e iaxmodem, que por ahora es la solucion que mejores resulatdos nos ha dado para fax.
    Un saludo.

  3. Serron says:

    Please stop saying stupid things! After reading your posts I want to laugh! You are trying to act and talk like an experienced person, but it does not work in your case. You can’t imagine how funny you look. I didn’t want to say anything bad but words just came out of my mouth! You must be crazy!

Deje un comentario

XHTML: Puede emplear estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

2005 © Irontec S.L. :: Powered by Irontec & Wordpress
[ IRONTEC S.L. - C.I.F. B-95274890 ]
[ Ctra. Basurto-Kastrexana nº70 / Enpresaldea ]
[ 48002 - Bilbao - Bizkaia ]