Module: kamailio Branch: master Commit: 43aeb98fbe3902cb8a1c5d653ce0ff8f4551d99a URL: https://github.com/kamailio/kamailio/commit/43aeb98fbe3902cb8a1c5d653ce0ff8f...
Author: lazedo luis.azedo@factorlusitano.com Committer: lazedo luis.azedo@factorlusitano.com Date: 2019-01-18T13:25:24Z
pv: add $def pseudo variable
---
Modified: src/modules/pv/pv.c Modified: src/modules/pv/pv_core.c Modified: src/modules/pv/pv_core.h
---
Diff: https://github.com/kamailio/kamailio/commit/43aeb98fbe3902cb8a1c5d653ce0ff8f... Patch: https://github.com/kamailio/kamailio/commit/43aeb98fbe3902cb8a1c5d653ce0ff8f...
---
diff --git a/src/modules/pv/pv.c b/src/modules/pv/pv.c index 06f831bd97..0df9353606 100644 --- a/src/modules/pv/pv.c +++ b/src/modules/pv/pv.c @@ -189,6 +189,8 @@ static pv_export_t mod_pvs[] = { {{"dd", (sizeof("dd")-1)}, /* */ PVT_OTHER, pv_get_dsturi_attr, 0, 0, 0, pv_init_iname, 1}, + {{"def", (sizeof("env")-1)}, PVT_OTHER, pv_get_def, 0, + pv_parse_def_name, 0, 0, 0}, {{"di", (sizeof("di")-1)}, /* */ PVT_OTHER, pv_get_diversion, 0, 0, 0, pv_init_iname, 1}, diff --git a/src/modules/pv/pv_core.c b/src/modules/pv/pv_core.c index 01cebc8534..2e54253eb4 100644 --- a/src/modules/pv/pv_core.c +++ b/src/modules/pv/pv_core.c @@ -3658,3 +3658,28 @@ int pv_get_env(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) return pv_get_null(msg, param, res); }
+int pv_parse_def_name(pv_spec_p sp, str *in) +{ + if (in == NULL || in->s == NULL || sp == NULL) { + LM_ERR("INVALID DEF NAME\n"); + return -1; + } + sp->pvp.pvn.type = PV_NAME_INTSTR; + sp->pvp.pvn.u.isname.type = AVP_NAME_STR; + sp->pvp.pvn.u.isname.name.s = *in; + return 0; + +} + +extern str *pp_define_get(int len, const char * text); + +int pv_get_def(sip_msg_t *msg, pv_param_t *param, pv_value_t *res) +{ + str *val = pp_define_get(param->pvn.u.isname.name.s.len, param->pvn.u.isname.name.s.s); + + if (val) { + return pv_get_strval(msg, param, res, val); + } + return pv_get_null(msg, param, res); +} + diff --git a/src/modules/pv/pv_core.h b/src/modules/pv/pv_core.h index 411f2f8aac..86629e66e0 100644 --- a/src/modules/pv/pv_core.h +++ b/src/modules/pv/pv_core.h @@ -379,5 +379,8 @@ int pv_parse_ksr_attrs_name(pv_spec_p sp, str *in); int pv_get_ksr_attrs(sip_msg_t *msg, pv_param_t *param, pv_value_t *res);
+int pv_parse_def_name(pv_spec_p sp, str *in); +int pv_get_def(sip_msg_t *msg, pv_param_t *param, pv_value_t *res); + #endif