Merge pull request #1656 in FS/freeswitch from ~LAZEDO/freeswitch:bug/FS-11608 to master
* commit '8ed52f4c266446e29fa040c49f55b79081054fcb': [FS-11609] [core] lookup values in caller profile soft variables [FS-11608] [core] set prefix for caller profile soft variables
This commit is contained in:
commit
ab257d5557
|
@ -377,7 +377,9 @@ typedef enum {
|
|||
SCF_DEBUG_SQL = (1 << 21),
|
||||
SCF_API_EXPANSION = (1 << 22),
|
||||
SCF_SESSION_THREAD_POOL = (1 << 23),
|
||||
SCF_DIALPLAN_TIMESTAMPS = (1 << 24)
|
||||
SCF_DIALPLAN_TIMESTAMPS = (1 << 24),
|
||||
SCF_CPF_SOFT_PREFIX = (1 << 25),
|
||||
SCF_CPF_SOFT_LOOKUP = (1 << 26)
|
||||
} switch_core_flag_enum_t;
|
||||
typedef uint32_t switch_core_flag_t;
|
||||
|
||||
|
@ -578,7 +580,9 @@ typedef enum {
|
|||
SWITCH_CPF_NONE = 0,
|
||||
SWITCH_CPF_SCREEN = (1 << 0),
|
||||
SWITCH_CPF_HIDE_NAME = (1 << 1),
|
||||
SWITCH_CPF_HIDE_NUMBER = (1 << 2)
|
||||
SWITCH_CPF_HIDE_NUMBER = (1 << 2),
|
||||
SWITCH_CPF_SOFT_PREFIX = (1 << 3),
|
||||
SWITCH_CPF_SOFT_LOOKUP = (1 << 4)
|
||||
} switch_caller_profile_flag_enum_t;
|
||||
typedef uint32_t switch_caller_profile_flag_t;
|
||||
|
||||
|
|
|
@ -97,6 +97,12 @@ SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_new(switch_memor
|
|||
profile->callee_id_name = SWITCH_BLANK_STRING;
|
||||
profile->callee_id_number = SWITCH_BLANK_STRING;
|
||||
switch_set_flag(profile, SWITCH_CPF_SCREEN);
|
||||
if (switch_core_test_flag(SCF_CPF_SOFT_PREFIX)) {
|
||||
switch_set_flag(profile, SWITCH_CPF_SOFT_PREFIX);
|
||||
}
|
||||
if (switch_core_test_flag(SCF_CPF_SOFT_LOOKUP)) {
|
||||
switch_set_flag(profile, SWITCH_CPF_SOFT_LOOKUP);
|
||||
}
|
||||
profile->pool = pool;
|
||||
return profile;
|
||||
}
|
||||
|
@ -301,6 +307,14 @@ SWITCH_DECLARE(const char *) switch_caller_get_field_by_name(switch_caller_profi
|
|||
return switch_core_sprintf(caller_profile->pool, "%" SWITCH_TIME_T_FMT, caller_profile->times->transferred);
|
||||
}
|
||||
|
||||
if (caller_profile->soft && switch_test_flag(caller_profile, SWITCH_CPF_SOFT_LOOKUP)) {
|
||||
profile_node_t *pn;
|
||||
for (pn = caller_profile->soft; pn; pn = pn->next) {
|
||||
if (!strcasecmp(name, pn->var)) {
|
||||
return pn->val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@ -399,8 +413,13 @@ SWITCH_DECLARE(void) switch_caller_profile_event_set_data(switch_caller_profile_
|
|||
profile_node_t *pn;
|
||||
|
||||
for (pn = caller_profile->soft; pn; pn = pn->next) {
|
||||
if (switch_test_flag(caller_profile, SWITCH_CPF_SOFT_PREFIX)) {
|
||||
switch_snprintf(header_name, sizeof(header_name), "%s-%s", prefix, pn->var);
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header_name, pn->val);
|
||||
} else {
|
||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, pn->var, pn->val);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -2340,6 +2340,20 @@ static void switch_load_core_config(const char *file)
|
|||
"rtp-retain-crypto-keys enabled. Could be used to decrypt secure media.\n");
|
||||
}
|
||||
switch_core_set_variable("rtp_retain_crypto_keys", val);
|
||||
} else if (!strcasecmp(var, "caller-profile-soft-variables-uses-prefix") && !zstr(val)) {
|
||||
int v = switch_true(val);
|
||||
if (v) {
|
||||
switch_set_flag((&runtime), SCF_CPF_SOFT_PREFIX);
|
||||
} else {
|
||||
switch_clear_flag((&runtime), SCF_CPF_SOFT_PREFIX);
|
||||
}
|
||||
} else if (!strcasecmp(var, "caller-profile-soft-lookup-values") && !zstr(val)) {
|
||||
int v = switch_true(val);
|
||||
if (v) {
|
||||
switch_set_flag((&runtime), SCF_CPF_SOFT_LOOKUP);
|
||||
} else {
|
||||
switch_clear_flag((&runtime), SCF_CPF_SOFT_LOOKUP);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue