From b5bde28d9f95086930d1a218cd26079fb17c54f8 Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Fri, 13 Feb 2009 20:35:26 +0000
Subject: [PATCH] Add manager events for chanspy starting or stopping

(closes issue #14469)
Reported by: caio1982
Patches:
      chanspy_events2.diff uploaded by caio1982 (license 22)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@175655 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_chanspy.c  | 10 +++++++++-
 doc/manager_1_1.txt | 15 +++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c
index 15a732c2b8..9d087c4d1f 100644
--- a/apps/app_chanspy.c
+++ b/apps/app_chanspy.c
@@ -46,6 +46,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/say.h"
 #include "asterisk/pbx.h"
 #include "asterisk/translate.h"
+#include "asterisk/manager.h"
 #include "asterisk/module.h"
 #include "asterisk/lock.h"
 #include "asterisk/options.h"
@@ -456,8 +457,9 @@ static int channel_spy(struct ast_channel *chan, struct chanspy_ds *spyee_chansp
 	}
 	ast_mutex_unlock(&spyee_chanspy_ds->lock);
 
-	if (!spyee)
+	if (!spyee) {
 		return 0;
+	}
 
 	/* We now hold the channel lock on spyee */
 
@@ -467,7 +469,12 @@ static int channel_spy(struct ast_channel *chan, struct chanspy_ds *spyee_chansp
 	}
 
 	name = ast_strdupa(spyee->name);
+
 	ast_verb(2, "Spying on channel %s\n", name);
+	manager_event(EVENT_FLAG_CALL, "ChanSpyStart",
+			"SpyerChannel: %s\r\n"
+			"SpyeeChannel: %s\r\n",
+			spyer_name, name);
 
 	memset(&csth, 0, sizeof(csth));
 
@@ -627,6 +634,7 @@ static int channel_spy(struct ast_channel *chan, struct chanspy_ds *spyee_chansp
 	ast_audiohook_destroy(&csth.spy_audiohook);
 	
 	ast_verb(2, "Done Spying on channel %s\n", name);
+	manager_event(EVENT_FLAG_CALL, "ChanSpyStop", "SpyeeChannel: %s\r\n", name);
 
 	return running;
 }
diff --git a/doc/manager_1_1.txt b/doc/manager_1_1.txt
index 23ac974932..2089e0253c 100644
--- a/doc/manager_1_1.txt
+++ b/doc/manager_1_1.txt
@@ -337,6 +337,21 @@ Changes to manager version 1.1:
 	If an actionID was specified for the SipShowRegistry action, it will be appended as the
 	last line of the RegistrationsComplete event.
 
+- Event: ChanSpyStart
+	Modules: app_chanspy
+	Purpose: Reports when an active channel starts to be monitored by someone.
+	Example:
+		Event: ChanSpyStart
+		SpyerChannel: SIP/4321-13bba124
+		SpyeeChannel: SIP/1234-56ecc098
+
+- Event: ChanSpyStop
+	Modules: app_chanspy
+	Purpose: Reports when an active channel stops to be monitored by someone.
+	Example:
+		Event: ChanSpyStop
+		SpyeeChannel: SIP/1234-56ecc098
+
 * TODO
 ------
 
-- 
GitLab