Dieses Wiki ist ein Archiv bis 2023. Das aktuelle Wiki findet sich unter https://wiki.hamburg.ccc.de/
VoIP:Konfiguration neu
Contents
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