From ecec5ad9fca61ad6494a91d9b69a757ab7302c50 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Thu, 17 Mar 2005 20:29:51 +0000 Subject: [PATCH] Merge improved announcements for conferences with leader (bug #2382) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5190 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_meetme.c | 125 ++++++++++++++++++++++------------ sounds.txt | 10 +++ sounds/conf-leaderhasleft.gsm | Bin 0 -> 3267 bytes sounds/conf-placeintoconf.gsm | Bin 0 -> 3927 bytes sounds/conf-userswilljoin.gsm | Bin 0 -> 3201 bytes sounds/conf-userwilljoin.gsm | Bin 0 -> 3135 bytes sounds/conf-waitforleader.gsm | Bin 0 -> 4488 bytes 7 files changed, 93 insertions(+), 42 deletions(-) create mode 100755 sounds/conf-leaderhasleft.gsm create mode 100755 sounds/conf-placeintoconf.gsm create mode 100755 sounds/conf-userswilljoin.gsm create mode 100755 sounds/conf-userwilljoin.gsm create mode 100755 sounds/conf-waitforleader.gsm diff --git a/apps/app_meetme.c b/apps/app_meetme.c index fa50bc83a7..a656c024db 100755 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -555,16 +555,6 @@ static struct ast_cli_entry cli_conf = { { "meetme", NULL, NULL }, conf_cmd, "Execute a command on a conference or conferee", conf_usage, complete_confcmd }; -static int confnonzero(void *ptr) -{ - struct ast_conference *conf = ptr; - int res; - ast_mutex_lock(&conflock); - res = (conf->markedusers == 0); - ast_mutex_unlock(&conflock); - return res; -} - static void conf_flush(int fd) { int x; @@ -593,6 +583,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c int musiconhold = 0; int firstpass = 0; int origquiet; + int lastmarked = 0; + int currentmarked = 0; int ret = -1; int x; int menu_active = 0; @@ -692,35 +684,13 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c ast_record_review(chan,"vm-rec-name",user->namerecloc, 10,"sln", &duration, NULL); } - while((confflags & CONFFLAG_WAITMARKED) && (conf->markedusers == 0)) { - confflags &= ~CONFFLAG_QUIET; - confflags |= origquiet; - /* XXX Announce that we're waiting on the conference lead to join */ - if (!(confflags & CONFFLAG_QUIET)) { - res = ast_streamfile(chan, "vm-dialout", chan->language); - if (!res) - res = ast_waitstream(chan, ""); - } else - res = 0; - /* If we're waiting with hold music, set to silent mode */ - if (!res) { - confflags |= CONFFLAG_QUIET; - ast_moh_start(chan, NULL); - res = ast_safe_sleep_conditional(chan, 60000, confnonzero, conf); - ast_moh_stop(chan); - } - if (res < 0) { - ast_log(LOG_DEBUG, "Got hangup on '%s' already\n", chan->name); - goto outrun; - } - } - - if (!(confflags & CONFFLAG_QUIET) && conf->users == 1) { - if (!ast_streamfile(chan, "conf-onlyperson", chan->language)) { - if (ast_waitstream(chan, "") < 0) - goto outrun; - } else - goto outrun; + if (!(confflags & CONFFLAG_QUIET)) { + if (conf->users == 1 && !(confflags & CONFFLAG_WAITMARKED)) + if (!ast_streamfile(chan, "conf-onlyperson", chan->language)) + ast_waitstream(chan, ""); + if ((confflags & CONFFLAG_WAITMARKED) && conf->markedusers == 0) + if (!ast_streamfile(chan, "conf-waitforleader", chan->language)) + ast_waitstream(chan, ""); } /* Set it into linear mode (write) */ @@ -835,7 +805,8 @@ zapretry: if (!firstpass && !(confflags & CONFFLAG_MONITOR) && !(confflags & CONFFLAG_ADMIN)) { firstpass = 1; if (!(confflags & CONFFLAG_QUIET)) - conf_play(chan, conf, ENTER); + if ((confflags & CONFFLAG_WAITMARKED) && conf->markedusers >= 1) + conf_play(chan, conf, ENTER); } conf_flush(fd); ast_mutex_unlock(&conflock); @@ -879,13 +850,82 @@ zapretry: for(;;) { outfd = -1; ms = -1; + currentmarked = conf->markedusers; + if (!(confflags & CONFFLAG_QUIET) && (confflags & CONFFLAG_MARKEDUSER) && (confflags & CONFFLAG_WAITMARKED) && lastmarked == 0) { + if (currentmarked == 1 && conf->users > 1) { + ast_say_number(chan, conf->users - 1, AST_DIGIT_ANY, chan->language, (char *) NULL); + if (conf->users - 1 == 1) { + if (!ast_streamfile(chan, "conf-userwilljoin", chan->language)) + ast_waitstream(chan, ""); + } else { + if (!ast_streamfile(chan, "conf-userswilljoin", chan->language)) + ast_waitstream(chan, ""); + } + } + if (conf->users == 1 && ! (confflags & CONFFLAG_MARKEDUSER)) + if (!ast_streamfile(chan, "conf-onlyperson", chan->language)) + ast_waitstream(chan, ""); + } + c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms); /* Update the struct with the actual confflags */ user->userflags = confflags; + if (confflags & CONFFLAG_WAITMARKED) { + if(currentmarked == 0) { + if (lastmarked != 0) { + if (!(confflags & CONFFLAG_QUIET)) + if (!ast_streamfile(chan, "conf-leaderhasleft", chan->language)) + ast_waitstream(chan, ""); + if(confflags & CONFFLAG_MARKEDEXIT) + break; + else { + ztc.confmode = ZT_CONF_CONF; + if (ioctl(fd, ZT_SETCONF, &ztc)) { + ast_log(LOG_WARNING, "Error setting conference\n"); + close(fd); + goto outrun; + } + } + } + if (musiconhold == 0 && (confflags & CONFFLAG_MOH)) { + ast_moh_start(chan, NULL); + musiconhold = 1; + } else { + ztc.confmode = ZT_CONF_CONF; + if (ioctl(fd, ZT_SETCONF, &ztc)) { + ast_log(LOG_WARNING, "Error setting conference\n"); + close(fd); + goto outrun; + } + } + } else if(currentmarked >= 1 && lastmarked == 0) { + if (confflags & CONFFLAG_MONITOR) + ztc.confmode = ZT_CONF_CONFMON | ZT_CONF_LISTENER; + else if (confflags & CONFFLAG_TALKER) + ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER; + else + ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER | ZT_CONF_LISTENER; + if (ioctl(fd, ZT_SETCONF, &ztc)) { + ast_log(LOG_WARNING, "Error setting conference\n"); + close(fd); + goto outrun; + } + if (musiconhold && (confflags & CONFFLAG_MOH)) { + ast_moh_stop(chan); + musiconhold = 0; + } + if ( !(confflags & CONFFLAG_QUIET) && !(confflags & CONFFLAG_MARKEDUSER)) { + if (!ast_streamfile(chan, "conf-placeintoconf", chan->language)) + ast_waitstream(chan, ""); + conf_play(chan, conf, ENTER); + } + } + } + /* trying to add moh for single person conf */ - if (confflags & CONFFLAG_MOH) { + if ((confflags & CONFFLAG_MOH) && !( confflags & CONFFLAG_WAITMARKED)) { if (conf->users == 1) { if (musiconhold == 0) { ast_moh_start(chan, NULL); @@ -900,7 +940,7 @@ zapretry: } /* Leave if the last marked user left */ - if (conf->markedusers == 0 && confflags & CONFFLAG_MARKEDEXIT) { + if (currentmarked == 0 && (confflags & CONFFLAG_MARKEDEXIT)) { ret = -1; break; } @@ -1152,6 +1192,7 @@ zapretry: } else ast_log(LOG_WARNING, "Failed to read frame: %s\n", strerror(errno)); } + lastmarked = currentmarked; } } if (using_pseudo) diff --git a/sounds.txt b/sounds.txt index 5c5c1ea05c..3970bafe3c 100755 --- a/sounds.txt +++ b/sounds.txt @@ -664,3 +664,13 @@ %vm-leavemsg.gsm% Press 5 to send a voicemail message %queue-less-than.gsm%less than +%conf-waitforleader.gsm%The conference will begin when the leader arrives. + +%conf-userwilljoin.gsm%user will join the conference. + +%conf-userswilljoin.gsm%users will join the conference. + +%conf-leaderhasleft.gsm%The leader has left the conference. + +%conf-placeintoconf.gsm%You will now be placed into the conference. + diff --git a/sounds/conf-leaderhasleft.gsm b/sounds/conf-leaderhasleft.gsm new file mode 100755 index 0000000000000000000000000000000000000000..8bb11c1a81de5db008b81d25058b158b89d16e10 GIT binary patch literal 3267 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 nink@);!)7kYd}`@jMTW3G z!yq|Za;_ zq*2lxrm196;<>i5vJ_V0#$@r3l%+&_1A6A#T>^@Aj%Ui#6r}zYwZ$UFxmjylL!j#V zw6$5o%3`5dlv$$1#)sKm))qoPV^hj2Dr`l4StwO2W)&Y*sv(ti#g$Vj_&LnPtJhl^ zds|ZsYAUI~wVf{bq^+ZzoXxi7Ne?!a3zB9@i{{u~60ehyOr_F^%_NUYyc)N4Q;msY zqw1JhiR~z)O{*8z+yw7q%Pa|~j-_OSEp+6KXEVb}J4)u_?0@aWRBlS2)tx*e<9(_@ z>Z+DodkIw=f;p15s#G(bDM)zBxzcftuhZUaqoT1W#^f0}8+E6;=~*axtq7&rRNFjr zC?yYfH4@XEbmy|GgN>J2g@WUx^YCyQHsQvZ5|VM!Z>Sog;l|$79b{+f-G&}yY{!kI zryh)x)0l6_L(GlH&ZS9NOo(>*)ZbHQ>fLNcw3WEvacwzUaf;roizOo&uGHx&Ldv%{ZNVv&yOhZm)u#p9;$a6hN?kmp!pS(5N%bkiV{KS5OmShP z9NUYNq}1mYA7WuBuH{ljTpjddgX;XLlY?O= z)6jN`{>l^OH)nUNO(pQT$?OW-!Onp?QTWnTpPn!nRXX!(8 zS;?2mf;-w-EH%|ih1^*T*6XR!9a(P1?5$GY)a~#?v#(0IQ<%6KS1Nk-I=0}eN}nHZ zxYVntftr%iqSYt)Lu*xv7ZrJ^`BjLa3i1r>RSPs1&n0A4S=>x1)rbz6h zOX8=i$2%~c9aRU^AQrzBsYt}yP2XhHC)opJRV3*c&{spMh8-OdD(tUD_9c;49bCn$ za_$CO(jdbRWxl4XV)itgy5ifIE%76?!$j-V12)2=Mqr(0oYEY$A8FphSlDJYuW>^U zA#r4jRpor0Rp_B&!`i!MT~yiCN@1hND5Q~!U$teaG@5Ef{9UXl-XH7l%9B1cWz`;p-MgD^v{3QeA(=~_-7tK~- zlDHMrp-ZkAdkmi)iN@l7>2x!%QK-J>QzoZ#(8B3QI`SYH(W;ECRH7HG~eH&!c3>AURHNR;4`(3S8q^B==dRI^WS} zoUS2T#5kf~lOhSwt0Tx{OJyJr<8{$}c3>q7zRRnB_7D}_?)u2@Bf?Y3E)hg38iQ4W*R;~A3%}yW8BN3v zZ_miwlJOE!Ox!uHK+CeN?_x#E(${#};-g<~s-KP$lw{0EM;EONaLl)4N57=P?2?_5 z{WjI*nbL~6t*Z&m$=ro476EVPa)WcUo1RMBShU2W^2XcMC$ZANrqVMXwzSmY4wQ`Z z=EdgnCi}TIlAEp?d6h{^)aBw9h?kJ4YJJNim2O8avNjgoP@651GdR-_E#z(mjMV4x zR?3S|O5%ejB+k%Cn918+iEX57ec2MtZ5ZEm!j9DE;GTks3<)%iq`HYL-5h0}<%!BQ z8>2%U&&opOJ+~9n=)j^2iz%YIoz)VHOHO7{($djMnbcJj^U;Q^nTDm&=fmRa$s$JAMbVqd z<4mH*v9g6?swBx?jmJWzdpEO6(W$I0q{zbjob44BhT_!hO+mB7gDGo-M`?D#+YDl1 zJ=U9=9vX?oO4SjX*JUX;T#&Y>P{sQb1D!oO=oH5x9jL63_iAd+z=ZVo|$!#{aMx=~;n?1bd+k-0N@;C3)UCLaYsa-3cWi)8aTi40D7yDI1k-ZIwq!)^_uyr=&H|ewNvpk_0vy00)Yq1EDvJ63|hnAejjV}8Lzt8En4e<4+((Ki>-ES+i9 za-mfLPDf6Fz{w;_HyGxDCnZ)*6^_8UCS`{n(JQQJoT`B6@keoT%p*teXAVQ7;e*+bA}ea-*0PVPp-`qz zY)$IfdW0`!OVrqy<;0+IHrLr}^x0!j#2Xd8m!?vuqUUVa6p5)Q-sy!;e<+I1l6Iol z?Bt$waHyZ9lG!MVrkD8XwL(_Kn93spiLm4r-=2T2+3WP-ZLe!uNWR^ zvlHUoFH`jT9J$HKw0a(xe(qUFx_>=?AIxRY8Z~7RdkiV ZBd|b5-I7TpwqQvll1U?kfH@?RNhDyyZ^8fo literal 0 HcmV?d00001 diff --git a/sounds/conf-waitforleader.gsm b/sounds/conf-waitforleader.gsm new file mode 100755 index 0000000000000000000000000000000000000000..05b2e2e1fcb0adf03c18a5accc116098daaa32c8 GIT binary patch literal 4488 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