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)
m (/etc/asterisk/modules.conf)
 
(3 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 installieren: kernel laedt 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
 
;;  - 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 klingelt auch auf -26 und -27:
 
ZENTRALE_EXTERN=Local/office-isdn@phones
 
ZENTRALE_CHAOSFON=Local/office-isdn@phones&IAX2/packbartvpnhome/801
 
ZENTRALE_INTERN=Local/office-isdn@phone
 
ZENTRALE_INTERN2=Local/office-isdn@phones
 
ZENTRALE_MAILBOX=800@default
 
 
 
PRESSE=Local/ali@phones
 
PRESSE2=Local/ali@phones
 
;PRESSE2=Local/ali@phones&${ISDN_WALL}/<somewhereelse>
 
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.)
 
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
 
;; 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 => _X.,1,GotoIf($["${predigits}${EXTEN}" != ""]?extensions,${predigits}${EXTEN},1:extensions,s,1)
 
exten => t,1,GotoIf($["${predigits}" != ""]?extensions,${predigits},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
 
;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)
 
 
 
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
 
 
 
 
 
 
 
; * 2
 
 
 
exten => 23,1,Goto(phones,office-isdn,1)
 
 
 
exten => 26,1,Goto(phones,office-dect,1)
 
 
 
 
 
 
 
; * 3
 
 
 
;; alte Voicebox - Nummer aufheben
 
;exten => 31,1,NoOp
 
 
 
 
 
 
 
; * 4 Funktionsbereich offizielle Clubnummern
 
 
exten => 40,1,SetVar(EMAIL=mail@ccc.de)
 
exten => 40,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 41,1,Goto(phones,papierfax,1)
 
;exten => 41,1,SetVar(EMAIL=office@ccc.de)
 
;exten => 41,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 42,1,SetVar(EMAIL=mail@ccc.de)
 
exten => 42,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 4300,1,Goto(phones,chaosfon,1)
 
exten => 43010,1,Goto(phones,chaosfon-login,1)
 
 
 
exten => 4601,1,Goto(phones,presse,1)
 
 
 
exten => 4666,1,Goto(phones,frollein,1)
 
 
 
 
 
 
 
; * 5 Funktionsbereich Faxnummern
 
 
 
exten => 50,1,SetVar(EMAIL=mail@hamburg.ccc.de)
 
exten => 50,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 51,1,SetVar(EMAIL=zahlstelle@ccc.de)
 
exten => 51,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 52,1,SetVar(EMAIL=vorstand@ccc.de)
 
exten => 52,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 53,1,SetVar(EMAIL=pressesprecher@ccc.de)
 
exten => 53,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 54,1,SetVar(EMAIL=ds@ccc.de)
 
exten => 54,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 55,1,SetVar(EMAIL=anonymizer@ccc.de)
 
exten => 55,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 5601,1,SetVar(EMAIL=presse@hamburg.ccc.de)
 
exten => 5601,n,Goto(mailfax,${EXTEN},1)
 
 
 
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,${EXTEN},1)
 
 
 
;; TODO: 58xx den Nummern von 8xx anpassen
 
 
 
exten => 5801,1,SetVar(EMAIL=bayer@hamburg.ccc.de)
 
exten => 5801,n,Goto(mailfax,${EXTEN},1)
 
 
 
exten => 5802,1,SetVar(EMAIL=haegar@ccc.de)
 
exten => 5802,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
 
 
 
exten =>  7100,1,MeetMe(${EXTEN:2})
 
exten => _711XX,1,MeetMe(${EXTEN:2})
 
exten => _71NX,1,MeetMe(${EXTEN:2})
 
 
 
 
 
; ** 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
 
 
 
exten => 7806,1,Answer
 
exten => 7806,n,Goto(phones,stream-nerdsonair,orange)
 
 
 
exten => 7807,1,Answer
 
exten => 7807,n,Goto(phones,stream-cradar,radiodarmstadt)
 
 
 
 
 
; ** 7901 Echotest
 
 
 
exten => 7901,1,Macro(echotest)
 
 
 
 
 
 
 
; * 8 Funktionsbereich Mitgliedertelefone
 
 
 
;; Zentrale intern
 
exten => 800,1,Goto(phones,zentrale,intern)
 
 
 
;; Alx
 
exten => 827,1,Goto(phones,alx,1)
 
 
 
 
 
;; 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)
 
 
 
;; 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
 
 
 
;exten => _92!,1,Set(SWITCHTO=cccc)
 
;exten => _92!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
 
 
;exten => _93!,1,Set(SWITCHTO=cccb)
 
;exten => _93!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
 
 
;exten => _94!,1,Set(SWITCHTO=ccchh)
 
;exten => _94!,n,GotoIf($["${EXTEN:2}" != ""]?tochaos_iax,${EXTEN:2},1:tochaos_iax,s,1)
 
 
 
;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)
 
 
 
;exten => _991!,1,Set(SWITCHTO=hhh)
 
;exten => _991!,n,GotoIf($["${EXTEN:3}" != ""]?tochaos_iax,${EXTEN:3},1:tochaos_iax,s,1)
 
 
 
 
 
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.de
 
; 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
 
;;
 
 
 
exten => office-isdn,1,Dial(${ISDN_INTERNAL}/23,,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)
 
 
 
 
 
 
 
;;
 
;; 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,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 + SIP klingen lassen, dann Voicemail
 
 
 
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,Hangup
 
 
 
;; Bayer:
 
 
 
;exten => bayer,1,NoOp
 
;exten => bayer,n,Hangup
 
 
 
 
 
 
 
;;
 
;; Dinge
 
;;
 
 
 
;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 => freifunken,1,MeetMe(1201,cds)
 
exten => freifunken,n,Playback(vm-goodbye)
 
exten => freifunken,n,Hangup
 
 
 
 
 
include => catchall
 
 
 
 
 
 
 
 
 
 
 
 
 
;;
 
;; Abgehende Verbindungen
 
;;
 
 
 
[dialout]
 
;;
 
;; Anwahl nach aussen ueber verschiedene Provider
 
;;
 
 
 
;; Dialout via ISDN
 
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-isdn]
 
;;
 
;; ${ISDN_WALL}
 
;; TODO: - 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
 
 
 
 
 
 
 
 
 
 
 
 
 
;;
 
;; 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
 
;;
 
;;
 
 
 
[chaosfon-menue]
 
;;
 
;; Startmenue
 
;;
 
 
 
;;
 
;; s: Intro und Menue
 
;;
 
exten => s,1,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)
 
 
 
;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]
 
;;
 
;; - 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: Anrufkette in [phones] definiert
 
exten => hamburg,1,Goto(phones,zentrale,chaosfon)
 
 
 
;; Anrufkette Berlin: Tim anrufen (Vorsicht: eigene Voicebox!)
 
;exten => berlin,1,Dial(SIP/17476300563@proxy01.sipphone.com,20)
 
;exten => berlin,1,Dial(IAX2/cccb/fnord)
 
;exten => berlin,n,Hangup
 
 
 
;; 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/cccc/fnord)
 
exten => koeln,n,Hangup
 
 
 
exten => bielefeld,1,NoOp
 
exten => bielefeld,n,Hangup
 
 
 
exten => dresden,1,NoOp
 
exten => dresden,n,Hangup
 
 
 
exten => erlangen,1,NoOp
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
;;
 
;; 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 => _X.,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
 
</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,394: 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