Dieses Wiki ist ein Archiv bis 2023. Das aktuelle Wiki findet sich unter https://wiki.hamburg.ccc.de/

Difference between revisions of "VoIP:Konfiguration neu"

From CCCHHWiki
Jump to: navigation, search
m (misdn 0.3.x benutzt indications.conf und braucht keinen Patch mehr)
(Realitätsabgleich)
Line 153: Line 153:
 
;; TODO:
 
;; TODO:
 
;;  - MeetMe funktioniert nur mit Zaptel-Timer
 
;;  - MeetMe funktioniert nur mit Zaptel-Timer
;;    - ztdummy installieren: kernel laedt noch genrtc, braucht rtc
+
;;    - ztdummy installiert: kernel laedt aber noch genrtc, braucht rtc
 
;;  - Voicemail richten
 
;;  - Voicemail richten
 
;;  - stdexten Macro und/oder ISDN_* Variablen benutzen
 
;;  - stdexten Macro und/oder ISDN_* Variablen benutzen
Line 162: Line 162:
 
;;    - HHH anbinden
 
;;    - HHH anbinden
 
;;    - thalunil hat eine Voice-Flatrate
 
;;    - thalunil hat eine Voice-Flatrate
 +
;;    - wir haben auch bald eine Flatrate
 +
;;      - Multiport-Karte besorgen und einrichten
 
;;  - Angriffsvektoren aufspueren, loesen & erlaeutern
 
;;  - Angriffsvektoren aufspueren, loesen & erlaeutern
 
;;    - wer von wo wohin
 
;;    - wer von wo wohin
Line 199: Line 201:
 
;ZENTRALE_EXTERN=Local/office-isdn@phones&Local/office-dect@phones&SIP/zentrale
 
;ZENTRALE_EXTERN=Local/office-isdn@phones&Local/office-dect@phones&SIP/zentrale
 
;ZENTRALE_INTERN=Local/office-isdn@phones&Local/office-dect@phones&Local/packbart@phones&Local/alx@phones&Local/pirx@phones&Local/ali@phones&Local/bayer@phones
 
;ZENTRALE_INTERN=Local/office-isdn@phones&Local/office-dect@phones&Local/packbart@phones&Local/alx@phones&Local/pirx@phones&Local/ali@phones&Local/bayer@phones
; -23 klingelt auch auf -26 und -27:
+
;; -23 (DECT) klingelt auch auf -26 und -27:
ZENTRALE_EXTERN=Local/office-isdn@phones
+
ZENTRALE_EXTERN=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_CHAOSFON=Local/office-isdn@phones&IAX2/packbartvpnhome/801
+
ZENTRALE_CHAOSFON=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones&IAX2/packbartvpnhome/801
ZENTRALE_INTERN=Local/office-isdn@phone
+
ZENTRALE_INTERN=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_INTERN2=Local/office-isdn@phones
+
ZENTRALE_INTERN2=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_MAILBOX=800@default
+
ZENTRALE_MAILBOX=10@chaosfon-voicemail
  
PRESSE=Local/ali@phones
+
;; Presse Hamburg: Ali anrufen
PRESSE2=Local/ali@phones
+
PRESSE=IAX2/alivpnlardass/88177799
;PRESSE2=Local/ali@phones&${ISDN_WALL}/<somewhereelse>
+
;; TODO: evtl. noch Hannes und Rainer anrufen?
 +
PRESSE2=IAX2/alivpnlardass/88177799
 
PRESSE_MAILBOX=601@default
 
PRESSE_MAILBOX=601@default
  
Line 224: Line 227:
  
 
;; ISDN-Kanaele (misdn, ZAP, etc.)
 
;; ISDN-Kanaele (misdn, ZAP, etc.)
 +
;; TODO: Mit dem Hansenet-DSL kommt eine Voice-Flatrate.
 +
;;      Multiport-Karte besorgen und Hansenet fuer
 +
;;      ausgehende Anrufe verwenden
 
ISDN_WALL=misdn/g:wall
 
ISDN_WALL=misdn/g:wall
 
ISDN_INTERNAL=misdn/g:internal1
 
ISDN_INTERNAL=misdn/g:internal1
Line 257: Line 263:
  
 
;; Wir braeuchten ein "include" mit Praefix
 
;; Wir braeuchten ein "include" mit Praefix
;include => extensions
+
;include => extensions,,401801
 
;; oder einen [extensions-wall] Kontext,
 
;; oder einen [extensions-wall] Kontext,
 
;; der alle Durchwahlen mit Praefix enthaelt
 
;; der alle Durchwahlen mit Praefix enthaelt
 
;include => extensions-wall
 
;include => extensions-wall
  
; Dies ist keine schoene Loesung, da sie das Timeout auch fuer
+
;; Dies ist keine schoene Loesung, da sie das Timeout auch fuer
; Blockwahl erzwingt und 3s fuer Handwahl immer noch zu kurz sind
+
;; Blockwahl erzwingt und 3s fuer Handwahl immer noch zu kurz sind
 
exten => _401801X.,1,Set(predigits=${EXTEN:6})
 
exten => _401801X.,1,Set(predigits=${EXTEN:6})
 
exten => _401801X.,n,Goto(timeout-helper-foo,s,1)
 
exten => _401801X.,n,Goto(timeout-helper-foo,s,1)
Line 270: Line 276:
 
exten => s,1,Set(TIMEOUT(digit)=3,TIMEOUT(response)=3)
 
exten => s,1,Set(TIMEOUT(digit)=3,TIMEOUT(response)=3)
 
exten => s,n,WaitExten
 
exten => s,n,WaitExten
exten => _X.,1,GotoIf($["${predigits}${EXTEN}" != ""]?extensions,${predigits}${EXTEN},1:extensions,s,1)
+
exten => t,1,Set(TIMEOUT(digit)=5,TIMEOUT(response)=15)
exten => t,1,GotoIf($["${predigits}" != ""]?extensions,${predigits},1:extensions,s,1)
+
exten => t,n,GotoIf($["${predigits}" != ""]?extensions,${predigits},1:extensions,s,1)
 +
exten => h,1,Hangup
 +
exten => _.,1,Set(TIMEOUT(digit)=5,TIMEOUT(response)=15)
 +
exten => _.,n,GotoIf($["${predigits}${EXTEN}" != ""]?extensions,${predigits}${EXTEN},1:extensions,s,1)
  
  
Line 329: Line 338:
  
 
include => vpn-trunk
 
include => vpn-trunk
;; Die 0 fuer isdn-dialout wird vom vpn-trunk bereits ueberschrieben
+
;; Die 0 fuer isdn-dialout wird vom vpn-trunk bereits ueberschrieben,
 +
;; andere Dialout-Wege sind erreichbar
 
;include => dialout
 
;include => dialout
  
Line 349: Line 359:
 
;; #: Nachwahl fuer NAT-Verbindungen
 
;; #: Nachwahl fuer NAT-Verbindungen
 
exten => #,1,Goto(extensions-interactive,s,1)
 
exten => #,1,Goto(extensions-interactive,s,1)
 +
;; komische Telefone senden # als %23
 +
exten => %23,1,Goto(extensions-interactive,s,1)
  
 
include => catchall
 
include => catchall
Line 410: Line 422:
 
;;
 
;;
  
; * 1
+
;; * 1
 +
 
 +
;; 11* Lockpickerfoo, nicht entfernen
 +
exten => _11!,1,Goto(phones,werkstatt-isdn,1)
 +
 
 +
;; atoth schrieb: Ich will einen Dienst unter +49 (40) 40 1801 1801
 +
;; schalten, weil sich die Nummer gut merkt. Erzähle ich dem Vorstand am 19.5.
 +
exten => 1801,1,NoOp
  
  
  
; * 2
+
;; * 2
  
exten => 23,1,Goto(phones,office-isdn,1)
+
exten => 23,1,Dial(Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones)
 +
;exten => 23,1,Goto(phones,office-isdn,1)
  
 
exten => 26,1,Goto(phones,office-dect,1)
 
exten => 26,1,Goto(phones,office-dect,1)
  
 +
exten => 2701,1,Goto(phones,grandstream-sip,1)
 +
 +
exten => 2702,1,Goto(phones,starcom-sip,1)
  
  
; * 3
 
  
;; alte Voicebox - Nummer aufheben
+
;; * 3
;exten => 31,1,NoOp
 
  
 +
;; alte Voicebox
 +
;; Nummer aufheben, verweist erstmal auf CHAOSFON
 +
exten => 31,1,Goto(phones,chaosfon,1)
  
  
; * 4 Funktionsbereich offizielle Clubnummern
+
 
+
;; * 4 Funktionsbereich offizielle Clubnummern
 +
 
 +
;; CCC e.V. allgemeine Faxnummer (lt. Impressum www.ccc.de)
 
exten => 40,1,SetVar(EMAIL=mail@ccc.de)
 
exten => 40,1,SetVar(EMAIL=mail@ccc.de)
 
exten => 40,n,Goto(mailfax,${EXTEN},1)
 
exten => 40,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Papierfax / CCC e.V. Office (lt. Mitgliedsantrag)
 +
;; TODO: Kopie per Mail (mit [mailfax] annehmen, dann ueber cups ausdrucken)
 
exten => 41,1,Goto(phones,papierfax,1)
 
exten => 41,1,Goto(phones,papierfax,1)
 
;exten => 41,1,SetVar(EMAIL=office@ccc.de)
 
;exten => 41,1,SetVar(EMAIL=office@ccc.de)
 
;exten => 41,n,Goto(mailfax,${EXTEN},1)
 
;exten => 41,n,Goto(mailfax,${EXTEN},1)
  
exten => 42,1,SetVar(EMAIL=mail@ccc.de)
+
;; Erfa Hamburg (lt. Impressum hamburg.ccc.de)
 +
exten => 42,1,SetVar(EMAIL=mail@hamburg.ccc.de)
 
exten => 42,n,Goto(mailfax,${EXTEN},1)
 
exten => 42,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Durchwahl fuer 0700-CHAOSFON
 +
;; TODO: Auf Hansenet-MSN umlegen, 0700-Nummer umstellen
 
exten => 4300,1,Goto(phones,chaosfon,1)
 
exten => 4300,1,Goto(phones,chaosfon,1)
 +
;; Callback-Agent-Login fuer Chaos-Orakel
 +
;; TODO: nochmal nachdenken. b0rken.
 
exten => 43010,1,Goto(phones,chaosfon-login,1)
 
exten => 43010,1,Goto(phones,chaosfon-login,1)
  
 +
;; anonymizer.ccc.de
 +
;; TODO: CallerID setzen
 +
;; (Set(CALLERID) alleine funktioniert irgendwie nicht)
 +
exten => 4500,1,Dial(${ISDN_WALL}/01606622797)
 +
exten => 4500,n,Hangup
 +
 +
;; Presse Hamburg
 
exten => 4601,1,Goto(phones,presse,1)
 
exten => 4601,1,Goto(phones,presse,1)
  
 +
;; Frollein vom Amt
 
exten => 4666,1,Goto(phones,frollein,1)
 
exten => 4666,1,Goto(phones,frollein,1)
  
  
  
; * 5 Funktionsbereich Faxnummern
+
;; * 5 Funktionsbereich Faxnummern
  
 +
;; CCC e.V. allgemein (ist die irgendwo veroeffentlicht?)
 
exten => 50,1,SetVar(EMAIL=mail@hamburg.ccc.de)
 
exten => 50,1,SetVar(EMAIL=mail@hamburg.ccc.de)
 
exten => 50,n,Goto(mailfax,${EXTEN},1)
 
exten => 50,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Zahlstelle
 
exten => 51,1,SetVar(EMAIL=zahlstelle@ccc.de)
 
exten => 51,1,SetVar(EMAIL=zahlstelle@ccc.de)
 
exten => 51,n,Goto(mailfax,${EXTEN},1)
 
exten => 51,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Vorstand
 
exten => 52,1,SetVar(EMAIL=vorstand@ccc.de)
 
exten => 52,1,SetVar(EMAIL=vorstand@ccc.de)
 
exten => 52,n,Goto(mailfax,${EXTEN},1)
 
exten => 52,n,Goto(mailfax,${EXTEN},1)
  
exten => 53,1,SetVar(EMAIL=pressesprecher@ccc.de)
+
;; Pressefax
 +
exten => 53,1,SetVar(EMAIL=presse@ccc.de)
 
exten => 53,n,Goto(mailfax,${EXTEN},1)
 
exten => 53,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Datenschleuder
 
exten => 54,1,SetVar(EMAIL=ds@ccc.de)
 
exten => 54,1,SetVar(EMAIL=ds@ccc.de)
 
exten => 54,n,Goto(mailfax,${EXTEN},1)
 
exten => 54,n,Goto(mailfax,${EXTEN},1)
  
 +
;; anonymizer.ccc.de
 
exten => 55,1,SetVar(EMAIL=anonymizer@ccc.de)
 
exten => 55,1,SetVar(EMAIL=anonymizer@ccc.de)
 
exten => 55,n,Goto(mailfax,${EXTEN},1)
 
exten => 55,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Presse Hamburg
 
exten => 5601,1,SetVar(EMAIL=presse@hamburg.ccc.de)
 
exten => 5601,1,SetVar(EMAIL=presse@hamburg.ccc.de)
 
exten => 5601,n,Goto(mailfax,${EXTEN},1)
 
exten => 5601,n,Goto(mailfax,${EXTEN},1)
  
 +
;; Fax fuers Frollein
 
exten => 5666,1,SetVar(EMAIL=frollein@vermittlung.hamburg.ccc.de)
 
exten => 5666,1,SetVar(EMAIL=frollein@vermittlung.hamburg.ccc.de)
 
exten => 5666,n,Goto(mailfax,${EXTEN},1)
 
exten => 5666,n,Goto(mailfax,${EXTEN},1)
  
 
exten => 57,1,SetVar(EMAIL=packbart@formularfetischisten.de)
 
exten => 57,1,SetVar(EMAIL=packbart@formularfetischisten.de)
exten => 57,n,Goto(mailfax,${EXTEN},1)
+
exten => 57,n,Goto(mailfax_fancy,${EXTEN},1)
  
 
;; TODO: 58xx den Nummern von 8xx anpassen
 
;; TODO: 58xx den Nummern von 8xx anpassen
  
 +
;; bayer
 
exten => 5801,1,SetVar(EMAIL=bayer@hamburg.ccc.de)
 
exten => 5801,1,SetVar(EMAIL=bayer@hamburg.ccc.de)
 
exten => 5801,n,Goto(mailfax,${EXTEN},1)
 
exten => 5801,n,Goto(mailfax,${EXTEN},1)
  
 +
;; haegar
 
exten => 5802,1,SetVar(EMAIL=haegar@ccc.de)
 
exten => 5802,1,SetVar(EMAIL=haegar@ccc.de)
 
exten => 5802,n,Goto(mailfax,${EXTEN},1)
 
exten => 5802,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; astaroth
 +
;exten => 5803,1,SetVar(EMAIL=user@example.invalid)
 +
;exten => 5803,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; nbd
 +
;exten => 5804,1,SetVar(EMAIL=user@example.invalid)
 +
;exten => 5804,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; holger
 +
exten => 5805,1,SetVar(EMAIL=ccc@layer-acht.org)
 +
exten => 5805,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; harzi
 +
exten => 5806,1,SetVar(EMAIL=3paulini@informatik.uni-hamburg.de)
 +
exten => 5806,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; steffen
 +
exten => 5823,1,SetVar(EMAIL=steffen@ccc.de)
 +
exten => 5823,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; alx
 +
exten => 5827,1,SetVar(EMAIL=alx@dd19.de)
 +
exten => 5827,n,Goto(mailfax,${EXTEN},1)
 +
 +
;; packbart
 +
exten => 5828,1,SetVar(EMAIL=packbart@formularfetischisten.de)
 +
exten => 5828,n,Goto(mailfax_fancy,${EXTEN},1)
 +
 +
;; ali
 +
exten => 5877,1,SetVar(EMAIL=ali@hamburg.ccc.de)
 +
exten => 5877,n,Goto(mailfax,${EXTEN},1)
  
  
  
; * 6 Funktionsbereich Voicemail
+
;; * 6 Funktionsbereich Voicemail
  
 
exten => 6000,1,VoiceMailMain()
 
exten => 6000,1,VoiceMailMain()
Line 504: Line 587:
  
  
; * 7 Funktionsbereich Verschiedenes/Spielzeuge
+
;; * 7 Funktionsbereich Verschiedenes/Spielzeuge
  
; ** 71 Konferenz
+
;; ** 71 Konferenz
  
exten => 7100,1,MeetMe(${EXTEN:2})
+
;; 00-09
exten => _711XX,1,MeetMe(${EXTEN:2})
+
exten => _710X,1,MeetMe(${EXTEN:2},cds)
exten => _71NX,1,MeetMe(${EXTEN:2})
+
;; 20-99
 +
exten => _71NX,1,MeetMe(${EXTEN:2},cds)
 +
;; 100-109
 +
exten => _7110X,1,MeetMe(${EXTEN:2},cds)
 +
;; 120-199
 +
exten => _711NX,1,MeetMe(${EXTEN:2},cds)
 +
;; 1100-...
  
  
; ** 7701 Spielzeug: Sascha Ludwigs Labyrinth ueber IAX - klickstu http://www.astrastudio.de/
+
;; ** 7701 Spielzeug: Sascha Ludwigs Labyrinth ueber IAX - klickstu http://www.astrastudio.de/
  
 
exten => 7701,1,Dial(IAX2/home.astrastudio.de/2088@default)
 
exten => 7701,1,Dial(IAX2/home.astrastudio.de/2088@default)
Line 519: Line 608:
  
  
; ** 78 Streams
+
;; ** 78 Streams
  
 +
;; Chaosradio
 +
;; jeden letzten Mittwoch im Monat, 22:00 bis 01:00 Uhr
 +
;; http://www.chaosradio.de/
 +
exten => 7805,1,Answer
 +
exten => 7805,n,Goto(phones,stream-chaosradio,vishnu)
 +
 +
;; Nerds on Air / Radio Orange
 +
;; http://www.clifford.at/noa/
 
exten => 7806,1,Answer
 
exten => 7806,1,Answer
 
exten => 7806,n,Goto(phones,stream-nerdsonair,orange)
 
exten => 7806,n,Goto(phones,stream-nerdsonair,orange)
  
 +
;; C-Radar / Radio Darmstadt
 +
;; 1. Donnerstag im Monat von 23:05 bis 02:00 Uhr
 +
;; http://www.c-radar.de/
 
exten => 7807,1,Answer
 
exten => 7807,1,Answer
 
exten => 7807,n,Goto(phones,stream-cradar,radiodarmstadt)
 
exten => 7807,n,Goto(phones,stream-cradar,radiodarmstadt)
  
  
; ** 7901 Echotest
+
;; ** 7901 Echotest
  
 
exten => 7901,1,Macro(echotest)
 
exten => 7901,1,Macro(echotest)
  
 +
;; ** 7902 Jemand zuhause?
 +
;; Flurlichtschalter an -> AP an -> WLAN-Telefon eingebucht ->
 +
;; jemandzuhause,1,NoOp in sipregistrations existiert
 +
;; Irgendwas mit "exists" waere huebscher
 +
;; TODO: Nochmal nachdenken und etwas weniger fehleranfaelliges bauen
 +
exten => 7902,1,Dial(Local/jemandzuhause@sipregistrations)
 +
exten => 7902,n,Busy
  
 +
;; ** 7903 Fieeeep -
 +
;; TODO: evtl. mwanalyze einbauen
 +
;; http://lists.digium.com/pipermail/asterisk-users/2006-March/142046.html
 +
;; http://planinternet.net/download/voip/asterisk/app_mwanalyze.c
 +
exten => 7903,1,Milliwatt
  
; * 8 Funktionsbereich Mitgliedertelefone
+
 
 +
;; * 8 Funktionsbereich Mitgliedertelefone
  
 
;; Zentrale intern
 
;; Zentrale intern
 
exten => 800,1,Goto(phones,zentrale,intern)
 
exten => 800,1,Goto(phones,zentrale,intern)
 +
 +
;; (Bayer)
 +
;exten => 801,1,NoOp
 +
 +
;; Haegar
 +
exten => 802,1,Goto(phones,haegar,1)
 +
 +
;; Astaroth
 +
exten => 803,1,Goto(phones,astaroth,1)
 +
 +
;; Felix / ndb
 +
exten => 804,1,Goto(phones,nbd,1)
 +
 +
;; Holger
 +
exten => 805,1,Goto(phones,holger,1)
 +
 +
;; Harzi
 +
exten => 806,1,Goto(phones,harzi,1)
 +
 +
;; Steffen
 +
exten => 823,1,Goto(phones,steffen,1)
  
 
;; Alx
 
;; Alx
 
exten => 827,1,Goto(phones,alx,1)
 
exten => 827,1,Goto(phones,alx,1)
  
 +
;; Hauke - Bastelecke
 +
exten => _828,1,Goto(phones,packbart,1)
 +
;; ohne TIMEOUT(digit) tut das nicht ohne Blockwahl:
 +
exten => _828X!,1,Set(SWITCHTO=packbartvpnhome)
 +
exten => _828X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 +
exten => _829!,1,Set(SWITCHTO=packbartvpnhome)
 +
exten => _829!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 +
exten => 892,1,Answer
 +
exten => 892,n,MusicOnHold(chaosmix)
 +
;exten => 892,n,Playback(test)
 +
;exten => 892,1,Dial(IAX2/packbart@openchaos.org)
 +
;exten => 892,1,Dial(SIP/packbart@openchaos.org)
 +
 +
;; (Nochmal Bayer)
 +
;exten => 830,1,Goto(phones,bayer,1)
 +
 +
;debug: Tim (!t_m_)
 +
;exten => 870,1,Dial(SIP/17476300563@proxy01.sipphone.com)
 +
 +
;debug: VT100
 +
;exten => 871,1,Dial(IAX2/193.196.4.70/1001)
 +
;exten => 871,n,Hangup
  
 
;; Ali
 
;; Ali
Line 548: Line 704:
 
exten => _877X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 
exten => _877X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
  
;; Hauke
 
exten => _828,1,Goto(phones,packbart,1)
 
;; ohne TIMEOUT(digit) tut das nicht ohne Blockwahl:
 
exten => _828X!,1,Set(SWITCHTO=packbartvpnhome)
 
exten => _829X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 
exten => 829,1,Answer
 
exten => 829,n,MusicOnHold(chaosmix)
 
;exten => 829,n,Playback(test)
 
;exten => 829,1,Dial(IAX2/packbart@openchaos.org)
 
;exten => 829,1,Dial(SIP/packbart@openchaos.org)
 
exten => _829!,1,Set(SWITCHTO=packbartvpnhome)
 
exten => _829!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 
 
;debug: Tim
 
;exten => 816,1,Dial(SIP/17476300563@proxy01.sipphone.com)
 
  
;; Bayer
 
exten => 830,1,Goto(phones,bayer,1)
 
  
 +
;; * 9 Funktionsbereich Chaos-VPN
 +
;; TODO: Baustellen beseitigen: VPN, IAX, Durchwahlen
  
 +
;; *90: [unbelegt]
 +
;exten => _90!,1,NoOp
  
; * 9 Funktionsbereich Chaos-VPN
+
;; 91*: Erlangen
 +
;; TODO: ans VPN anbinden, IAX2 benutzen, Nibbler nach Dem Plan fragen
 +
exten => _91.,1,Dial(SIP/${EXTEN:2}@voip.nibbler.de)
 +
exten => _91.,n,Hangup
  
 +
;; 92*: Koeln
 
;exten => _92!,1,Set(SWITCHTO=cccc)
 
;exten => _92!,1,Set(SWITCHTO=cccc)
 
;exten => _92!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
;exten => _92!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 +
;; erstmal nur thalunil ueber -92-0
 +
exten => 920,1,Dial(IAX2/thalunilvpn/100)
 +
exten => 920,n,Hangup
  
 +
;; 93*: Berlin
 
;exten => _93!,1,Set(SWITCHTO=cccb)
 
;exten => _93!,1,Set(SWITCHTO=cccb)
 
;exten => _93!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
;exten => _93!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 +
;; Ein SIP-Telefon im oberen Clubraum, bis die Berliner mal in die Gaenge kommen
 +
exten => _93.,1,Dial(SIP/cccb)
 +
exten => _93.,n,Hangup
  
 +
;; 94*: Hamburg
 
;exten => _94!,1,Set(SWITCHTO=ccchh)
 
;exten => _94!,1,Set(SWITCHTO=ccchh)
 
;exten => _94!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
;exten => _94!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
  
 +
;; 95*: [unbelegt]
 +
;exten => _95!,1,NoOp
 +
 +
;; 96*: MetaRheinMain
 +
;; TODO: IAX2 benutzen, Durchwahlen erfragen
 
;exten => _96!,1,Set(SWITCHTO=metarheinmain)
 
;exten => _96!,1,Set(SWITCHTO=metarheinmain)
 
;exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
;exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
Line 585: Line 745:
 
exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_sip,${EXTEN:2},1:tochaos_sip,s,1)
 
exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_sip,${EXTEN:2},1:tochaos_sip,s,1)
  
 +
;; 97*: [unbelegt]
 +
;exten => _97!,1,NoOp
 +
 +
;; 98*: [unbelegt]
 +
;exten => _98!,1,NoOp
 +
 +
;; 991*: Halfway Hacker House, New York
 +
;; http://www.hackerhalfwayhouse.org/
 
;exten => _991!,1,Set(SWITCHTO=hhh)
 
;exten => _991!,1,Set(SWITCHTO=hhh)
 
;exten => _991!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 
;exten => _991!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 +
 +
;; 992*: Das Labor
 +
;; http://www.das-labor.org/
 +
;exten => _992!,1,Set(SWITCHTO=daslabor)
 +
;exten => _992!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 +
;exten => _992,1,Dial(IAX2/roulette.das-labor.org/labor)
 +
exten => _992,1,Dial(SIP/labor@das-labor.org)
 +
  
  
Line 654: Line 830:
 
exten => chaosfon-login,1,AgentCallbackLogin(,,@chaosfon-dialout)
 
exten => chaosfon-login,1,AgentCallbackLogin(,,@chaosfon-dialout)
  
; Voicemail presse@ccc.de
+
;; Voicemail Presse CCC
; Andy moechte per SIP auf die Voicemail weiterleiten koennen
+
;; Andy moechte per SIP auf die Voicemail weiterleiten koennen
;
+
;;
; TODO: - nochmal drueber nachdenken, redundant zum chaosfon-menue
+
;; TODO: - nochmal drueber nachdenken, redundant zum chaosfon-menue
;      -> Macro(chaosfon-voicemail)?
+
;;      -> Macro(chaosfon-voicemail)?
;      - er haette auch gern ne Durchwahl dafuer
+
;;      - er haette auch gern ne Durchwahl dafuer
;
 
 
exten => chaosfon-pressebox,1,Answer
 
exten => chaosfon-pressebox,1,Answer
 
exten => chaosfon-pressebox,n,Playback(chaosfon_vm-intro)
 
exten => chaosfon-pressebox,n,Playback(chaosfon_vm-intro)
Line 683: Line 858:
 
;; Telefone
 
;; Telefone
 
;;
 
;;
 +
 +
;; TODO: MSNs auf der DECT-Anlage angleichen an Durchwahlen
 +
;;      (Werkstatttelefon ist noch 99)
  
 
exten => office-isdn,1,Dial(${ISDN_INTERNAL}/23,,t)
 
exten => office-isdn,1,Dial(${ISDN_INTERNAL}/23,,t)
Line 688: Line 866:
 
exten => office-dect,1,Dial(${ISDN_INTERNAL}/26,,t)
 
exten => office-dect,1,Dial(${ISDN_INTERNAL}/26,,t)
  
exten => office-ml210,1,Dial(SIP/office-ml210,,t)
+
exten => papierfax,1,Dial(${ISDN_INTERNAL}/41,,t)
 +
 
 +
exten => werkstatt-isdn,1,Dial(${ISDN_INTERNAL}/99,,t)
  
exten => papierfax,1,Dial(${ISDN_INTERNAL}/41,,t)
+
exten => grandstream-sip,1,Dial(SIP/ccchhgrandstream,,t)
 +
 
 +
exten => starcom-sip,1,Dial(SIP/ccchhstarcom,,t)
  
  
Line 699: Line 881:
  
 
;; packbart: 45s DECT + daheim + SIP klingen lassen, dann Voicemail
 
;; packbart: 45s DECT + daheim + SIP klingen lassen, dann Voicemail
 
+
;exten => packbart,1,Dial(${ISDN_INTERNAL}/28&IAX2/packbartvpnhome/0&SIP/packbartstarcom,45)
exten => packbart,1,Dial(${ISDN_INTERNAL}/28&IAX2/packbartvpnhome/0&SIP/packbartstarcom,45)
+
exten => packbart,1,Dial(IAX2/packbartvpnhome/0&SIP/packbartstarcom,45)
 
exten => packbart,n,Voicemail(828@default)
 
exten => packbart,n,Voicemail(828@default)
 
exten => packbart,n,Hangup
 
exten => packbart,n,Hangup
Line 707: Line 889:
  
 
;; Alx: 45s DECT, dann Voicemail
 
;; Alx: 45s DECT, dann Voicemail
 
 
exten => alx,1,Dial(${ISDN_INTERNAL}/27,45)
 
exten => alx,1,Dial(${ISDN_INTERNAL}/27,45)
 
exten => alx,n,Voicemail(827@default)
 
exten => alx,n,Voicemail(827@default)
 
exten => alx,n,Hangup
 
exten => alx,n,Hangup
  
;; Ali: 45s daheim + SIP klingen lassen, dann Voicemail
+
;; Ali: 45s daheim klingen lassen, dann Voicemail
 
+
exten => ali,1,Dial(IAX2/alivpnlardass/88177799,45)
exten => ali,1,Dial(IAX2/alivpnlardass/88177799)
 
;exten => ali,1,Dial(IAX2/alivpnlardass/88177799&SIP/ali,45)
 
 
exten => ali,n,Voicemail(877@default)
 
exten => ali,n,Voicemail(877@default)
 
exten => ali,n,Hangup
 
exten => ali,n,Hangup
  
 
;; Bayer:
 
;; Bayer:
 
 
;exten => bayer,1,NoOp
 
;exten => bayer,1,NoOp
 
;exten => bayer,n,Hangup
 
;exten => bayer,n,Hangup
 +
 +
;; Steffen: daheim (ISDN)
 +
exten => steffen,1,Dial(${ISDN_WALL}/464440)
 +
exten => steffen,n,Hangup
 +
 +
;; Haegar: SIP
 +
exten => haegar,1,Dial(SIP/haegar)
 +
exten => haegar,n,Hangup
 +
 +
;; Astaroth
 +
exten => astaroth,1,NoOp
 +
exten => astaroth,n,Hangup
 +
 +
;; nbd: SIP
 +
exten => nbd,1,Dial(SIP/nbd)
 +
exten => nbd,n,Hangup
 +
 +
;; Holger: SIP
 +
exten => holger,1,Dial(SIP/holger)
 +
exten => holger,n,Hangup
  
  
Line 730: Line 928:
 
;;
 
;;
  
;exten => stream-chaosradio,1,Answer
+
;; Voicemail abfragen
;exten => stream-chaosradio,n(vishnu),MP3Player(http://vishnu.netfilter.org:2342/chaosradio-lq.mp3)
+
exten => voicemail,1,VoiceMailMain
;exten => stream-chaosradio,n,Hangup
+
exten => voicemail,n,Hangup
 +
 
 +
exten => voicemail-chaosfon,1,VoiceMailMain(@chaosfon-voicemail)
 +
exten => voicemail-chaosfon,n,Hangup
 +
 
 +
;; Voicemail abfragen
 +
;; insecoor: Test fuer den Knopf am Grandstream
 +
;exten => voicemailzenelatr,1,VoiceMailMain(s${ZENTRALE_MAILBOX})
 +
;exten => voicemailzenelatr,n,Hangup
 +
 
 +
exten => stream-chaosradio,1,Answer
 +
exten => stream-chaosradio,n(vishnu),MP3Player(http://vishnu.netfilter.org:2342/chaosradio-lq.mp3)
 +
exten => stream-chaosradio,n,Hangup
  
 
exten => stream-nerdsonair,1,Answer
 
exten => stream-nerdsonair,1,Answer
Line 752: Line 962:
 
;;
 
;;
  
exten => freifunken,1,MeetMe(1201,cds)
+
exten => openwrt,1,MeetMe(04,cds)
exten => freifunken,n,Playback(vm-goodbye)
+
exten => openwrt,n,Playback(vm-goodbye)
exten => freifunken,n,Hangup
+
exten => openwrt,n,Hangup
  
  
Line 774: Line 984:
  
 
;; Dialout via ISDN
 
;; Dialout via ISDN
 +
;; TODO: Hansenet/Telekom evtl. schon hier unterscheiden
 
exten => _0!,1,GotoIf($["${EXTEN:1}" != ""]?dialout-isdn,${EXTEN:1},1:dialout-isdn,s,1)
 
exten => _0!,1,GotoIf($["${EXTEN:1}" != ""]?dialout-isdn,${EXTEN:1},1:dialout-isdn,s,1)
  
Line 781: Line 992:
 
;; Dialout via FreeWorldDialup
 
;; Dialout via FreeWorldDialup
 
exten => _14!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-iaxfwd,${EXTEN:2},1:dialout-iaxfwd,s,1)
 
exten => _14!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-iaxfwd,${EXTEN:2},1:dialout-iaxfwd,s,1)
 +
 +
;; Dialout mit ENUM-Lookup
 +
;exten => _15!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-enum,${EXTEN:2},1:dialout-enum,s,1)
  
  
Line 787: Line 1,001:
 
;;
 
;;
 
;; ${ISDN_WALL}
 
;; ${ISDN_WALL}
;; TODO: - Priorisierung: Wenn alle Kanaele belegt
+
;; TODO: - Rauswahl ueber Hansenet-Flat fuer allg. Anrufe
 +
;;      - Rauswahl ueber Telekom (wg. Rufnummer) fuer "offizielle" Anrufe
 +
;;      - evtl. Kostenstelle abfragen (privat/Erfa/e.V.)
 +
;;      - Priorisierung: Wenn alle Kanaele belegt
 
;;        sind und einer davon CHAOSFON oder vpn-dialout:
 
;;        sind und einer davon CHAOSFON oder vpn-dialout:
 
;;        Abwerfen mit $Taste
 
;;        Abwerfen mit $Taste
Line 864: Line 1,081:
  
 
include => catchall
 
include => catchall
 +
 +
 +
 +
[dialout-enum]
 +
;;
 +
;; ENUM-Lookup
 +
;; TODO: nachdenken. B0rken, Baustelle, Brauchen wir sowas?
 +
;;
 +
;exten => s,1,Set(TIMEOUT(digit)=3)
 +
;;exten => s,n,PlayTones(dialout)
 +
;exten => s,n,WaitExten
 +
 +
;exten => _X.,1,EnumLookup(${EXTEN})
 +
;exten => _X.,2,Dial(${ENUM}) ;; lookup was successful
 +
;exten => _X.,3,Congestion
 +
;exten => _X.,52,Goto(dialout-isdn,${ENUM},1) ;; got a TEL record, so forward
 +
;exten => _X.,102,Congestion ;; lookup failed
 +
 +
;include => catchall
  
  
Line 903: Line 1,139:
 
;;
 
;;
 
;;
 
;;
 +
 +
;; TODO: - thalunil will noch neue Ansagen schicken
 +
;;      - Kassel integrieren
  
 
[chaosfon-menue]
 
[chaosfon-menue]
Line 912: Line 1,151:
 
;; s: Intro und Menue
 
;; s: Intro und Menue
 
;;
 
;;
exten => s,1,Answer
+
exten => s,1,Set(TIMEOUT(digit)=3,TIMEOUT(response)=15)
 +
exten => s,n,Answer
 
exten => s,n,Background(silence/1)
 
exten => s,n,Background(silence/1)
 
exten => s,n,Background(chaosfon_menue_intro)
 
exten => s,n,Background(chaosfon_menue_intro)
Line 1,078: Line 1,318:
 
exten => 19,1,Macro(chaosfon-call,19,wien,Wien)
 
exten => 19,1,Macro(chaosfon-call,19,wien,Wien)
  
;exten => 99,1,Macro(chaosfon-call,00,test,Test)
+
;; noch ein lahmes Ei
 +
exten => 23,1,Playback(chaosfon_dialout2)
 +
exten => 23,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON Steffen)
 +
exten => 23,n,Dial(Local/steffen@phones,,htm(chaosmix))
 +
 
 +
exten => 99,1,Macro(chaosfon-call,00,test,Test)
  
  
Line 1,126: Line 1,371:
  
 
[macro-chaosfon-queue]
 
[macro-chaosfon-queue]
 +
;;
 +
;; TODO: zum Laufen bringen, tut noch nicht richtig
 
;;
 
;;
 
;; - keine eigene Ansage
 
;; - keine eigene Ansage
Line 1,187: Line 1,434:
  
  
;; Anrufkette Hamburg: Anrufkette in [phones] definiert
+
;; Anrufkette Hamburg: in [phones] definiert
 
exten => hamburg,1,Goto(phones,zentrale,chaosfon)
 
exten => hamburg,1,Goto(phones,zentrale,chaosfon)
  
;; Anrufkette Berlin: Tim anrufen (Vorsicht: eigene Voicebox!)
+
;; Anrufkette Berlin: Grandstream im Clubraum klingen lassen
;exten => berlin,1,Dial(SIP/17476300563@proxy01.sipphone.com,20)
+
;; TODO: nach VPN-Anbindung evtl. umstellen
;exten => berlin,1,Dial(IAX2/cccb/fnord)
+
exten => berlin,1,Dial(SIP/cccb)
;exten => berlin,n,Hangup
+
exten => berlin,n,Hangup
  
 
;; Anrufkette Koeln: thalunil anrufen
 
;; Anrufkette Koeln: thalunil anrufen
exten => koeln,1,Dial(IAX2/home.kallisti.de/100)
+
exten => koeln,1,Dial(IAX2/thalunilvpn/100)
;exten => koeln,1,Dial(IAX2/thalunilvpn/100)
 
;exten => koeln,1,Dial(IAX2/cccc/fnord)
 
 
exten => koeln,n,Hangup
 
exten => koeln,n,Hangup
  
Line 1,207: Line 1,452:
 
exten => dresden,n,Hangup
 
exten => dresden,n,Hangup
  
exten => erlangen,1,NoOp
+
;; Anrufkette Erlangen: Irgendwas bei Nibbler anrufen
 +
;; TODO: - Nibbler fragen, was dort stehen soll
 +
;;      - Nach VPN-Anbindung umstellen
 +
exten => erlangen,1,Dial(SIP/0@voip.nibbler.de)
 
exten => erlangen,n,Hangup
 
exten => erlangen,n,Hangup
  
Line 1,290: Line 1,538:
 
exten => _X.,n,rxfax(${FAXFILE}.tif)
 
exten => _X.,n,rxfax(${FAXFILE}.tif)
  
exten => h,1,system(/usr/local/bin/mailfax_fancy ${FAXFILE} ${EMAIL} ${CALLERIDNUM} ${CALLEDFAX})
+
exten => h,1,system(/usr/local/bin/mailfax_fancy "${FAXFILE}" "${EMAIL}" "${CALLERIDNUM}" "${CALLEDFAX}")
  
 
include => catchall
 
include => catchall
Line 1,310: Line 1,558:
 
exten => t,1,PlayTones(!950/330,!1400/330,!1800/330,0)
 
exten => t,1,PlayTones(!950/330,!1400/330,!1800/330,0)
 
exten => t,n,Hangup
 
exten => t,n,Hangup
 +
 +
 +
 +
[default]
 +
;;
 +
;; leerer Context
 +
;;
 +
include => catchall
  
  
Line 1,334: Line 1,590:
  
 
;exten => _X.,1,Set(CALLERID(name)=CCCHH,CALLERID(number)=940)
 
;exten => _X.,1,Set(CALLERID(name)=CCCHH,CALLERID(number)=940)
exten => _X.,1,Dial(SIP/${SWITCHTO}/${EXTEN},,T)
+
exten => _.,1,Dial(SIP/${SWITCHTO}/${EXTEN},,T)
  
  
Line 1,361: Line 1,617:
 
[switch_thalunilvpn]
 
[switch_thalunilvpn]
 
switch => IAX2/ccchh:[ccchh]@thalunilvpn
 
switch => IAX2/ccchh:[ccchh]@thalunilvpn
 +
 +
 +
 +
[sipregistrations]
 +
 +
exten => jemandzuhause,2,Ringing
 +
exten => jemandzuhause,n,Wait(30)
 +
exten => jemandzuhause,n,Hangup
 +
 +
include => catchall
 
</pre>
 
</pre>
  

Revision as of 19:49, 5 June 2006

Hilfreiche Doku

Asterisk und misdn unter Debian

Software, Treiber

  • Debian Stable/Sarge, mit Addons von Haegar/debian.sdinet.de
  • Linux 2.6.15 aus Haegars Tree (svn, 2.6.15.1+ubuntu+sdinet6)
  • misdn-Treiber so wie im Kernel vorhanden

misdn Konfiguration

/etc/misdn_init.conf

#
# Configuration file for your misdn hardware
#
# Usage: /etc/init.d/misdn-init start|stop|restart|config|scan|help
#

#
# Card Settings
#

card=1,hfcpci
card=2,hfcpci

#
# Port settings
#
# Syntax: <port_type>=<port_number>[,<port_number>...]
#
#    <port_type>    te_ptp   - TE-Mode, PTP
#                   te_ptmp  - TE-Mode, PTMP
#                   nt_ptp   - NT-Mode, PTP
#                   nt_ptmp  - NT-Mode, PTMP
#    <port_number>  port that should be considered
#

# Karte 1 (unten) extern = PTP, TE-Modus
te_ptp=1
# Karte 2 (oben) intern = PTMP, NT-Modus
nt_ptmp=2

#
# Port Options
#

# keine ...

/etc/asterisk/misdn.conf

[general]
debug=4
method=standard
tracefile=/var/log/misdn.trace
appnd_digits2exten=yes
bridging=no

[default]
context=pbx-trunk
language=de
nationalprefix=0
internationalprefix=00
rxgain=0
txgain=0
dialplan=0

; interner ISDN-Bus (PTMP = Mehrgeraeteanschluss)
[internal1]
context=pbx-trunk
ports=2
msn=*

; externer ISDN-Bus (PTP = Anlagenanschluss)
[wall]
context=wall-trunk
ports=1
msn=*

Nebenstellenfreizeichen mit misdn

Das von chan_misdn erzeugte Freizeichen ist in isdn_lib.c hardkodiert. Ich habe folgenden Patch geschrieben, der ein Nebenstellenfreizeichen (drei kurze Töne, Pause) erzeugt. -- packbart 16:27, 20 Feb 2006 (CET)

Dieser Patch ist für misdn 0.2.x.
misdn 0.3.x benutzt den "dial"-Ton aus der indications.conf. Für das Nebenstellenfreizeichen habe ich den Ton folgendermassen geändert:

dial = 425/200,0/200,425/200,0/200,425/200,0/900
dialout = 425

-- packbart 12:48, 26 Mar 2006 (CEST)


--- isdn_lib.c  2005-12-02 16:15:56.000000000 +0100
+++ isdn_lib.c  2006-02-15 04:07:51.000000000 +0100
@@ -148,6 +148,13 @@
 #define TONE_BUSY_CNT 20 /*  ? */
 #define TONE_BUSY_SILENCE_CNT 48 /*  ? */
 
+#define TONE_DIAL_CNT 7
+#define TONE_DIAL_SILENCE_CNT 14
+#define TONE_DIAL_CNT2 21
+#define TONE_DIAL_SILENCE_CNT2 28
+#define TONE_DIAL_CNT3 35
+#define TONE_DIAL_SILENCE_CNT3 77
+
 static int  entity;
 static struct misdn_lib *glob_mgr;
@@ -1800,17 +1807,23 @@
 
        switch(bc->tone) {
        case TONE_DIAL:
-       {
-               frm->len = TONE_425_SIZE;
-               memcpy(&buf[mISDN_HEADER_LEN], tone_425_flip,TONE_425_SIZE);
-      
-               r=mISDN_write(stack->midev, buf, frm->len + mISDN_HEADER_LEN, TIMEOUT_1SEC);
-               if (r<frm->len) {
-                       perror("Error written less than told bytes :(\n");
+               bc->tone_cnt2++;
+    
+               if ((bc->tone_cnt2 <= TONE_DIAL_CNT) || (bc->tone_cnt2 > TONE_DIAL_SILENCE_CNT && bc->tone_cnt2 <= TONE_DIAL_CNT2) || (bc->tone_cnt2 > TONE_DIAL_SILENCE_CNT2 && bc->tone_cnt2 <= TONE_DIAL_CNT3)) {
+                       frm->len = TONE_425_SIZE;
+                       memcpy(&buf[mISDN_HEADER_LEN], tone_425_flip,TONE_425_SIZE);
+                       r=mISDN_write(stack->midev, buf, frm->len + mISDN_HEADER_LEN, TIMEOUT_1SEC);
+                       if (r<frm->len) {
+                               perror("Error written less than told bytes :(\n");
+                       }
+               } else if ((bc->tone_cnt2 <= TONE_DIAL_SILENCE_CNT) || (bc->tone_cnt2 > TONE_DIAL_CNT2 && bc->tone_cnt2 <= TONE_DIAL_SILENCE_CNT2) || (bc->tone_cnt2 > TONE_DIAL_CNT3 && bc->tone_cnt2 <= TONE_DIAL_SILENCE_CNT3)) {
+                       frm->len = TONE_SILENCE_SIZE;
+                       memcpy(&buf[mISDN_HEADER_LEN], tone_silence_flip ,TONE_SILENCE_SIZE);
+                       r=mISDN_write(stack->midev, buf, frm->len + mISDN_HEADER_LEN, TIMEOUT_1SEC);
+               } else {
+                       bc->tone_cnt2=-1;
                }
-       }
-       break;-
+               break;
        case TONE_ALERTING:
                bc->tone_cnt2++;
 

Asterisk Konfiguration

/etc/asterisk/extensions.conf

;;
;; vermittlung.hamburg.ccc.de
;; $Id$
;;
;;
;; TODO:
;;   - MeetMe funktioniert nur mit Zaptel-Timer
;;     - ztdummy installiert: kernel laedt aber noch genrtc, braucht rtc
;;   - Voicemail richten
;;   - stdexten Macro und/oder ISDN_* Variablen benutzen
;;   - chaosfon-dialout einrichten
;;   - Verbindungen ueber das VPN ausbauen
;;     - MetaRheinMain auf IAX umstellen
;;       (Vorteil: Rufnummernuebermittlung, Dialplan-Flexibilitaet, $Dinge)
;;     - HHH anbinden
;;     - thalunil hat eine Voice-Flatrate
;;     - wir haben auch bald eine Flatrate
;;       - Multiport-Karte besorgen und einrichten
;;   - Angriffsvektoren aufspueren, loesen & erlaeutern
;;     - wer von wo wohin
;;     - Loops ueber VPN
;;     - den pbx-trunk duerfen nur interne Telefone erreichen
;;   - lose Enden finden & beheben (Goto, Dial, Voicemail...)
;;   - TODOs erledigen
;;   - Alle Durchwahlen testen
;;   - Das DIALOUTPW aendern und aus dem Wiki nehmen
;;



[general]
;;
;; http://www.voip-info.org/wiki/index.php?page=Asterisk+Dialplan+General
;;

static=yes
writeprotect=yes
autofallthrough=yes
clearglobalvars=yes
priorityjumping=no



[globals]
;;
;; http://www.voip-info.org/wiki/index.php?page=Asterisk+Dialplan+Globals
;;

;; Gruppenrufe
;; TODO: sinnvolle Anrufketten einrichten
;;
;; Folgendes funktioniert nicht ganz, da wir intern nur 2 B-Kanaele haben
;; Wir koennten auf der DECT-Anlage einen Gruppenruf einrichten
;ZENTRALE_EXTERN=Local/office-isdn@phones&Local/office-dect@phones&SIP/zentrale
;ZENTRALE_INTERN=Local/office-isdn@phones&Local/office-dect@phones&Local/packbart@phones&Local/alx@phones&Local/pirx@phones&Local/ali@phones&Local/bayer@phones
;; -23 (DECT) klingelt auch auf -26 und -27:
ZENTRALE_EXTERN=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_CHAOSFON=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones&IAX2/packbartvpnhome/801
ZENTRALE_INTERN=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_INTERN2=Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones
ZENTRALE_MAILBOX=10@chaosfon-voicemail

;; Presse Hamburg: Ali anrufen
PRESSE=IAX2/alivpnlardass/88177799
;; TODO: evtl. noch Hannes und Rainer anrufen?
PRESSE2=IAX2/alivpnlardass/88177799
PRESSE_MAILBOX=601@default

;KASSE=Local/bayer@phones


;; FreeWorldDialup Account
FWDNUMBER=714542
FWDCIDNAME=ccchh


;; Passwort fuer Amtsholung aus dem VPN
DIALOUTPW=2423


;; ISDN-Kanaele (misdn, ZAP, etc.)
;; TODO: Mit dem Hansenet-DSL kommt eine Voice-Flatrate.
;;       Multiport-Karte besorgen und Hansenet fuer
;;       ausgehende Anrufe verwenden
ISDN_WALL=misdn/g:wall
ISDN_INTERNAL=misdn/g:internal1






;;
;; Eingehende Verbindungen
;;



[wall-trunk]
;;
;; Anrufe von aussen
;; 

include => catchall

exten => 4018010,1,Goto(phones,zentrale,extern)

;; Zentrale ueber -800 abfangen
;exten => 401801800,1,Goto(phones,zentrale,extern)

;; Wir haben hier noch ein Problem:
;; Rufe kommen erst an der Anlage an, wenn 401801X gewaehlt wurde und
;; erreichen niemals die s Extension. Bei langsam waehlenden Telefonen
;; springt das Goto zu kurz.
;exten => _401801!,1,GotoIf($["${EXTEN:6}" != ""]?extensions,${EXTEN:6},1:extensions,s,1)

;; Wir braeuchten ein "include" mit Praefix
;include => extensions,,401801
;; oder einen [extensions-wall] Kontext,
;; der alle Durchwahlen mit Praefix enthaelt
;include => extensions-wall

;; Dies ist keine schoene Loesung, da sie das Timeout auch fuer
;; Blockwahl erzwingt und 3s fuer Handwahl immer noch zu kurz sind
exten => _401801X.,1,Set(predigits=${EXTEN:6})
exten => _401801X.,n,Goto(timeout-helper-foo,s,1)

[timeout-helper-foo]
exten => s,1,Set(TIMEOUT(digit)=3,TIMEOUT(response)=3)
exten => s,n,WaitExten
exten => t,1,Set(TIMEOUT(digit)=5,TIMEOUT(response)=15)
exten => t,n,GotoIf($["${predigits}" != ""]?extensions,${predigits},1:extensions,s,1)
exten => h,1,Hangup
exten => _.,1,Set(TIMEOUT(digit)=5,TIMEOUT(response)=15)
exten => _.,n,GotoIf($["${predigits}${EXTEN}" != ""]?extensions,${predigits}${EXTEN},1:extensions,s,1)



[pbx-trunk]
;;
;; Anrufe von innen
;;

include => catchall
include => dialout
include => extensions



[vpn-trunk]
;;
;; Anrufe aus dem VPN
;; ohne Dialout
;;

;; Klappt leider nicht so, wie es soll und verschluckt
;; manchmal eine Ziffer:
;exten => s,1,Background(chaosvpn_hamburg_willkommen)
exten => s,1,NoOp

exten => i,1,Answer
exten => i,n,Playback(chaosvpn_hamburg_hamwanich)
exten => i,n,PlayTones(info)
exten => i,n,Hangup

exten => 0,1,Goto(phones,zentrale,intern)

exten => zentrale,1,Goto(phones,zentrale,intern)

include => catchall
include => extensions

;; TODO: Einen [named-extensions] o.ae. ([extensions-named?]) context anlegen, um
;; genauer definieren zu koennen, welche Namen erreichbar sind.
;;
;; Alle Namen aus [phones] sind erreichbar
include => phones



[vpn-trunk-dialout]
;;
;; Anrufe aus dem VPN
;; mit Dialout
;;

;; Dialout via ISDN
;; TODO: 110 + 112 + die ueblichen Verdaechtigen sperren
;exten => _10!,1,Authenticate(${DIALOUTPW})
;exten => _10!,n,GotoIf($["${EXTEN:2}" != ""]?dialout-isdn,${EXTEN:2},1:dialout-isdn,s,1)

include => vpn-trunk
;; Die 0 fuer isdn-dialout wird vom vpn-trunk bereits ueberschrieben,
;; andere Dialout-Wege sind erreichbar
;include => dialout



[sip-trunk]
;;
;; Anrufe an SIP/irgendwer@hamburg.ccc.de
;; ohne Dialout
;;

exten => i,1,Answer
exten => i,n,Playback(chaosvpn_hamburg_hamwanich)
exten => i,n,PlayTones(info)
exten => i,n,Hangup

exten => 0,1,Goto(phones,zentrale,extern)

;; #: Nachwahl fuer NAT-Verbindungen
exten => #,1,Goto(extensions-interactive,s,1)
;; komische Telefone senden # als %23
exten => %23,1,Goto(extensions-interactive,s,1)

include => catchall
include => extensions

;; TODO: Einen [named-extensions] o.ae. context anlegen, um
;; genauer definieren zu koennen, welche Namen erreichbar sind.
;;
;; Alle Namen aus [phones] sind erreichbar
include => phones



[fromiaxfwd]
;;
;; Eingehender Anruf ueber FreeWorldDialup
;;

exten => ${FWDNUMBER},1,Goto(phones,zentrale,extern)

include => catchall



[guest]
;;
;; Eingehende IAX-Verbindungen unbekannter Peers
;;

exten => i,1,Answer
exten => i,n,Playback(chaosvpn_hamburg_hamwanich)
exten => i,n,PlayTones(info)
exten => i,n,Hangup

exten => 0,1,Goto(phones,zentrale,extern)

include => catchall
include => extensions

;; TODO: Einen [named-extensions] o.ae. context anlegen, um
;; genauer definieren zu koennen, welche Namen erreichbar sind.
;;
;; Alle Namen aus [phones] sind erreichbar
include => phones






;;
;;
;;



[extensions]
;;
;; allgemeine Durchwahlen. Von aussen, innen und uebers Internet/VPN erreichbar
;; http://wiki.hamburg.ccc.de/index.php/VOIP:Durchwahlen
;;

;; * 1

;; 11* Lockpickerfoo, nicht entfernen
exten => _11!,1,Goto(phones,werkstatt-isdn,1)

;; atoth schrieb: Ich will einen Dienst unter +49 (40) 40 1801 1801
;; schalten, weil sich die Nummer gut merkt. Erzähle ich dem Vorstand am 19.5.
exten => 1801,1,NoOp



;; * 2

exten => 23,1,Dial(Local/office-isdn@phones&Local/grandstream-sip@phones&Local/starcom-sip@phones)
;exten => 23,1,Goto(phones,office-isdn,1)

exten => 26,1,Goto(phones,office-dect,1)

exten => 2701,1,Goto(phones,grandstream-sip,1)

exten => 2702,1,Goto(phones,starcom-sip,1)



;; * 3

;; alte Voicebox
;; Nummer aufheben, verweist erstmal auf CHAOSFON
exten => 31,1,Goto(phones,chaosfon,1)



;; * 4 Funktionsbereich offizielle Clubnummern

;; CCC e.V. allgemeine Faxnummer (lt. Impressum www.ccc.de)
exten => 40,1,SetVar(EMAIL=mail@ccc.de)
exten => 40,n,Goto(mailfax,${EXTEN},1)

;; Papierfax / CCC e.V. Office (lt. Mitgliedsantrag)
;; TODO: Kopie per Mail (mit [mailfax] annehmen, dann ueber cups ausdrucken)
exten => 41,1,Goto(phones,papierfax,1)
;exten => 41,1,SetVar(EMAIL=office@ccc.de)
;exten => 41,n,Goto(mailfax,${EXTEN},1)

;; Erfa Hamburg (lt. Impressum hamburg.ccc.de)
exten => 42,1,SetVar(EMAIL=mail@hamburg.ccc.de)
exten => 42,n,Goto(mailfax,${EXTEN},1)

;; Durchwahl fuer 0700-CHAOSFON
;; TODO: Auf Hansenet-MSN umlegen, 0700-Nummer umstellen
exten => 4300,1,Goto(phones,chaosfon,1)
;; Callback-Agent-Login fuer Chaos-Orakel
;; TODO: nochmal nachdenken. b0rken.
exten => 43010,1,Goto(phones,chaosfon-login,1)

;; anonymizer.ccc.de
;; TODO: CallerID setzen
;; (Set(CALLERID) alleine funktioniert irgendwie nicht)
exten => 4500,1,Dial(${ISDN_WALL}/01606622797)
exten => 4500,n,Hangup

;; Presse Hamburg
exten => 4601,1,Goto(phones,presse,1)

;; Frollein vom Amt
exten => 4666,1,Goto(phones,frollein,1)



;; * 5 Funktionsbereich Faxnummern

;; CCC e.V. allgemein (ist die irgendwo veroeffentlicht?)
exten => 50,1,SetVar(EMAIL=mail@hamburg.ccc.de)
exten => 50,n,Goto(mailfax,${EXTEN},1)

;; Zahlstelle
exten => 51,1,SetVar(EMAIL=zahlstelle@ccc.de)
exten => 51,n,Goto(mailfax,${EXTEN},1)

;; Vorstand
exten => 52,1,SetVar(EMAIL=vorstand@ccc.de)
exten => 52,n,Goto(mailfax,${EXTEN},1)

;; Pressefax
exten => 53,1,SetVar(EMAIL=presse@ccc.de)
exten => 53,n,Goto(mailfax,${EXTEN},1)

;; Datenschleuder
exten => 54,1,SetVar(EMAIL=ds@ccc.de)
exten => 54,n,Goto(mailfax,${EXTEN},1)

;; anonymizer.ccc.de
exten => 55,1,SetVar(EMAIL=anonymizer@ccc.de)
exten => 55,n,Goto(mailfax,${EXTEN},1)

;; Presse Hamburg
exten => 5601,1,SetVar(EMAIL=presse@hamburg.ccc.de)
exten => 5601,n,Goto(mailfax,${EXTEN},1)

;; Fax fuers Frollein
exten => 5666,1,SetVar(EMAIL=frollein@vermittlung.hamburg.ccc.de)
exten => 5666,n,Goto(mailfax,${EXTEN},1)

exten => 57,1,SetVar(EMAIL=packbart@formularfetischisten.de)
exten => 57,n,Goto(mailfax_fancy,${EXTEN},1)

;; TODO: 58xx den Nummern von 8xx anpassen

;; bayer
exten => 5801,1,SetVar(EMAIL=bayer@hamburg.ccc.de)
exten => 5801,n,Goto(mailfax,${EXTEN},1)

;; haegar
exten => 5802,1,SetVar(EMAIL=haegar@ccc.de)
exten => 5802,n,Goto(mailfax,${EXTEN},1)

;; astaroth
;exten => 5803,1,SetVar(EMAIL=user@example.invalid)
;exten => 5803,n,Goto(mailfax,${EXTEN},1)

;; nbd
;exten => 5804,1,SetVar(EMAIL=user@example.invalid)
;exten => 5804,n,Goto(mailfax,${EXTEN},1)

;; holger
exten => 5805,1,SetVar(EMAIL=ccc@layer-acht.org)
exten => 5805,n,Goto(mailfax,${EXTEN},1)

;; harzi
exten => 5806,1,SetVar(EMAIL=3paulini@informatik.uni-hamburg.de)
exten => 5806,n,Goto(mailfax,${EXTEN},1)

;; steffen
exten => 5823,1,SetVar(EMAIL=steffen@ccc.de)
exten => 5823,n,Goto(mailfax,${EXTEN},1)

;; alx
exten => 5827,1,SetVar(EMAIL=alx@dd19.de)
exten => 5827,n,Goto(mailfax,${EXTEN},1)

;; packbart
exten => 5828,1,SetVar(EMAIL=packbart@formularfetischisten.de)
exten => 5828,n,Goto(mailfax_fancy,${EXTEN},1)

;; ali
exten => 5877,1,SetVar(EMAIL=ali@hamburg.ccc.de)
exten => 5877,n,Goto(mailfax,${EXTEN},1)



;; * 6 Funktionsbereich Voicemail

exten => 6000,1,VoiceMailMain()
exten => 6000,n,Hangup()

;; 61XXX fuer Erweiterungen?

;; TODO: 68XX den Nummern von 8xx anpassen
;; (827 -> alx, 828 -> packbart, etc.)

exten => _6NXX,1,Voicemail(${EXTEN:1}@default)
exten => _6NXX,n,Hangup()



;; * 7 Funktionsbereich Verschiedenes/Spielzeuge

;; ** 71 Konferenz

;; 00-09
exten => _710X,1,MeetMe(${EXTEN:2},cds)
;; 20-99
exten => _71NX,1,MeetMe(${EXTEN:2},cds)
;; 100-109
exten => _7110X,1,MeetMe(${EXTEN:2},cds)
;; 120-199
exten => _711NX,1,MeetMe(${EXTEN:2},cds)
;; 1100-...


;; ** 7701 Spielzeug: Sascha Ludwigs Labyrinth ueber IAX - klickstu http://www.astrastudio.de/

exten => 7701,1,Dial(IAX2/home.astrastudio.de/2088@default)
exten => 7701,2,Hangup


;; ** 78 Streams

;; Chaosradio
;; jeden letzten Mittwoch im Monat, 22:00 bis 01:00 Uhr
;; http://www.chaosradio.de/
exten => 7805,1,Answer
exten => 7805,n,Goto(phones,stream-chaosradio,vishnu)

;; Nerds on Air / Radio Orange
;; http://www.clifford.at/noa/
exten => 7806,1,Answer
exten => 7806,n,Goto(phones,stream-nerdsonair,orange)

;; C-Radar / Radio Darmstadt
;; 1. Donnerstag im Monat von 23:05 bis 02:00 Uhr
;; http://www.c-radar.de/
exten => 7807,1,Answer
exten => 7807,n,Goto(phones,stream-cradar,radiodarmstadt)


;; ** 7901 Echotest

exten => 7901,1,Macro(echotest)

;; ** 7902 Jemand zuhause?
;; Flurlichtschalter an -> AP an -> WLAN-Telefon eingebucht ->
;; jemandzuhause,1,NoOp in sipregistrations existiert
;; Irgendwas mit "exists" waere huebscher
;; TODO: Nochmal nachdenken und etwas weniger fehleranfaelliges bauen
exten => 7902,1,Dial(Local/jemandzuhause@sipregistrations)
exten => 7902,n,Busy

;; ** 7903 Fieeeep - 
;; TODO: evtl. mwanalyze einbauen
;; http://lists.digium.com/pipermail/asterisk-users/2006-March/142046.html
;; http://planinternet.net/download/voip/asterisk/app_mwanalyze.c
exten => 7903,1,Milliwatt


;; * 8 Funktionsbereich Mitgliedertelefone

;; Zentrale intern
exten => 800,1,Goto(phones,zentrale,intern)

;; (Bayer)
;exten => 801,1,NoOp

;; Haegar
exten => 802,1,Goto(phones,haegar,1)

;; Astaroth
exten => 803,1,Goto(phones,astaroth,1)

;; Felix / ndb
exten => 804,1,Goto(phones,nbd,1)

;; Holger
exten => 805,1,Goto(phones,holger,1)

;; Harzi
exten => 806,1,Goto(phones,harzi,1)

;; Steffen
exten => 823,1,Goto(phones,steffen,1)

;; Alx
exten => 827,1,Goto(phones,alx,1)

;; Hauke - Bastelecke
exten => _828,1,Goto(phones,packbart,1)
;; ohne TIMEOUT(digit) tut das nicht ohne Blockwahl:
exten => _828X!,1,Set(SWITCHTO=packbartvpnhome)
exten => _828X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
exten => _829!,1,Set(SWITCHTO=packbartvpnhome)
exten => _829!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
exten => 892,1,Answer
exten => 892,n,MusicOnHold(chaosmix)
;exten => 892,n,Playback(test)
;exten => 892,1,Dial(IAX2/packbart@openchaos.org)
;exten => 892,1,Dial(SIP/packbart@openchaos.org)

;; (Nochmal Bayer)
;exten => 830,1,Goto(phones,bayer,1)

;debug: Tim (!t_m_)
;exten => 870,1,Dial(SIP/17476300563@proxy01.sipphone.com)

;debug: VT100
;exten => 871,1,Dial(IAX2/193.196.4.70/1001)
;exten => 871,n,Hangup

;; Ali
exten => 877,1,Goto(phones,ali,1)
exten => _877X!,1,Set(SWITCHTO=alivpnlardass)
exten => _877X!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)



;; * 9 Funktionsbereich Chaos-VPN
;; TODO: Baustellen beseitigen: VPN, IAX, Durchwahlen

;; *90: [unbelegt]
;exten => _90!,1,NoOp

;; 91*: Erlangen
;; TODO: ans VPN anbinden, IAX2 benutzen, Nibbler nach Dem Plan fragen
exten => _91.,1,Dial(SIP/${EXTEN:2}@voip.nibbler.de)
exten => _91.,n,Hangup

;; 92*: Koeln
;exten => _92!,1,Set(SWITCHTO=cccc)
;exten => _92!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
;; erstmal nur thalunil ueber -92-0
exten => 920,1,Dial(IAX2/thalunilvpn/100)
exten => 920,n,Hangup

;; 93*: Berlin
;exten => _93!,1,Set(SWITCHTO=cccb)
;exten => _93!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
;; Ein SIP-Telefon im oberen Clubraum, bis die Berliner mal in die Gaenge kommen
exten => _93.,1,Dial(SIP/cccb)
exten => _93.,n,Hangup

;; 94*: Hamburg
;exten => _94!,1,Set(SWITCHTO=ccchh)
;exten => _94!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)

;; 95*: [unbelegt]
;exten => _95!,1,NoOp

;; 96*: MetaRheinMain
;; TODO: IAX2 benutzen, Durchwahlen erfragen
;exten => _96!,1,Set(SWITCHTO=metarheinmain)
;exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
exten => _96!,1,Set(SWITCHTO=metarheinmain,CALLERID(name)=${CALLERID(number)})
exten => _96!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_sip,${EXTEN:2},1:tochaos_sip,s,1)

;; 97*: [unbelegt]
;exten => _97!,1,NoOp

;; 98*: [unbelegt]
;exten => _98!,1,NoOp

;; 991*: Halfway Hacker House, New York
;; http://www.hackerhalfwayhouse.org/
;exten => _991!,1,Set(SWITCHTO=hhh)
;exten => _991!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)

;; 992*: Das Labor
;; http://www.das-labor.org/
;exten => _992!,1,Set(SWITCHTO=daslabor)
;exten => _992!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
;exten => _992,1,Dial(IAX2/roulette.das-labor.org/labor)
exten => _992,1,Dial(SIP/labor@das-labor.org)



include => catchall






;;
;;
;;


[phones]
;;
;; Benamste Rufempfaenger (Funktionen, Telefone, Personen, Dinge)
;;

;;
;; Zentrale
;;

;; Diese Prio sollten eigentlich nur SIP- und IAX-Anrufe
;; an "zentrale" erreichen. Behandeln wie extern.

exten => zentrale,1,Goto(extern)

;; Zentrale von aussen: 20s Office klingen lassen, dann abwimmeln

exten => zentrale,n(extern),Dial(${ZENTRALE_EXTERN},20)
exten => zentrale,n,Playback(cccansage)
exten => zentrale,n,Hangup

;; Zentrale von innen/aus dem VPN: 20s Office klingeln lassen,
;; dann 35s Office + Mitglieder anklingeln, dann Voicemail

exten => zentrale,n(intern),Dial(${ZENTRALE_INTERN},20)
exten => zentrale,n,Dial(${ZENTRALE_INTERN2},35)
exten => zentrale,n,Voicemail(${ZENTRALE_MAILBOX})
exten => zentrale,n,Hangup

;; Zentrale ueber 0700-CHAOSFON: Office klingeln lassen,
;; keine eigene Voicemail

exten => zentrale,n(chaosfon),Dial(${ZENTRALE_CHAOSFON})
exten => zentrale,n,Hangup


;;
;; Pressefon
;;

exten => presse,1,Dial(${PRESSE},20)
exten => presse,n,Dial(${PRESSE2},20)
exten => presse,n,Voicemail(${PRESSE_MAILBOX})
exten => presse,n,Hangup


;;
;; 0700-CHAOSFON
;;

exten => chaosfon,1,Goto(chaosfon-menue,s,1)
;debug:
exten => chaosfon-login,1,AgentCallbackLogin(,,@chaosfon-dialout)

;; Voicemail Presse CCC
;; Andy moechte per SIP auf die Voicemail weiterleiten koennen
;;
;; TODO: - nochmal drueber nachdenken, redundant zum chaosfon-menue
;;       -> Macro(chaosfon-voicemail)?
;;       - er haette auch gern ne Durchwahl dafuer
exten => chaosfon-pressebox,1,Answer
exten => chaosfon-pressebox,n,Playback(chaosfon_vm-intro)
exten => chaosfon-pressebox,n,Voicemail(s03@chaosfon-voicemail)
exten => chaosfon-pressebox,n,Hangup


;;
;; 0900-CHAOSFON
;;

;; I dare to dream
;exten => windowssupport,1,Answer
;exten => windowssupport,n,SetMusicOnHold(cashcows)
;exten => windowssupport,n,Background(cashcows-welcome)
;exten => windowssupport,n,Queue(cashcows)
;exten => windowssupport,n,Hangup



;;
;; Telefone
;;

;; TODO: MSNs auf der DECT-Anlage angleichen an Durchwahlen
;;       (Werkstatttelefon ist noch 99)

exten => office-isdn,1,Dial(${ISDN_INTERNAL}/23,,t)

exten => office-dect,1,Dial(${ISDN_INTERNAL}/26,,t)

exten => papierfax,1,Dial(${ISDN_INTERNAL}/41,,t)

exten => werkstatt-isdn,1,Dial(${ISDN_INTERNAL}/99,,t)

exten => grandstream-sip,1,Dial(SIP/ccchhgrandstream,,t)

exten => starcom-sip,1,Dial(SIP/ccchhstarcom,,t)



;;
;; Loide
;;

;; packbart: 45s DECT + daheim + SIP klingen lassen, dann Voicemail
;exten => packbart,1,Dial(${ISDN_INTERNAL}/28&IAX2/packbartvpnhome/0&SIP/packbartstarcom,45)
exten => packbart,1,Dial(IAX2/packbartvpnhome/0&SIP/packbartstarcom,45)
exten => packbart,n,Voicemail(828@default)
exten => packbart,n,Hangup

exten => packbarthome,1,Dial(IAX2/packbartvpnhome/0)

;; Alx: 45s DECT, dann Voicemail
exten => alx,1,Dial(${ISDN_INTERNAL}/27,45)
exten => alx,n,Voicemail(827@default)
exten => alx,n,Hangup

;; Ali: 45s daheim klingen lassen, dann Voicemail
exten => ali,1,Dial(IAX2/alivpnlardass/88177799,45)
exten => ali,n,Voicemail(877@default)
exten => ali,n,Hangup

;; Bayer:
;exten => bayer,1,NoOp
;exten => bayer,n,Hangup

;; Steffen: daheim (ISDN)
exten => steffen,1,Dial(${ISDN_WALL}/464440)
exten => steffen,n,Hangup

;; Haegar: SIP
exten => haegar,1,Dial(SIP/haegar)
exten => haegar,n,Hangup

;; Astaroth
exten => astaroth,1,NoOp
exten => astaroth,n,Hangup

;; nbd: SIP
exten => nbd,1,Dial(SIP/nbd)
exten => nbd,n,Hangup

;; Holger: SIP
exten => holger,1,Dial(SIP/holger)
exten => holger,n,Hangup



;;
;; Dinge
;;

;; Voicemail abfragen
exten => voicemail,1,VoiceMailMain
exten => voicemail,n,Hangup

exten => voicemail-chaosfon,1,VoiceMailMain(@chaosfon-voicemail)
exten => voicemail-chaosfon,n,Hangup

;; Voicemail abfragen
;; insecoor: Test fuer den Knopf am Grandstream 
;exten => voicemailzenelatr,1,VoiceMailMain(s${ZENTRALE_MAILBOX})
;exten => voicemailzenelatr,n,Hangup

exten => stream-chaosradio,1,Answer
exten => stream-chaosradio,n(vishnu),MP3Player(http://vishnu.netfilter.org:2342/chaosradio-lq.mp3)
exten => stream-chaosradio,n,Hangup

exten => stream-nerdsonair,1,Answer
exten => stream-nerdsonair,n(orange),MP3Player(http://orange-01.live.sil.at:8000/)
exten => stream-nerdsonair,n,Hangup

exten => stream-cradar,1,Answer
exten => stream-cradar,n(radiodarmstadt),MP3Player(http://213.202.240.45:8000/)
exten => stream-cradar,n,Hangup

exten => echotest,1,Macro(echotest)



;;
;; Konferenzen
;; TODO: Konferenzen auf einen anderen Server
;; (Hetzner-Kiste o.ae.) verlegen, der Bandbreite wegen
;;

exten => openwrt,1,MeetMe(04,cds)
exten => openwrt,n,Playback(vm-goodbye)
exten => openwrt,n,Hangup


include => catchall






;;
;; Abgehende Verbindungen
;;

[dialout]
;;
;; Anwahl nach aussen ueber verschiedene Provider
;;

;; Dialout via ISDN
;; TODO: Hansenet/Telekom evtl. schon hier unterscheiden
exten => _0!,1,GotoIf($["${EXTEN:1}" != ""]?dialout-isdn,${EXTEN:1},1:dialout-isdn,s,1)

;; Dialout via ChaosVPN
exten => _13!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-chaosvpn,${EXTEN:2},1:dialout-chaosvpn,s,1)

;; Dialout via FreeWorldDialup
exten => _14!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-iaxfwd,${EXTEN:2},1:dialout-iaxfwd,s,1)

;; Dialout mit ENUM-Lookup
;exten => _15!,1,GotoIf($["${EXTEN:2}" != ""]?dialout-enum,${EXTEN:2},1:dialout-enum,s,1)



[dialout-isdn]
;;
;; ${ISDN_WALL}
;; TODO: - Rauswahl ueber Hansenet-Flat fuer allg. Anrufe
;;       - Rauswahl ueber Telekom (wg. Rufnummer) fuer "offizielle" Anrufe
;;       - evtl. Kostenstelle abfragen (privat/Erfa/e.V.)
;;       - Priorisierung: Wenn alle Kanaele belegt
;;         sind und einer davon CHAOSFON oder vpn-dialout:
;;         Abwerfen mit $Taste
;;

exten => s,1,ChanIsAvail(${ISDN_WALL},j)
exten => s,n,PlayTones(dialout)
exten => s,n,WaitExten

exten => s,102,Playback(all-circuits-busy)
exten => s,n,PlayTones(congestion)
exten => s,n,Congestion

exten => _X!.,1,ChanIsAvail(${ISDN_WALL},j)
exten => _X!.,n,StopPlayTones
exten => _X!.,n,Dial(${ISDN_WALL}/${EXTEN},,T)

exten => _X!.,102,Playback(all-circuits-busy)
exten => _X!.,n,PlayTones(congestion)
exten => _X!.,n,Congestion

include => catchall



[dialout-chaosvpn]
;;
;; IAX2/fnord - Baustelle, noch nicht fertig
;; TODO: - load-balancing ueber Flatrates im VPN
;;       - Hoechstens eine Verbindung pro Peer
;;       - Fehlerbehandlung
;;

;exten => s,1,ChanIsAvail(IAX2/packbartvpnhome,j)
;exten => s,n,PlayTones(dialout)
;exten => s,n,WaitExten

;exten => s,102,Playback(all-circuits-busy)
;exten => s,n,PlayTones(congestion)
;exten => s,n,Congestion

exten => _!.,1,ChanIsAvail(IAX2/packbartvpnhome,j)
exten => _!.,n,StopPlayTones
exten => _!.,n,Dial(IAX2/packbartvpnhome/10${EXTEN},,T)

exten => _!.,102,Playback(all-circuits-busy)
exten => _!.,n,PlayTones(congestion)
exten => _!.,n,Congestion

include => catchall



[dialout-iaxfwd]
;;
;; IAX2/iaxfwd (FreeWorldDialup)
;;

exten => s,1,ChanIsAvail(IAX2/iaxfwd,j)
exten => s,n,Set(TIMEOUT(digit)=3)
;exten => s,n,PlayTones(dialout)
exten => s,n,WaitExten

exten => s,102,Playback(all-circuits-busy)
exten => s,n,PlayTones(congestion)
exten => s,n,Congestion

exten => _X.,1,ChanIsAvail(IAX2/iaxfwd,j)
exten => _X.,n,StopPlayTones
exten => _X.,n,Set(CALLERID(name)=${FWDCIDNAME},CALLERID(number)=${FWDNUMBER})
exten => _X.,n,Dial(IAX2/iaxfwd/${EXTEN})

exten => _X.,102,Playback(all-circuits-busy)
exten => _X.,n,PlayTones(congestion)
exten => _X.,n,Congestion

include => catchall



[dialout-enum]
;;
;; ENUM-Lookup
;; TODO: nachdenken. B0rken, Baustelle, Brauchen wir sowas?
;;
;exten => s,1,Set(TIMEOUT(digit)=3)
;;exten => s,n,PlayTones(dialout)
;exten => s,n,WaitExten

;exten => _X.,1,EnumLookup(${EXTEN})
;exten => _X.,2,Dial(${ENUM}) ;; lookup was successful
;exten => _X.,3,Congestion
;exten => _X.,52,Goto(dialout-isdn,${ENUM},1) ;; got a TEL record, so forward
;exten => _X.,102,Congestion ;; lookup failed

;include => catchall






;;
;; 0700-CHAOSFON
;;
;; https://doku.ccc.de/intern/index.php/Chaosfon
;; https://doku.ccc.de/intern/index.php/0700-CHAOSFON
;; ff.
;;
;; 0: Ansage wiederholen
;;
;; 1: Hackerethik
;;    *: 3s zurückspulen
;;    0: Pause
;;    #: 3s vorspulen
;;    1: beenden
;;
;; 2: Allgemeine Anfragen (Queue + Voicemail)
;;
;; 3: Presse-Anfragen (Queue + Voicemail)
;;
;; 4: Erfa-Menue
;;    10-19: Erfa-Zentralen/Mitglieder anrufen
;;    *: Voicemailabfrage
;;    #: Zurueck ins Hauptmenue
;;
;; 5: Datenschleuder (Voicemail)
;;
;; 6: Office (Verweis auf www.ccc.de)
;;
;; *: Voicemailabfrage
;;
;; #: Ausgang
;;
;;

;; TODO: - thalunil will noch neue Ansagen schicken
;;       - Kassel integrieren

[chaosfon-menue]
;;
;; Startmenue
;;

;;
;; s: Intro und Menue
;;
exten => s,1,Set(TIMEOUT(digit)=3,TIMEOUT(response)=15)
exten => s,n,Answer
exten => s,n,Background(silence/1)
exten => s,n,Background(chaosfon_menue_intro)
exten => s,n(menu),Set(menu_count=0)
exten => s,n(menu_repeat),Set(heard_menu=yes,menu_count=$[${menu_count}+1])
exten => s,n,Background(chaosfon_menue_dienste)
exten => s,n,Background(chaosfon_menue_auswahl)
exten => s,n,Background(chaosfon_bitte_waehlen)
exten => s,n,WaitExten


;;
;; 0: Ansage wiederholen
;;
exten => 0,1,Goto(s,menu)


;;
;; 1: Hackerethik
;;
exten => 1,1,Wait(0.5)
exten => 1,n,ControlPlayback(chaosfon_hackerethik,3000,#,*,1,0)
exten => 1,n,Background(silence/2)
exten => 1,n,Goto(s,menu)


;;
;; 2: Allgemeine Anfragen
;; - ~45s Anwahlversuch
;; - dann Voicemail
;; TODO: auf Macro(chaosfon-queue) umstellen
;;
exten => 2,1,Wait(0.5)
exten => 2,n,Playback(chaosfon_allgemein)
exten => 2,n,Playback(chaosfon_voicemail)
exten => 2,n,Playback(chaosfon_dialout)
exten => 2,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON Allgemein)
exten => 2,n,Queue(chaosfon-allgemein,n)
exten => 2,n,Set(CALLERID(name)=${oldcallername})
exten => 2,n(voicemail),Playback(chaosfon_vm-intro)
exten => 2,n,Voicemail(s02@chaosfon-voicemail)
exten => 2,n,Background(silence/2)
exten => 2,n,Goto(s,menu)


;;
;; 3: Presse
;; - ~45s Anwahlversuch
;; - dann Voicemail
;; TODO: auf Macro(chaosfon-queue) umstellen
;;
exten => 3,1,Wait(0.5)
exten => 3,n,Playback(chaosfon_presse)
exten => 3,n,Playback(chaosfon_dialout2)
exten => 3,n,Playback(chaosfon_voicemail2)
exten => 3,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON Presse)
exten => 3,n,Queue(chaosfon-presse,n)
exten => 3,n,Set(CALLERID(name)=${oldcallername})
exten => 3,n(voicemail),Playback(chaosfon_vm-intro)
exten => 3,n,Voicemail(s03@chaosfon-voicemail)
exten => 3,n,Background(silence/2)
exten => 3,n,Goto(s,menu)


;;
;; 4: Erfakreis-Menue
;;
exten => 4,1,Goto(chaosfon-erfas,s,1)


;;
;; 5: Datenschleuder
;; - gleich Voicemail
;;
exten => 5,1,Wait(0.5)
exten => 5,n(voicemail),Playback(chaosfon_datenschleuder)
exten => 5,n,Voicemail(s05@chaosfon-voicemail)
exten => 5,n,Background(silence/2)
exten => 5,n,Goto(s,menu)


;;
;; 6: Office
;; - nur Ansage
;;
exten => 6,1,Wait(0.5)
exten => 6,n,Playback(chaosfon_office)
exten => 6,n,Background(silence/2)
exten => 6,n,Goto(s,menu)




;;
;; 8: lahmes Osterei
exten => 8,1,Wait(0.5)
exten => 8,n,Playback(ehrenwort)
exten => 8,n,Background(silence/2)
exten => 8,n,Goto(s,menu)



;;
;; *: Voicemailabfrage
;;
exten => *,1,VoiceMailMain(@chaosfon-voicemail)
exten => *,n,Background(silence/2)
exten => *,n,Goto(s,menu)


;;
;; #: Ausgang
;;
exten => #,1,Hangup


include => chaosfon-catchall



[chaosfon-erfas]
;;
;; Erfakreis-Durchwahlmenue
;;

;;
;; s: Intro und Menue
;;
exten => s,1,Answer
exten => s,n(menu),Set(menu_count=0)
exten => s,n(menu_repeat),Set(heard_menu=yes,menu_count=$[${menu_count}+1])
exten => s,n,Background(chaosfon_erfas_start)
exten => s,n,Background(chaosfon_erfas_auswahl)
exten => s,n,Background(chaosfon_bitte_waehlen)
exten => s,n,WaitExten


;;
;; 0: Ansage wiederholen
;;
exten => 0,1,Goto(s,menu)


;;
;; Durchwahlen & Voicemail fuer Erfas
;;
exten => 10,1,Macro(chaosfon-call,10,hamburg,Hamburg)

exten => 11,1,Macro(chaosfon-call,11,berlin,Berlin)

exten => 12,1,Macro(chaosfon-call,12,koeln,Koeln)

exten => 13,1,Macro(chaosfon-call,13,bielefeld,Bielefeld)

exten => 14,1,Macro(chaosfon-call,14,dresden,Dresden)

exten => 15,1,Macro(chaosfon-call,15,erlangen,Erlangen)

exten => 16,1,Macro(chaosfon-call,16,karlsruhe,Karlsruhe)

exten => 17,1,Macro(chaosfon-call,17,hannover,Hannover)

exten => 18,1,Macro(chaosfon-call,18,ulm,Ulm)

exten => 19,1,Macro(chaosfon-call,19,wien,Wien)

;; noch ein lahmes Ei
exten => 23,1,Playback(chaosfon_dialout2)
exten => 23,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON Steffen)
exten => 23,n,Dial(Local/steffen@phones,,htm(chaosmix))

exten => 99,1,Macro(chaosfon-call,00,test,Test)



;;
;; *: Voicemailabfrage
;;
exten => *,1,VoiceMailMain(@chaosfon-voicemail)
exten => *,n,Background(silence/2)
exten => *,n,Goto(s,menu)


;;
;; #: Zurueck ins Hauptmenue
;;
exten => #,1,Goto(chaosfon-menue,s,menu)


include => chaosfon-catchall



[macro-chaosfon-call]
;;
;; - ~45s Anwahlversuch
;; - dann Voicemail
;; - Ruecksprung ins Menue
;; - kein Hangup!
;;
;; ARG1: Voicemail-Nummer
;; ARG2: Ziel fuer Dial() @chaosfon-dialout und fuer Vorwarnungs-Dateinamen
;; ARG3: Name fuer CALLERID
;;
;; TODO: - Queues fuer Erfas?
exten => s,1,Answer
exten => s,n,Playback(chaosfon_dialout2)
exten => s,n,Playback(chaosfon_voicemail)
exten => s,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON ${ARG3})
exten => s,n,Dial(Local/${ARG2}@chaosfon-dialout,45,htm(chaosmix)A(chaosfon_vorwarnung_${ARG2}))
exten => s,n,Set(CALLERID(name)=${oldcallername})
exten => s,n,Playback(chaosfon_vm-intro)
exten => s,n,Voicemail(s${ARG1}@chaosfon-voicemail)
exten => s,n,Background(silence/2)
exten => s,n,Goto(${MACRO_CONTEXT},s,menu)



[macro-chaosfon-queue]
;;
;; TODO: zum Laufen bringen, tut noch nicht richtig
;;
;; - keine eigene Ansage
;; - ~45s Anwahlversuch
;; - dann Voicemail
;; - Ruecksprung ins Menue
;; - kein Hangup!
;;
;; ARG1: Voicemail-Nummer
;; ARG2: chaosfon-Queue
;; ARG3: Name fuer CALLERID
;;
exten => s,1,Answer
exten => s,n,Set(oldcallername=${CALLERID(name)},CALLERID(name)=CHAOSFON ${ARG3})
exten => s,n,Queue(chaosfon-${ARG2},n)
exten => s,n,Set(CALLERID(name)=${oldcallername})
exten => s,n,Playback(chaosfon_vm-intro)
exten => s,n,Voicemail(s${ARG1}@chaosfon-voicemail)
exten => s,n,Background(silence/2)
exten => s,n,Goto(${MACRO_CONTEXT},s,menu)



[chaosfon-catchall]
;;
;; Falsche Eingabe: zurueck zum Start des jeweiligen Menues
;;
exten => i,1,Background(invalid)
exten => i,n,Background(silence/2)
exten => i,n,Goto(s,menu)

;;
;; Timeout: - 3x abwechselnd "Bitte waehlen" und Menue
;;          - dann auflegen
;;

exten => t,1,GotoIf($[${menu_count} < 3]?repeat)
exten => t,n,PlayTones(info)
exten => t,n,Hangup

exten => t,n(repeat),GotoIf($["${heard_menu}" != "yes"]?s,menu_repeat)
exten => t,n,Set(heard_menu=no)
exten => t,n,Background(chaosfon_bitte_waehlen)
exten => t,n,WaitExten



[chaosfon-dialout]
;;
;; Nummern fuer Weiterleitung an Erfas und Callback-Logins
;; z.Zt. noch Baustelle
;; TODO: ergaenzen und absichern
;;

;exten => 827,1,Goto(phones,alx,chaosfon)
;exten => 828,1,Goto(phones,packbart,chaosfon)
;exten => 877,1,Goto(phones,ali,chaosfon)

exten => _829!,1,Set(SWITCHTO=packbartvpnhome)
exten => _829!,n,GotoIf($["$["${EXTEN:3}" != ""]" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)


;; Anrufkette Hamburg: in [phones] definiert
exten => hamburg,1,Goto(phones,zentrale,chaosfon)

;; Anrufkette Berlin: Grandstream im Clubraum klingen lassen
;; TODO: nach VPN-Anbindung evtl. umstellen
exten => berlin,1,Dial(SIP/cccb)
exten => berlin,n,Hangup

;; Anrufkette Koeln: thalunil anrufen
exten => koeln,1,Dial(IAX2/thalunilvpn/100)
exten => koeln,n,Hangup

exten => bielefeld,1,NoOp
exten => bielefeld,n,Hangup

exten => dresden,1,NoOp
exten => dresden,n,Hangup

;; Anrufkette Erlangen: Irgendwas bei Nibbler anrufen
;; TODO: - Nibbler fragen, was dort stehen soll
;;       - Nach VPN-Anbindung umstellen
exten => erlangen,1,Dial(SIP/0@voip.nibbler.de)
exten => erlangen,n,Hangup

exten => karlsruhe,1,NoOp
exten => karlsruhe,n,Hangup

exten => hannover,1,NoOp
exten => hannover,n,Hangup

exten => ulm,1,NoOp
exten => ulm,n,Hangup

exten => wien,1,NoOp
exten => wien,n,Hangup






;;
;; Utils
;;



[extensions-interactive]
;;
;; NAT-Verbindung waehrend der Anwahl offenhalten
;;

exten => s,1,Answer
exten => s,n,PlayTones(dial)
exten => s,n,Set(TIMEOUT(digit)=4,TIMEOUT(response)=20)
exten => s,n,WaitExten

exten => _X.,1,Dial(Local/${EXTEN}@extensions,,r)

include => catchall



[macro-echotest]
;;
;; Der beliebte Echotest
;;

exten => s,1,Set(TIMEOUT(absolute)=3600)
exten => s,n,Playback(tt-weasels)
exten => s,n,Playback(demo-echotest)
exten => s,n,Echo
exten => s,n,Playback(demo-echodone)
exten => s,n,Hangup



[mailfax]
;;
;; Fax2Mail mit OCR
;;

exten => _X.,1,Set(CALLEDFAX=${EXTEN})
exten => _X.,n,Answer
exten => _X.,n,Set(FAXFILE=/var/spool/asterisk/fax/${CALLEDFAX}-${CALLERIDNUM}-${UNIQUEID})
exten => _X.,n,rxfax(${FAXFILE}.tif)

exten => h,1,system(/usr/local/bin/mailfax "${FAXFILE}" "${EMAIL}" "${CALLERIDNUM}" "${CALLEDFAX}")

include => catchall



[mailfax_fancy]
;;
;; Fax2Mail mit OCR
;; Baustelle fuer Erweiterungen
;;

exten => _X.,1,Set(CALLEDFAX=${EXTEN})
exten => _X.,n,Answer
exten => _X.,n,Set(FAXFILE=/var/spool/asterisk/fax/${CALLEDFAX}-${CALLERIDNUM}-${UNIQUEID})
exten => _X.,n,rxfax(${FAXFILE}.tif)

exten => h,1,system(/usr/local/bin/mailfax_fancy "${FAXFILE}" "${EMAIL}" "${CALLERIDNUM}" "${CALLEDFAX}")

include => catchall



[catchall]
;;
;; Extensions, die in keinem Kontext fehlen sollten
;;

exten => s,1,NoOp

exten => h,1,Hangup

exten => i,1,PlayTones(!950/330,!1400/330,!1800/330,0)
exten => i,n,Hangup

exten => t,1,PlayTones(!950/330,!1400/330,!1800/330,0)
exten => t,n,Hangup



[default]
;;
;; leerer Context
;;
include => catchall






;;
;; Noch unsortierter Krams, Baustelle fuer VPN
;;



[tochaos_iax]
;exten => _!,1,Set(CALLERID(name)=CCCHH,CALLERID(number)=940)
exten => _!,1,Goto(switch_${SWITCHTO},${EXTEN},1)


[tochaos_sip]
exten => s,1,Set(TIMEOUT(digit)=3)
exten => s,n,WaitExten

include => catchall

;exten => _X.,1,Set(CALLERID(name)=CCCHH,CALLERID(number)=940)
exten => _.,1,Dial(SIP/${SWITCHTO}/${EXTEN},,T)


;; IAX-Switches

;[switch_ccchh]
;exten => s,1,WaitExten
;;;
;;; manchmal tritt ein merkwürdiges Phänomen auf:
;;; wir bekommen die komplette Durchwahl inkl. 9X in diesem Context
;;; Warum?
;exten => _94.,1,Set(EXTEN=${EXTEN:2})
;;;
;switch => IAX2/ccchh:[ccchh]@ccchh

[switch_packbartvpnhome]
exten => h,1,Hangup
switch => IAX2/ccchh:[ccchh]@packbartvpnhome

[switch_alivpnlardass]
switch => IAX2/ccchh:[ccchh]@alivpnlardass

[switch_metarheinmain]
switch => IAX2/ccchh:[ccchh]@metarheinmain

[switch_thalunilvpn]
switch => IAX2/ccchh:[ccchh]@thalunilvpn



[sipregistrations]

exten => jemandzuhause,2,Ringing
exten => jemandzuhause,n,Wait(30)
exten => jemandzuhause,n,Hangup

include => catchall

/etc/asterisk/modules.conf

[modules]

autoload=yes

noload => pbx_gtkconsole.so
noload => pbx_kdeconsole.so
noload => app_intercom.so
noload => chan_alsa.so

;load => chan_modem.so

; pirx: res_features vor chan_misdn laden (vgl. http://www.voip-info.org/wiki-Asterisk+mISDN+channels)
load => res_features.so
load => chan_misdn.so
load => res_musiconhold.so

; pirx: app_rxfax, app_txfax sind manuell zu installieren (s.u.)
load => app_txfax.so
load => app_rxfax.so

[global]

;chan_modem.so=yes
chan_msidn.so=yes

Fax

libtiff

Vor allen Weiterungen benötgen wir libtiff 3.7.1 (neue Versionen sollen teilweise nicht richtig funktioneren).

wget ftp://ftp.remotesensing.org/pub/libtiff/old/tiff-3.7.1.tar.gz
tar xvfz tiff-3.7.1.tar.gz
cd tiff-3.7.1
./configure --prefix=/usr
make
make install

spandsp

Zur Faxkonfiguration wird zunächst spandsp benötigt [[1]].

wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.2pre23/spandsp-0.0.2pre23.tar.gz
./configure --prefix=/usr
make
make install

Asterisk Applikationen

cd /usr/src/asterisk/apps
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.2pre23/asterisk-1.2.x/app_rxfax.c
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.2pre23/asterisk-1.2.x/app_txfax.c
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.2pre23/asterisk-1.2.x/apps_Makefile.patch
patch -p0 < apps_Makefile.patch
cd ..
make
make install