[asterisk-commits] tilghman: trunk r178919 - in /trunk: ./ configs/ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Feb 26 12:41:36 CST 2009


Author: tilghman
Date: Thu Feb 26 12:41:28 2009
New Revision: 178919

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=178919
Log:
Sound confirmation of call pickup success.
(closes issue #13826)
 Reported by: azielke
 Patches: 
       pickupsound2-trunk.patch uploaded by azielke (license 548)
       __20081124_bug_13826_updated.patch uploaded by lmadsen (license 10)
 Tested by: lmadsen

Modified:
    trunk/CHANGES
    trunk/configs/features.conf.sample
    trunk/main/features.c

Modified: trunk/CHANGES
URL: http://svn.digium.com/svn-view/asterisk/trunk/CHANGES?view=diff&rev=178919&r1=178918&r2=178919
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Thu Feb 26 12:41:28 2009
@@ -149,6 +149,8 @@
    externhost and localnet settings.
  * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
    can connect calls in passthrough mode, as well as record and play back files.
+ * Successful and unsuccessful call pickup can now be alerted through sounds, by
+   using pickupsound and pickupfailsound in features.conf.
 
 Asterisk Manager Interface
 --------------------------

Modified: trunk/configs/features.conf.sample
URL: http://svn.digium.com/svn-view/asterisk/trunk/configs/features.conf.sample?view=diff&rev=178919&r1=178918&r2=178919
==============================================================================
--- trunk/configs/features.conf.sample (original)
+++ trunk/configs/features.conf.sample Thu Feb 26 12:41:28 2009
@@ -39,6 +39,8 @@
 ;xfersound = beep		; to indicate an attended transfer is complete
 ;xferfailsound = beeperr	; to indicate a failed transfer
 ;pickupexten = *8		; Configure the pickup extension. (default is *8)
+;pickupsound = beep		; to indicate a successful pickup (default: no sound)
+;pickupfailsound = beeperr	; to indicate that the pickup failed (default: no sound)
 ;featuredigittimeout = 2000	; Max time (ms) between digits for 
 				; feature activation  (default is 2000 ms)
 ;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.

Modified: trunk/main/features.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/main/features.c?view=diff&rev=178919&r1=178918&r2=178919
==============================================================================
--- trunk/main/features.c (original)
+++ trunk/main/features.c Thu Feb 26 12:41:28 2009
@@ -238,6 +238,8 @@
 static int parkedplay = 0;                                 /*!< Who to play the courtesy tone to */
 static char xfersound[256];                                /*!< Call transfer sound */
 static char xferfailsound[256];                            /*!< Call transfer failure sound */
+static char pickupsound[256];                              /*!< Pickup sound */
+static char pickupfailsound[256];                          /*!< Pickup failure sound */
 
 static int adsipark;
 
@@ -3634,6 +3636,8 @@
 	courtesytone[0] = '\0';
 	strcpy(xfersound, "beep");
 	strcpy(xferfailsound, "pbx-invalid");
+	pickupsound[0] = '\0';
+	pickupfailsound[0] = '\0';
 	adsipark = 0;
 	comebacktoorigin = 1;
 
@@ -3754,6 +3758,10 @@
 			ast_copy_string(xferfailsound, var->value, sizeof(xferfailsound));
 		} else if (!strcasecmp(var->name, "pickupexten")) {
 			ast_copy_string(pickup_ext, var->value, sizeof(pickup_ext));
+		} else if (!strcasecmp(var->name, "pickupsound")) {
+			ast_copy_string(pickupsound, var->value, sizeof(pickupsound));
+		} else if (!strcasecmp(var->name, "pickupfailsound")) {
+			ast_copy_string(pickupfailsound, var->value, sizeof(pickupfailsound));
 		} else if (!strcasecmp(var->name, "comebacktoorigin")) {
 			comebacktoorigin = ast_true(var->value);
 		} else if (!strcasecmp(var->name, "parkedmusicclass")) {
@@ -4395,10 +4403,16 @@
 		res = ast_channel_masquerade(cur, chan);
 		if (res)
 			ast_log(LOG_WARNING, "Unable to masquerade '%s' into '%s'\n", chan->name, cur->name);		/* Done */
+		if (!ast_strlen_zero(pickupsound)) {
+			ast_stream_and_wait(cur, pickupsound, "");
+		}
 		ast_channel_unlock(cur);
 		return res;
 	} else	{
 		ast_debug(1, "No call pickup possible...\n");
+		if (!ast_strlen_zero(pickupfailsound)) {
+			ast_stream_and_wait(chan, pickupfailsound, "");
+		}
 	}
 	return -1;
 }




More information about the asterisk-commits mailing list