From 4ea4b7e1ab142ad8f1335ffc018b096cb7fd77f0 Mon Sep 17 00:00:00 2001
From: Kinsey Moore <kmoore@digium.com>
Date: Tue, 19 Jul 2011 15:49:55 +0000
Subject: [PATCH] Merged revisions 328771 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.10

................
  r328771 | kmoore | 2011-07-19 10:46:54 -0500 (Tue, 19 Jul 2011) | 18 lines

  Merged revisions 328770 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.8

  ........
    r328770 | kmoore | 2011-07-19 10:43:32 -0500 (Tue, 19 Jul 2011) | 11 lines

    MeetMe requests a PIN twice in some circumstances

    If a call to MeetMe includes both the dynamic(D) and always request PIN(P)
    options, MeetMe will ask for the PIN two times: once for creating the
    conference and once for entering the conference.  This behavior was introduced
    in rev 311616 when adding the CONFFLAG_ALWAYSPROMPT option to the logic branch
    controlling PIN entry for joining a conference.

    (closes AST-601)
    Review: https://reviewboard.asterisk.org/r/1305/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@328772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_meetme.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index 73aaefc0e6..f0ab25903b 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -4419,15 +4419,13 @@ static int conf_exec(struct ast_channel *chan, const char *data)
 					res = -1;
 				}
 			} else {
-				if (((!ast_strlen_zero(cnf->pin)       &&
-					!ast_test_flag64(&confflags, CONFFLAG_ADMIN)) ||
-				     (!ast_strlen_zero(cnf->pinadmin)  &&
-						 ast_test_flag64(&confflags, CONFFLAG_ADMIN)) ||
-					     (!ast_strlen_zero(cnf->pin) &&
-							 ast_strlen_zero(cnf->pinadmin) &&
-							 ast_test_flag64(&confflags, CONFFLAG_ADMIN))) &&
-				    ((!(cnf->users == 0 && cnf->isdynamic)) ||
-						ast_test_flag64(&confflags, CONFFLAG_ALWAYSPROMPT))) {
+				/* Check to see if the conference requires a pin
+				 * and we ALWAYS prompt or no pin was provided */
+				if ((!ast_strlen_zero(cnf->pin) ||
+					(!ast_strlen_zero(cnf->pinadmin) &&
+						ast_test_flag64(&confflags, CONFFLAG_ADMIN))) &&
+				    (ast_test_flag64(&confflags, CONFFLAG_ALWAYSPROMPT) ||
+						ast_strlen_zero(args.pin))) {
 					char pin[MAX_PIN] = "";
 					int j;
 
-- 
GitLab