aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-16 03:50:41 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-16 03:50:41 +0000
commit71da10a2665114533201ecb1984d388fd7b62f6f (patch)
treea18e0251fd55b17850e051b051e64f69f7b59982
parentc5b4eda1c0e51bbb8d405aabe883d82baf0841e2 (diff)
Begin autoservice while playing enter/leave sounds (bug #3599)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5036 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xapps/app_meetme.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index 9df05ed41..951043c14 100755
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -216,10 +216,13 @@ static int careful_write(int fd, unsigned char *data, int len)
return 0;
}
-static void conf_play(struct ast_conference *conf, int sound)
+static void conf_play(struct ast_channel *chan, struct ast_conference *conf, int sound)
{
unsigned char *data;
int len;
+ int res=-1;
+ if (!chan->_softhangup)
+ res = ast_autoservice_start(chan);
ast_mutex_lock(&conflock);
switch(sound) {
case ENTER:
@@ -237,6 +240,8 @@ static void conf_play(struct ast_conference *conf, int sound)
if (data)
careful_write(conf->fd, data, len);
ast_mutex_unlock(&conflock);
+ if (!res)
+ ast_autoservice_stop(chan);
}
static struct ast_conference *build_conf(char *confno, char *pin, int make, int dynamic)
@@ -789,7 +794,7 @@ zapretry:
if (!firstpass && !(confflags & CONFFLAG_MONITOR) && !(confflags & CONFFLAG_ADMIN)) {
firstpass = 1;
if (!(confflags & CONFFLAG_QUIET))
- conf_play(conf, ENTER);
+ conf_play(chan, conf, ENTER);
}
ast_mutex_unlock(&conflock);
if (confflags & CONFFLAG_AGI) {
@@ -1105,7 +1110,7 @@ zapretry:
ast_mutex_lock(&conflock);
if (!(confflags & CONFFLAG_QUIET) && !(confflags & CONFFLAG_MONITOR) && !(confflags & CONFFLAG_ADMIN))
- conf_play(conf, LEAVE);
+ conf_play(chan, conf, LEAVE);
if (!(confflags & CONFFLAG_QUIET) && (confflags & CONFFLAG_INTROUSER)) {
if (ast_fileexists(user->namerecloc, NULL, NULL)) {