From 9f232928dc6a423a6e2dfa8d762cc0934e1dd974 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Wed, 5 Jan 2005 21:31:40 +0000
Subject: [PATCH] Various/assundry cleanups

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 configs/features.conf.sample |  2 +-
 res/res_features.c           | 46 +++++++++++++++++-------------------
 2 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/configs/features.conf.sample b/configs/features.conf.sample
index b5cf5ff2ad..b5d8399b07 100755
--- a/configs/features.conf.sample
+++ b/configs/features.conf.sample
@@ -12,7 +12,7 @@ context => parkedcalls		; Which context parked calls are in
 ;courtesytone = beep		; Sound file to play to the parked caller 
 				; when someone dials a parked call
 ;xfersound = beep		; to indicate an attended transfer is complete
-;xferfailsound			; to indicate a failed transfer
+;xferfailsound = beeperr	; to indicate a failed transfer
 ;adsipark = yes			; if you want ADSI parking announcements
 ;pickupexten = *8		; Configure the pickup extension.  Default is *8
 ;featuredigittimeout = 500	; Max time (ms) between digits for 
diff --git a/res/res_features.c b/res/res_features.c
index 040b5fa931..ea911b9334 100755
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -60,6 +60,11 @@ static char parking_ext[AST_MAX_EXTENSION] = "700";
 
 static char pickup_ext[AST_MAX_EXTENSION] = "*8";
 
+/* Default sounds */
+static char courtesytone[256] = "";
+static char xfersound[256] = "beep";
+static char xferfailsound[256] = "pbx-invalid";
+
 /* First available extension for parking */
 static int parking_start = 701;
 
@@ -72,12 +77,6 @@ static int transferdigittimeout = DEFAULT_TRANSFER_DIGIT_TIMEOUT;
 static int featuredigittimeout = DEFAULT_FEATURE_DIGIT_TIMEOUT;
 
 /* Default courtesy tone played when party joins conference */
-static char courtesytone[256] = "";
-
-/* Default sounds */
-static char xfersound[256] = "beep";
-static char xferfailsound[256] = "beeperr";
-
 
 /* Registrar for operations */
 static char *registrar = "res_features";
@@ -496,7 +495,10 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
 		if (option_verbose > 2)	
 			ast_verbose(VERBOSE_PREFIX_3 "Unable to find extension '%s' in context '%s'\n", newext, transferer_real_context);
 	}
-	res = ast_streamfile(transferer, xferfailsound, transferee->language);
+	if (!ast_strlen_zero(xferfailsound))
+		res = ast_streamfile(transferer, xferfailsound, transferee->language);
+	else
+		res = 0;
 	if (res) {
 		ast_moh_stop(transferee);
 		ast_autoservice_stop(transferee);
@@ -585,7 +587,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
 					}
 					if (!ast_strlen_zero(xfersound) && !ast_streamfile(transferer, xfersound, transferer->language)) {
 						if (ast_waitstream(transferer, "") < 0) {
-							ast_log(LOG_WARNING, "Failed to play %s\n", xfersound);
+							ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
 						}
 					}
 					ast_moh_stop(transferee);
@@ -648,7 +650,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
 	
 					if (!ast_strlen_zero(xfersound) && !ast_streamfile(newchan, xfersound, newchan->language)) {
 						if (ast_waitstream(newchan, "") < 0) {
-							ast_log(LOG_WARNING, "Failed to play %s!\n", xfersound);
+							ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
 						}
 					}
 					ast_bridge_call_thread_launch(tobj);
@@ -663,7 +665,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
 				ast_log(LOG_WARNING, "Unable to create channel Local/%s do you have chan_local?\n",dialstr);
 				ast_moh_stop(transferee);
 				ast_autoservice_stop(transferee);
-				if(!ast_strlen_zero(xferfailsound)) {
+				if (!ast_strlen_zero(xferfailsound)) {
 					res = ast_streamfile(transferer, xferfailsound, transferer->language);
 					if (!res && (ast_waitstream(transferer, "") < 0)) {
 						return -1;
@@ -675,20 +677,16 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
 			ast_log(LOG_WARNING, "Extension %s does not exist in context %s\n",xferto,transferer_real_context);
 			ast_moh_stop(transferee);
 			ast_autoservice_stop(transferee);
-			if(!ast_strlen_zero(xferfailsound)) {
-				res = ast_streamfile(transferer, xferfailsound, transferer->language);
-				if (!res && (ast_waitstream(transferer, "") < 0)) {
-					return -1;
-				}
+			res = ast_streamfile(transferer, "beeperr", transferer->language);
+			if (!res && (ast_waitstream(transferer, "") < 0)) {
+				return -1;
 			}
 		}
 	}  else {
 		ast_log(LOG_WARNING, "Did not read data.\n");
-		if(!ast_strlen_zero(xferfailsound)) {
-			res = ast_streamfile(transferer, xferfailsound, transferer->language);
-			if (ast_waitstream(transferer, "") < 0) {
-				return -1;
-			}
+		res = ast_streamfile(transferer, "beeperr", transferer->language);
+		if (ast_waitstream(transferer, "") < 0) {
+			return -1;
 		}
 	}
 	ast_moh_stop(transferee);
@@ -1413,13 +1411,13 @@ int load_module(void)
 					featuredigittimeout = DEFAULT_FEATURE_DIGIT_TIMEOUT;
 				}
 			} else if (!strcasecmp(var->name, "courtesytone")) {
-				strncpy(courtesytone, strcmp(var->value, "undef") ? var->value : "", sizeof(courtesytone) - 1);
+				strncpy(courtesytone, var->value, sizeof(courtesytone) - 1);
 			} else if (!strcasecmp(var->name, "xfersound")) {
-				strncpy(xfersound, strcmp(var->value, "undef") ? var->value : "", sizeof(xfersound) - 1);
+				strncpy(xfersound, var->value, sizeof(xfersound) - 1);
 			} else if (!strcasecmp(var->name, "xferfailsound")) {
-				strncpy(xferfailsound, strcmp(var->value, "undef") ? var->value : "", sizeof(xferfailsound) - 1);
+				strncpy(xferfailsound, var->value, sizeof(xferfailsound) - 1);
 			} else if (!strcasecmp(var->name, "pickupexten")) {
-				strncpy(pickup_ext, strcmp(var->value, "undef") ? var->value : "", sizeof(pickup_ext) - 1);
+				strncpy(pickup_ext, var->value, sizeof(pickup_ext) - 1);
 			}
 			var = var->next;
 		}
-- 
GitLab