[asterisk-commits] kpfleming: branch 1.6.0 r204949 - in /branches/1.6.0: ./ main/channel.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jul 6 08:39:54 CDT 2009


Author: kpfleming
Date: Mon Jul  6 08:39:51 2009
New Revision: 204949

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

........
  r204948 | kpfleming | 2009-07-06 08:38:29 -0500 (Mon, 06 Jul 2009) | 7 lines
  
  Improve handling of AST_CONTROL_T38 and AST_CONTROL_T38_PARAMETERS for non-T.38-capable channels.
  
  This change allows applications that request T.38 negotiation on a channel that
  does not support it to get the proper indication that it is not supported, rather
  than thinking that negotiation was started when it was not.
........

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/main/channel.c

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

Modified: branches/1.6.0/main/channel.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.0/main/channel.c?view=diff&rev=204949&r1=204948&r2=204949
==============================================================================
--- branches/1.6.0/main/channel.c (original)
+++ branches/1.6.0/main/channel.c Mon Jul  6 08:39:51 2009
@@ -3085,7 +3085,7 @@
 
 	ast_channel_unlock(chan);
 
-	if (chan->tech->indicate && !res) {
+	if (!res) {
 		/* The channel driver successfully handled this indication */
 		if (is_visible_indication(condition)) {
 			chan->visible_indication = condition;
@@ -3107,6 +3107,15 @@
 
 	/* Handle conditions that we have tones for. */
 	switch (condition) {
+	case AST_CONTROL_T38:
+	case AST_CONTROL_T38_PARAMETERS:
+		/* there is no way to provide 'default' behavior for these
+		 * control frames, so we need to return failure, but there
+		 * is also no value in the log message below being emitted
+		 * since failure to handle these frames is not an 'error'
+		 * so just return right now.
+		 */
+		return -1;
 	case AST_CONTROL_RINGING:
 		ts = ast_get_indication_tone(chan->zone, "ring");
 		/* It is common practice for channel drivers to return -1 if trying
@@ -3142,8 +3151,6 @@
 	case AST_CONTROL_RING:
 	case AST_CONTROL_HOLD:
 	case AST_CONTROL_UNHOLD:
-	case AST_CONTROL_T38:
-	case AST_CONTROL_T38_PARAMETERS:
 		/* Nothing left to do for these. */
 		res = 0;
 		break;




More information about the asterisk-commits mailing list