[incoming]
exten => 1887087,1,Answer
exten => 1887087,2,Goto(wiki,s,1)
[wiki]
exten => s,1,Answer
;####################################
;# initialise the digitstack with 0 #
;####################################
exten => s,2,SetVar(digitstack=0)
;###############################################################
#####
;# check if the fi le corresponding to the current digitstack
exists #
;###############################################################
#####
exten => s,3,System(/var/lib/asterisk/system/fexists.sh /var/lib/
asterisk/sounds/wiki/${digitstack}.gsm)
;####################
;# if yes, playback #
;####################
exten => s,4,Background(wiki/${digitstack})
exten => s,5,GotoIf($[ ${digitstack} = 0 ]?s,10)
exten => s,6,Wait(2)
exten => s,7,SetVar(digitstack=${subfoldernum})
exten => s,8,Playback(wiki/subfolder)
exten => s,9,Goto(wikisubfolder,s,1)
exten => s,10,Goto(wikitopic,s,1)
;###################
;# if not, record #
;###################
exten => s,104,SetVar(ask=no_entry)
exten => s,105,SetVar(pressed=s)
exten => s,106,SetVar(goyes=109)
exten => s,107,SetVar(gono=125)
exten => s,108,Goto(wikikeepdel,s,1)
exten => s,109,Playback(wiki/record_now)
exten => s,110,Record(/var/lib/asterisk/sounds/wiki/
${digitstack}:gsm)
exten => s,111,Background(wiki/repeat_rec)
exten => s,112,Wait(4);
exten => s,113,System(/var/lib/asterisk/system/fexists.sh /var/
lib/asterisk/sounds/wiki/${digitstack}.gsm)
exten => s,114,Playback(wiki/${digitstack})
exten => s,115,Wait(1);
exten => s,116,SetVar(ask=keep_rec)
exten => s,117,SetVar(pressed=s)
exten => s,118,SetVar(goyes=121)
exten => s,119,SetVar(gono=129)
exten => s,120,Goto(wikikeepdel,s,1)
; Goyes Variante
exten => s,121,Playback(wiki/menue_back)
exten => s,122,SetVar(subfoldernum=0)
exten => s,123,SetVar(topiccheck=0)
exten => s,124,Goto(s,1)
; GoNO1
exten => s,125,Playback(wiki/menue_back2)
exten => s,126,SetVar(subfoldernum=0)
exten => s,127,SetVar(topiccheck=0)
exten => s,128,Goto(s,1)
; GoNO2
exten => s,129,System(rm /var/lib/asterisk/sounds/wiki/
${digitstack}.gsm)
exten => s,130,Playback(wiki/fi le_deleted)
exten => s,131,Playback(wiki/menue_back2)
exten => s,132,SetVar(subfoldernum=0)
exten => s,133,SetVar(topiccheck=0)
exten => s,134,Goto(s,1)
exten => s,214,Goto(s,125)
;#######################################
;# if (0) is dialed, go to the menu
;#######################################
exten => _0,1,SetVar(subfoldernum=0)
exten => _0,1,SetVar(topiccheck=0)
exten => _0,2,Goto(s,2)
;###############################################################
#####
;# if (7) is dialed, ask for confi rmation-record new fi le,
overwriting#
################################################################
#####
exten => _7,1,SetVar(pressed=7)
exten => _7,2,SetVar(ask=overwrite)
exten => _7,3,SetVar(goyes=7)
exten => _7,4,SetVar(gono=8)
exten => _7,5,Goto(wikikeepdel,s,1)
exten => _7,6,Playback(wiki/record_now)
;GoYes
exten => _7,7,Goto(s,109)
;GoNo
exten => _7,8,SetVar(subfoldernum=0)
exten => _7,9,SetVar(topiccheck=0)
exten => _7,9,Goto(s,3)
;########################################################
;# if (8) is dialed, record, then append to current fi le #
#########################################################
exten => _8,1,Playback(wiki/append_now)
exten => _8,2,Wait(3);
exten => _8,3,Record(/var/lib/asterisk/sounds/wiki/${digitstack}-temp:gsm)
exten => _8,4,Playback(wiki/repeat_rec)
exten => _8,5,Wait(1);
exten => _8,6,Playback(wiki/${digitstack}-temp)
exten => _8,7,Wait(1);
exten => _8,8,SetVar(ask=append);
exten => _8,9,SetVar(pressed=8)
exten => _8,10,SetVar(goyes=13)
exten => _8,11,SetVar(gono=18)
exten => _8,12,Goto(wikikeepdel,s,1)
;GoYES
exten => _8,13,System(/var/lib/asterisk/system/wikiconcat.sh /
var/lib/asterisk/sounds/wiki/${digitstack}.gsm /var/lib/asterisk/
sounds/wiki/${digitstack}-temp.gsm)
exten => _8,14,Playback(wiki/menue_back)
exten => _8,15,SetVar(subfoldernum=0)
exten => _8,16,SetVar(topiccheck=0)
exten => _8,17,Goto(s,2)
; GoNO
exten => _8,18,System(rm /var/lib/asterisk/sounds/wiki/
${digitstack}-temp.gsm)
exten => _8,19,SetVar(subfoldernum=0)
exten => _8,20,SetVar(topiccheck=0)
exten => _8,21,Goto(s,2)
;######################################################
;# if (9) is dialed, ask for confi rmation, then delete #
;######################################################
exten => _9,1,SetVar(pressed=9)
exten => _9,2,SetVar(ask=delete)
exten => _9,3,SetVar(goyes=6)
exten => _9,4,SetVar(gono=9)
exten => _9,5,Goto(wikikeepdel,s,1)
exten => _9,6,GotoIf($[ ${digitstack} = 0 ]?_9,11)
exten => _9,7,System(rm /var/lib/asterisk/sounds/wiki/
${digitstack}.gsm)
exten => _9,8,GotoIf($[${LEN(${digitstack})} = 0]?_9,11)
exten => _9,9,Playback(wiki/fi le_deleted)
exten => _9,10,Playback(wiki/menue_back2)
exten => _9,11,SetVar(subfoldernum=0)
exten => _9,12,SetVar(topiccheck=0)
exten => _9,13,Goto(s,2)
;###################################
;# playback help if (*) is pressed #
;###################################
exten => _*,1,Playback(wiki/help/0-goup)
exten => _*,2,Playback(wiki/help/7-modify)
exten => _*,3,Playback(wiki/help/8-append)
exten => _*,4,Playback(wiki/help/9-delete)
exten => _*,5,SetVar(subfoldernum=0)
exten => _*,6,Goto(wiki,s,2)
;##########################################################
;# for any other number (1)-(6), put it on the digitstack #
;##########################################################
;include => wikigrabnum
[wikigrabnum]
;###################################################
;# Grab dialed number and put it on the digitstack #
;###################################################
exten => s,1,GotoIf($[ ${topiccheck} = 0 ]?wikinumberhandling
,s,1:
wikinumberhandling,s,3)
[wikinumberhandling]
exten => s,1,SetVar(digitstack=${digitstack}${dialednumber})
exten => s,2,Goto(wiki,s,3)
exten => s,3,SetVar(digitstack=${dialednumber})
exten => s,4,SetVar(topiccheck=0)
exten => s,5,Goto(wikisubfolder,s,1)
[wikikeepdel]
;##################
;# Are you sure ? #
;##################
exten => s,1,Background(wiki/ask_${ask})
exten => s,2,Goto(s,1)
exten => _1,1,Goto(wiki,${pressed},${goyes})
exten => _2,1,Goto(wiki,${pressed},${gono})
exten => i,1,SetVar(subfoldernum=0)
exten => i,2,SetVar(topiccheck=0)
exten => i,3,Goto(s,1)
[wikisubfolder]
;################################################
;# List existing entries in the current submenu #
;################################################
exten => s,1,SetVar(option=0)
exten => s,2,SetVar(subfoldernum=${digitstack})
exten => s,3,Playback(wiki/help/options)
exten => s,4,SetVar(option=$[${option} + 1])
exten => s,5,System(/var/lib/asterisk/system/fexists.sh /var/lib/
asterisk/sounds/wiki/${digitstack}${option}.gsm)
exten => s,6,WaitExten(1)
exten => s,7,SayDigits(${option})
exten => s,8,SetVar(fi lecount=1)
exten => s,9,GotoIf($[ ${option} = 7 ]?s,10:s,4)
exten => s,10,WaitExten(4)
exten => s,11,GotoIf($[ ${fi lecount} = 1 ]?s,1:s,12)
exten => s,12,Playback(wiki/help/noopts)
exten => s,13,Playback(wiki/menue_back2)
exten => s,14,SetVar(subfoldernum=0)
exten => s,15,SetVar(topiccheck=0)
exten => s,16,Goto(wiki,s,2)
exten => s,106,GotoIf($[ ${digitstack} > 20 ]?s,108)
exten => s,107,GotoIf($[ ${option} = 7 ]?s,10:s,4)
exten => s,108,Playback(wiki/wrongtopic)exten => s,109,Playback(wiki/menue_back2)
exten => s,110,Goto(s,14)
exten => 1,1,SetVar(dialednumber=${EXTEN})
exten => 1,2,NoOp(X1)
exten => 1,3,Goto(wikigrabnum,s,1)
exten => 2,1,SetVar(dialednumber=${EXTEN})
exten => 2,2,NoOp(X1)
exten => 2,3,Goto(wikigrabnum,s,1)
exten => 3,1,SetVar(dialednumber=${EXTEN})
exten => 3,2,NoOp(X1)
exten => 3,3,Goto(wikigrabnum,s,1)
exten => 4,1,SetVar(dialednumber=${EXTEN})
exten => 4,2,NoOp(X1)
exten => 4,3,Goto(wikigrabnum,s,1)
exten => 5,1,SetVar(dialednumber=${EXTEN})
exten => 5,2,NoOp(X1)
exten => 5,3,Goto(wikigrabnum,s,1)
exten => 6,1,SetVar(dialednumber=${EXTEN})
exten => 6,2,NoOp(X1)
exten => 6,3,Goto(wikigrabnum,s,1)
[wikitopic]
;######################################
;#TOPIC DIY MANUALS or DIY PRACTICES #
;######################################
exten => s,1,SetVar(topiccheck=1)
exten => s,2,Playback(wiki/help/list_topics)
exten => s,3,SayDigits(1)
exten => s,4,Background(wiki/topic_10)
exten => s,5,Background(wiki/help/or)
exten => s,6,SayDigits(2)
exten => s,7,Background(wiki/topic_20)
exten => s,8,WaitExten(2)
exten => s,9,Background(wiki/menue_back3)
exten => s,10,WaitExten(4)
exten => s,11,SetVar(topiccheck=0)
exten => s,12,Goto(wiki,s,2)
exten => 1,1,SetVar(dialednumber=${EXTEN})
exten => 1,2,NoOp(X1)
exten => 1,3,Goto(wikigrabnum,s,1)
exten => 2,1,SetVar(dialednumber=${EXTEN})
exten => 2,2,NoOp(X1)
exten => 2,3,Goto(wikigrabnum,s,1)
exten => i,1,SetVar(subfoldernum=0)
exten => i,2,SetVar(topiccheck=0)
exten => i,3,Goto(s,1)