Leider kann ich noch nicht mit meiner Telefonanlage einen Sip Client erreichen .
Könnte mir anhand einer Standart extension.conf zeigen wo ich eingehende Gespäche an ISDN3 (also von der Telefonanlage) an den ISDN1 oder eben bei der Wahl z.B 7701 an den SIP Client geroutet werden könnten . Vielen Dank . Ab dann melde ich mich nicht mehr . Vielen Dank
extensions.conf (Nr habe ich geXt)
; ********************************************************************
; asterisk extension config für asterisk auf der Fritz!Box 7050/7170
; ********************************************************************
; (asterisk 1.2.16 von openwrt.org; chan_capi 1.0.1; chan_sccp-20060408, isdn4kutils:
;
www.spblinux.de/fbox/openwrt/)
; mit besonderem Dank an betateilchen von
www.ip-phone-forum.de
; für den asterisk Grundkurs (
www.ip-phone-forum.de/showthread.php?t=91217)
; usb installation framework, chan_sccp, careful testing and more contributed by dynamic
; 2006-05, 2006-10, 2007-04, 2008-10 spblinux & dynamic
; Konzept
; (WICHTIG: bei ungeschütztem Netzwerk Passwörter in sip.conf, iax.conf ändern!)
; - die MSN für das Festnetz am externen isdn S0 Bus der fritzbox ist in capi.conf
; gehende Rufe:
; 0xxxxxxx für Festnetz Nummer 0xxxxxxx (führende 0 wird mit gewählt)
; 5zzz Direkte Nutzung des internen S0 via Asterisk deaktiviert, da broken
; 6zzz remote asterisk (user asterisk2, auf ip Adresse wie unten in [lokal],
; Passwort steht in iax.conf, beide einstellbar durch cfg_asterisk start)
; 70y interne SCCP Telefone (701, 702, 703 vorkonfiguriert ->sccp.conf)
; (SCCP-Verwendung: sccp.conf muss angepasst werden und
; noload => chan_sccp.so in modules.conf muss entfernt werden)
; 77zz interne SIP Telefone (7701, 7702, 7703, 7704 vorkonfiguriert ->sip.conf)
; (neu 2008-09, vierstellige SIP Nummern, damit Nebenstellen
; der fritzbox auch ohne abschliessendes "#" gewählt werden
; koennen; auch fuer isdn intern empfohlen, damit dtmf und Signalisierung
; funktionieren)
; 8z interne IAX2 Telefone (81, 82, 83, 84 vorkonfiguriert ->iax.conf)
; 80 Echotest
; 89 fragt Passwort ab (/var/tmp/asterisk/passwd) und startet Tunnel
; zebedee2.bin -f /etc/zebedee/zbdr23.conf für telnetd
; 90 Anrufbeantwortertest (Email-Konfiguration in Abschnitt [globals])
; 91 Begruessungsansage fuer Anrufbeantworter aufnehmen
; (geht bei reboot verloren, wenn nicht per cfg_asterisk usb_install
; installiert worden ist; /var/lib/asterisk/sounds/VM_MESSAGE.gsm)
; usb_install auf USB in addons/asterisk/usr/lib/asterisk/sounds)
; 92 Music on hold testen (/var/lib/asterisk/moh bzw. bei usb_install
; auf USB in addons/asterisk/usr/lib/asterisk/moh)
; 93 Callthrough testen (Passwort in /var/tmp/asterisk/passwd bzw. bei
; usb_install auf USB in addons/asterisk/etc/asterisk/passwd)
; (fragt Nummer ab und ruft diese Nummer per isdn (controller 1) an;
; logfile in /var/log/asterisk, bei USB in addons/asterisk/log/asterisk)
; 94 Callback testen (nur fuer in CB_IN_CHANNEL festgelegten Anrufer
; und nur auf in CB_OUT_CHANNEL festgelegte Nummer und Rueckruf
; erfolgt nur, wenn innerhalb von 5 Sekunden aufgelegt wird)
; 95 Call headset
; 99xxxx fuer voip ueber sip extern nach Nummer xxxx (siehe sip.conf)
; kommende Rufe:
; - Rufe vom Festnetz werden auf 701, 7701 und 81 signalisiert
; - Anruf von in CB_IN_CHANNEL definierter externer Rufnummer aus triggert
; Callback auf Nummer CB_OUT_CHANNEL (wenn innerhalb von 5 Sekunden aufgelegt wird)
; Anmerkungen:
; - bei den Telefonen 7701,..7704, 81,..84 ist Nummer=Name=User=Passwort voreingestellt
; - SIP Telefone MÜSSEN asterisk auf Port 5061 ansprechen (-> sip.conf)
; (oder Port des avm-SIP-clients veraendern: teils per voipd Neustart
; mit voipd -P 5062, teils durch Aendern von /var/flash/voip.cfg)
; - Telefone am internen S0: die oben genannten Nummern sind als
; - 9aaaaaa# zu wählen
; - und es muss auf der Fritzbox ein nicht aktiver Internetprovider existieren
; z.b. Internetnummer 99
; - eine Wahlregel in der Fritzbox muss 9 auf "Internetnummer 99" umleiten
; (sonst übernimmt/ändert der telefon daemon auf der fritzbox den Anruf...
; und ohne telefon daemon geht das Rauswählen ins Festnetz nicht)
; - zudem muss bei Internettelefonie/Erweitert der automatische Fallback
; ins Festnetz ausgeschaltet sein!
; - WLAN auf der Fritzbox muss/sollte deaktiviert sein, damit genügend RAM für
; asterisk vorhanden ist
; - getestet auf fritzbox 7050/7170 an ISDN Anschluss
; - für eigene Anpassungen: siehe oben genannter Grundkurs
; - Testversion ohne jede Gewähr (->auf ungewollte Telefonkosten achten!)
[globals]
; gehende Nummer in [festnetz_out]
CAPI_CALLERID=03XXXXXXXXXXXXXXXXX
;Callback (interne extension 94 oder auf CAPI/ISDN1 eingehender Ruf):
;(Triggerung durch Auflegen innerhalb von 5 Sekunden):
CB_IN_CHANNEL=SIP/7704
CB_OUT_CHANNEL=SIP/7704
;extern
;CB_IN_CHANNEL=CAPI/ISDN1/03XXXXXXXXXX
;CB_OUT_CHANNEL=CAPI/ISDN1/03XXXXXXXXXXXX
CB_CALLERID=82444
CB_WAITTIME=90
CB_CONTEXT=echotest
CB_EXTENSION=80
;CB_CONTEXT=callthroughtest
;CB_EXTENSION=93
MAILER_TO=root@localhost
MAILER_FROM=asterisk@localhost
MAILER_SMTP=smtp.localhost
; smtp user und password nur bei Bedarf eintragen (sonst leer lassen!)
MAILER_USER=
MAILER_PASSWORD=
[general]
static=yes
writeprotect=no
; Macros
[macro-entfernegitter]
; wenn Nummer mit # endet, das # Zeichen abschneiden, als EXTEN2 zurückgeben
; - um am internen isdn S0 der fritzbox asterisk zu erreichen, muss 912...# gewählt werden
exten => s,1,Set(EXTEN2=${IF( $[ ${MACRO_EXTEN:-1} = # ] ? ${MACRO_EXTEN:0:$[${LEN(${MACRO_EXTEN})}-1]} : ${MACRO_EXTEN} )})
;exten => s,n,NoOp(${EVAL(${EXTEN2})} -- ${MACRO_CONTEXT})
; --------------------------------------------------------------------
; f.r interne Funktionen: Echo, Anrufbeantworter ...
[headsettest]
exten => _95!,1,Dial(Mobile/headset)
;Callback testen
[callbacktest]
exten => _94!,1,noop(callerid=${CALLERID(all)}, channel=${CHANNEL:0:10}, callback_in_channel=${CB_IN_CHANNEL})
exten => _94!,n,gotoif($["${CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}" != "${CB_IN_CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}"]?80)
exten => _94!,n,gotoif($["${CALLERID(num)}" != "${CB_IN_CHANNEL:-${LEN(${CALLERID(num)})}}"]?80)
exten => _94!,n,wait(1)
exten => _94!,n,goto(callback-wait,s,1)
exten => _94!,80,hangup
; nicht per include in lokal aufzunehmen; wird ueber callbacktest aufgerufen.
[callback-wait]
exten => s,1,Set(CB_TRIGGERED=1,g)
exten => s,n,ringing
exten => s,n,wait(5)
exten => t,1,Set(CB_TRIGGERED=0,g)
exten => t,n,hangup
exten => h,1,gotoif($[${CB_TRIGGERED}]?callback-callfile,s,1)
; nicht per include in lokal aufzunehmen; wird ueber callbacktest aufgerufen.
[callback-callfile]
exten => s,1,system(echo "Channel: ${CB_OUT_CHANNEL}" >/var/spool/asterisk/call0)
exten => s,n,system(echo "CallerID: ${CB_CALLERID}" >>/var/spool/asterisk/call0)
exten => s,n,system(echo "WaitTime: ${CB_WAITTIME}" >>/var/spool/asterisk/call0)
exten => s,n,system(echo "MaxRetries: 0" >>/var/spool/asterisk/call0)
exten => s,n,system(echo "Context: ${CB_CONTEXT}" >>/var/spool/asterisk/call0)
exten => s,n,system(echo "Extension: ${CB_EXTENSION}" >>/var/spool/asterisk/call0)
exten => s,n,system(mv /var/spool/asterisk/call0 /var/spool/asterisk/outgoing)
exten => s,n,system(touch /var/spool/asterisk/outgoing)
exten => s,n,goto(100)
exten => s,80,wait(5)
exten => s,100,hangup
;Callthrough testen
[callthroughtest]
; Prompt caller to authenticate and validate passcode
exten => _93!,1,Goto(callthroughauth,s,1)
; nicht per include in lokal aufzunehmen; wird ueber callthroughtest aufgerufen.
[callthroughauth]
; Prompt caller to authenticate and validate passcode
;exten => _1234567!,1,goto(s,1)
exten => s,1,answer
exten => s,2,Noop(${CALLERID(num)})
exten => s,3,wait(1)
exten => s,4,authenticate(/etc/asterisk/passwd,j)
; Log failed authentication and hangup
exten => _93!,105,system(echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Authentication Failed!" >> /var/log/asterisk/callthrough.log)
exten => _93!,n,HangUp()
exten => s,5,Goto(callthrough,s,1)
; Log when call has been aborted
exten => h,1,system(echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call has been aborted at ${STRFTIME(||%Y-%m-%d_%H-%M-%S)}" >> /var/log/asterisk/callthrough.log)
; nicht per include in lokal aufzunehmen; wird ueber callthroughtest aufgerufen.
[callthrough]
; Prompt caller to key-in number to be dialed and to finish with #
exten => s,1,Set(NR=)
exten => s,2,Background(vm-enter-num-to-call)
exten => s,3,Set(TIMEOUT(response)=30)
exten => s,4,WaitExten
exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,2,Goto(s,3)
exten => *,1,Goto(s,1)
exten => #,1,NoOp(${NR})
exten => #,2,Playback(vm-dialout)
exten => #,3,NoOP(Dialing Now)
exten => #,4,system(echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Authenticated & dialing ${NR}" >> /var/log/asterisk/callthrough.log)
exten => #,5,NoOp(Dialing ${NR})
exten => #,6,Dial(CAPI/ISDN1/${NR},55,bd)
;exten => #,6,Dial(SIP/${NR},55,bd)
exten => #,n,HangUp()
; Log when connection timed out
exten => t,1,Busy(3)
exten => t,n,system(echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call to ${NR} timed out." >> /var/log/asterisk/callthrough.log)
exten => t,n,HangUp()
; Log when call has finished
exten => h,1,system(echo "${STRFTIME(||%Y-%m-%d_%H-%M-%S)} - ${CALLERID(num)}: Call to ${NR} completed." >> /var/log/asterisk/callthrough.log)
;music on hold testen
[mohtest]
exten => _92!,1,Macro(entfernegitter)
exten => _92!,n,answer
exten => _92!,n,wait(1)
exten => _92!,n,musiconhold
exten => _92!,n,hangup
;Begruessungsnachricht des Anrufbeantworters aufnehmen
[record_message]
exten => _91!,1,Macro(entfernegitter)
exten => _91!,n,answer
exten => _91!,n,wait(1)
exten => _91!,n,playback(beep)
exten => _91!,n,record(VM_MESSAGE.gsm,3,60)
exten => _91!,n,playback(VM_MESSAGE)
exten => _91!,n,playback(beep)
exten => _91!,n,hangup
;bei usb-Installation werden die Nachrichten vor dem mailen
;auf den usb-Speicher geschrieben (/var/spool/asterisk);
;(Schreiben auf RAM durch Ersetzen von /var/spool/asterisk durch /var/spool)
[recordtest]
; Prompt caller to authenticate and validate passcode
exten => _90!,1,Goto(record,s,1)
; nicht per include in lokal aufzunehmen; wird ueber recordtest aufgerufen.
[record]
exten => s,1,Macro(entfernegitter)
exten => s,n,answer(2000)
exten => s,n,wait(1)
; die gew.hlte Nummer ansagen:
exten => s,n,SayDigits(${EXTEN2})
; Ansagetext vorspielen
exten => s,n,playback(VM_MESSAGE)
exten => s,n,set(MSGFILENAME=${CALLERID(num)}-${TIMESTAMP})
exten => s,n,set(MAILER_SUBJECT=Anrufer:${CALLERID(num)} ${STRFTIME(||%Y-%m-%d_%H-%M-%S)})
exten => s,n,record(/var/spool/asterisk/${MSGFILENAME}.WAV,5,60)
;exten => s,n,playback(/var/spool/asterisk/${MSGFILENAME})
exten => s,n,hangup
; Nachricht nach Hangup per e-mail versenden und löschen
exten => h,1,gotoif(${MSGFILENAME}?20:48)
exten => h,20,system(mv /var/spool/asterisk/${MSGFILENAME}.WAV /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,n,gotoif(${MAILER_USER}?40)
exten => h,n,system(mailer -s "${MAILER_SUBJECT}" -m "${MAILER_SMTP}" -f "${MAILER_FROM}" -t "${MAILER_TO}" -d /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,n,goto(45)
exten => h,40,system(mailer -a "${MAILER_USER}" -w "${MAILER_PASSWORD}" -s "${MAILER_SUBJECT}" -m "${MAILER_SMTP}" -f "${MAILER_FROM}" -t "${MAILER_TO}" -d /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,n,goto(45)
; Nachricht bei erfolgreichem Versand loeschen
exten => h,45,gotoif($[${SYSTEMSTATUS} = SUCCESS]?46:48)
exten => h,46,system(rm /var/spool/asterisk/${MSGFILENAME}.wav)
exten => h,47,goto(49)
exten => h,48,NoOp(Hanging up - no message to send)
exten => h,49,NoOp()
[echotest]
exten => _80!,1,Macro(entfernegitter)
exten => _80!,n,answer
exten => _80!,n,wait(2)
; als Test auf die Spracheinstellung, die gewählte Nummer ansagen:
exten => _80!,n,SayNumber(80)
exten => _80!,n,wait(2)
exten => _80!,n,playback(demo-echotest)
exten => _80!,n,echo
exten => _80!,n,playback(demo-echodone)
exten => _80!,n,hangup
[authtest]
exten => _89!,1,Macro(entfernegitter)
exten => _89!,n,answer
exten => _89!,n,wait(2)
exten => _89!,n,authenticate(/etc/asterisk/passwd)
exten => _89!,n,system(zebedee2.bin -f /etc/zebedee/zbdr23.conf)
exten => _89!,n,playback(beep)
exten => _89!,n,hangup
;
; --------------------------------------------------------------------
; für rausgehende Rufe
;
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;
[lokal]
include => echotest
include => authtest
include => recordtest
include => record_message
include => mohtest
include => callthroughtest
include => callbacktest
include => headsettest
; Erreichbarkeit der Nebenstellen
; untereinander herstellen
; remote asterisk
; (wähle nach remote asterisk ohne führende Ziffer 6: 680 echotest remote)
exten => _6X.,1,Dial(IAX2/
[email protected]/${EXTEN:1})
; SCCP
;exten => _70X,1,Dial(SCCP/${EXTEN},55,Ttr)
; SIP
exten => _7701.,1,Dial(SIP/7701,,D(ww${EXTEN:4}))
exten => _7701.,n,Goto(s-${DIALSTATUS},1)
exten => _770X,n,Dial(SIP/${EXTEN},55,Ttr)
exten => _7704,n,Dial(SIP/${EXTEN}&Capi/ISDN3/80XXX,55,Ttr)
; IAX2
exten => _8[1-9],1,Dial(IAX2/${EXTEN},55,Ttr)
[festnetz_out]
; Raustelefonieren per externen S0 der fritzbox 7050
; wenn Nummer führende Null hat (0 wird mitgewählt!)
; erzwinge default calller id aus capi.conf: /d
; (/d geht nicht; SetCallerID verwenden)
exten => _0[0-9].,1,Set(CALLERID(number)=03XXXXXXXX)
;exten => _0[0-9].,n,SetCallerPres(prohib)
exten => _0[0-9].,n,Dial(Capi/contr1/${EXTEN}/bo)
exten => _0[0-9].,n,Hangup()
[festnetz80XX5]
;Probe exten => 7780265,1,Dail(Capi/contr3/${EXTEN}/bo)
exten => _0[0-9].,1,Set(CALLERID(number)=03XXXXXX)
;exten => _0[0-9].,n,SetCallerPres(prohib)
exten => _0[0-9].,n,Dial(Capi/contr1/${EXTEN}/bo)
exten => _0[0-9].,n,Hangup()
[sip_out]
exten => _99.,1,Dial(SIP/${EXTEN:2}@sip1_out,45,r)
; --------------------------------------------------------------------
; für reinkommende Rufe
;
; hier kommt der default-Context, in dem alle Geraete in der
; Grundkonfiguration erstmal laufen.
; Alle Geraete koennen sich gegenseitig anrufen
[default]
include => lokal
[sip7701]
include => lokal
include => festnetz_out
include => sip_out
[sip7702]
include => lokal
include => festnetz_out
include => sip_out
[sip7703]
include => lokal
include => festnetz_out
include => sip_out
[sip7704]
include => lokal
include => festnetz80265
include => sip_out
[sip7705]
include => lokal
include => festnetz_out
include => sip_out
[sip7706]
include => lokal
include => festnetz_out
include => sip_out
[sccp701]
include => lokal
include => festnetz_out
include => sip_out
[sccp702]
include => lokal
include => festnetz_out
include => sip_out
[sccp703]
include => lokal
include => festnetz_out
include => sip_out
[iax81]
include => lokal
include => festnetz_out
include => sip_out
[iax82]
include => lokal
include => festnetz_out
include => sip_out
[iax83]
include => lokal
include => festnetz_out
include => sip_out
[iax84]
include => lokal
include => festnetz_out
include => sip_out
[asterisk2_in]
include => lokal
; ISDN S0 extern
[capi_in1]
exten => 80265,1,Dial(SIP/7704)
; solange in capi.conf nur auf einer msn Nummer Anrufe angenommen werden
; reicht es, unabhängig von der msn immer auf die
; gewünschten Nebenstellen weiterzuverbinden
; callback?
; (compare number and channel of caller with number and channel in CB_IN_CHANNEL)
exten => _X.,1,noop(callerid_num=${CALLERID(num)}, channel=${CHANNEL}, callback_channel=${CB_IN_CHANNEL})
exten => _X.,n,gotoif($["${CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}" != "${CB_IN_CHANNEL:0:$[${LEN(${CB_IN_CHANNEL})}-1-${LEN(${CALLERID(num)})}]}"]?80)
exten => _X.,n,gotoif($["${CALLERID(num)}" != "${CB_IN_CHANNEL:-${LEN(${CALLERID(num)})}}"]?80)
exten => _X.,n,goto(callback-wait,s,1)
; Bei SCCP SetCalledParty Funktion nutzen um Name und Nummer der jeweiligen angerufenen Nebenstelle(n)
; fuer chan_sccp zu setzen
;exten => _701.,1,SetCalledParty("Home Office" <1234567>)>
;exten => _701.,2,Dial(SIP/7701&IAX2/81&SCCP/701,30,r)
; mit sccp:
;exten => _X.,80,Dial(SIP/SIP/7704,30,r)
; ohne sccp:
;exten => _X.,80,Dial(SIP/SIP/7704,81,30,r)
; ISDN S0 intern: akzeptiere nur Anrufe mit führender 9
; (entferne die führende 9 und das abschliessende #)
[capi_in3]
exten => _9[1-8]!,1,Macro(entfernegitter)
exten => _9[1-8]!,n,Goto(lokal,${EXTEN2:1},1)
exten => _90!,1,Macro(entfernegitter)
exten => _90!,n,Goto(festnetz_out,${EXTEN2:1},1)
exten => _99!,n,Goto(sip_out,${EXTEN2:2},1)
[mobile_in]
;exten => s,1,noop(${CALLERID(all)})
;exten => s,n,Dial(SIP/7702)
;exten => s,n,goto(echotest,80,1)
[sip_in]
exten => sip1,1,noop(${CALLERID(all)})
exten => sip1,n,Dial(SIP/7704/81,30,r)