dect
/
asterisk
Archived
13
0
Fork 0

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)


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@134088 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
tilghman 2008-07-28 16:49:29 +00:00
parent 255f52d647
commit aa5fc8c256
3 changed files with 24 additions and 11 deletions

View File

@ -102,6 +102,10 @@ Application Changes
* 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
-----------

View File

@ -97,6 +97,13 @@ Voicemail:
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.

View File

@ -39,16 +39,15 @@ static char *synopsis = "Send an image file";
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 @@ static int sendimage_exec(struct ast_channel *chan, void *data)
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)