rendered paste body; What to do on hangup.
[macro-hangupcall]
exten => s,1,ResetCDR(w)
exten => s,2,NoCDR()
exten => s,3,Noop(Hangup in macro-vm ${CALLERIDNUM})
exten => s,4,Set(CALLBACK=${DB(Ringback/${CALLERIDNUM})})
exten => s,5,GotoIf($["${CALLBACK}" = ""]?9)
exten => s,6,DBdel(Ringback/${CALLERIDNUM})
exten => s,7,Set(CALLBACK=$[${CALLBACK}-2009])
exten => s,8,Dial(Zap/${CALLBACK}r1,30,M(ringback,${CALLERIDNUM}))
exten => s,9,Noop(${BRIDGEPEER})
exten => s,10,Set(N=${LEN(${BRIDGEPEER})})
exten => s,11,Set(N=$[${N}-2])
exten => s,12,Set(BRIDGEPEER=${BRIDGEPEER:0:${N}})
exten => s,13,Set(BRIDGEPEER=${BRIDGEPEER:4})
exten => s,14,Set(BRIDGEPEER=$[${BRIDGEPEER}+2009])
exten => s,15,Set(CALLBACK=${DB(Ringback/${BRIDGEPEER})})
exten => s,16,GotoIf($["${CALLBACK}" = ""]?50)
exten => s,17,DBdel(Ringback/${BRIDGEPEER})
exten => s,18,Set(CALLBACK=$[${CALLBACK}-2009])
exten => s,19,Dial(Zap/${CALLBACK}r1,30,M(ringback,${BRIDGEPEER}))
exten => s,50,hangup
exten => h,1,Wait(30)
exten => H,1,Goto(h,1)