Module: kamailio Branch: master Commit: 54a330bb707fb6b4943ba26356891696681a02e7 URL: https://github.com/kamailio/kamailio/commit/54a330bb707fb6b4943ba26356891696...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2025-05-28T21:28:47+02:00
core: helper functions to get/set msg env lists
---
Modified: src/core/srapi.c Modified: src/core/srapi.h
---
Diff: https://github.com/kamailio/kamailio/commit/54a330bb707fb6b4943ba26356891696... Patch: https://github.com/kamailio/kamailio/commit/54a330bb707fb6b4943ba26356891696...
---
diff --git a/src/core/srapi.c b/src/core/srapi.c index 99fbf49d8a9..8d7bd1ca620 100644 --- a/src/core/srapi.c +++ b/src/core/srapi.c @@ -19,7 +19,9 @@
#include <stdio.h> #include <stdlib.h> + #include "dprint.h" +#include "route.h"
#include "srapi.h"
@@ -69,3 +71,34 @@ sr_cfgenv_t *sr_cfgenv_get(void) { return &_sr_cfgenv; } + +/** + * + */ +void ksr_msg_env_push(ksr_msg_env_t *menv) +{ + menv->route_type = get_route_type(); + + /* make available the avp list from transaction */ + menv->avps_uri_from = set_avp_list(AVP_TRACK_FROM | AVP_CLASS_URI, NULL); + menv->avps_uri_to = set_avp_list(AVP_TRACK_TO | AVP_CLASS_URI, NULL); + menv->avps_user_from = set_avp_list(AVP_TRACK_FROM | AVP_CLASS_USER, NULL); + menv->avps_user_to = set_avp_list(AVP_TRACK_TO | AVP_CLASS_USER, NULL); + menv->avps_domain_from = + set_avp_list(AVP_TRACK_FROM | AVP_CLASS_DOMAIN, NULL); + menv->avps_domain_to = set_avp_list(AVP_TRACK_TO | AVP_CLASS_DOMAIN, NULL); + menv->xavps = xavp_set_list(NULL); + menv->xavus = xavu_set_list(NULL); + menv->xavis = xavi_set_list(NULL); + + return; +} + +/** + * + */ +void ksr_msg_env_pop(ksr_msg_env_t *menv) +{ + set_route_type(menv->route_type); + return; +} diff --git a/src/core/srapi.h b/src/core/srapi.h index 1f5f8e7d36b..b573493a62b 100644 --- a/src/core/srapi.h +++ b/src/core/srapi.h @@ -20,6 +20,8 @@ #define __SRAPI_H__
#include "str.h" +#include "usr_avp.h" +#include "xavp.h" #include "parser/msg_parser.h"
typedef void (*sr_generate_callid_f)(str *); @@ -39,4 +41,21 @@ typedef struct sr_cfgenv void sr_cfgenv_init(void); sr_cfgenv_t *sr_cfgenv_get(void);
+typedef struct ksr_msg_env +{ + int route_type; + avp_list_t *avps_user_from; + avp_list_t *avps_user_to; + avp_list_t *avps_domain_from; + avp_list_t *avps_domain_to; + avp_list_t *avps_uri_from; + avp_list_t *avps_uri_to; + sr_xavp_t **xavps; + sr_xavp_t **xavus; + sr_xavp_t **xavis; +} ksr_msg_env_t; + +void ksr_msg_env_push(ksr_msg_env_t *menv); +void ksr_msg_env_pop(ksr_msg_env_t *menv); + #endif