Hallo,
ich habe noch letzte Probleme beim Feintuning:
--> Spezielle Nebenstelle soll bei spezieller MSN "klingeln"
Ich bekomme schon hin, dass eine Nebenstelle auf einer speziellen Nebenstelle klingelt, die jeweils zweite Rufverteilungsregel (hier im Code die MSN 8901234) führt zu folgender Fehlermeldung:
Ich habe folgende Codes in der extensions.conf, habe hier mal fast den gesamten Code wiedergegeben, da ich denke, dass dich eigentlichen Codes unter CAPI-IN1 stimmen. Sorry, falls es zu lang ist.
ich habe noch letzte Probleme beim Feintuning:
--> Spezielle Nebenstelle soll bei spezieller MSN "klingeln"
Ich bekomme schon hin, dass eine Nebenstelle auf einer speziellen Nebenstelle klingelt, die jeweils zweite Rufverteilungsregel (hier im Code die MSN 8901234) führt zu folgender Fehlermeldung:
== Starting CAPI/ISDN1#02/1234567-69 at capi_in1,s,1 failed so falling back to context ´default´
== Starting CAPI/ISDN1#02/1234567-69 at capi_in1,s,1 still failed so falling back to context ´default´
WARNING[2489]: pbx.c:2468 __ast_pbx_run: Channel ´CAPI/ISDN1#02/1234567-69´sent into invalid extension ´s´in context ´default´, but no invalid handler
Ich habe folgende Codes in der extensions.conf, habe hier mal fast den gesamten Code wiedergegeben, da ich denke, dass dich eigentlichen Codes unter CAPI-IN1 stimmen. Sorry, falls es zu lang ist.
Code:
[globals]
; gehende Nummer in [festnetz_out]
CAPI_CALLERID=1234567
;Callback (interne extension 94 oder auf CAPI/ISDN1 eingehender Ruf):
;(Triggerung durch Auflegen innerhalb von 5 Sekunden):
;CB_IN_CHANNEL=SIP/772
;CB_OUT_CHANNEL=SIP/772
;intern (fuer internes ISDN-Telefon mit msn 772; extension 94 waehlbar per 994#):
;CB_IN_CHANNEL=CAPI/ISDN3/772
;CB_OUT_CHANNEL=CAPI/ISDN3/772
;extern
;CB_IN_CHANNEL=CAPI/ISDN1/0981234567
;CB_OUT_CHANNEL=CAPI/ISDN1/0981234567
;CB_CALLERID=Fritzbox <1234567>
;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,CELL/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,chroot /oldroot 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,chroot /oldroot 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,chroot /oldroot 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,chroot /oldroot 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,chroot /oldroot 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,chroot /oldroot mv /var/spool/asterisk/${MSGFILENAME}.WAV /var/spool/asterisk/${MSGFILENAME}.wav
exten => h,n,gotoif,${MAILER_USER}?40
exten => h,n,system(chroot /oldroot 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(chroot /oldroot 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,chroot /oldroot 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
; Erreichbarkeit der Nebenstellen
; untereinander herstellen
; Erreichbarkeit der Telefone am internen S0 der fritzbox 7050
; (wähle nach S0 intern ohne führende Ziffer 5: 5123 für Telefon mit msn=123)
exten => _5.,1,Dial,CAPI/ISDN3/${EXTEN:1}|55|Tt/b
; 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 => _77X,1,Dial,SIP/${EXTEN}|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 => _0X.,1,SetCallerID,${CAPI_CALLERID}
;exten => _0X.,n,Dial,CAPI/ISDN1/${EXTEN}|55|Tt/bd
[sip1_out]
;exten => _X.,1,SetCallerID,1234567
exten => _X.,1,Dial,SIP/${EXTEN}@NAME|45|r
exten => _00X.,102,Busy(3)
[sip2_out]
exten => _X.,1,Dial,SIP/${EXTEN}@NAME|45|r
exten => _00X.,102,Busy(3)
; --------------------------------------------------------------------
; 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
...
; ISDN S0 extern
[capi_in1]
exten => 1234567,1,Dial(SIP/772,30,r)
exten => 8901234,n,Dial(SIP/771,30,r)
;exten => _X.,1,Dial(SIP/771&SIP/772,30,Ttr)
;exten => _82989825.,2,Dial(SIP/774,30,Ttr)
; 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/771&IAX2/81&SCCP/701&CAPI/ISDN3/31|30|r
; mit sccp:
;--------exten => _X.,80,Dial,SIP/771&IAX2/81&SCCP/701&CAPI/ISDN3/31|30|r
; ohne sccp:
;exten => _X.,80,Dial,SIP/771&IAX2/81&CAPI/ISDN3/31|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/772
;exten => s,n,goto,echotest|80|1
Zuletzt bearbeitet: