From 60c8d903ff4b6c8f9f88952ef0f666aa457437a8 Mon Sep 17 00:00:00 2001 From: Julien Chavanton Date: Mon, 3 Dec 2018 06:37:31 +0000 Subject: [PATCH] acc_json: support for leg_info fields --- src/modules/acc_json/acc_json_mod.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/modules/acc_json/acc_json_mod.c b/src/modules/acc_json/acc_json_mod.c index 908d7d0eb99..ee3f84bf6bf 100644 --- a/src/modules/acc_json/acc_json_mod.c +++ b/src/modules/acc_json/acc_json_mod.c @@ -160,6 +160,7 @@ static void destroy(void) int acc_json_init(acc_init_info_t *inf) { + LM_DBG(" init ...\n"); return 0; } @@ -246,6 +247,27 @@ int acc_json_send_request(struct sip_msg *req, acc_info_t *inf) extra = extra->next; } + /* add leginfo fields */ + if(inf->leg_info) { + o = accb.get_leg_attrs(inf->leg_info, req, inf->varr + attr_cnt, + inf->iarr + attr_cnt, inf->tarr + attr_cnt, 1); + attr_cnt += o; + m = attr_cnt; + + struct acc_extra *leg_info = inf->leg_info; + for(; i < m; i++) { + LM_DBG("[%d][%s][%.*s]\n", i, leg_info->name.s, inf->varr[i].len, + inf->varr[i].s); + char *tmp = strndup(inf->varr[i].s, inf->varr[i].len); + json_t *value = json_string(tmp); + if(!value) + value = json_string("NON-UTF8"); + json_object_set_new(object, leg_info->name.s, value); + free(tmp); + leg_info = leg_info->next; + } + } + if(object) { if(json_object_size(object) == 0) { LM_ERR("json object empty\n");