FreePBX Rufumleitung funktioniert nicht

Ristor

Neuer User
Mitglied seit
6 Mai 2011
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

FreePBX Version 2.9.0.0
Asterisk 1.8.3

Tel1: 4402
Tel2: 4429
Tel3: 37

folgendes Problem wenn ich über ein SIP-Telefon (4402) eine Rufumleitung aktiviere (*7237) sagt mir die Stimme das eine Rufumleitung aktiviert wurde.

Wenn ich jetzt von der 4429 auf die 4402 anrufe bekomme ich ein Besetzt meldung bzw. "Failed to etablished call"

Deaktiviere ich wieder das ganze geht alles normal.

CLI auszug:
Code:
-- Executing [4402@from-internal:1] ExecIf("SIP/4429-00000311", "0?Set(__RINGTIMER=0)") in new stack
    -- Executing [4402@from-internal:2] Macro("SIP/4429-00000311", "exten-vm,novm,4402,0,0,0") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("SIP/4429-00000311", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/4429-00000311", "AMPUSER=4429") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/4429-00000311", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/4429-00000311", "1?Set(REALCALLERIDNUM=4429)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/4429-00000311", "AMPUSER=4429") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/4429-00000311", "AMPUSERCIDNAME=XXX Name") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/4429-00000311", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/4429-00000311", "AMPUSERCID=4429") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/4429-00000311", "CALLERID(all)="XX NAme" <4429>") in new stack
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/4429-00000311", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:10] ExecIf("SIP/4429-00000311", "0?Set(GROUP(concurrency_limit)=4429)") in new stack
    -- Executing [s@macro-user-callerid:11] ExecIf("SIP/4429-00000311", "1?Set(CHANNEL(language)=de)") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/4429-00000311", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:13] Set("SIP/4429-00000311", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("SIP/4429-00000311", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,25)
    -- Executing [s@macro-user-callerid:25] Set("SIP/4429-00000311", "CALLERID(number)=4429") in new stack
    -- Executing [s@macro-user-callerid:26] Set("SIP/4429-00000311", "CALLERID(name)=XX NAme") in new stack
    -- Executing [s@macro-user-callerid:27] Set("SIP/4429-00000311", "CHANNEL(language)=de") in new stack
    -- Executing [s@macro-exten-vm:2] Set("SIP/4429-00000311", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("SIP/4429-00000311", "__EXTTOCALL=4402") in new stack
    -- Executing [s@macro-exten-vm:4] Set("SIP/4429-00000311", "__PICKUPMARK=4402") in new stack
    -- Executing [s@macro-exten-vm:5] Set("SIP/4429-00000311", "RT=""") in new stack
    -- Executing [s@macro-exten-vm:6] Macro("SIP/4429-00000311", "record-enable,4402,IN") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/4429-00000311", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("SIP/4429-00000311", "0?MacroExit()") in new stack
    -- Executing [s@macro-record-enable:5] GotoIf("SIP/4429-00000311", "0?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,14)
    -- Executing [s@macro-record-enable:14] GotoIf("SIP/4429-00000311", "1?IN") in new stack
    -- Goto (macro-record-enable,s,18)
    -- Executing [s@macro-record-enable:18] ExecIf("SIP/4429-00000311", "1?MacroExit()") in new stack
    -- Executing [s@macro-exten-vm:7] Macro("SIP/4429-00000311", "dial-one,"",tr,4402") in new stack
    -- Executing [s@macro-dial-one:1] Set("SIP/4429-00000311", "DEXTEN=4402") in new stack
    -- Executing [s@macro-dial-one:2] Set("SIP/4429-00000311", "DIALSTATUS_CW=") in new stack
    -- Executing [s@macro-dial-one:3] GosubIf("SIP/4429-00000311", "0?screen,1") in new stack
    -- Executing [s@macro-dial-one:4] GosubIf("SIP/4429-00000311", "1?cf,1") in new stack
    -- Executing [cf@macro-dial-one:1] Set("SIP/4429-00000311", "CFAMPUSER=4429") in new stack
    -- Executing [cf@macro-dial-one:2] ExecIf("SIP/4429-00000311", "0?Return()") in new stack
    -- Executing [cf@macro-dial-one:3] ExecIf("SIP/4429-00000311", "0?Set(ARG1=0)") in new stack
    -- Executing [cf@macro-dial-one:4] Set("SIP/4429-00000311", "DEXTEN=37#") in new stack
    -- Executing [cf@macro-dial-one:5] ExecIf("SIP/4429-00000311", "1?Return()") in new stack
    -- Executing [s@macro-dial-one:5] GotoIf("SIP/4429-00000311", "1?skip1") in new stack
    -- Goto (macro-dial-one,s,8)
    -- Executing [s@macro-dial-one:8] GotoIf("SIP/4429-00000311", "0?nodial") in new stack
    -- Executing [s@macro-dial-one:9] GotoIf("SIP/4429-00000311", "1?continue") in new stack
    -- Goto (macro-dial-one,s,25)
    -- Executing [s@macro-dial-one:25] GotoIf("SIP/4429-00000311", "0?nodial") in new stack
    -- Executing [s@macro-dial-one:26] GosubIf("SIP/4429-00000311", "0?dstring,1:dlocal,1") in new stack
    -- Executing [dlocal@macro-dial-one:1] Set("SIP/4429-00000311", "DSTRING=") in new stack
    -- Executing [dlocal@macro-dial-one:2] Set("SIP/4429-00000311", "USEGOTO=") in new stack
    -- Executing [dlocal@macro-dial-one:3] Return("SIP/4429-00000311", "") in new stack
    -- Executing [s@macro-dial-one:27] GotoIf("SIP/4429-00000311", "1?nodial") in new stack
    -- Goto (macro-dial-one,s,46)
    -- Executing [s@macro-dial-one:46] ExecIf("SIP/4429-00000311", "1?Set(DIALSTATUS=NOANSWER)") in new stack
    -- Executing [s@macro-dial-one:47] NoOp("SIP/4429-00000311", "Returned from dial-one with nothing to call and DIALSTATUS: NOANSWER") in new stack
    -- Executing [s@macro-dial-one:48] MacroExit("SIP/4429-00000311", "") in new stack
    -- Executing [s@macro-exten-vm:8] GotoIf("SIP/4429-00000311", "0?exit") in new stack
    -- Executing [s@macro-exten-vm:9] Set("SIP/4429-00000311", "SV_DIALSTATUS=NOANSWER") in new stack
    -- Executing [s@macro-exten-vm:10] GosubIf("SIP/4429-00000311", "0?docfu,1") in new stack
    -- Executing [s@macro-exten-vm:11] GosubIf("SIP/4429-00000311", "0?docfb,1") in new stack
    -- Executing [s@macro-exten-vm:12] Set("SIP/4429-00000311", "DIALSTATUS=NOANSWER") in new stack
    -- Executing [s@macro-exten-vm:13] ExecIf("SIP/4429-00000311", "0?MacroExit()") in new stack
    -- Executing [s@macro-exten-vm:14] GotoIf("SIP/4429-00000311", "1?s-NOANSWER,1") in new stack
    -- Goto (macro-exten-vm,s-NOANSWER,1)
    -- Executing [s-NOANSWER@macro-exten-vm:1] GotoIf("SIP/4429-00000311", "0?exit,1") in new stack
    -- Executing [s-NOANSWER@macro-exten-vm:2] PlayTones("SIP/4429-00000311", "congestion") in new stack
    -- Executing [s-NOANSWER@macro-exten-vm:3] Congestion("SIP/4429-00000311", "10") in new stack
  == Spawn extension (macro-exten-vm, s-NOANSWER, 3) exited non-zero on 'SIP/4429-00000311' in macro 'exten-vm'
  == Spawn extension (from-internal, 4402, 2) exited non-zero on 'SIP/4429-00000311'
    -- Executing [h@from-internal:1] Hangup("SIP/4429-00000311", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/4429-00000311'

Für mich als laie sieht es so aus als würde er niemals anfangen diese Nummer zu wählen oder lieg ich da falsch?? Evtl. ein fehler im Script oder hab ich was falsch konfiguriert.

Hat evtl. jemand für mich ne Lösung oder zumindest einen Lösungsansatz :D
Bin für jede Hilfe DAnbar sitze an dem Problem jetzt schon mehrere Stunden :(

Gruß,
Roland
 
Zuletzt bearbeitet:
Hallo und willkommen im Forum,

was mir beim Überfliegen aufgefallen ist, ist die # bei Set("SIP/4429-00000311", "DEXTEN=37#").

Beim Setzen der ursprünglichen Ziernummer mit Set("SIP/4429-00000311", "DEXTEN=4402") ist die nicht drin.

Bei GUI Dialplänen ist das schwer zu sagen, aber ich vermute er findet kein Peer mit 37#, setzt deshalb einen leeren Dialstring Set("SIP/4429-00000311", "DSTRING=") und springt dann auf Noanswer.
 
Hallo rentier-S,

sorry das ich mich erst jetzt melde aber ich hatte bis auf heute noc keine Zeit weiter zu suchen ^^.

Das # ist mir auch schon aufgefallen. Bin jetzt auch schon teilweise die scripte durchgegangen und habe auch dieses Raute paar mals gefunden und auskommentiert -> reload gemacht und erneut versucht. Aber es war trotzdem noch da xD also habe ich die falschen Zeilen... naja muss ich halt weitersuchen.

Gruß,
Roland
 
Hallo,

habe jetzt die besagte # gefunden und die weggelöscht. jetzt wird die nummer zwar "richtig" in der Cli angezeigt aber trotzdem funzt es nit :mad:

Was mich stuzig macht er setzt den Dialstatus auf NOANSWER...

Naja ich such ma weida.

grüße
Roland
 
Hallo Roland,

so arg solltest Du da im Dialplan eigentlich nicht rumbasteln. Die GUIs machen das meistens schon so, dass das passt. Ich hätte eher vermutet, Du würdest die # als Dialkey benutzen um den Wahlvorgang abzuschließen.

Zeig mal die Stellen im Dialplan wo Du die # entfernt hast, und evtl. einen aktuellen CLI Auszug.
Wenn das kein custom war, wird die Änderung wahrscheinlich sowieso wieder überschrieben, wenn Du das nächste Mal übers GUI was änderst.

Svenja
 
Hallo Svenja,

so ich habe jetzt fast den kompletten Dialplan auseinandergenommen xD und hab folgendes festgestellt. In der Freepbx "extensions_additional.conf" gibt es folgende zeile.

Code:
exten => dlocal,1,Set(DSTRING=${IF($["${ARG1}"=""]?${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}:Local/${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}@from-internal/n)})

und die CLi zeigt dann an .....Set(DSTRING=)
also bleibt leer. Nun habe ich ein bischen rumgefummelt und den Dialplan erweitert und mit einem ExecIf frag ich einfach ab ob der User auf der Asterisk exstiert wenn ja dann DSTRING=SIP/XXX wenn nein DSTRING=SIP/berofix/XXX

So funktioniert es soweit :D. Ja du hast schon recht das es seinkann das mir der ganze käse überschrieben wird muss ich testen.

Oder du hast evtl. eine Idee warum bei mir in der Zeile DSTRING nichts bleibt ich selber kann nix falsches erkennen.

Jetzt weiss ich auch warum er die # brauch :) die darf ich net entfernen

Grüße,
Roland
 
Hallo zusammen

Wir hatten seit heute Morgen das gleiche Problem. Ich kann zwar nur Vermutungen anstellen, aber ich denke, dass die FreePBX 2.9 (wir haben 2.9.0.7 am Laufen) problembehaftet ist.

Workaround: In FreePBX unter den Einstellungen für die weitergeleiteten Extensions ganz unten eines oder alle drei Auswahlmöglichkeiten (No Answer, Busy, Not Reachable) auf etwas anderes als die erste Möglichkeit setzen (... Voicemail if Enabled). Danach sollte das Call Forwarding funktionieren.

Technische Details für Interessierte:
Beim Anruf wird exten-vm aufgerufen
Code:
-- Executing [4402@from-internal:2] Macro("SIP/4429-00000311", "exten-vm,novm,4402,0,0,0") in new stack

Die letzten 3 Argumente von exten-vm korrelieren mit den Einstellungen, die ich unter Workaround aufgeführt habe. Steht bspw. die Einstellung No Answer auf "Unavail Voicemail if Enabled", wird hier 0 übergeben, sonst 1.

Später wird in besagtem Mikro der Wert RT (Ringtime) gesetzt.
Code:
-- Executing [s@macro-exten-vm:5] Set("SIP/4429-00000311", "RT=""") in new stack

Und genau das ist das Problem. Es braucht scheinbar eine RT, damit die Weiterleitung funktioniert. RT wird folgendermassen in exten-vm gesetzt (extensions_additional.conf):
Code:
exten => s,n,Set(RT=${IF($["${ARG1}"!="novm" | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | ${ARG3} | ${ARG4} | ${ARG5}]?${RINGTIMER}:"")})

Alle Bedindungen sind false, daher der leere String. Auch die scheinbare Call Forwards (CFU = Call Forward Unavailable, CFB = Call Forward Busy) gibts nicht. Ein Call Forward gibts aber (in der DB CF/EXTNUMBER), dann müsste dort aber noch eine zusätzliche Bedingungen stehen
Code:
exten => s,n,Set(RT=${IF($["${ARG1}"!="novm" | [COLOR=RED]"${DB(CF/${EXTTOCALL})}"!="[/COLOR] | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | ${ARG3} | ${ARG4} | ${ARG5}]?${RINGTIMER}:"")})

Dann klappts wieder. FreePBX überschreibt aber die configs beim Speichern von Änderungen. Daher ist man mit dem Workaround besser bedient.
 

Statistik des Forums

Themen
246,512
Beiträge
2,253,337
Mitglieder
374,329
Neuestes Mitglied
Ingo2208
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.