From 8ff3dd273a3c75cce15d7f1a6541a53c69c13a0f Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Mon, 2 Oct 2006 20:58:48 +0000
Subject: [PATCH] Expand setinterfacevar option to also set a variable,
 MEMBERNAME, which contains the member's name. (issue #8046 reported by jmls)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 CHANGES                    | 2 ++
 apps/app_queue.c           | 4 +++-
 configs/queues.conf.sample | 1 +
 doc/channelvariables.txt   | 2 ++
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGES b/CHANGES
index c32fdefb91..36b65ef4b9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -23,3 +23,5 @@ Changes since Asterisk 1.4-beta was branched:
      the time to name the logger files instead of sequence number.
   * The output of CallerID in Manager events is now more consistent.
      CallerIDNum is used for number and CallerIDName for name.
+  * setinterfacevar option in queues.conf also now sets a variable
+     called MEMBERNAME which contains the member's name.
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 7e37b19236..79a8f2ebda 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2580,8 +2580,10 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 				ast_log(LOG_DEBUG, "app_queue: sendurl=%s.\n", url);
 			ast_channel_sendurl(peer, url);
 		}
-		if (qe->parent->setinterfacevar)
+		if (qe->parent->setinterfacevar) {
 				pbx_builtin_setvar_helper(qe->chan, "MEMBERINTERFACE", member->interface);
+				pbx_builtin_setvar_helper(qe->chan, "MEMBERNAME", member->membername);
+		}
 		if (!ast_strlen_zero(agi)) {
 			if (option_debug)
 				ast_log(LOG_DEBUG, "app_queue: agi=%s.\n", agi);
diff --git a/configs/queues.conf.sample b/configs/queues.conf.sample
index 42c1e89776..85064aeb66 100644
--- a/configs/queues.conf.sample
+++ b/configs/queues.conf.sample
@@ -129,6 +129,7 @@ monitor-type = MixMonitor
 ;
 ; If set to yes, just prior to the caller being bridged with a queue member 
 ; the MEMBERINTERFACE variable will be set with the interface name (eg. Agent/1234)
+; and the MEMBERNAME variable will be set with the member name (eg. Joe Soap)
 ; of the queue member that was chosen and is now connected to be bridged with
 ; the caller
 ;
diff --git a/doc/channelvariables.txt b/doc/channelvariables.txt
index 334b9064d7..123f9a77ef 100644
--- a/doc/channelvariables.txt
+++ b/doc/channelvariables.txt
@@ -591,6 +591,8 @@ ${HINTNAME}      	* Suggested Caller*ID name for this extension
 ${INVALID_EXTEN} 	The invalid called extension (used in the "i" extension)
 ${LANGUAGE}	 	* Current language (Deprecated; use ${LANGUAGE()})
 ${LEN(VAR)}	 	* String length of VAR (integer)
+${MEMBERINTERFACE}	* The interface name of the queuemember that was chosen
+${MEMBERNAME}		* The member name of the queuemember that was chosen
 ${PRIORITY}	 	* Current priority in the dialplan
 ${PRIREDIRECTREASON} 	Reason for redirect on PRI, if a call was directed
 ${RDNIS}         	* Redirected Dial Number ID Service (Deprecated; use ${CALLERID(rdnis)})
-- 
GitLab