2 * Asterisk -- A telephony toolkit for Linux.
4 * MD5 checksum application
6 * Copyright (C) 2005, Olle E. Johansson, Edvina.net
8 * This program is free software, distributed under the terms of
9 * the GNU General Public License
12 #include <asterisk/file.h>
13 #include <asterisk/logger.h>
14 #include <asterisk/utils.h>
15 #include <asterisk/channel.h>
16 #include <asterisk/pbx.h>
17 #include <asterisk/module.h>
18 #include <asterisk/lock.h>
23 static char *tdesc = "MD5 checksum application";
24 static char *app_md5 = "md5";
25 static char *synopsis =
26 " md5(<var>=<string>): Calculates a MD5 checksum on <string>.\n"
27 "Returns hash value in a channel variable. Always return 0\n";
33 static int md5_exec(struct ast_channel *chan, void *data)
37 char *varname= NULL; /* Variable to set */
38 char *string = NULL; /* String to calculate on */
39 char retvar[50]; /* Return value */
42 ast_log(LOG_WARNING, "Syntax: md5(<varname>=<string>) - missing argument!\n");
46 memset(retvar,0, sizeof(retvar));
47 string = ast_strdupa(data);
48 varname = strsep(&string,"=");
49 if (ast_strlen_zero(varname)) {
50 ast_log(LOG_WARNING, "Syntax: md5(<varname>=<string>) - missing argument!\n");
54 ast_md5_hash(retvar, string);
55 pbx_builtin_setvar_helper(chan, varname, retvar);
60 int unload_module(void)
62 STANDARD_HANGUP_LOCALUSERS;
63 return ast_unregister_application(app_md5);
68 return ast_register_application(app_md5, md5_exec, synopsis, tdesc);
71 char *description(void)
79 STANDARD_USECOUNT(res);
85 return ASTERISK_GPL_KEY;