Applications no longer need to call ast_module_user_add and ast_module_user_remove...
[asterisk/asterisk.git] / apps / app_image.c
index 63c588e..655bbcf 100644 (file)
  * \ingroup applications
  */
  
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
 #include "asterisk.h"
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
 #include "asterisk/lock.h"
 #include "asterisk/file.h"
 #include "asterisk/logger.h"
@@ -44,8 +44,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/options.h"
 
-static char *tdesc = "Image Transmission Application";
-
 static char *app = "SendImage";
 
 static char *synopsis = "Send an image file";
@@ -55,31 +53,21 @@ static char *descrip =
 "If the channel supports image transport but the image send\n"
 "fails, the channel will be hung up. Otherwise, the dialplan\n"
 "continues execution.\n"
-"The option string may contain the following character:\n"
-"      'j' -- jump to priority n+101 if the channel doesn't support image transport\n"
 "This application sets the following channel variable upon completion:\n"
 "      SENDIMAGESTATUS         The status is the result of the attempt as a text string, one of\n"
 "              OK | NOSUPPORT \n";                     
 
-LOCAL_USER_DECL;
 
 static int sendimage_exec(struct ast_channel *chan, void *data)
 {
        int res = 0;
-       struct localuser *u;
        char *parse;
-       int priority_jump = 0;
        AST_DECLARE_APP_ARGS(args,
                AST_APP_ARG(filename);
                AST_APP_ARG(options);
        );
        
-       LOCAL_USER_ADD(u);
-
-       if (!(parse = ast_strdupa(data))) {
-               LOCAL_USER_REMOVE(u);
-               return -1;
-       }
+       parse = ast_strdupa(data);
 
        AST_STANDARD_APP_ARGS(args, parse);
 
@@ -89,58 +77,28 @@ static int sendimage_exec(struct ast_channel *chan, void *data)
        }
 
        if (args.options) {
-               if (strchr(args.options, 'j'))
-                       priority_jump = 1;
        }
 
        if (!ast_supports_images(chan)) {
                /* Does not support transport */
-               if (priority_jump || ast_opt_priority_jumping)
-                       ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101);
                pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "NOSUPPORT");
-               LOCAL_USER_REMOVE(u);
                return 0;
        }
 
-       res = ast_send_image(chan, args.filename);
-       
-       if (!res)
+       if (!(res = ast_send_image(chan, args.filename)))
                pbx_builtin_setvar_helper(chan, "SENDIMAGESTATUS", "OK");
-       
-       LOCAL_USER_REMOVE(u);
-       
+               
        return res;
 }
 
-int unload_module(void)
+static int unload_module(void)
 {
-       int res;
-
-       res = ast_unregister_application(app);
-
-       STANDARD_HANGUP_LOCALUSERS;
-
-       return res; 
+       return ast_unregister_application(app);
 }
 
-int load_module(void)
+static int load_module(void)
 {
        return ast_register_application(app, sendimage_exec, synopsis, descrip);
 }
 
-const char *description(void)
-{
-       return tdesc;
-}
-
-int usecount(void)
-{
-       int res;
-       STANDARD_USECOUNT(res);
-       return res;
-}
-
-const char *key()
-{
-       return ASTERISK_GPL_KEY;
-}
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Image Transmission Application");