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
(Realitätsabgleich)
m (/etc/asterisk/modules.conf)
 
(2 intermediate revisions by one other user not shown)
Line 8: Line 8:
 
* misdn-Treiber so wie im Kernel vorhanden
 
* misdn-Treiber so wie im Kernel vorhanden
  
== misdn Konfiguration ==
+
== Gepatchtes ==
=== /etc/misdn_init.conf ===
+
=== CallerID-Prefix für chan_iax2 ===
<pre>
 
#
 
# Configuration file for your misdn hardware
 
#
 
# Usage: /etc/init.d/misdn-init start|stop|restart|config|scan|help
 
#
 
  
#
+
Ich habe leider keine Möglichkeit gefunden, mit Asterisk ein Prefix für CallerIDs bei IAX-Verbindungen anzugeben.
# Card Settings
+
Wir brauchen das, um die Rückrufroute in der Rufnummer zu vermerken.
#
 
  
card=1,hfcpci
+
Nehmen wir an, ich rufe mit meinem Telefon zuhause, das dort die CallerID 201 besitzt, über die Hamburger Vermittlung in Köln an:
card=2,hfcpci
 
  
#
+
[Köln]     <- [Hamburg]   <- [packbarthome]
# 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
+
In Köln soll eine CallerID angezeigt werden, über die ein Rückruf über genau die Route möglich ist, über die angerufen wird.
te_ptp=1
+
Die dafür nötigen Prefixe sind aber nur den angerufenen Vermittlungen bekannt, nicht der anrufenden:
# Karte 2 (oben) intern = PTMP, NT-Modus
 
nt_ptmp=2
 
  
#
+
Prefix: 94 -> Prefix: 828 -> Durchwahl: 201
# Port Options
 
#
 
  
# keine ...
+
Mit diesem Patch ist es möglich, in der iax.conf für type=friend oder type=user eine Option 'calleridprefix' anzugeben.
</pre>
+
Diese wird eingehenden CallerIDs bei Anrufen dieses Users vorangestellt.
  
=== /etc/asterisk/misdn.conf ===
+
[http://hendrek.frell.ambush.de/~packbart/asterisk_1_2_chan_iax2_calleridprefix.patch asterisk_1_2_chan_iax2_calleridprefix.patch]
<pre>
+
UNIQ796ba5ba98e0ea7-pre-0000000B-QINU
[general]
 
debug=4
 
method=standard
 
tracefile=/var/log/misdn.trace
 
appnd_digits2exten=yes
 
bridging=no
 
  
[default]
+
== misdn Konfiguration ==
context=pbx-trunk
+
=== /etc/misdn_init.conf ===
language=de
+
UNIQ796ba5ba98e0ea7-pre-0000000C-QINU
nationalprefix=0
 
internationalprefix=00
 
rxgain=0
 
txgain=0
 
dialplan=0
 
  
; interner ISDN-Bus (PTMP = Mehrgeraeteanschluss)
+
=== /etc/asterisk/misdn.conf ===
[internal1]
+
UNIQ796ba5ba98e0ea7-pre-0000000D-QINU
context=pbx-trunk
 
ports=2
 
msn=*
 
 
 
; externer ISDN-Bus (PTP = Anlagenanschluss)
 
[wall]
 
context=wall-trunk
 
ports=1
 
msn=*
 
</pre>
 
  
 
=== Nebenstellenfreizeichen mit misdn ===
 
=== Nebenstellenfreizeichen mit misdn ===
Line 85: Line 42:
 
Dieser Patch ist für misdn 0.2.x.<br>
 
Dieser Patch ist für misdn 0.2.x.<br>
 
misdn 0.3.x benutzt den "dial"-Ton aus der indications.conf. Für das Nebenstellenfreizeichen habe ich den Ton folgendermassen geändert:
 
misdn 0.3.x benutzt den "dial"-Ton aus der indications.conf. Für das Nebenstellenfreizeichen habe ich den Ton folgendermassen geändert:
<pre>
+
UNIQ796ba5ba98e0ea7-pre-0000000E-QINU
dial = 425/200,0/200,425/200,0/200,425/200,0/900
 
dialout = 425
 
</pre>
 
 
-- [[User:Packbart|packbart]] 12:48, 26 Mar 2006 (CEST)
 
-- [[User:Packbart|packbart]] 12:48, 26 Mar 2006 (CEST)
  
  
<pre>
+
UNIQ796ba5ba98e0ea7-pre-0000000F-QINU
--- 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++;
 
 
</pre>
 
  
 
== Asterisk Konfiguration ==
 
== Asterisk Konfiguration ==
 
=== /etc/asterisk/extensions.conf ===
 
=== /etc/asterisk/extensions.conf ===
<pre>
+
UNIQ796ba5ba98e0ea7-pre-00000010-QINU
;;
 
;; 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
 
</pre>
 
  
 
=== /etc/asterisk/modules.conf ===
 
=== /etc/asterisk/modules.conf ===
 
<pre>
 
<pre>
[modules]
+
test
 
 
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
 
 
</pre>
 
</pre>
  
Line 1,660: Line 60:
 
=== libtiff ===
 
=== libtiff ===
 
Vor allen Weiterungen benötgen wir libtiff 3.7.1 (neue Versionen sollen teilweise nicht richtig funktioneren).
 
Vor allen Weiterungen benötgen wir libtiff 3.7.1 (neue Versionen sollen teilweise nicht richtig funktioneren).
<pre>
+
UNIQ796ba5ba98e0ea7-pre-00000012-QINU
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
 
</pre>
 
 
=== spandsp ===
 
=== spandsp ===
 
Zur Faxkonfiguration wird zunächst spandsp benötigt [[http://soft-switch.org/installing-spandsp.html]].
 
Zur Faxkonfiguration wird zunächst spandsp benötigt [[http://soft-switch.org/installing-spandsp.html]].
<pre>
+
UNIQ796ba5ba98e0ea7-pre-00000013-QINU
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.2pre23/spandsp-0.0.2pre23.tar.gz
 
./configure --prefix=/usr
 
make
 
make install
 
</pre>
 
 
=== Asterisk Applikationen ===
 
=== Asterisk Applikationen ===
<pre>
+
UNIQ796ba5ba98e0ea7-pre-00000014-QINU
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
 
</pre>
 

Latest revision as of 23:52, 7 September 2007

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

Gepatchtes

CallerID-Prefix für chan_iax2

Ich habe leider keine Möglichkeit gefunden, mit Asterisk ein Prefix für CallerIDs bei IAX-Verbindungen anzugeben. Wir brauchen das, um die Rückrufroute in der Rufnummer zu vermerken.

Nehmen wir an, ich rufe mit meinem Telefon zuhause, das dort die CallerID 201 besitzt, über die Hamburger Vermittlung in Köln an:

[Köln] <- [Hamburg] <- [packbarthome]

In Köln soll eine CallerID angezeigt werden, über die ein Rückruf über genau die Route möglich ist, über die angerufen wird. Die dafür nötigen Prefixe sind aber nur den angerufenen Vermittlungen bekannt, nicht der anrufenden:

Prefix: 94 -> Prefix: 828 -> Durchwahl: 201

Mit diesem Patch ist es möglich, in der iax.conf für type=friend oder type=user eine Option 'calleridprefix' anzugeben. Diese wird eingehenden CallerIDs bei Anrufen dieses Users vorangestellt.

asterisk_1_2_chan_iax2_calleridprefix.patch �UNIQ796ba5ba98e0ea7-pre-0000000B-QINU

misdn Konfiguration

/etc/misdn_init.conf

�UNIQ796ba5ba98e0ea7-pre-0000000C-QINU

/etc/asterisk/misdn.conf

�UNIQ796ba5ba98e0ea7-pre-0000000D-QINU

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: �UNIQ796ba5ba98e0ea7-pre-0000000E-QINU -- packbart 12:48, 26 Mar 2006 (CEST)


�UNIQ796ba5ba98e0ea7-pre-0000000F-QINU

Asterisk Konfiguration

/etc/asterisk/extensions.conf

�UNIQ796ba5ba98e0ea7-pre-00000010-QINU

/etc/asterisk/modules.conf

test

Fax

libtiff

Vor allen Weiterungen benötgen wir libtiff 3.7.1 (neue Versionen sollen teilweise nicht richtig funktioneren). �UNIQ796ba5ba98e0ea7-pre-00000012-QINU

spandsp

Zur Faxkonfiguration wird zunächst spandsp benötigt [[1]]. �UNIQ796ba5ba98e0ea7-pre-00000013-QINU

Asterisk Applikationen

�UNIQ796ba5ba98e0ea7-pre-00000014-QINU