[asterisk-users] Add SIPCALLID of egress leg to CDR

Matthew Jordan mjordan at digium.com
Mon Feb 24 14:51:21 CST 2014


On Mon, Feb 24, 2014 at 1:38 PM, Ricky Hartmann <rhartmann3 at gmail.com> wrote:
> Hey all,
>
> I've been fighting with this all morning, and I feel like this should be a
> relatively simple task, but I just can't get it to work.  I currently have a
> very basic asterisk v11.6 setup with a single extension (a Bria softphone)
> and a single sip trunk to my carrier.
>
> What I'm trying to accomplish is simply adding the asterisk generated
> SIPCALLID of the leg between asterisk and the carrier to the CDR when it's
> written. (This is in addition to the SIPCALLID of the original call leg,
> which I've already added.)  I've been able to print the SIPCALLID for the
> carrier leg to the CLI if I jump into a Macro or Gosub from the Dial command
> (using the M or b options respectively), but that's about it.
>
> From what I can tell, this should be easily accomplished with variable
> inheritance, but based on what I'm seeing during test that seems to be a one
> way relationship, as updates in a child channel don't seem to reach the
> parent.  Am I missing something?  Is there a better way to go about this?
>
> The few questions I've found on forums and mailing list archives on this
> subject are all from 2007 and earlier, so I'm hoping something new has come
> along in the last few years and I just haven't found it anywhere.  Can
> anyone help?
>

You're correct - variable inheritance only goes in one direction, from
the parent to the child. Since the child channel is going to be Party
B in the CDR, variables set on it are unlikely to show up.

I can think of a few options:

1) Use the userfield on the outbound channel to store the SIPCALLID. A
little known fact of the userfield is that, on two channels in a
bridge together, the userfields are concatenated together using a ';'
as a delimiter.
2) Use the MASTER_CHANNEL function to reach back to the parent channel
and set the CDR variable there.

Matt

-- 
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org



More information about the asterisk-users mailing list