[svn-commits] tilghman: trunk r134088 - in /trunk: CHANGES UPGRADE.txt apps/app_image.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Jul 28 11:49:29 CDT 2008


Author: tilghman
Date: Mon Jul 28 11:49:29 2008
New Revision: 134088

URL: http://svn.digium.com/view/asterisk?view=rev&rev=134088
Log:
Change SendImage() to output a more consistent status variable.
(closes issue #13134)
 Reported by: eliel
 Patches: 
       app_image.c.patch uploaded by eliel (license 64)
       UPGRADE.patch uploaded by eliel (license 64)

Modified:
    trunk/CHANGES
    trunk/UPGRADE.txt
    trunk/apps/app_image.c

Modified: trunk/CHANGES
URL: http://svn.digium.com/view/asterisk/trunk/CHANGES?view=diff&rev=134088&r1=134087&r2=134088
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Mon Jul 28 11:49:29 2008
@@ -102,6 +102,10 @@
  * The Dial() application no longer copies the language used by the caller to the callee's
    channel. If you desire for the caller's channel's language to be used for file playback
    to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
+ * SendImage() no longer hangs up the channel on error; instead, it sets the
+   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
+   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
+   applications.
 
 SIP Changes
 -----------

Modified: trunk/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/trunk/UPGRADE.txt?view=diff&rev=134088&r1=134087&r2=134088
==============================================================================
--- trunk/UPGRADE.txt (original)
+++ trunk/UPGRADE.txt Mon Jul 28 11:49:29 2008
@@ -97,6 +97,13 @@
 
 Applications:
 
+* SendImage() no longer hangs up the channel on transmission error or on
+  another type of error; in those cases, a FAILURE status is stored in 
+  SENDIMAGESTATUS and dialplan execution continues.  The possible return values
+  stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and UNSUPPORTED. ('OK' has
+  been replaced with 'SUCCESS', and 'NOSUPPORT' has been replaced with
+  'UNSUPPORTED').  This change makes the SendImage application more consistent
+  with other applications.
 * ChanIsAvail() now has a 't' option, which allows the specified device
   to be queried for state without consulting the channel drivers. This
   performs mostly a 'ChanExists' sort of function.

Modified: trunk/apps/app_image.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_image.c?view=diff&rev=134088&r1=134087&r2=134088
==============================================================================
--- trunk/apps/app_image.c (original)
+++ trunk/apps/app_image.c Mon Jul 28 11:49:29 2008
@@ -39,16 +39,15 @@
 
 static char *descrip = 
 "  SendImage(filename): Sends an image on a channel.\n"
-"If the channel supports image transport but the image send fails, the channel\n"
-"will be hung up.  Otherwise, the dialplan continues execution.  This\n"
-"application sets the following channel variable upon completion:\n"
-"   SENDIMAGESTATUS  The status is the result of the attempt, one of:\n"
-"                    OK | NOSUPPORT \n";			
+"Result of transmission will be stored in SENDIMAGESTATUS\n"
+"channel variable:\n"
+"    SUCCESS      Transmission succeeded\n"
+"    FAILURE      Transmission failed\n"
+"    UNSUPPORTED  Image transmission not supported by channel\n";
 
 
 static int sendimage_exec(struct ast_channel *chan, void *data)
 {
-	int res = 0;
 
 	if (ast_strlen_zero(data)) {
 		ast_log(LOG_WARNING, "SendImage requires an argument (filename)\n");
@@ -57,14 +56,17 @@
 
 	if (!ast_supports_images(chan)) {
 		/* Does not support transport */
-		pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "NOSUPPORT");
+		pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "UNSUPPORTED");
 		return 0;
 	}
 
-	if (!(res = ast_send_image(chan, data)))
-		pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "OK");
-		
-	return res;
+	if (!ast_send_image(chan, data)) {
+		pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "SUCCESS");
+	} else {
+		pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "FAILURE");
+	}
+	
+	return 0;
 }
 
 static int unload_module(void)




More information about the svn-commits mailing list