[general] [globals] [default] [sub] ; Datenbank Anruf starten : ARG1=target, ARG2=target_num, ARG3=file, ARG4=cid exten => s,10(ring),System(php -f /var/notrufsim/scripting/mysql_callstate_call.php ${CHANNEL} ${CALLERID(num)} ${ARG1} ${ARG2} '${ARG3}' '${ARG4}') exten => s,n,Return() ; Datenbank Anruf beenden exten => s,30(hangup),System(php -f /var/notrufsim/scripting/mysql_callstate_end.php ${CHANNEL}) exten => s,n,Return() ; zufällige Anrufernummer : ARG1=m/f ARG2=vorwahl exten => s,40(rand),Set(CALLERID(num)=${SHELL(php -f /var/notrufsim/scripting/rand_nummer.php ${ARG1} ${ARG2})}) exten => s,n,Set(CALLERID(name)=${CALLERID(num)}) exten => s,n,Return() ; Anrufernamen ermitteln exten => s,50(callerid),Set(CALLERID(name)=${SHELL(php -f /var/notrufsim/scripting/mysql_callerid.php ${CALLERID(num)})}) exten => s,n,Return() ; callerid aus Global ziehen exten => s,55(cid),GotoIf($[EXISTS(${CID${CALLERID(num)}})]?56:57) exten => s,56,Set(CALLERID(num)=${CID${CALLERID(num)}}) exten => s,n,Return() [macro-connect] exten => s,1,System(php -f /var/notrufsim/scripting/mysql_callstate_answer.php ${ARG1} ${CHANNEL}) [direkt] exten => _300,1,Answer exten => _300,n,Gosub(sub,s,ring(leitstelle,${EXTEN})) exten => _300,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _300,n,Hangup() exten => _30X,1,Answer exten => _30X,n,Gosub(sub,s,ring(leitstelle${EXTEN:-1},${EXTEN})) exten => _30X,n,Dial(SIP/leitstelle${EXTEN:-1},,M(connect^${CHANNEL})) exten => _30X,n,Hangup() exten => _200,1,Answer exten => _200,n,Gosub(sub,s,ring(regie,${EXTEN})) exten => _200,n,Dial(SIP/regie1&SIP/regie2,,M(connect^${CHANNEL})) exten => _200,n,Hangup() exten => _20X,1,Answer exten => _20X,n,Gosub(sub,s,ring(regie${EXTEN:-1},${EXTEN})) exten => _20X,n,Dial(SIP/regie${EXTEN:-1},,M(connect^${CHANNEL})) exten => _20X,n,Hangup() exten => h,1,Gosub(sub,s,hangup) [regie] include => direkt ; ### NOTRUFE ### ;112 mit Random-Nummer (ungezielt) exten => _112,1,Answer exten => _112,n,Set(source=${CALLERID(num)}) exten => _112,n,GosubIf($[${EXISTS(${CID${CALLERID(num)}})}]?sub,s,cid():sub,s,rand(n)) exten => _112,n,Set(CALLERID(name)=${CALLERID(num)}) exten => _112,n,Gosub(sub,s,callerid()) exten => _112,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_112_${CALLERID(num)}.wav) exten => _112,n,Gosub(sub,s,ring(notruf,112,${file})) exten => _112,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _112,n,Dial(SIP/notruf1&SIP/notruf2&SIP/notruf3,,M(connect^${CHANNEL})) exten => _112,n,Hangup() ;112 mit Random-Nummer (mobil oder festnetz) exten => _112[13],1,Answer exten => _112[13],n,Set(source=${CALLERID(num)}) exten => _112[13],n,Gosub(sub,s,rand(${EXTEN:-1})) exten => _112[13],n,Gosub(sub,s,callerid()) exten => _112[13],n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_112_${caller}.wav) exten => _112[13],n,Gosub(sub,s,ring(notruf,112,${file})) exten => _112[13],n,MixMonitor(/var/notrufsim/recording/${file}) exten => _112[13],n,Dial(SIP/notruf1&SIP/notruf2&SIP/notruf3,,M(connect^${CHANNEL})) exten => _112[13],n,Hangup() ;gezielte Nummer exten => _1120XXX.,1,Answer exten => _1120XXX.,n,Set(source=${CALLERID(num)}) exten => _1120XXX.,n,Set(CALLERID(num)=${EXTEN:3}) exten => _1120XXX.,n,Set(CALLERID(name)=${EXTEN:3}) exten => _1120XXX.,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_112_${EXTEN:3}.wav) exten => _1120XXX.,n,Gosub(sub,s,ring(notruf,112,${file})) exten => _1120XXX.,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _1120XXX.,n,Dial(SIP/notruf1&SIP/notruf2&SIP/notruf3,,M(connect^${CHANNEL})) exten => _1120XXX.,n,Hangup() ; ### AMT ### ;Polizei exten => _110,1,Answer exten => _110,n,Set(source=${CALLERID(num)}) exten => _110,n,Set(CALLERID(num)=110) exten => _110,n,Set(CALLERID(name)=POLIZEI) exten => _110,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_110.wav) exten => _110,n,Gosub(sub,s,ring(leitstelle,300,${file})) exten => _110,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _110,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _110,n,Hangup() ;zufällige Nummer (ungezielt) außer wenn CID mit *91 gesetzt exten => _0,1,Answer exten => _0,n,Set(source=${CALLERID(num)}) exten => _0,n,GosubIf($[${EXISTS(${CID${CALLERID(num)}})}]?sub,s,cid():sub,s,rand()) exten => _0,n,Gosub(sub,s,callerid()) exten => _0,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_${CALLERID}.wav) exten => _0,n,Gosub(sub,s,ring(leitstelle,300,${file})) exten => _0,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _0,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _0,n,Hangup() ;zufällige Nummer (anonym,mobil,fest) außer wenn CID mit *91 gesetzt exten => _0X,1,Answer exten => _0X,n,Set(source=${CALLERID(num)}) exten => _0X,n,Gosub(sub,s,rand(${EXTEN:-1})) exten => _0X,n,Gosub(sub,s,callerid()) exten => _0X,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_${CALLERID(num)}.wav) exten => _0X,n,Gosub(sub,s,ring(leitstelle,300,${file})) exten => _0X,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _0X,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _0X,n,Hangup() ;gezielte Nummer exten => _0XXX.,1,Answer exten => _0XXX.,n,Set(source=${CALLERID(num)}) exten => _0XXX.,n,Set(CALLERID(num)=${EXTEN}) exten => _0XXX.,n,Set(CALLERID(name)=${EXTEN}) exten => _0XXX.,n,Gosub(sub,s,callerid()) exten => _0XXX.,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_${EXTEN}.wav) exten => _0XXX.,n,Gosub(sub,s,ring(leitstelle,300,${file}})) exten => _0XXX.,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _0XXX.,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _0XXX.,n,Hangup() ; ### AMT für Telefon hinter FritzBox ### ;zufällige Nummer (ungezielt) außer wenn CID mit 991 gesetzt exten => _10,1,Answer exten => _10,n,Set(source=${CALLERID(num)}) exten => _10,n,GosubIf($[${EXISTS(${CID${CALLERID(num)}})}]?sub,s,cid():sub,s,rand()) exten => _10,n,Gosub(sub,s,callerid()) exten => _10,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_${CALLERID}.wav) exten => _10,n,Gosub(sub,s,ring(leitstelle,300,${file})) exten => _10,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _10,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _10,n,Hangup() ;zufällige Nummer (anonym,mobil,fest) außer wenn CD mit 991 gesetzt exten => _10X,1,Answer exten => _10X,n,Set(source=${CALLERID(num)}) exten => _10X,n,Gosub(sub,s,rand(${EXTEN:-1})) exten => _10X,n,Gosub(sub,s,callerid()) exten => _10X,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_AMT_${CALLERID(num)}.wav) exten => _10X,n,Gosub(sub,s,ring(leitstelle,300,${file})) exten => _10X,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _10X,n,Dial(SIP/leitstelle1&SIP/leitstelle2&SIP/leitstelle3,,M(connect^${CHANNEL})) exten => _10X,n,Hangup() ; ### 116117 ### ;zufällige Nummer (ungezielt) außer wenn CID mit *91 gesetzt exten => _116117,1,Answer exten => _116117,n,Set(source=${CALLERID(num)}) exten => _116117,n,GosubIf($[${EXISTS(${CID${CALLERID(num)}})}]?sub,s,cid():sub,s,rand()) exten => _116117,n,Set(CALLERID(name)=${CALLERID(num)}) exten => _116117,n,Gosub(sub,s,callerid()) exten => _116117,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_116117_${CALLERID(num)}.wav) exten => _116117,n,Gosub(sub,s,ring(and,116117,${file})) exten => _116117,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _116117,n,Dial(SIP/and1&SIP/and2&SIP/and3,,M(connect^${CHANNEL})) exten => _116117,n,Hangup() ;zufällige Nummer (mobil, fest, anonym) außer wenn CID mit *91 gesetzt exten => _116117X,1,Answer exten => _116117X,n,Set(source=${CALLERID(num)}) exten => _116117X,n,Gosub(sub,s,rand(${EXTEN:-1})) exten => _116117X,n,Gosub(sub,s,callerid()) exten => _116117X,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_116117_${CALLERID(num)}.wav) exten => _116117X,n,Gosub(sub,s,ring(and,116117,${file})) exten => _116117X,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _116117X,n,Dial(SIP/and1&SIP/and2&SIP/and3,,M(connect^${CHANNEL})) exten => _116117X,n,Hangup() ;gezielte Nummer exten => _1161170XXX.,1,Answer exten => _1161170XXX.,n,Set(source=${CALLERID(num)}) exten => _1161170XXX.,n,Set(CALLERID(num)=${EXTEN:6}) exten => _1161170XXX.,n,Set(CALLERID(name)=${EXTEN:6}) exten => _1161170XXX.,n,Gosub(sub,s,callerid()) exten => _1161170XXX.,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_116117_${EXTEN:6}.wav) exten => _1161170XXX.,n,Gosub(sub,s,ring(and,116117,${file})) exten => _1161170XXX.,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _1161170XXX.,n,Dial(SIP/and1&SIP/and2&SIP/and3,,M(connect^${CHANNEL})) exten => _1161170XXX.,n,Hangup() ; ### 19222 ### ;zufällige Nummer (ungezielt) außer wenn CDI mit *91 gesetzt exten => _19222,1,Answer exten => _19222,n,Set(source=${CALLERID(num)}) exten => _19222,n,GosubIf($[${EXISTS(${CID${CALLERID(num)}})}]?sub,s,cid():sub,s,rand()) exten => _19222,n,Set(CALLERID(name)=${CALLERID(num)}) exten => _19222,n,Gosub(sub,s,callerid()) exten => _19222,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_19222_0.wav) exten => _19222,n,Gosub(sub,s,ring(ktp,19222,${file})) exten => _19222,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _19222,n,Dial(SIP/ktp1&SIP/ktp2&SIP/ktp3,,M(connect^${CHANNEL})) exten => _19222,n,Hangup() ;zufällige Nummer (anonym,mobil,fest) außer wenn CID mit *91 gesetzt exten => _19222X,1,Answer exten => _19222X,n,Set(source=${CALLERID(num)}) exten => _19222X,n,Gosub(sub,s,rand(${EXTEN:-1})) exten => _19222X,n,Gosub(sub,s,callerid()) exten => _19222X,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_19222_${CALLERID(num)}.wav) exten => _19222X,n,Gosub(sub,s,ring(ktp,19222,${file})) exten => _19222X,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _19222X,n,Dial(SIP/ktp1&SIP/ktp2&SIP/ktp3,,M(connect^${CHANNEL})) exten => _19222X,n,Hangup() ;gezielte Nummer exten => _192220XXX.,1,Answer exten => _192220XXX.,n,Set(source=${CALLERID(num)}) exten => _192220XXX.,n,Set(CALLERID(num)=${EXTEN:5}) exten => _192220XXX.,n,Set(CALLERID(name)=${EXTEN:5}) exten => _192220XXX.,n,Gosub(sub,s,callerid()) exten => _192220XXX.,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AN_19222_${EXTEN:5}.wav) exten => _192220XXX.,n,Gosub(sub,s,ring(ktp,19222,${file})) exten => _192220XXX.,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _192220XXX.,n,Dial(SIP/ktp1&SIP/ktp2&SIP/ktp3,,M(connect^${CHANNEL})) exten => _192220XXX.,n,Hangup() include => control [leitstelle] include => direkt ;Anruf an gezielte Nummer > Regie exten => _0XXX.,1,Answer exten => _0XXX.,n,Set(source=${CALLERID(num)}) exten => _0XXX.,n,Gosub(sub,s,callerid()) exten => _0XXX.,n,Set(caller=${CALLERID(name)}) exten => _0XXX.,n,Set(CALLERID(name)=${caller} > ${EXTEN}) exten => _0XXX.,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AB_AMT_${EXTEN}.wav) exten => _0XXX.,n,Gosub(sub,s,ring(regie,${EXTEN},${file},${CALLERID(name)})) exten => _0XXX.,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _0XXX.,n,Dial(SIP/regie1&SIP/regie2,,M(connect^${CHANNEL})) exten => _0XXX.,n,Hangup() ;Anruf an 116117 > Regie exten => _116117,1,Answer exten => _116117,n,Set(source=${CALLERID(num)}) exten => _116117,n,Gosub(sub,s,callerid()) exten => _116117,n,Set(caller=${CALLERID(name)}) exten => _116117,n,Set(CALLERID(name)=${caller} > 116117) exten => _116117,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AB_AMT_${EXTEN}.wav) exten => _116117,n,Gosub(sub,s,ring(regie,${EXTEN},${file},${CALLERID(name)})) exten => _116117,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _116117,n,Dial(SIP/regie1&SIP/regie2,,M(connect^${CHANNEL})) exten => _116117,n,Hangup() ;Anruf an 110 > Regie exten => _110,1,Answer exten => _110,n,Set(source=${CALLERID(num)}) exten => _110,n,Gosub(sub,s,callerid()) exten => _110,n,Set(caller=${CALLERID(name)}) exten => _110,n,Set(CALLERID(name)=${caller} > 110) exten => _110,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AB_AMT_${EXTEN}.wav) exten => _110,n,Gosub(sub,s,ring(regie,${EXTEN},${file},${CALLERID(name)})) exten => _110,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _110,n,Dial(SIP/regie1&SIP/regie2,,M(connect^${CHANNEL})) exten => _110,n,Hangup() ;Anruf an 112 > Leistelle 112 exten => _112,1,Answer exten => _112,n,Set(source=${CALLERID(num)}) exten => _112,n,Set(CALLERID(name)=${CALLERID(num)}) exten => _112,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AB_AMT_${EXTEN}.wav) exten => _112,n,Gosub(sub,s,ring(notruf,${EXTEN},${file},${CALLERID(name)})) exten => _112,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _112,n,Dial(SIP/notruf1&SIP/notruf2&SIP/notruf3,,M(connect^${CHANNEL})) exten => _112,n,Hangup() ;Anruf an 19222 > Regie exten => _19222,1,Answer exten => _19222,n,Set(source=${CALLERID(num)}) exten => _19222,n,Gosub(sub,s,callerid()) exten => _19222,n,Set(caller=${CALLERID(name)}) exten => _19222,n,Set(CALLERID(name)=${caller} > 19222) exten => _19222,n,Set(file=${STRFTIME(${EPOCH},,%y%m%d-%H%M%S)}_${source}_AB_AMT_${EXTEN}.wav) exten => _19222,n,Gosub(sub,s,ring(regie,${EXTEN},${file},${CALLERID(name)})) exten => _19222,n,MixMonitor(/var/notrufsim/recording/${file}) exten => _19222,n,Dial(SIP/regie1&SIP/regie2,,M(connect^${CHANNEL})) exten => _19222,n,Hangup() include => block_ab [block_ab] ;keine abgehenden Rufe erlaubt exten => _X.,1,Answer exten => _X.,n,PlayTones(busy) exten => _X.,n,Wait(2.5) exten => _X.,n,StopPlayTones exten => _X.,n,Playback(service) exten => _X.,n,Playback(unavailable) [notruf] include => leitstelle ;include => block_ab [and] include => leitstelle ;include => block_ab [ktp] include => leitstelle ;include => block_ab [control] ; CALLERID löschen exten => _[*9]90,1,Answer exten => _[*9]90,n,Set(GLOBAL(CID${CALLERID(num)})=${CALLERID(num)}) exten => _[*9]90,n,PlayTones(stutter) exten => _[*9]90,n,Wait(1) exten => _[*9]90,n,StopPlayTones exten => _[*9]90,n,SayDigits(${CID${CALLERID(num)}}) exten => _[*9]90,n,Hangup() ; CALLERID abfragen exten => _[*9]91,1,Answer exten => _[*9]91,2,GotoIf($[${EXISTS(${CID${CALLERID(num)}})}]?3:5) exten => _[*9]91,3,SayDigits(${CID${CALLERID(num)}}) exten => _[*9]91,4,Hangup() exten => _[*9]91,5,SayDigits(${CALLERID(num)}) exten => _[*9]91,n,Hangup() ; CALLERID setzen exten => _[*9]91.,1,Answer exten => _[*9]91.,n,Set(GLOBAL(CID${CALLERID(num)})=${EXTEN:3}) exten => _[*9]91.,n,PlayTones(stutter) exten => _[*9]91.,n,Wait(1) exten => _[*9]91.,n,StopPlayTones exten => _[*9]91.,n,SayDigits(${EXTEN:3}) exten => _[*9]91.,n,Hangup() ; Aufnahmen und Datenbank löschen !!! exten => _[*9]99,1,Answer exten => _[*9]99,n,Playback(removed) exten => _[*9]99,n,PlayTones(busy) exten => _[*9]99,n,Wait(2.5) exten => _[*9]99,n,StopPlayTones exten => _[*9]99,n,Hangup()