From bb2936f3e467452c75ff8079d8c0a4eff4c2456a Mon Sep 17 00:00:00 2001 From: Sebastian Gutierrez Date: Tue, 21 Mar 2017 14:32:06 -0300 Subject: [PATCH] cdr: Allow setting of user field from 'h' extension The CDR code previously did not allow the user field to be set from the 'h' extension in the dialplan. This change removes that limitation and allows it to be set. ASTERISK-26818 Change-Id: I0fed8a79b5e408bac4e30542b8f33a61c5ed9aa6 --- main/cdr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/cdr.c b/main/cdr.c index 60fe977a88..363a2c6b1e 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -3251,7 +3251,7 @@ static int cdr_object_update_party_b_userfield_cb(void *obj, void *arg, int flag struct party_b_userfield_update *info = arg; struct cdr_object *it_cdr; for (it_cdr = cdr; it_cdr; it_cdr = it_cdr->next) { - if (it_cdr->fn_table == &finalized_state_fn_table) { + if (it_cdr->fn_table == &finalized_state_fn_table && it_cdr->next != NULL) { continue; } if (it_cdr->party_b.snapshot @@ -3275,7 +3275,7 @@ void ast_cdr_setuserfield(const char *channel_name, const char *userfield) if (cdr) { ao2_lock(cdr); for (it_cdr = cdr; it_cdr; it_cdr = it_cdr->next) { - if (it_cdr->fn_table == &finalized_state_fn_table) { + if (it_cdr->fn_table == &finalized_state_fn_table && it_cdr->next != NULL) { continue; } strcpy(it_cdr->party_a.userfield, userfield);