aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-06 14:43:25 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-08-06 14:43:25 +0000
commitbf8efb6846491a174959b6856c672e67bbcbfa9b (patch)
treeee4cc68af2eeeb337789d9dc7c9860ec93093d77
parent8683ec2ed35111da3e2db01bd9cfb207094c188c (diff)
Only play announce time on first pass
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3583 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xchannel.c8
-rwxr-xr-xinclude/asterisk/channel.h1
-rwxr-xr-xres/res_features.c1
3 files changed, 8 insertions, 2 deletions
diff --git a/channel.c b/channel.c
index 1f3848ae4..464e15c02 100755
--- a/channel.c
+++ b/channel.c
@@ -2464,19 +2464,23 @@ int ast_channel_bridge(struct ast_channel *c0, struct ast_channel *c1, struct as
struct ast_channel *who = NULL;
int res=0;
int nativefailed=0;
+ int firstpass;
struct timeval start_time,precise_now;
long elapsed_ms=0, time_left_ms=0;
int playit=0, playitagain=1, first_time=1;
flags = (config->allowdisconnect_out||config->allowredirect_out ? AST_BRIDGE_DTMF_CHANNEL_0 : 0) + (config->allowdisconnect_in||config->allowredirect_in ? AST_BRIDGE_DTMF_CHANNEL_1 : 0);
+ firstpass = config->firstpass;
+ config->firstpass = 0;
+
/* timestamp */
gettimeofday(&start_time,NULL);
time_left_ms = config->timelimit;
- if (config->play_to_caller && config->start_sound)
+ if (config->play_to_caller && config->start_sound && firstpass)
bridge_playfile(c0,c1,config->start_sound,time_left_ms / 1000);
- if (config->play_to_callee && config->start_sound)
+ if (config->play_to_callee && config->start_sound && firstpass)
bridge_playfile(c1,c0,config->start_sound,time_left_ms / 1000);
/* Stop if we're a zombie or need a soft hangup */
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index b12121947..5eb25dabb 100755
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -279,6 +279,7 @@ struct ast_bridge_config {
char *warning_sound;
char *end_sound;
char *start_sound;
+ int firstpass;
};
struct chanmon;
diff --git a/res/res_features.c b/res/res_features.c
index 67042062c..669060c88 100755
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -274,6 +274,7 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast
allowdisconnect_out = config->allowdisconnect_out;
allowredirect_in = config->allowredirect_in;
allowredirect_out = config->allowredirect_out;
+ config->firstpass = 1;
/* Answer if need be */
if (ast_answer(chan))