The following macro generated the output below it. The area codes have been changed to protect the innocent. [macro-fwddial] ; 1-DNIS 2-FWDtoNUM 3-ACCOUNTCODE exten => s,1,NoOp exten => s,n,GotoIf($["${TFBILL}" = "1"]?10:20) exten => s,10,Set(CDR(accountcode)=${ARG1}) exten => s,n,Goto(20) exten => s,20,ForkCDR(v) exten => s,n,Set(FORWARDED=1) exten => s,n,Set(CDR(accountcode)=${ARG3}) exten => s,n,NoOp(${ARG3} - ${CDR(accountcode)}) exten => s,n,Goto(from-custgw,${ARG2},1) -- Executing macro("SIP/bworks-as1-086cd9c8", "fwddial|9992949999|9995249999|9995249999") > Executing [s@macro-fwddial:1] NoOp("SIP/bworks-as1-086cd9c8", "") in new stack > Executing [s@macro-fwddial:3] GotoIf("SIP/bworks-as1-086cd9c8", "0?10:20") in new stack > Goto (macro-fwddial,s,20) > Executing [s@macro-fwddial:20] ForkCDR("SIP/bworks-as1-086cd9c8", "v") in new stack > Executing [s@macro-fwddial:21] Set("SIP/bworks-as1-086cd9c8", "FORWARDED=1") in new stack > Executing [s@macro-fwddial:22] Set("SIP/bworks-as1-086cd9c8", "CDR(accountcode)=9995249999") in new stack > Executing [s@macro-fwddial:23] NoOp("SIP/bworks-as1-086cd9c8", "9995249999 - ") in new stack > Executing [s@macro-fwddial:24] Goto("SIP/bworks-as1-086cd9c8", "from-custgw|9995249999|1") in new stack > Goto (from-custgw,2165249999,1) == Channel 'SIP/bworks-as1-086cd9c8' jumping out of macro 'fwddial' As you can see, the Set(CDR(accountcode)=9995249999) didn't take. It's the ForkCDR that makes the difference.