[asterisk-users] ResetCDR after GotoIf doesn't set dst correctly, Is this a bug?

Zeeshan Zakaria zishanov at gmail.com
Wed Jul 15 09:36:15 CDT 2009


I've found a work around, i.e. if put the dialout command in a separate
macro, then CDR records the values fine, whether the hangup macro is called
by the original context, or by the dialing macro.

Posting here in case somebody facing a similar issue like me can benefit
from it:

[test]
exten => _NXXNXXXXXX,1,macro(test-dialout,${EXTEN})
exten => h,1,Macro(test-hangup)

[macro-test-dialout]
exten => s,1,Dial(IAX2/6477226961/${ARG1})
;exten => h,1,Macro(test-hangup)

[macro-test-hangup]
exten => s,1,GotoIf($["1"="1"]?2:3)
exten => s,n,NoOp(A)
exten => s,n,ResetCDR(vw)
exten => s,n,NoCDR()
exten => s,n,Hangup()


On Wed, Jul 15, 2009 at 10:18 AM, Zeeshan Zakaria <zishanov at gmail.com>wrote:

> (Both on Asterisk 1.2 and 1.4)
>
> I was struggling to find out why my CDR was recording dst = h after a call
> hangup. It was working fine until I added a GotoIf statement before ResetCDR
> to calculate some value for userfield column. Today I tested and found out
> that if ResetCDR is put after GotoIf (or after if in AEL), it doesn't record
> correct value in dst column, and isntead puts 'h' there. If GotoIf removed,
> it works fine.
>
> Is this is a bug, or is this how it is supposed to work? Is there any work
> around it. In my production scenario, I can't move ResetCDR before GotoIf.
>
> Here are the test context and macro:
>
> [test]
> exten => _NXXNXXXXXX,1,Dial(IAX2/XXXXX/${EXTEN},30)
> exten => h,1,Macro(test-hangup)
>
> [macro-test-hangup]
> exten => s,1,GotoIf($["1"="1"]?2:3)
> exten => s,n,NoOp(A)
> exten => s,n,ResetCDR(vw)
> exten => s,n,NoCDR()
> exten => s,n,Hangup()
>
>
> --
> Zeeshan A Zakaria
>



-- 
Zeeshan A Zakaria
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090715/b8f468d9/attachment.htm 


More information about the asterisk-users mailing list