From 92cc094d4e32d4a04fb75f5d17b43d11d6e8d4f9 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
Date: Tue, 11 Dec 2018 15:49:03 -0500
Subject: [PATCH] bridge_builtin_features.c: Set auto(mix)mon variables on both
 channels

This is how features behaved up through Asterisk 11, but was changed
when the new bridging framework was implemented in Asterisk 12.

Reported by rrittgarn in #asterisk.

Change-Id: I72cf86223947a8118c75f46e2c603dbc11e3125b
---
 CHANGES                           | 17 +++++++++++++++++
 bridges/bridge_builtin_features.c |  2 ++
 2 files changed, 19 insertions(+)

diff --git a/CHANGES b/CHANGES
index 6e87611bd9..6d1d8598cd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,23 @@
 ===
 ==============================================================================
 
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 13.24.0 to Asterisk 13.25.0 ----------
+------------------------------------------------------------------------------
+
+Features
+------------------
+ * Before Asterisk 12, when using the automon or automixmon features defined
+   in features.conf, a channel variable (TOUCH_MIXMONITOR_OUTPUT) was set on
+   both channels, indicating the filename of the recording.
+
+   When bridging was overhauled in Asterisk 12, the behavior was changed such
+   that the variable was only set on the peer channel and not on the channel
+   that initiated the automon or automixmon.
+
+   The previous behavior has been restored so both channels receive the
+   channel variable when one of these features is invoked.
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 13.23.0 to Asterisk 13.24.0 ----------
 ------------------------------------------------------------------------------
diff --git a/bridges/bridge_builtin_features.c b/bridges/bridge_builtin_features.c
index 37310f6c97..fe73901ece 100644
--- a/bridges/bridge_builtin_features.c
+++ b/bridges/bridge_builtin_features.c
@@ -215,6 +215,7 @@ static void start_automonitor(struct ast_bridge_channel *bridge_channel, struct
 		ast_bridge_channel_write_playfile(bridge_channel, NULL, start_message, NULL);
 	}
 
+	pbx_builtin_setvar_helper(bridge_channel->chan, "TOUCH_MONITOR_OUTPUT", touch_filename);
 	pbx_builtin_setvar_helper(peer_chan, "TOUCH_MONITOR_OUTPUT", touch_filename);
 }
 
@@ -402,6 +403,7 @@ static void start_automixmonitor(struct ast_bridge_channel *bridge_channel, stru
 		ast_bridge_channel_write_playfile(bridge_channel, NULL, start_message, NULL);
 	}
 
+	pbx_builtin_setvar_helper(bridge_channel->chan, "TOUCH_MIXMONITOR_OUTPUT", touch_filename);
 	pbx_builtin_setvar_helper(peer_chan, "TOUCH_MIXMONITOR_OUTPUT", touch_filename);
 }
 
-- 
GitLab