mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-26 19:57:42 +00:00
FS-3929 --resolve
This commit is contained in:
parent
8e47f3c660
commit
3505cb47e3
@ -1733,6 +1733,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_transfer_variable(switch_core_session
|
|||||||
{
|
{
|
||||||
switch_channel_t *chana = switch_core_session_get_channel(sessa);
|
switch_channel_t *chana = switch_core_session_get_channel(sessa);
|
||||||
switch_channel_t *chanb = switch_core_session_get_channel(sessb);
|
switch_channel_t *chanb = switch_core_session_get_channel(sessb);
|
||||||
|
switch_event_t *var_event;
|
||||||
|
|
||||||
const char *val = NULL;
|
const char *val = NULL;
|
||||||
uint8_t prefix = 0;
|
uint8_t prefix = 0;
|
||||||
|
|
||||||
@ -1747,16 +1749,18 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_transfer_variable(switch_core_session
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch_event_header_t *hi;
|
switch_event_header_t *hi;
|
||||||
if ((hi = switch_channel_variable_first(chana))) {
|
|
||||||
for (; hi; hi = hi->next) {
|
switch_channel_get_variables(chana, &var_event);
|
||||||
char *vvar = hi->name;
|
|
||||||
char *vval = hi->value;
|
for (hi = var_event->headers; hi; hi = hi->next) {
|
||||||
if (vvar && vval && (!prefix || (var && !strncmp((char *) vvar, var, strlen(var))))) {
|
char *vvar = hi->name;
|
||||||
switch_channel_set_variable(chanb, (char *) vvar, (char *) vval);
|
char *vval = hi->value;
|
||||||
}
|
if (vvar && vval && (!prefix || (var && !strncmp((char *) vvar, var, strlen(var))))) {
|
||||||
|
switch_channel_set_variable(chanb, (char *) vvar, (char *) vval);
|
||||||
}
|
}
|
||||||
switch_channel_variable_last(chana);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch_event_destroy(&var_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user