Transfer in falschen Kontext

klimpel.b

Neuer User
Mitglied seit
9 Apr 2006
Beiträge
26
Punkte für Reaktionen
0
Punkte
0
Hallo, mein Problem ist folgendes in kann interne Gespräche mit # weitervermittlen, leider funktioniert das nicht mit externen gesprächen die ich intern weitervermitteln möchte. Der entsprechende Eintrag in der extensions.conf ist folgender:

Code:
[isdn]
language = de
 exten => s,1,NoOP
 exten => _X.,1,WaitForDigits(3000)
 exten => _X.,2,Goto(user-${CALLERIDNUM},${EXTEN},1)

Wenn ich ein externes Gespräch vermittel möchte er wieder in einen internen Kontext springen "user-06081928XXXX|32|1" da ich diesen aber nicht habe geht das nichts. Gibt es nicht irgentwie die Möglichkeit einen default transfer Kontext anzugeben oder vieleicht mit GoToIf irgenteine Variable überprüfen ob das ein Transferiertes Gespräch ist ?

Code:
    -- Executing Dial("mISDN/1-2", "misdn/4/20|30|tT") in new stack
    -- Called 4/20
    -- mISDN/4-u152 is ringing
    -- SIP/sipgate-a5d6 is ringing
    -- mISDN/4-u152 answered mISDN/1-2
    -- SIP/sipgate-a5d6 answered SIP/32-6e8d
    -- Attempting native bridge of SIP/32-6e8d and SIP/sipgate-a5d6
    -- Started music on hold, class 'default', on channel 'mISDN/1-2'
    -- Playing 'pbx-transfer' (language 'de')
    -- Stopped music on hold on mISDN/1-2
    -- Executing waitfordigits("mISDN/1-2", "3000") in new stack
You passed timeout:3000 maxnum:20 addexten:0 control:0
    -- Executing Goto("mISDN/1-2", "user-06081XXXXXXX|32|1") in new stack
    -- Goto (user-06081XXXXXXX,32,1)
Apr 11 01:37:18 WARNING[21500]: pbx.c:2309 __ast_pbx_run: Channel 'mISDN/1-2' sent into invalid extension '32' in context 'user-06081928XXXX', but no invalid handler
  == Spawn extension (user-32, 906081XXXXX, 1) exited non-zero on 'SIP/32-6e8d'

Ich sitze da schon so lange dran, und habe hier im Forum die Lösung auch nicht finden können. Vieleicht hat ja jemand einen Tipp für mich

Mfg Benjamin
 
Zuletzt bearbeitet von einem Moderator:
Moin Herr Nachbar,
meine Vorwahl ist ebenfalls die 06081 :)
Du kannst den Context doch fest angeben z.B. mit
Code:
exten => _X.,2,Goto(transfercontext,${EXTEN},1)
 
Hallo,

nichts zu glauben ;) da muss man schon sagen das asterisk eine weit verbreitete software ist.

Aber zu meinem Problem, dein Vorschlag funktioniert so leider nicht bei mir, Der sinn von dem [ISDN] Kontext ist es ja das alle ISDN Telefone dort rein springen und dort dann in den eigenen Kontext user-22 (für die MSN 22) springen. Dort landen nun wohl aber auch die vermittelten Anrufe. Und so müsste ich für jeden anrufer den ich intern vermitteln möchte einen eigenen user-069123456 (Telefonnummer des Anrufers) Kontext einrichten.

Was ich brauche ist vieleicht
* eine globale Variable Die den Status z.B THISISAINCOMINGCALL besitzt.
* Oder einen Tipp wo der Kontext definiert wird in welche die vermittelten Anrufe springen.
* Oder einen Kontext in die Asterisk springt wenn es einen invalid Kontext Fehler gibt

Mfg Benjamin
 
Zuletzt bearbeitet:
Hi Benjamin,
ich muss zugeben das ich noch gar nicht verstanden habe was du vorhast.
Im Augenblick ist es ja so, das einfach jeder Anruf der über ISDN ankommt in diesem Kontext landet und dann eine Fehlermeldung kommt.
Beschreib doch mal für Doofe was Du vorhast, am besten mit Beispielrufnummern. Ich sehe nämlich nirgends, wo dort die Durchwahl 22 ins Spiel kommt.

Bis später
Matthias
 
Ok, vieleicht habe ich es auch zu umständlich beschrieben.
Der Kontext [isdn] ist für alle internen MSNs.
Wenn ich intern ein Telefon anhänge, mit der MSN 22 z.B. landet es bei einem Rufaufbau in diesem Kontext.
Durch den Goto Befehl wird dann in den Kontext [user-22] gesprungen. Da ich dort alles Regel was den Benutzer mit der Msn 22 angeht. Es funktioniert ja auch soweit alles, der Benutzer darf raustelefonnieren, er bekommt von außen Anrufe usw. Intern kann ich auch weitervermitteln, da ja jede interne Msn auch seinen eigenen Kontext hat [user-20] z.B. Aber wenn ich externe Gespräche weiterleiten möchte versucht er ja in den Kontext [user-'anrufernr'] springen den es nicht gibt

Code:
[isdn]
language = de
exten => s,1,NoOP
exten => _X.,1,WaitForDigits(3000)
exten => _X.,2,Goto(user-${CALLERIDNUM},${EXTEN},1)
 
Zuletzt bearbeitet von einem Moderator:
Ich verstehe zwar jetzt etwas mehr, aber immer noch nicht, was Du mit weitervermitteln meinst. Zeig doch am besten mal Deine komplette extensions.conf, die capi.conf oder zapata.conf oder midsn.conf.
Hast Du auch SIP-Telefone? Dann auch die sip.conf.
Aber bitte benutze die CODE-Blöcke um den Inhalt der Dateien zu zeigen.
Kommst Du jetzt aus FFM oder USI?
 
Bitte nächstes Mal die CODE Tags selbst setzen. Danke.
 
Hallo,

ich komme aus Anspach und du aus Usingen? Hast du privat oder geschäftlich mit Asterisk zu tun?

Hier meine Extensions.conf
mit weitervermitteln meine ich die interne vermittelung mit der R Taste (bei mir #1) um ein angenommenes Gespräch zu einem anderen Telefon. Englisch glaube ich Transfer.
Ich denke die sip.conf spielt in diesem fall keine Rolle, da die internen Sip-Telefone auch über den Kontext isdn laufen. Du siehst ja in der extensions.conf den Kontext [isdn] Hier kommt das Telefon rein wenn es wählt. Die externen Gespräche laufen in den Kontext default und werden dort zu
einem internen Telefon geleitet. Das Problem ist wenn ich nun Angerufen werde und hier ein Telefon klingelt und jemand rangeht die vermittelung mit der R Taste nicht funktioniert, da bei einer Vermittelung wohl ein neues Gespräch aufgebaut wird und dieses auch erst im Kontext [isdn] springt (keine Ahnung wieso) kommt dort die Fehlermeldung das ich einen invalid context habe [isdn-069123] die Nummer 069123 ist die Nummer desjenigen der angerufen hat. Intern funktioniert das ganze weil es die Kontexte ja gibt. Ich habe im Kontext [isdn] ein bisschen was getestet aber ohne erfolg mir fehler die idee. z.B. habe ich probiert erst die länge der Nummer zu testen und dann ggf. in den default Kontext zu springen, das funktioniert nur kann ich dann nicht mehr raustelefonieren, da die gewählte Nummer ja auch länger ist. Gibt es in Asterisk denn nicht die Möglichkeit bei einem invalid Kontext einfach in den Default Kontext zu springen durch einen parameter.

Code:
;;;;;; Allgemeine Infos & Parameter ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[general]
 language=de
 static=yes
 writeprotect=yes

; S0INT (Büro)
; S0INT2 (Obergeschoss)
; S0INT3 (Telefonanlage)
; S0AMT (Amt)

[globals]
 language=de
 S0INT=Zap/g4
 S0INT2=Zap/g3
 S0INT3=Zap/g2
 S0AMT=Zap/g1

[default]
 language=de

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; Interne erreichbarkeit der Teilnehmer und externen Nummern ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; Externe MSNS                                               ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 exten => 56***,1,SetCallerId,${CALLERIDNUM}
 exten => 56***,2,Dial(misdn/4/20,30,tT)
 exten => 56***,3,Hangup
 exten => 56***,102,Busy

 exten => 5***,1,SetCallerId,${CALLERIDNUM}
 exten => 5***,2,Dial(misdn/3/10,90,tT)
 ;exten => 5***,3,Dial(${S0INT}/22,90,tT)
 exten => 5***,4,Hangup
 exten => 5***,102,Busy

 exten => 57****,1,Dial(${S0INT2}/11,30)
 exten => 57****,2,Hangup

 exten => 57****,1,Dial(${SOINT}/22,15,tT)
 exten => 57****,2,Voicemail(su22)
 exten => 57****,3,Hangup

 exten => 57****,1,Dial(${S0INT2}/46,30)
 exten => 57****,2,Hangup

 exten => 57****,1,Dial(${S0INT2}/45,30)
 exten => 57****,2,Hangup

 exten => 98****,1,Dial(misdn/2/42,30)
 exten => 98****,2,Hangup

 // Direkt angeschlossen MSNs
 exten => 10,1,Dial(misdn/3/10,30,tT)
 exten => 10,2,Hangup
 exten => 10,102,Busy

 exten => 11,1,Dial(misdn/3/11,30,tT)
 exten => 11,2,Hangup
 exten => 11,102,Busy

 exten => 20,1,Dial(misdn/4/20,30,tT)
 exten => 20,2,Voicemail(su${EXTEN})
 exten => 20,3,Congestion
 exten => 20,4,Busy
 exten => 20,5,Hangup

 exten => 21,1,Dial(misdn/4/21,30,tT)
 exten => 21,2,Congestion
 exten => 21,3,Busy
 exten => 21,4,Hangup

 exten => 22,1,Dial(misdn/4/22,30,tT)
 exten => 22,2,Voicemail(su${EXTEN})
 exten => 22,3,Congestion
 exten => 22,4,Busy
 exten => 22,5,Hangup

 exten => 42,1,Dial(misdn/2/42,30,tT)
 exten => 42,2,Hangup
 exten => 42,102,Busy

 exten => 45,1,Dial(misdn/2/45,30,tT)
 exten => 45,2,Hangup
 exten => 45,102,Busy

 exten => 99,1,Dial(SIP/496081****@sip.1und1.de,60,tT)
 exten => 99,2,Hangup

 // Sip Telefone
 exten => 30,1,Dial(SIP/30,30,tT)
 exten => 30,2,Voicemail(u30)
 exten => 30,3,Hangup
 exten => 30,102,Busy

 //
 exten => 31,2,Dial(SIP/31,30,tT)
 exten => 31,3,Hangup
 exten => 31,102,Busy

 exten => 32,1,Dial(SIP/32,10,tT)
 exten => 32,2,Voicemail(u32)
 exten => 32,3,Hangup
 exten => 32,102,Busy

 // Gruppen Test
 exten => 40,1,Dial(${S0INT2}/10&${S0INT3}/40,30,tT)
 exten => 40,2,Hangup
 exten => 40,102,Busy

 // Telefonbuch
 exten => 1001,1,AGI(easybook_c.agi)
 exten => 1001,3,Hangup

 // Konferenzraum
 exten => 2000,1,MeetMe(2000,1)

 // Sip incoming

; Externe Mitarbeiter
 exten => 928****,1,Ringing()
 exten => 928****,2,Dial(SIP/33,30,tT)
 exten => 928****,3,Voicemail(u32) 
 exten => 928****,4,Hangup
 exten => 928****,102,Busy

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;  Test             ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


 exten => 888,1,SendText(Test)
 exten => 888,2,Hangup

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; ISDN parameter User bezogen ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[isdn]
language = de
 exten => s,1,NoOP
 exten => _X.,1,WaitForDigits(3000)
 exten => _X.,2,Goto(user-${CALLERIDNUM},${EXTEN},1)

; exten => _X.,2,GotoIf(${LEN(${CALLERIDNUM})} > 2?(user-${CALLERIDNUM})
 ;exten => _X.,2,GotoIf(${LEN(${CALLERIDNUM})} > 2?3:4)
 ;exten => _X.3,Goto(user-${CALLERIDNUM},${EXTEN},1)
 ;exten => _X.4,Goto(default,${EXTEN},1)


[user-56***]
 include => verboten
 include => default
 include => amt

[user-20]
 include => verboten
 include => mailbox
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(5****)
 include => amt
 include => sipcalls

[user-21]
 include => verboten
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(5****)
 include => amt
 include => sipcalls

[user-22]
 include => verboten
 include => mailbox
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(5****)
 include => amt
 include => sipcalls

[user-10]
 include => verboten
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(5***)
 include => amt
 include => sipcalls

[user-11]
 include => verboten
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(5***)
 include => amt
 include => sipcalls

[user-30]
 include => verboten
 include => mailbox
 include => default
 include => sip
 include => amt

[user-31]
 include => verboten
 include => mailbox
 include => default
 include => sip
 include => amt
 include => sipcalls

[user-32]
 include => verboten
 include => mailbox
 include => default
 include => sip
 include => amt
 include => sipcalls

[user-33]
 include => verboten
 include => mailbox
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(56***)
 include => amt

[user-45]
 include => verboten
 include => mailbox
 include => default
 include => sip
 exten => _0[0-9]XX.,1,SetCallerID(57****)
 include => amt

[user-42]
 include => verboten
 include => mailbox
 include => default
 include => sip
 include => amt

[user-5***]
 include => verboten
 include => default
 include => amt

[user-5****]
 include => verboten
 include => default
 include => amt

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; alle Amts Zugänge ;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[amt]
 language = de
 exten => _0[0-9]XX.,1,SetCallerID(5***)
 exten => _0[0-9]XX.,2,Dial(misdn/1/${EXTEN:1},90,Tt)
 exten => _0[0-9]XX.,3,Congestion
 exten => _0[0-9]XX.,4,Busy
 exten => _0[0-9]XX.,5,Hangup
 exten => _0[0-9]XX.,104,Playtones(busy);
 exten => _0[0-9]XX.,105,Busy
 exten => _0[0-9]XX.,106,Hangup


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; Sip Service Provider ;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[sip]
 exten => _9.,1,Dial(SIP/${EXTEN:1}@sipgate,60)
 exten => _9.,2,Congestion
 exten => _9.,3,Hangup
 exten => _9.,102,Busy

[sipcalls]
 exten => _X.,1,Dial(SIP/${EXTEN}, 60)
 exten => _X.,2,Congestion
 exten => _X.,3,Hangup


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; Sip Provider Incoming ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; alle Verbotene-Nummern ;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[verboten]
; Telefon Filter
; 0880 <-Filter Test
exten => _0880X.,1,Macro(notallowed)

; 019x
exten => _019X.,1,Macro(notallowed)


; 0900
exten => _0900X.,1,Macro(notallowed)

; EMSAT
exten => _0088X.,1,Macro(notallowed)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; MailBoxes  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[mailbox]
 exten => 9999/_[1-9].,1,Answer
 exten => 9999/_[1-9].,2,Wait(1)
 exten => 9999/_[1-9].,3,VoicemailMain(${CALLERIDNUM})
 exten => 9999/_[1-9].,4,Hangup

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;; Macros   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[macro-notallowed]
 exten => s,1,Answer
 exten => s,2,Wait(0.5)
 exten => s,3,Playback(ss-noservice)
 exten => s,4,Hangup

[parkedcalls]
 include => default
misdn.conf

Code:
[general]
debug=0
append_digits2exten=yes
bridging=no
tracefile=/var/log/misdn.trace

[default]
language=de
hold_allowed=yes
context=default
nationalprefix=0
internationalprefix=00
rxgain=0
txgain=0
dialplan=0

[teports]
ports=1
context=default
msns=*

[ntports]
ports=2,3,4
context=isdn
msns=*

Vielen Dank das du mir versucht das Problem zu beheben.

Mfg Benjamin
 
Ich komme auch aus Anspach (Rod am Berg).
Warum lässt Du Deine internen Telefone denn direkt in den ISDN-Kontext springen? Der erschlägt ja mit dem Pattern _X. einfach alles und versucht daher, in den dort angegebenen (nicht existierenden) Kontext zu springen.
Mach doch einfach einen neuen Kontext auf und inkludiere in den die benötigten Sachen, ansonsten lässt Du einfach die Zeile mit dem _X.,2 weg. Oder mache ein include des neuen kontextes (der ja nur die 2stelligen internen Nummern benötigt) innerhalb des ISDN-Kontextes.
Ich bin gerade in FFM auf der Arbei und schaue mir den Dialplan heute abend mal an.
Ich arbeite privat und geschäftlich mit Asterisk, allerdings nur in sehr kleinem Kreis
 
Hi,

das ist eine Idee. Ich werde es gleich mal probieren. Hast du auch schon erfahrungen mit den bristuff treibern gemacht oder nur mit den misdn treibern? Und was ist deine Meinung dazu?
 
Ich habe bisher nur Erfahrungen mit Bristuff und das läuft mit 3 HFC-Karten ziemlich gut. mISDN habe ich noch nicht getestet, sorry.
 
Naja ich sag immer wenn es klappt wieso sollte man des wechseln;) Aber ich hatte wirklich immer sehr merkwürdige abstürtze die ich mir nicht erklären konnte. Aber ich hatte auch eine 4 Port HFC. Ich konnte mit den bristuff Treibern keinen Tag ohne ausfälle kompletter Telefone telefonieren. Die Misdn Treiber scheinen da stabiler zu sein. Obwohl ich nun immer gefragt werde ob die Telefone kaputt seinen da sie nun einen französischen Wählton haben ;) Aber das lässt sich sicherlich noch einstellen
 
Hallo Klimpel,

sag mal funzt die Zeile

exten => _X.,2,Goto(user-${CALLERIDNUM},${EXTEN},1)

bei dir? Kommt dein * da rein nach dem Wait und tut es was?

Weil ich habe das Problem, daß bei mir nach dem WaitFor Digits einfach nix mehr passiert. (siehe hier: http://www.ip-phone-forum.de/showthread.php?t=118759)
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,955
Beiträge
2,221,557
Mitglieder
371,723
Neuestes Mitglied
robschue
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.