[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
[globals]
; Externe ISDN Karte (TE Modus)
EXTERN=CAPI/ISDN1
; Interne ISDN Karte (NT Modus)
INTERN=CAPI/ISDN2
; Mit welcher Vorwahl geht es ins Festnetz?
AMTSHOLUNG=0
; MSNx = Die externe MSN
; MSNxINT = Internes Telefon an welche die extern erreichte MSN weitergeleitet werden soll
; MSNxPASS = "Geheime" Zahl, die genutzt wird um einem Anrufer auch nach Feierabend Einlass zu gewähren
MSN1=123456
MSN1INT=34
MSN1PASS=1
MSN2=654321
MSN2INT=35
MSN2PASS=2
MSN3=987654
MSN3INT=36
MSN3PASS=3
; Durchwahl um den Anrufbeantworter abhören zu können
VOICEMAIL=55
; Genutzte Sprache für Systemmeldungen und Anrufbeantworter
SPRACHE=de
;2do:
; Wartschlange falls besetzt ist.
; Notrufnummern einbauen
[macro-vonextern_voice]
; Makro fuer von extern angerufene Nummern inkl. Anrufbeantworter
; ${ARG1} - Zielnummer
; ${ARG2} - Klingelzeit
; ------------------------------------------------
exten => s,1,NoOp(Anruf von: ${CALLERID(num)} - Fuer: ${ARG1})
exten => s,n,Set(LANGUAGE()=${SPRACHE})
exten => s,n,Set(CALLERID(num)=0${CALLERID(num)})
exten => s,n,Dial(${INTERN}/${ARG1},${ARG2})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(u${ARG1})
exten => s-NOANSWER,n,Hangup
exten => s-BUSY,1,Voicemail(b${ARG1})
exten => s-BUSY,n,Hangup
exten => _s-.,1,Goto(s-NOANSWER,1)
[macro-vonextern]
; Makro fuer von extern angerufene Nummern ohne Schnickschnack
; ${ARG1} - Zielnummer
; ${ARG2} - Klingelzeit
; ------------------------------------------------
exten => s,1,NoOp(Anruf von: ${CALLERID(num)} - Fuer: ${ARG1})
exten => s,n,Set(CALLERID(num)=0${CALLERID(num)})
exten => s,n,Dial(${INTERN},${ARG2})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Busy
exten => s-BUSY,1,Busy
exten => _s-.,1,Goto(s-NOANSWER,1)
[macro-vonintern_isdn]
; Makro fuer interne ISDN Gespraeche ohne Schnickschnack
; ${ARG1} - Durchwahlnummer
; ------------------------------------------------
exten => s,1,NoOp(Anruf von: ${CALLERID(num)} - Fuer: ${ARG1})
exten => s,n,Dial(${INTERN}/${ARG1}/,60,r)
exten => s,n,Hangup()
[macro-vonintern_sip]
; Makro fuer interne SIP Gespraeche ohne Schnickschnack
; ${ARG1} - Durchwahlnummer
; ------------------------------------------------
exten => s,1,NoOp(Anruf von: ${CALLERID(num)} - Fuer: ${ARG1})
exten => s,n,Dial(SIP/${ARG1},60)
exten => s,n,Hangup()
[macro-fax]
; Einfacher SpanDSP Fax
; ${ARG1} - Quellnummer
; ${ARG2} - eMailadresse
exten => s,1,NoOp(Fax von: ${ARG1} am: ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
exten => s,n,Set(FAXFILE=/var/spool/asterisk/fax/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${ARG1})
exten => s,n,rxfax(${FAXFILE})
exten => s,n,system(/usr/local/lib/asterisk/bin/mailfax ${FAXFILE} ${ARG2} ${ARG1})
exten => s,n,Hangup()
[default]
exten => i,1,NoOp(Undefinierte Nummer wurde gewaehlt.)
exten => i,n,Set(LANGUAGE()=${SPRACHE})
exten => i,n,Playback(pbx-invalid)
exten => i,n,Hangup()
[isdn_in_te]
; Von aussen erreichbare Nummern
; Privat
exten => ${MSN1},1,Set(LANGUAGE()=${SPRACHE})
exten => ${MSN1},n,GotoIfTime(18:00-08:59,*,*,*?NACHT)
exten => ${MSN1},n,GotoIfTime(12:30-14:59,*,*,*?MITTAG)
exten => ${MSN1},n,Macro(vonextern_voice,${MSN1},25)
exten => ${MSN1},n(MITTAG),GotoIf($["${CALLERID(num)}" = ""]?UNBEKANNT)
exten => ${MSN1},n,Macro(vonextern_voice,${MSN1},12)
exten => ${MSN1},n(NACHT),GotoIf($["${CALLERID(num)}" = ""]?UNBEKANNT)
exten => ${MSN1},n,Macro(vonextern_voice,${MSN1},12)
exten => ${MSN1},n(UNBEKANNT),Answer()
exten => ${MSN1},n,Wait(1)
exten => ${MSN1},n,Background(de/privacy-unident)
exten => ${MSN1},n,Wait(0.5)
exten => ${MSN1},n,Voicemail(${MSN1})
exten => ${MSN1},n,Hangup()
; Durchwahl nach Feierabend
exten => ${MSN1PASS},1,Answer()
exten => ${MSN1PASS},n,Wait(1)
exten => ${MSN1PASS},n,Background(de/pbx-transfer)
exten => ${MSN1PASS},n,Macro(vonextern_voice,${MSN1},12)
;Firma
exten => ${MSN2},1,Set(LANGUAGE()=${SPRACHE})
exten => ${MSN2},n,GotoIfTime(18:00-08:59,*,*,*?FEIERABEND)
exten => ${MSN2},n,GotoIfTime(*,sat-sun,*,*?FEIERABEND)
exten => ${MSN2},n,Macro(vonextern_voice,${MSN2},25)
exten => ${MSN2},n(FEIERABEND),Answer()
exten => ${MSN2},n,Wait(1)
exten => ${MSN2},n,Background(de/cc_buerozeiten)
exten => ${MSN2},n,Wait(0.5)
exten => ${MSN2},n,Voicemail(${MSN2}|s)
exten => ${MSN2},n,Hangup()
; Durchwahl nach Feierabend
exten => ${MSN2PASS},1,Answer()
exten => ${MSN2PASS},n,Wait(1)
exten => ${MSN2PASS},n,Background(de/pbx-transfer)
exten => ${MSN2PASS},n,Macro(vonextern_voice,${MSN2},12)
;FAX
exten => ${MSN3},1,Macro(fax,${AMTSHOLUNG}${CALLERID(num)},adresse@domain.tld)
; Ungültige Nummern
exten => i,1,NoOp(Undefinierte Nummer wurde gewaehlt.)
exten => i,n,Set(LANGUAGE()=${SPRACHE})
exten => i,n,Playback(pbx-invalid)
exten => i,n,Hangup()
[isdn_in_nt]
exten => _${AMTSHOLUNG}.,1,Goto(isdn_out,${EXTEN},1)
; Fest erreichbare Rufnummern im internen Netzwerk nach MSN
exten => ${MSN1INT},1,Macro(vonintern_isdn,${MSN1})
exten => ${MSN2INT},1,Macro(vonintern_isdn,${MSN2})
; Interne Anrufbeantworterverwaltung pro MSN
exten => ${VOICEMAIL},1,Set(LANGUAGE()=${SPRACHE})
exten => ${VOICEMAIL},n,VoiceMailMain(${CALLERID(num)}|s)
; Sonstige erreichbare Rufnummern im internen Netzwerk
exten => 37,1,Macro(vonintern_sip,37)
; Aufnahme und Wiedergabe von Sprache
exten => 99,1,Playback(de/vm-torecord)
exten => 99,n,Record(/tmp/record.gsm)
exten => 99,n,Playback(/tmp/record)
exten => 99,n,Hangup()
[isdn_out]
; Die '${AMTSHOLUNG}' wird als Amtsholung genutzt. Die erste '${AMTSHOLUNG}' abgeschnitten. 002104 wird zu 02104
exten => _${AMTSHOLUNG}.,1,NoOp(Anruf von: ${CALLERID(num)} - Fuer: ${EXTEN:1})
exten => _${AMTSHOLUNG}.,n,NoOP(Vorwahlpruefung : ${EXTEN:0:2})
exten => _${AMTSHOLUNG}.,n,GotoIf($["${EXTEN:0:2}" != "${AMTSHOLUNG}0"]?KEINENULL)
exten => _${AMTSHOLUNG}.,n,Dial(${EXTERN}/${EXTEN:1}/bl,60,r)
exten => _${AMTSHOLUNG}.,n,Hangup()
exten => _${AMTSHOLUNG}.,n(KEINENULL),NoOp(Keine ${AMTSHOLUNG}0 gesehen, Abbruch)
exten => _${AMTSHOLUNG}.,n,Set(LANGUAGE()=${SPRACHE})
exten => _${AMTSHOLUNG}.,n,Playback(pbx-invalid)
exten => _${AMTSHOLUNG}.,n,Hangup()
[sip_in]
include => isdn_in_nt