[asterisk-commits] kpfleming: branch 1.6.2 r205773 - in /branches/1.6.2: ./ apps/app_fax.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jul 10 10:36:42 CDT 2009


Author: kpfleming
Date: Fri Jul 10 10:36:39 2009
New Revision: 205773

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=205773
Log:
Merged revisions 205770 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
  r205770 | kpfleming | 2009-07-10 10:28:11 -0500 (Fri, 10 Jul 2009) | 12 lines
  
  Fix some remaining T.38 negotiation problems in app_fax.
  
  Revision 205696 did not quite fix all the issues with the T.38 negotiation
  changes and app_fax; this patch corrects them, along with a couple of other
  minor issues.
  
  (closes issue #15480)
  Reported by: dimas
  Patches:
        test2-15480.patch uploaded by dimas (license 88)
........

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/apps/app_fax.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.2/apps/app_fax.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.2/apps/app_fax.c?view=diff&rev=205773&r1=205772&r2=205773
==============================================================================
--- branches/1.6.2/apps/app_fax.c (original)
+++ branches/1.6.2/apps/app_fax.c Fri Jul 10 10:36:39 2009
@@ -497,6 +497,7 @@
 				res = 1;
 				break;
 			} else if (parameters->request_response == AST_T38_REQUEST_NEGOTIATE) {
+				ast_debug(1, "T38 request received, accepting\n");
 				if (parameters->version > 0) {
 					/* Only T.38 Version 0 is supported at this time */
 					parameters->version = 0;
@@ -508,12 +509,10 @@
 				}
 				/* we only support bit rates up to 9.6kbps */
 				parameters->rate = AST_T38_RATE_9600;
+				/* Complete T38 switchover */
 				ast_indicate_data(s->chan, AST_CONTROL_T38_PARAMETERS, parameters, sizeof(*parameters));
-				/* T38 switchover completed */
-				s->t38parameters = *parameters;
-				ast_debug(1, "T38 negotiated, finishing audio loop\n");
-				res = 1;
-				break;
+				/* Do not break audio loop, wait until channel driver finally acks switchover
+				   with AST_T38_NEGOTIATED */
 			}
 		}
 
@@ -598,7 +597,8 @@
 	}
 	if (s->t38parameters.transcoding_mmr) {
 		t38_set_mmr_transcoding(t38state, TRUE);
-	} else if (s->t38parameters.transcoding_jbig) {
+	}
+	if (s->t38parameters.transcoding_jbig) {
 		t38_set_jbig_transcoding(t38state, TRUE);
 	}
 
@@ -647,9 +647,8 @@
 			}
 		} else if (inf->frametype == AST_FRAME_CONTROL && inf->subclass == AST_CONTROL_T38_PARAMETERS) {
 			struct ast_control_t38_parameters *parameters = inf->data.ptr;
-			if (parameters->request_response == AST_T38_TERMINATED || parameters->request_response == AST_T38_REFUSED) {
-				ast_debug(1, "T38 down, terminating\n");
-				res = -1;
+			if (parameters->request_response == AST_T38_TERMINATED) {
+				ast_debug(1, "T38 down, finishing\n");
 				break;
 			}
 		}




More information about the asterisk-commits mailing list