diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 677421afffd16c82e305c1ec3e50a7e4d75ed60d..5a7f562a1645d241ec42fcc519249926669c4bd1 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -763,7 +763,7 @@ static struct ast_frame *zt_exception(struct ast_channel *ast);
 static int zt_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen);
 static int zt_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
 static int zt_setoption(struct ast_channel *chan, int option, void *data, int datalen);
-static int zt_func_read(struct ast_channel *chan, char *function, char *data, char *buf, size_t len); 
+static int zt_func_read(struct ast_channel *chan, const char *function, char *data, char *buf, size_t len);
 
 static const struct ast_channel_tech zap_tech = {
 	.type = "Zap",
@@ -3249,7 +3249,7 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
 	return 0;
 }
 
-static int zt_func_read(struct ast_channel *chan, char *function, char *data, char *buf, size_t len)
+static int zt_func_read(struct ast_channel *chan, const char *function, char *data, char *buf, size_t len)
 {
 	struct zt_pvt *p = chan->tech_pvt;
 	
diff --git a/funcs/func_base64.c b/funcs/func_base64.c
index 463e6dd879b31bcaf6fd68267ba606d9535b98b8..0dddc2ca7345722bae74e85971afa3d9d0938145 100644
--- a/funcs/func_base64.c
+++ b/funcs/func_base64.c
@@ -37,7 +37,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int base64_encode(struct ast_channel *chan, char *cmd, char *data,
+static int base64_encode(struct ast_channel *chan, const const char *cmd, char *data,
 			 char *buf, size_t len)
 {
 	if (ast_strlen_zero(data)) {
@@ -50,7 +50,7 @@ static int base64_encode(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int base64_decode(struct ast_channel *chan, char *cmd, char *data,
+static int base64_decode(struct ast_channel *chan, const const char *cmd, char *data,
 			 char *buf, size_t len)
 {
 	if (ast_strlen_zero(data)) {
diff --git a/funcs/func_blacklist.c b/funcs/func_blacklist.c
index 2d1291924ca5ac0c7294adfaedc89ad04c01ebf9..fb6195fb16402c841f236e1af20e3338deed2c80 100644
--- a/funcs/func_blacklist.c
+++ b/funcs/func_blacklist.c
@@ -47,7 +47,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/astdb.h"
 #include "asterisk/options.h"
 
-static int blacklist_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int blacklist_read(struct ast_channel *chan, const const char *cmd, char *data, char *buf, size_t len)
 {
 	char blacklist[1];
 	int bl = 0;
diff --git a/funcs/func_callerid.c b/funcs/func_callerid.c
index 6621d4d7cc48a1cfca2836a7e977dda27f54d2d7..aefbf3e15326b6e87efa43d5869bde73da4e5126 100644
--- a/funcs/func_callerid.c
+++ b/funcs/func_callerid.c
@@ -38,7 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/options.h"
 #include "asterisk/callerid.h"
 
-static int callerid_read(struct ast_channel *chan, char *cmd, char *data,
+static int callerid_read(struct ast_channel *chan, const const char *cmd, char *data,
 			 char *buf, size_t len)
 {
 	char *opt = data;
@@ -96,7 +96,7 @@ static int callerid_read(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int callerid_write(struct ast_channel *chan, char *cmd, char *data,
+static int callerid_write(struct ast_channel *chan, const const char *cmd, char *data,
 			  const char *value)
 {
 	if (!value)
diff --git a/funcs/func_cdr.c b/funcs/func_cdr.c
index daed3c9b829d86345e5eaa5ec6fbf4bf83b65901..f55212e5a33f1a6557a9f0b03a1d0640be36d6c8 100644
--- a/funcs/func_cdr.c
+++ b/funcs/func_cdr.c
@@ -52,7 +52,7 @@ AST_APP_OPTIONS(cdr_func_options, {
 	AST_APP_OPTION('u', OPT_UNPARSED),
 });
 
-static int cdr_read(struct ast_channel *chan, char *cmd, char *parse,
+static int cdr_read(struct ast_channel *chan, const char *cmd, char *parse,
 		    char *buf, size_t len)
 {
 	char *ret;
@@ -85,7 +85,7 @@ static int cdr_read(struct ast_channel *chan, char *cmd, char *parse,
 	return 0;
 }
 
-static int cdr_write(struct ast_channel *chan, char *cmd, char *parse,
+static int cdr_write(struct ast_channel *chan, const char *cmd, char *parse,
 		     const char *value)
 {
 	struct ast_flags flags = { 0 };
diff --git a/funcs/func_channel.c b/funcs/func_channel.c
index cbaab05725f3da7d3a150e4b816dd7d7c6d54f03..77777a54984da87df6f2e4bc186a2510fdb5ebab 100644
--- a/funcs/func_channel.c
+++ b/funcs/func_channel.c
@@ -59,7 +59,7 @@ char *transfercapability_table[0x20] = {
 	"3K1AUDIO", "DIGITAL_W_TONES", "UNK", "UNK", "UNK", "UNK", "UNK", "UNK",
 	"VIDEO", "UNK", "UNK", "UNK", "UNK", "UNK", "UNK", "UNK", };
 
-static int func_channel_read(struct ast_channel *chan, char *function,
+static int func_channel_read(struct ast_channel *chan, const char *function,
 			     char *data, char *buf, size_t len)
 {
 	int ret = 0;
@@ -100,7 +100,7 @@ static int func_channel_read(struct ast_channel *chan, char *function,
 	return ret;
 }
 
-static int func_channel_write(struct ast_channel *chan, char *function,
+static int func_channel_write(struct ast_channel *chan, const char *function,
 			      char *data, const char *value)
 {
 	int ret = 0;
diff --git a/funcs/func_curl.c b/funcs/func_curl.c
index bd53e0a45b1aef0491273d7ecf38eba1fe2e6020..55228e1ea8128c5ea76a314d6fb9991e0b853d92 100644
--- a/funcs/func_curl.c
+++ b/funcs/func_curl.c
@@ -131,7 +131,7 @@ static int curl_internal(struct MemoryStruct *chunk, char *url, char *post)
 	return 0;
 }
 
-static int acf_curl_exec(struct ast_channel *chan, char *cmd, char *info, char *buf, size_t len)
+static int acf_curl_exec(struct ast_channel *chan, const char *cmd, char *info, char *buf, size_t len)
 {
 	struct ast_module_user *u;
 	struct MemoryStruct chunk = { NULL, 0 };
diff --git a/funcs/func_cut.c b/funcs/func_cut.c
index a8b8c8152899a33b90335d9f3790eb9173ee8a82..2f488a31dabcba76a4e65a40e90a4d409f506624 100644
--- a/funcs/func_cut.c
+++ b/funcs/func_cut.c
@@ -208,7 +208,7 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
 	return 0;
 }
 
-static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int acf_sort_exec(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	struct ast_module_user *u;
 	int ret = -1;
@@ -234,7 +234,7 @@ static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *
 	return ret;
 }
 
-static int acf_cut_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int acf_cut_exec(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	int ret = -1;
 	struct ast_module_user *u;
diff --git a/funcs/func_db.c b/funcs/func_db.c
index 2ad135fa00b076cb866f303f5dd819c037b10a83..783e1fac3c17dbb07b96061b81295d55ff695683 100644
--- a/funcs/func_db.c
+++ b/funcs/func_db.c
@@ -44,7 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/astdb.h"
 
-static int function_db_read(struct ast_channel *chan, char *cmd,
+static int function_db_read(struct ast_channel *chan, const char *cmd,
 			    char *parse, char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -76,7 +76,7 @@ static int function_db_read(struct ast_channel *chan, char *cmd,
 	return 0;
 }
 
-static int function_db_write(struct ast_channel *chan, char *cmd, char *parse,
+static int function_db_write(struct ast_channel *chan, const char *cmd, char *parse,
 			     const char *value)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -116,7 +116,7 @@ static struct ast_custom_function db_function = {
 	.write = function_db_write,
 };
 
-static int function_db_exists(struct ast_channel *chan, char *cmd,
+static int function_db_exists(struct ast_channel *chan, const char *cmd,
 			      char *parse, char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -160,7 +160,7 @@ static struct ast_custom_function db_exists_function = {
 	.read = function_db_exists,
 };
 
-static int function_db_delete(struct ast_channel *chan, char* cmd,
+static int function_db_delete(struct ast_channel *chan, const char *cmd,
 			      char *parse, char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
diff --git a/funcs/func_enum.c b/funcs/func_enum.c
index 43e953c3b6a423947874d92a5ea32bb1c3f02824..de9af2258a33a161153c1701f0da7229508246d9 100644
--- a/funcs/func_enum.c
+++ b/funcs/func_enum.c
@@ -50,7 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
  static char *synopsis = "Syntax: ENUMLOOKUP(number[|Method-type[|options[|record#[|zone-suffix]]]])\n";
 
-static int function_enum(struct ast_channel *chan, char *cmd, char *data,
+static int function_enum(struct ast_channel *chan, const char *cmd, char *data,
 			 char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -132,7 +132,7 @@ static struct ast_custom_function enum_function = {
 	.read = function_enum,
 };
 
-static int function_txtcidname(struct ast_channel *chan, char *cmd,
+static int function_txtcidname(struct ast_channel *chan, const char *cmd,
 			       char *data, char *buf, size_t len)
 {
 	int res;
diff --git a/funcs/func_env.c b/funcs/func_env.c
index 6747d4f29395618b09a2149d683c0f32e89b1b86..b20848f1e45d3703853a03c3a12c1a966b87ef10 100644
--- a/funcs/func_env.c
+++ b/funcs/func_env.c
@@ -37,7 +37,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int env_read(struct ast_channel *chan, char *cmd, char *data,
+static int env_read(struct ast_channel *chan, const char *cmd, char *data,
 		    char *buf, size_t len)
 {
 	char *ret = NULL;
@@ -53,7 +53,7 @@ static int env_read(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int env_write(struct ast_channel *chan, char *cmd, char *data,
+static int env_write(struct ast_channel *chan, const char *cmd, char *data,
 		     const char *value)
 {
 	if (!ast_strlen_zero(data)) {
@@ -67,7 +67,7 @@ static int env_write(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int stat_read(struct ast_channel *chan, char *cmd, char *data,
+static int stat_read(struct ast_channel *chan, const char *cmd, char *data,
 		     char *buf, size_t len)
 {
 	char *action;
diff --git a/funcs/func_global.c b/funcs/func_global.c
index 50a84afde07faa0396de1355bb628677f58ba6e0..8919aeebaa17d5408f45f4f430019e60e2b7bd75 100644
--- a/funcs/func_global.c
+++ b/funcs/func_global.c
@@ -38,7 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/pbx.h"
 #include "asterisk/utils.h"
 
-static int global_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int global_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	const char *var = pbx_builtin_getvar_helper(NULL, data);
 
@@ -50,7 +50,7 @@ static int global_read(struct ast_channel *chan, char *cmd, char *data, char *bu
 	return 0;
 }
 
-static int global_write(struct ast_channel *chan, char *cmd, char *data, const char *value)
+static int global_write(struct ast_channel *chan, const char *cmd, char *data, const char *value)
 {
 	pbx_builtin_setvar_helper(NULL, data, value);
 
diff --git a/funcs/func_groupcount.c b/funcs/func_groupcount.c
index ed96e34b0895b2978af805f151e8246c7c6078c0..12462777ee91b79fbeb4571cf7fa4c031c21730c 100644
--- a/funcs/func_groupcount.c
+++ b/funcs/func_groupcount.c
@@ -36,7 +36,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int group_count_function_read(struct ast_channel *chan, char *cmd,
+static int group_count_function_read(struct ast_channel *chan, const char *cmd,
 				     char *data, char *buf, size_t len)
 {
 	int count;
@@ -72,7 +72,7 @@ static struct ast_custom_function group_count_function = {
 };
 
 static int group_match_count_function_read(struct ast_channel *chan,
-					   char *cmd, char *data, char *buf,
+					   const char *cmd, char *data, char *buf,
 					   size_t len)
 {
 	int count;
@@ -102,7 +102,7 @@ static struct ast_custom_function group_match_count_function = {
 	.write = NULL,
 };
 
-static int group_function_read(struct ast_channel *chan, char *cmd,
+static int group_function_read(struct ast_channel *chan, const char *cmd,
 			       char *data, char *buf, size_t len)
 {
 	char varname[256];
@@ -122,7 +122,7 @@ static int group_function_read(struct ast_channel *chan, char *cmd,
 	return 0;
 }
 
-static int group_function_write(struct ast_channel *chan, char *cmd,
+static int group_function_write(struct ast_channel *chan, const char *cmd,
 				char *data, const char *value)
 {
 	char grpcat[256];
@@ -149,7 +149,7 @@ static struct ast_custom_function group_function = {
 	.write = group_function_write,
 };
 
-static int group_list_function_read(struct ast_channel *chan, char *cmd,
+static int group_list_function_read(struct ast_channel *chan, const char *cmd,
 				    char *data, char *buf, size_t len)
 {
 	struct ast_var_t *current;
diff --git a/funcs/func_logic.c b/funcs/func_logic.c
index daf50142f7b4cc44f82a3e157f557c75865a69ef..33752fba2d5063b7fb4b78abb24f41e1b38a3416 100644
--- a/funcs/func_logic.c
+++ b/funcs/func_logic.c
@@ -38,7 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int isnull(struct ast_channel *chan, char *cmd, char *data,
+static int isnull(struct ast_channel *chan, const char *cmd, char *data,
 		  char *buf, size_t len)
 {
 	strcpy(buf, data && *data ? "0" : "1");
@@ -46,7 +46,7 @@ static int isnull(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int exists(struct ast_channel *chan, char *cmd, char *data, char *buf,
+static int exists(struct ast_channel *chan, const char *cmd, char *data, char *buf,
 		  size_t len)
 {
 	strcpy(buf, data && *data ? "1" : "0");
@@ -54,7 +54,7 @@ static int exists(struct ast_channel *chan, char *cmd, char *data, char *buf,
 	return 0;
 }
 
-static int iftime(struct ast_channel *chan, char *cmd, char *data, char *buf,
+static int iftime(struct ast_channel *chan, const char *cmd, char *data, char *buf,
 		  size_t len)
 {
 	struct ast_timing timing;
@@ -88,7 +88,7 @@ static int iftime(struct ast_channel *chan, char *cmd, char *data, char *buf,
 	return 0;
 }
 
-static int acf_if(struct ast_channel *chan, char *cmd, char *data, char *buf,
+static int acf_if(struct ast_channel *chan, const char *cmd, char *data, char *buf,
 		  size_t len)
 {
 	char *expr;
@@ -116,7 +116,7 @@ static int acf_if(struct ast_channel *chan, char *cmd, char *data, char *buf,
 	return 0;
 }
 
-static int set(struct ast_channel *chan, char *cmd, char *data, char *buf,
+static int set(struct ast_channel *chan, const char *cmd, char *data, char *buf,
 	       size_t len)
 {
 	char *varname;
diff --git a/funcs/func_math.c b/funcs/func_math.c
index b06a6b2f604c78e8ed11cd7d1295d1207bf6d72e..4dbfac802bf21d5b0f7ce4d337f43036ff2c38e8 100644
--- a/funcs/func_math.c
+++ b/funcs/func_math.c
@@ -65,7 +65,7 @@ enum TypeOfResult {
 	CHAR_RESULT
 };
 
-static int math(struct ast_channel *chan, char *cmd, char *parse,
+static int math(struct ast_channel *chan, const char *cmd, char *parse,
 		char *buf, size_t len)
 {
 	float fnum1;
diff --git a/funcs/func_md5.c b/funcs/func_md5.c
index 9b58693fc24105cff2d2472db8b8d3a17a0aea05..fd1791dc743248070bee35818ff691c6520b6a4a 100644
--- a/funcs/func_md5.c
+++ b/funcs/func_md5.c
@@ -40,7 +40,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int md5(struct ast_channel *chan, char *cmd, char *data,
+static int md5(struct ast_channel *chan, const char *cmd, char *data,
 	       char *buf, size_t len)
 {
 	if (ast_strlen_zero(data)) {
diff --git a/funcs/func_module.c b/funcs/func_module.c
index 7a6dc43997e585df16a38746956b35bd698a0748..00ccf05c31ca14f9fb24c5917f2cfb0330dd970f 100644
--- a/funcs/func_module.c
+++ b/funcs/func_module.c
@@ -37,7 +37,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/module.h"
 
-static int ifmodule_read(struct ast_channel *chan, char *cmd, char *data,
+static int ifmodule_read(struct ast_channel *chan, const char *cmd, char *data,
 		    char *buf, size_t len)
 {
 	char *ret = "0";
diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c
index c1677519d15056a6b0f8a6a0d5c9452b0ec6f31e..b2997340f94ec796ca4cc467205156f567bda18e 100644
--- a/funcs/func_odbc.c
+++ b/funcs/func_odbc.c
@@ -93,7 +93,7 @@ static SQLHSTMT generic_prepare(struct odbc_obj *obj, void *data)
 /*
  * Master control routine
  */
-static int acf_odbc_write(struct ast_channel *chan, char *cmd, char *s, const char *value)
+static int acf_odbc_write(struct ast_channel *chan, const char *cmd, char *s, const char *value)
 {
 	struct odbc_obj *obj = NULL;
 	struct acf_odbc_query *query;
@@ -193,7 +193,7 @@ static int acf_odbc_write(struct ast_channel *chan, char *cmd, char *s, const ch
 	return 0;
 }
 
-static int acf_odbc_read(struct ast_channel *chan, char *cmd, char *s, char *buf, size_t len)
+static int acf_odbc_read(struct ast_channel *chan, const char *cmd, char *s, char *buf, size_t len)
 {
 	struct odbc_obj *obj = NULL;
 	struct acf_odbc_query *query;
@@ -352,7 +352,7 @@ static int acf_odbc_read(struct ast_channel *chan, char *cmd, char *s, char *buf
 	return 0;
 }
 
-static int acf_escape(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int acf_escape(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	char *out = buf;
 
diff --git a/funcs/func_rand.c b/funcs/func_rand.c
index 32a167f697b3261d8c8f293e720d83ee9f235458..9bbe3f9ec757862cf79fdc36c66e804579e8094d 100644
--- a/funcs/func_rand.c
+++ b/funcs/func_rand.c
@@ -40,7 +40,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/options.h"
 
-static int acf_rand_exec(struct ast_channel *chan, char *cmd,
+static int acf_rand_exec(struct ast_channel *chan, const char *cmd,
 			 char *parse, char *buffer, size_t buflen)
 {
 	struct ast_module_user *u;
diff --git a/funcs/func_realtime.c b/funcs/func_realtime.c
index 4314c4e6819ddff6234546cce7ba37bb7e135e33..fa9d4a7e74bfb1ea613c48cbe7249bc1291806e8 100644
--- a/funcs/func_realtime.c
+++ b/funcs/func_realtime.c
@@ -45,7 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int function_realtime_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) 
+static int function_realtime_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) 
 {
 	struct ast_variable *var, *head;
         struct ast_module_user *u;
@@ -98,7 +98,7 @@ static int function_realtime_read(struct ast_channel *chan, char *cmd, char *dat
 	return 0;
 }
 
-static int function_realtime_write(struct ast_channel *chan, char *cmd, char *data, const char *value)
+static int function_realtime_write(struct ast_channel *chan, const char *cmd, char *data, const char *value)
 {
         struct ast_module_user *u;
 	int res = 0;
diff --git a/funcs/func_sha1.c b/funcs/func_sha1.c
index 01c7eb02384f7e74dd60044c865fe1a884a07a94..31c5bfe2cc9d3933058ea3a5923457be251c8913 100644
--- a/funcs/func_sha1.c
+++ b/funcs/func_sha1.c
@@ -38,7 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 
-static int sha1(struct ast_channel *chan, char *cmd, char *data,
+static int sha1(struct ast_channel *chan, const char *cmd, char *data,
 		char *buf, size_t len)
 {
 	*buf = '\0';
diff --git a/funcs/func_strings.c b/funcs/func_strings.c
index 2b1bc17d2d47e0694684b2ae7b6d1ff0e4ef0908..9f843b669be2bacadb97036061ea240cfe56dfd4 100644
--- a/funcs/func_strings.c
+++ b/funcs/func_strings.c
@@ -43,7 +43,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/localtime.h"
 #include "asterisk/options.h"
 
-static int function_fieldqty(struct ast_channel *chan, char *cmd,
+static int function_fieldqty(struct ast_channel *chan, const char *cmd,
 			     char *parse, char *buf, size_t len)
 {
 	char *varval;
@@ -73,7 +73,7 @@ static struct ast_custom_function fieldqty_function = {
 	.read = function_fieldqty,
 };
 
-static int filter(struct ast_channel *chan, char *cmd, char *parse, char *buf,
+static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *buf,
 		  size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -105,7 +105,7 @@ static struct ast_custom_function filter_function = {
 	.read = filter,
 };
 
-static int regex(struct ast_channel *chan, char *cmd, char *parse, char *buf,
+static int regex(struct ast_channel *chan, const char *cmd, char *parse, char *buf,
 		 size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -186,7 +186,7 @@ static int exec_clearhash(struct ast_channel *chan, void *data)
 	return 0;
 }
 
-static int array(struct ast_channel *chan, char *cmd, char *var,
+static int array(struct ast_channel *chan, const char *cmd, char *var,
 		 const char *value)
 {
 	AST_DECLARE_APP_ARGS(arg1,
@@ -256,7 +256,7 @@ static int array(struct ast_channel *chan, char *cmd, char *var,
 	return 0;
 }
 
-static int hashkeys_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int hashkeys_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	struct ast_var_t *newvar;
 	int plen;
@@ -278,7 +278,7 @@ static int hashkeys_read(struct ast_channel *chan, char *cmd, char *data, char *
 	return 0;
 }
 
-static int hash_write(struct ast_channel *chan, char *cmd, char *var, const char *value)
+static int hash_write(struct ast_channel *chan, const char *cmd, char *var, const char *value)
 {
 	char varname[256];
 	AST_DECLARE_APP_ARGS(arg,
@@ -298,7 +298,7 @@ static int hash_write(struct ast_channel *chan, char *cmd, char *var, const char
 	return 0;
 }
 
-static int hash_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int hash_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	char varname[256];
 	const char *varvalue;
@@ -382,7 +382,7 @@ static struct ast_custom_function array_function = {
 		"entire argument, since Set can take multiple arguments itself.\n",
 };
 
-static int acf_sprintf(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int acf_sprintf(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 #define SPRINTF_FLAG	0
 #define SPRINTF_WIDTH	1
@@ -525,7 +525,7 @@ static struct ast_custom_function sprintf_function = {
 "a format specifier is not recognized.\n",
 };
 
-static int quote(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int quote(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	char *bufptr = buf, *dataptr = data;
 	*bufptr++ = '"';
@@ -555,7 +555,7 @@ static struct ast_custom_function quote_function = {
 };
 
 
-static int len(struct ast_channel *chan, char *cmd, char *data, char *buf,
+static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf,
 	       size_t len)
 {
 	int length = 0;
@@ -575,7 +575,7 @@ static struct ast_custom_function len_function = {
 	.read = len,
 };
 
-static int acf_strftime(struct ast_channel *chan, char *cmd, char *parse,
+static int acf_strftime(struct ast_channel *chan, const char *cmd, char *parse,
 			char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -611,7 +611,7 @@ static struct ast_custom_function strftime_function = {
 	.read = acf_strftime,
 };
 
-static int acf_strptime(struct ast_channel *chan, char *cmd, char *data,
+static int acf_strptime(struct ast_channel *chan, const char *cmd, char *data,
 			char *buf, size_t len)
 {
 	AST_DECLARE_APP_ARGS(args,
@@ -663,7 +663,7 @@ static struct ast_custom_function strptime_function = {
 	.read = acf_strptime,
 };
 
-static int function_eval(struct ast_channel *chan, char *cmd, char *data,
+static int function_eval(struct ast_channel *chan, const char *cmd, char *data,
 			 char *buf, size_t len)
 {
 	buf[0] = '\0';
@@ -694,7 +694,7 @@ static struct ast_custom_function eval_function = {
 	.read = function_eval,
 };
 
-static int keypadhash(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
+static int keypadhash(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 {
 	char *bufptr, *dataptr;
 
diff --git a/funcs/func_timeout.c b/funcs/func_timeout.c
index 992057da84cd4eda22169b37fd3d959a7a02d91c..438e104d7576c18aa5abe41d700fccc63756c968 100644
--- a/funcs/func_timeout.c
+++ b/funcs/func_timeout.c
@@ -40,7 +40,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/options.h"
 
-static int timeout_read(struct ast_channel *chan, char *cmd, char *data,
+static int timeout_read(struct ast_channel *chan, const char *cmd, char *data,
 			char *buf, size_t len)
 {
 	time_t myt;
@@ -83,7 +83,7 @@ static int timeout_read(struct ast_channel *chan, char *cmd, char *data,
 	return 0;
 }
 
-static int timeout_write(struct ast_channel *chan, char *cmd, char *data,
+static int timeout_write(struct ast_channel *chan, const char *cmd, char *data,
 			 const char *value)
 {
 	int x;
diff --git a/funcs/func_uri.c b/funcs/func_uri.c
index 2680dd678a6f6cf3ac5eb91e837733e68bb16883..d8959daf149bc118beac42c76359812c6c60d917 100644
--- a/funcs/func_uri.c
+++ b/funcs/func_uri.c
@@ -44,7 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 
 /*! \brief uriencode: Encode URL according to RFC 2396 */
-static int uriencode(struct ast_channel *chan, char *cmd, char *data,
+static int uriencode(struct ast_channel *chan, const char *cmd, char *data,
 		     char *buf, size_t len)
 {
 	if (ast_strlen_zero(data)) {
@@ -58,7 +58,7 @@ static int uriencode(struct ast_channel *chan, char *cmd, char *data,
 }
 
 /*!\brief uridecode: Decode URI according to RFC 2396 */
-static int uridecode(struct ast_channel *chan, char *cmd, char *data,
+static int uridecode(struct ast_channel *chan, const char *cmd, char *data,
 		     char *buf, size_t len)
 {
 	if (ast_strlen_zero(data)) {
diff --git a/funcs/func_version.c b/funcs/func_version.c
index 77525f815a6a2329db0caca7fd8a7bf21618f196..ee824aaa43fc3d84e91df557bcd630b736614285 100644
--- a/funcs/func_version.c
+++ b/funcs/func_version.c
@@ -43,7 +43,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define STRING_IT(vernum) STRING_IT2(vernum)
 #define STRING_IT2(vernum) #vernum
 
-static int acf_version_exec(struct ast_channel *chan, char *cmd,
+static int acf_version_exec(struct ast_channel *chan, const char *cmd,
 			 char *parse, char *buffer, size_t buflen)
 {
 	struct ast_module_user *u;
diff --git a/funcs/func_vmcount.c b/funcs/func_vmcount.c
index 10ff000c7cf585a30c4c851f9cc38e24cf468da1..3cb5029e56e555b0d846acfd0b38b9f662cc8d19 100644
--- a/funcs/func_vmcount.c
+++ b/funcs/func_vmcount.c
@@ -45,7 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/options.h"
 
-static int acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *argsstr, char *buf, size_t len)
+static int acf_vmcount_exec(struct ast_channel *chan, const char *cmd, char *argsstr, char *buf, size_t len)
 {
 	struct ast_module_user *u;
 	char *context;
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 88897fd3beeaefce6b809eba31edb6476520110d..0d07b5d62108a09190243aee7d3296f4c3f58144 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -301,10 +301,10 @@ struct ast_channel_tech {
 	struct ast_channel *(* const bridged_channel)(struct ast_channel *chan, struct ast_channel *bridge);
 
 	/*! \brief Provide additional read items for CHANNEL() dialplan function */
-	int (* func_channel_read)(struct ast_channel *chan, char *function, char *data, char *buf, size_t len);
+	int (* func_channel_read)(struct ast_channel *chan, const char *function, char *data, char *buf, size_t len);
 
 	/*! \brief Provide additional write items for CHANNEL() dialplan function */
-	int (* func_channel_write)(struct ast_channel *chan, char *function, char *data, const char *value);
+	int (* func_channel_write)(struct ast_channel *chan, const char *function, char *data, const char *value);
 };
 
 struct ast_channel_spy_list;	/*!< \todo Add explanation here */