Hi Michael,
I may not get the whole picture to understand why you use Dial(Local/${EXTEN}@DIALPLAN-APPLICATION-10297511314c7cb98c9bcf5/n) and the exten => _[0-9a-zA-Z*#]!
I would just use Goto() : Goto(DIALPLAN-APPLICATION-12606051984c7cb9b781330, s, 1)
and then, for a simple application just start with: exten => s,1,NoOp(Start of my Application)
You could then allow blocks in you editor, each block corresponding to an extension (default being s).
In case of a pattern as app numver, the Goto statement would be Goto(DIALPLAN-APPLICATION-12606051984c7cb9b781330, ${EXTEN}, 1) and let the user specify the app blocks patterns.
Full example:
[internal]
exten => 00001,1,NoOp(internal calling application: ivrtest)
exten => 00001,n,Goto(DIAPLAN-APPLICATION-ivrtest,s,1)
[DIAPLAN-APPLICATION-ivrtest]
exten => s,1,Answer
exten => s,2,SetMusicOnHold(default)
exten => s,3,DigitTimeout,5
exten => s,4,ResponseTimeout,10
exten => s,5,Background(ivrtest-choose)
exten => 1,1,Queue(rep-tech)
exten => 2,1,Echo()
exten => 2,n,Hangup()
exten => i,1,Goto(s,5)
exten => t,1,Goto(s,5)
This could result in the editor of the following sequence of blocks:
default (s):1,Answer
2,SetMusicOnHold(default)
3,DigitTimeout,5
4,ResponseTimeout,10
5,Background(ivrtest-choose)
1:1,Queue(rep-tech)
2:1,Echo()
n,Hangup()
i:1,Goto(s,5)
t:1,Goto(s,5)
You could also decompose the _0001X application extension mask by having sections: 000011, 000012, _00001X ...
The editor would also have to provide a Goto() handler to be able to pick another Application by name from existing (possibly extension-less) application.
ie. Goto(DIAPLAN-APPLICATION-sales-ivr,s,1)
It keeps thinks easy for beginners while being powerful for the techies.
OR you could just stick to the 's' by default and provide a 'raw application' where one could key in whole app sections. This would be enough for me.
Could this be a valid option?
Kind Regards