From: Anthony Minessale Date: Tue, 2 Oct 2012 16:02:42 +0000 (-0500) Subject: FS-4674 add loopback_export for a list of channel vars to pass from loopback-a to... X-Git-Tag: v1.3.0~128 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2722f4da194b98de8cb5415c6d1af651b9d5af90;p=thirdparty%2Ffreeswitch.git FS-4674 add loopback_export for a list of channel vars to pass from loopback-a to loopback-b --- 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); }