From: Matthew Nicholson Date: Fri, 20 Nov 2009 20:53:06 +0000 (+0000) Subject: Copy the peer CDR's userfield to the bridge CDR if it exists. This is necessary... X-Git-Tag: 1.4.28-rc1~11^2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f32239bff88f3e94f1e789be40cd57b1133e03ad;p=thirdparty%2Fasterisk.git Copy the peer CDR's userfield to the bridge CDR if it exists. This is necessary for the recordagentcalls option in chan_agent to store the recorded file name in the bridge CDR. (closes issue #14590) Reported by: msetim Patches: queue_agent_userfield.patch uploaded by Laureano (license 265) Tested by: Laureano, mnicholson git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@230627 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_features.c b/res/res_features.c index 1893b9df00..42ddfa4b53 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -1744,6 +1744,9 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast chan_cdr->next = NULL; ast_copy_string(bridge_cdr->lastapp, S_OR(chan->appl, ""), sizeof(bridge_cdr->lastapp)); ast_copy_string(bridge_cdr->lastdata, S_OR(chan->data, ""), sizeof(bridge_cdr->lastdata)); + if (peer_cdr && !ast_strlen_zero(peer_cdr->userfield)) { + ast_copy_string(bridge_cdr->userfield, peer_cdr->userfield, sizeof(bridge_cdr->userfield)); + } } else { /* better yet, in a xfer situation, find out why the chan cdr got zapped (pun unintentional) */ bridge_cdr = ast_cdr_alloc(); /* this should be really, really rare/impossible? */