]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Make app_fax compatible with spandsp-0.0.6pre4
authorDwayne M. Hubbard <dwayne.hubbard@gmail.com>
Fri, 20 Feb 2009 20:29:00 +0000 (20:29 +0000)
committerDwayne M. Hubbard <dwayne.hubbard@gmail.com>
Fri, 20 Feb 2009 20:29:00 +0000 (20:29 +0000)
Prior to spandsp-0.0.6pre4 the t30_stats_t structure used a pages_transferred
integer to indicate the number of pages transferred (so far) during the fax
session.  The spandsp-0.0.6pre4 release removed the pages_transferred integer
and replaced it with two different integers - pages_tx and pages_rx.  This
revision uses the new integers for spandsp-0.0.6pre4 while maintaining backwards
compatibility for previous spandsp releases.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@177699 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_fax.c

index b7031acf9b6fd59adc55905f5725d8015cbf5f41..ed7fe16e635bbc77e063de4082f9b0403a4825f9 100644 (file)
@@ -206,6 +206,7 @@ static void phase_e_handler(t30_state_t *f, void *user_data, int result)
        char buf[20];
        fax_session *s = (fax_session *) user_data;
        t30_stats_t stat;
+       int pages_transferred;
 
        ast_debug(1, "Fax phase E handler. result=%d\n", result);
 
@@ -231,7 +232,12 @@ static void phase_e_handler(t30_state_t *f, void *user_data, int result)
        pbx_builtin_setvar_helper(s->chan, "FAXSTATUS", "SUCCESS"); 
        pbx_builtin_setvar_helper(s->chan, "FAXERROR", NULL); 
        pbx_builtin_setvar_helper(s->chan, "REMOTESTATIONID", far_ident);
-       snprintf(buf, sizeof(buf), "%d", stat.pages_transferred);
+#if SPANDSP_RELEASE_DATE >= 20090220
+       pages_transferred = (s->direction) ? stat.pages_tx : stat.pages_rx;
+#else
+       pages_transferred = stat.pages_transferred;
+#endif
+       snprintf(buf, sizeof(buf), "%d", pages_transferred);
        pbx_builtin_setvar_helper(s->chan, "FAXPAGES", buf);
        snprintf(buf, sizeof(buf), "%d", stat.y_resolution);
        pbx_builtin_setvar_helper(s->chan, "FAXRESOLUTION", buf);
@@ -240,7 +246,7 @@ static void phase_e_handler(t30_state_t *f, void *user_data, int result)
        
        ast_debug(1, "Fax transmitted successfully.\n");
        ast_debug(1, "  Remote station ID: %s\n", far_ident);
-       ast_debug(1, "  Pages transferred: %d\n", stat.pages_transferred);
+       ast_debug(1, "  Pages transferred: %d\n", pages_transferred);
        ast_debug(1, "  Image resolution:  %d x %d\n", stat.x_resolution, stat.y_resolution);
        ast_debug(1, "  Transfer Rate:     %d\n", stat.bit_rate);
        
@@ -260,7 +266,7 @@ static void phase_e_handler(t30_state_t *f, void *user_data, int result)
                      S_OR(s->chan->cid.cid_num, ""),
                      far_ident,
                      local_ident,
-                     stat.pages_transferred,
+                     pages_transferred,
                      stat.y_resolution,
                      stat.bit_rate,
                      s->file_name);