Add SIPCALLID Of Egress Leg To CDR

Home » Asterisk Users » Add SIPCALLID Of Egress Leg To CDR
Asterisk Users 2 Comments

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?

TIA,

Ricky

2 thoughts on - Add SIPCALLID Of Egress Leg To CDR

  • 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

  • Matt,

    Both of those suggestions worked perfectly.

    Thanks!

    Ricky Hartmann | PO Box 1354 Jackson, NJ 08527

    Phone – (732) 580-5853 | eFax – (716) 809-3073