From 83bbf83f4905546992cb60c8e426b9cb64318419 Mon Sep 17 00:00:00 2001
From: "Dwayne M. Hubbard" <dwayne.hubbard@gmail.com>
Date: Fri, 20 Feb 2009 20:29:00 +0000
Subject: [PATCH] Make app_fax compatible with spandsp-0.0.6pre4

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 | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/apps/app_fax.c b/apps/app_fax.c
index b7031acf9b..ed7fe16e63 100644
--- a/apps/app_fax.c
+++ b/apps/app_fax.c
@@ -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);
-- 
GitLab