Summary:ASTERISK-13280: Dialplan variables not set upon blind xfer
Reporter:Matt Jamesson (mattj)Labels:
Date Opened:2008-12-28 15:11:02.000-0600Date Closed:2011-07-26 15:07:30
Versions:Frequency of
Description:I'm having a very odd issue where upon executing a blind transfer, the CDR dialplan variables are not set for the transferred leg of the call.

A calls B (leg is A -> B)
A blind transfers B to C (making the leg now B -> C)

When the B -> C leg of the call ends, the CDR variables in the dialplan, particularly billsec are unset. This only occurs in the dialplan, the generated CDRs are fine. This may be related to the h exten code being moved recently. When I revert to, the problem is solved. I can not compile on my machine, but is when the problem first surfaced. For now, I can use

We're playing back a greeting upon reaching a voicemail message. Here is my dialplan code:

exten => s,1,Dial(SIP/provider/15555555555,30,T)
; user hits #1 to transfer to greeting context so they don't need to wait for greeting to play back
exten => 1,1,Goto(operator-greeting,s,1)

exten => s,1,Answer
exten => s,n,WaitForSilence(2500,1,25)
exten => s,n,Playback(usermessage)
exten => s,n,Hangup

exten => h,1,NoOp(${CDR(billsec)}) ; is always 0 in :(. Correctly defined in
Comments:By: Leif Madsen (lmadsen) 2008-12-28 21:03:32.000-0600

Assigning this issue to murf as it is possibly related to a recent CDR change.

By: Leif Madsen (lmadsen) 2009-01-20 14:46:57.000-0600

Pinging Sir Murf?

By: Steve Murphy (murf) 2009-01-20 17:28:20.000-0600

Since there are a few ways to do a blind xfer via a sip phone, it can get pretty important as to which is failing, if not both. Your comment in your dialplan
code might lead me to believe that the xfer is done via #1 (one touch feature (#)to exten 1)... just need to make sure.

By: Matt Jamesson (mattj) 2009-01-20 17:37:06.000-0600

I am transferring using the pound key (asterisk says "transfer") then hitting 1. The phone is not using any SIP commands to complete the transfer, only sending tones via RTP. Hope this helps.

By: Matthew Nicholson (mnicholson) 2009-09-23 15:50:32

I may have been able to reproduce this bug.  Please post the CDRs that you are seeing when billsec is 0.  This may be related to ASTERISK-13742.

By: Matt Jamesson (mattj) 2009-09-24 08:45:08

So to clarify..you would like to see CDRs from any asterisk version subsequent to correct?

By: Matthew Nicholson (mnicholson) 2009-09-24 08:51:14

Yes.  I would like to see the CDR records from an instance when you are seeing this issue.  I would like to see the console output as well.

By: Matthew Nicholson (mnicholson) 2009-10-01 12:27:55

I think I know what the problem is here, and I am working on a fix.  I suspect the CDR record written to disk and the CDR record attached to the channel are different, thus when accessing the variables from the dialplan, you don't get what you are expecting.

By: Tilghman Lesher (tilghman) 2010-12-24 12:10:45.000-0600

mnicholson: did you ever find a solution to this, as you indicated?

By: Matthew Nicholson (mnicholson) 2010-12-29 15:31:39.000-0600

No, I haven't had a chance to look at it. I'm not sure what fix I was referring to.

By: Russell Bryant (russell) 2011-07-26 15:07:25.792-0500

Per the Asterisk maintenance timeline page at http://www.asterisk.org/asterisk-versions maintenance (bug) support for the 1.4 and 1.6.x branches has ended. For continued maintenance support please move to the 1.8 branch which is a long term support (LTS) branch. For more information about branch support, please see https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions

If this is still an issue, please open a new issue so it can be re-triaged appropriately. Thanks!