implement TXTCIDNAME as a dialplan function and mark the application deprecated
authorRussell Bryant <russell@russellbryant.com>
Tue, 18 Oct 2005 03:02:06 +0000 (03:02 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 18 Oct 2005 03:02:06 +0000 (03:02 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6813 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_txtcidname.c
funcs/func_enum.c

index cb88c7e..25547c2 100755 (executable)
@@ -61,9 +61,15 @@ static int txtcidname_exec(struct ast_channel *chan, void *data)
        char tech[80];
        char txt[256] = "";
        char dest[80];
        char tech[80];
        char txt[256] = "";
        char dest[80];
-
        struct localuser *u;
        struct localuser *u;
-       if (!data || !strlen(data)) {
+       static int dep_warning = 0;
+
+       if (!dep_warning) {
+               ast_log(LOG_WARNING, "The TXTCIDName application has been deprecated in favor of the TXTCIDNAME dialplan function.\n");
+               dep_warning = 1;
+       }
+       
+       if (!data || ast_strlen_zero(data)) {
                ast_log(LOG_WARNING, "TXTCIDName requires an argument (extension)\n");
                res = 1;
        }
                ast_log(LOG_WARNING, "TXTCIDName requires an argument (extension)\n");
                res = 1;
        }
index 51d96e8..01623e5 100755 (executable)
@@ -1,9 +1,11 @@
 /*
  * Asterisk -- An open source telephony toolkit.
  *
 /*
  * Asterisk -- An open source telephony toolkit.
  *
- * Copyright (C) 2005
+ * Copyright (C) 1999 - 2005
  *
  *
+ * Mark Spencer <markster@digium.com>
  * Oleksiy Krivoshey <oleksiyk@gmail.com>
  * Oleksiy Krivoshey <oleksiyk@gmail.com>
+ * Russell Bryant <russelb@clemson.edu>
  *
  * See http://www.asterisk.org for more information about
  * the Asterisk project. Please do not directly contact
  *
  * See http://www.asterisk.org for more information about
  * the Asterisk project. Please do not directly contact
@@ -137,7 +139,6 @@ static char *function_enum(struct ast_channel *chan, char *cmd, char *data, char
        return buf;
 }
 
        return buf;
 }
 
-
 #ifndef BUILTIN_FUNC
 static
 #endif
 #ifndef BUILTIN_FUNC
 static
 #endif
@@ -153,18 +154,68 @@ struct ast_custom_function enum_function = {
        .read = function_enum,
 };
 
        .read = function_enum,
 };
 
+static char *function_txtcidname(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+{
+       int res;
+       char tech[80];
+       char txt[256] = "";
+       char dest[80];
+       struct localuser *u;
+
+       LOCAL_USER_ACF_ADD(u);
+
+       buf[0] = '\0';
+
+       if (!data || ast_strlen_zero(data)) {
+               ast_log(LOG_WARNING, "TXTCIDNAME requires an argument (number)\n");
+               LOCAL_USER_REMOVE(u);
+               return buf;     
+       }
+
+       res = ast_get_txt(chan, data, dest, sizeof(dest), tech, sizeof(tech), txt, sizeof(txt));
+       
+       if (!ast_strlen_zero(txt))
+               ast_copy_string(buf, txt, len);
+       
+       LOCAL_USER_REMOVE(u);
+
+       return buf;
+}
+
+#ifndef BUILTIN_FUNC
+static
+#endif
+struct ast_custom_function txtcidname_function = {
+       .name = "TXTCIDNAME",
+       .synopsis = "TXTCIDNAME looks up a caller name via DNS",
+       .syntax = "TXTCIDNAME(<number>)",
+       .desc = "This function looks up the given phone number in DNS to retrieve\n"
+       "the caller id name.  The result will either be blank or be the value\n"
+       "found in the TXT record in DNS.\n",
+       .read = function_txtcidname,
+};
+
 #ifndef BUILTIN_FUNC
 
 static char *tdesc = "ENUMLOOKUP allows for general or specific querying of NAPTR records or counts of NAPTR types for ENUM or ENUM-like DNS pointers";
 
 int unload_module(void)
 {
 #ifndef BUILTIN_FUNC
 
 static char *tdesc = "ENUMLOOKUP allows for general or specific querying of NAPTR records or counts of NAPTR types for ENUM or ENUM-like DNS pointers";
 
 int unload_module(void)
 {
-       return ast_custom_function_unregister(&enum_function);
+       ast_custom_function_unregister(&enum_function);
+       ast_custom_function_unregister(&txtcidname_function);
+       
+       return 0;
 }
 
 int load_module(void)
 {
 }
 
 int load_module(void)
 {
-       return ast_custom_function_register(&enum_function);
+       int res;
+       
+       res = ast_custom_function_register(&enum_function);
+       if (!res)
+               ast_custom_function_register(&txtcidname_function);
+
+       return res;
 }
 
 char *description(void)
 }
 
 char *description(void)
@@ -174,7 +225,11 @@ char *description(void)
 
 int usecount(void)
 {
 
 int usecount(void)
 {
-       return 0;
+       int res;
+       
+       STANDARD_USECOUNT(res);
+
+       return res;
 }
 
 char *key()
 }
 
 char *key()