From 2722f4da194b98de8cb5415c6d1af651b9d5af90 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 2 Oct 2012 11:02:42 -0500 Subject: [PATCH] FS-4674 add loopback_export for a list of channel vars to pass from loopback-a to loopback-b --- src/mod/endpoints/mod_loopback/mod_loopback.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index e2a2c3daab..e8a8ab8c18 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -992,6 +992,24 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi } if (switch_event_dup(&clone, var_event) == SWITCH_STATUS_SUCCESS) { + const char *var; + + if ((var = switch_channel_get_variable(channel, "loopback_export"))) { + int argc = 0; + char *argv[128] = { 0 }; + char *dup = switch_core_session_strdup(session, var); + + if ((argc = switch_split(dup, ',', argv))) { + int i; + for (i = 0; i < argc; i++) { + if (!zstr(argv[i])) { + const char *val = switch_channel_get_variable(channel, argv[i]); + switch_event_add_header_string(clone, SWITCH_STACK_BOTTOM, argv[i], val); + } + } + } + } + switch_channel_set_private(channel, "__loopback_vars__", clone); }