Skip to main content

Problem writing call records

Posted by cbbs70a on Wed, 09/30/2009

All;
I am trying to add information to each call record that Asterisk writes to mysql. I've tried both using the command setcdruserfield and CDR along with adding custom columns in the cdr database table. Both times I've failed. I made sure userfield=1 in cdr-mysql.conf. I know that most of the fields are also read-only, so thats not it. My thought is that I am using the right commands, but at the wrong time in the diaplan. Has anyone ever used these features before? I need to find a solution to this quickly, and I am not making progress on it.
Thanks
FSD


Submitted by eeman on Wed, 09/30/2009 Permalink

setcdruserfield is depreciated...

instead do

Set(CDR(userfield)=...)

however, here is the pinch: userfield is used in MTE to specify the tenant. As you know the same scripts are used for single and multitenant. What is likely happening is that you set it, but somewhere in the code this is happening:

Set(CDR(userfield)=${tenant}) which equals a blank value in STE

Submitted by eeman on Wed, 09/30/2009 Permalink

yep, confirmed, its happening all over the place

tl-userexten-rg-base

tl-userexten-base

tl-set-variables

tl-set-variables2

Submitted by cbbs70a on Thu, 10/01/2009 Permalink

Wow. That's great information. I would not of ever picked up on it as I do not use MTE. Its not something I would ever consider as the culprit. I suppose I could go through scripts.include and comment out those places that use it since I do not need ${tenant} written to the CDR. I also tried writing to custom fields using Set(CDR()) but I had no luck there either. Is there a specific place in the dialplan where I need to call that?

Thanks

FSD