IvR Explanation

Hi,

I need help to understand how this Ivr, if is possible, what does each instruction.

[ivr-63]
exten => s,1,Set(MSG=custom/controlodasala)
exten => s,n,Set(LOOPCOUNT=0)
exten => s,n,Set(__DIR-CONTEXT=)
exten => s,n,Set(IVR_CONTEXT${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,GotoIf($${CDR(disposition)}" = “ANSWERED?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,ExecIf($${MSG}” != "?Background(${MSG}))
exten => s,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 1,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 1,n,Set(__NODEST=)
exten => 1,n,Goto(ivr-61,s,1)
exten => 2,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 2,n,Set(__NODEST=)
exten => 2,n,Goto(ivr-62,s,1)
exten => 3,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 3,n,Set(__NODEST=)
exten => 3,n,Goto(ivr-66,s,1)
exten => 4,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 4,n,Set(__NODEST=)
exten => 4,n,Goto(app-blackhole,hangup,1)
exten => i,1,Playback(invalid)
exten => i,n,Goto(loop,1)
exten => t,1,Goto(loop,1)
exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?hang,1)
exten => loop,n,Goto(ivr-63,s,begin)
exten => return,1,Set(MSG=custom/controlodasala)
exten => return,n,Set(IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(IVR_CONTEXT${CO​NTEXT}=${IVR_CONTEXT
${CONTEXT}})
exten => return,n,Goto(ivr-63,s,begin)

; end of [ivr-63]

Someone can help me?

Thanks

Allthe: try this: http://cdn.oreilly.com/books/9780596510480.pdf

I’ve read many books on Asterisk, but not very illuminating.

The idea I had is that the community was a help for those who have difficulty or am I wrong?

If I’m doing something wrong, I apologize.

Of course that is what the community is for.

Fundamentally you did not ask a question such as what does XXXX variable do?

You asked for a line by line explanation of a section of dialplan code taken out of context. How could that question be answered?

Without knowing your level of expertise in programming and Asterisk how could an explanation be given? Without a good grasp of programming and Asterisk the information would be abstract and hard to understand out of context.

Further you assume that someone has this information. Any documentation that exists is in the code.

The other reason I answered was so you understood why nobody answered your query.

You can’t be serious. You want someone to dissect each line of code and explain it to you? Is that what you think the community is for?

How about taking a look at www.asteriskdocs.org the definitive reference on Asterisk programming.