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)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@205772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.1
Kevin P. Fleming 16 years ago
parent 304dc4708e
commit 7c52bf3dd8

@ -452,6 +452,7 @@ static int transmit_audio(fax_session *s)
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;
@ -463,12 +464,10 @@ static int transmit_audio(fax_session *s)
}
/* 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 */
}
}
@ -553,7 +552,8 @@ static int transmit_t38(fax_session *s)
}
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);
}
@ -602,9 +602,8 @@ static int transmit_t38(fax_session *s)
}
} 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;
}
}

Loading…
Cancel
Save