[asterisk-commits] trunk - r7865 in /trunk:
configs/features.conf.sample res/res_features.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Sat Jan 7 18:25:32 CST 2006
Author: mogorman
Date: Sat Jan 7 18:25:31 2006
New Revision: 7865
URL: http://svn.digium.com/view/asterisk?rev=7865&view=rev
Log:
added small feature from bug 5682 with one typo fix.
Modified:
trunk/configs/features.conf.sample
trunk/res/res_features.c
Modified: trunk/configs/features.conf.sample
URL: http://svn.digium.com/view/asterisk/trunk/configs/features.conf.sample?rev=7865&r1=7864&r2=7865&view=diff
==============================================================================
--- trunk/configs/features.conf.sample (original)
+++ trunk/configs/features.conf.sample Sat Jan 7 18:25:31 2006
@@ -12,6 +12,8 @@
;courtesytone = beep ; Sound file to play to the parked caller
; when someone dials a parked call
; or the Touch Monitor is activated/deactivated.
+;parkedplay = caller ; Who to play the courtesy tone to when picking up a parked call
+ ; one of: parked, caller, both (default is caller)
;xfersound = beep ; to indicate an attended transfer is complete
;xferfailsound = beeperr ; to indicate a failed transfer
;adsipark = yes ; if you want ADSI parking announcements
Modified: trunk/res/res_features.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_features.c?rev=7865&r1=7864&r2=7865&view=diff
==============================================================================
--- trunk/res/res_features.c (original)
+++ trunk/res/res_features.c Sat Jan 7 18:25:31 2006
@@ -93,6 +93,9 @@
static char courtesytone[256];
static char xfersound[256];
static char xferfailsound[256];
+
+/* Who to play the courtesy tone to */
+static int parkedplay = 0;
/* First available extension for parking */
static int parking_start;
@@ -1742,19 +1745,45 @@
}
if (peer) {
- /* Play a courtesy beep in the calling channel to prefix the bridge connecting */
+ /* Play a courtesy to the source(s) configured to prefix the bridge connecting */
+
if (!ast_strlen_zero(courtesytone)) {
- if (!ast_streamfile(chan, courtesytone, chan->language)) {
- if (ast_waitstream(chan, "") < 0) {
- ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
- ast_hangup(peer);
- return -1;
+ if (parkedplay == 0) {
+ if (!ast_streamfile(chan, courtesytone, chan->language)) {
+ if (ast_waitstream(chan, "") < 0) {
+ ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
+ ast_hangup(peer);
+ return -1;
+ }
+ }
+ ast_moh_stop(peer);
+ ast_indicate(peer, AST_CONTROL_UNHOLD);
+ } else {
+ ast_moh_stop(peer);
+ ast_indicate(peer, AST_CONTROL_UNHOLD);
+ if (parkedplay == 2) {
+ if (!ast_streamfile(chan, courtesytone, chan->language) && !ast_streamfile(peer, courtesytone, chan->language)) {
+ res = ast_waitstream(chan, "");
+ if (res >= 0)
+ res = ast_waitstream(peer, "");
+ if (res < 0) {
+ ast_log(LOG_WARNING, "Failed to play courtesy tones!\n");
+ ast_hangup(peer);
+ return -1;
+ }
+ }
+ } else if (parkedplay == 1) {
+ if (!ast_streamfile(peer, courtesytone, chan->language)) {
+ if (ast_waitstream(peer, "") < 0) {
+ ast_log(LOG_WARNING, "Failed to play courtesy tone!\n");
+ ast_hangup(peer);
+ return -1;
+ }
+ }
}
}
}
- ast_moh_stop(peer);
- ast_indicate(peer, AST_CONTROL_UNHOLD);
res = ast_channel_make_compatible(chan, peer);
if (res < 0) {
ast_log(LOG_WARNING, "Could not make channels %s and %s compatible for bridge\n", chan->name, peer->name);
@@ -2029,6 +2058,13 @@
}
} else if (!strcasecmp(var->name, "courtesytone")) {
ast_copy_string(courtesytone, var->value, sizeof(courtesytone));
+ } else if (!strcasecmp(var->name, "parkedplay")) {
+ if (!strcasecmp(var->value, "both"))
+ parkedplay = 2;
+ else if (!strcasecmp(var->value, "parked"))
+ parkedplay = 1;
+ else
+ parkedplay = 0;
} else if (!strcasecmp(var->name, "xfersound")) {
ast_copy_string(xfersound, var->value, sizeof(xfersound));
} else if (!strcasecmp(var->name, "xferfailsound")) {
More information about the asterisk-commits
mailing list