Rufumleitung von extern setzen

aktivix

Neuer User
Mitglied seit
26 Mrz 2011
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
Liebe Leute,

Ich möchte gerne folgendes verwirklichen:

1. Nummer wird angerufen von extern
2. Anrufer muss sich authentifizieren per PIN
3. Anrufer kann dann per DTMF(?) Nummer eingeben, auf die weitergeleitet werden soll
4. Auflegen

Mir ist soweit klar wie ich das umsetze, nur 3. nicht. Ich habe lange danach gesucht, aber die Funktion nicht gefunden. Also wie ich eine Nummer per DTMF (sofern das das richtige Stichwort ist) an Asterisk schicke, die dann ausgewertet wird.

Wäre super wenn mir jemand auf die Sprünge hilft.
[1] funktioniert dabei zum Beispiel nur zum Teil, da ich die Umleitung von extern steuern will, nicht intern.

Danke schonmal

[1] http://www.das-asterisk-buch.de/2.1/section-callforwarding.html
 
Hallo,

Danke. Ich komme langsam voran, es hängt aber noch an wie ich glaube einer Stelle.
Erstmal was ich gemacht habe:

Code:
exten => 4930XXXXXXXX,1,Authenticate(1234)
exten => 4930XXXXXXXX,n,Macro(weiterleitung)

[macro-weiterleitung]
exten => s,1,Background(weiterleitung-hallo&silence/5)
exten => 1,1,Goto(weiterleitung-setzen,s,1)
exten => 2,1,Goto(weiterleitung-löschen,s,1)

[weiterleitung-setzen]
exten => s,1,Answer()
exten => s,n,Read(NUMBER,weiterleitung-nummer,0,1,0)
exten => s,n,Set(DB(CF/${CALLERID(num)=4930XXXXXXXX})=${NUMBER})
exten => s,n,SayDigits(${NUMBER})
exten => s,n,NoOp(Weiterleitung fuer ${CALLERID(num)=4930XXXXXXXX} auf ${NUMBER} aktiviert.)
exten => s,n,Hangup()

[weiterleitung-löschen]
exten => s,1,DBdel(CF/${CALLERID(num)=4930XXXXXXXX})
exten => s,n,Playback(auth-thankyou)
exten => s,3,NoOp(Weiterleitung fuer ${CALLERID(num)=4930XXXXXXXX} deaktiviert.)
exten => s,4,Hangup()

Das Macro verwende ich oben nur, damit ich "springen" kann. Mit Goto etc. hatte das irgendwie nicht geklappt.

Jetzt aber zum Problem. Wenn ich das ausführe ist alles gut, bis zur Eingabe von 1 oder 2. Wenn der Anrufer dies macht, meldet Asterisk:

Oct 21 22:57:36] WARNING[4106]: pbx.c:4415 __ast_pbx_run: Invalid extension '1', but no rule 'i' in context 'eingehend'

Ich verstehe die Fehlermeldung jedoch nicht, weil 1 ja definiert ist. :confused:

Wäre super wenn mir nochmal jemand helfen könnte,
Danke,
aktivix
 
Genau das Macro ist das Problem. Die Fehlermeldung sagt Dir wortwörtlich, dass die 1 im Context eingehend nicht gefunden wird. Demnach versucht Asterisk, im Originalcontext weiter zu springen, nicht im Macro.

Du musst das übrigens noch ein wenig umbauen. Im Moment setzt Du eine Rufumleitung für ${CALLERID(num), was intern klappt, aber von extern musst Du zuerst noch abfragen, für welchen Teilnehmer die Rufumleitung gesetzt werden soll.
 
Hallo,

danke für die Hilfe. Ich bin dann später selber drauf gekommen, und nun läuft alles, so:

extensions.conf:
Code:
[weiterleitung]
exten => s,1,Background(weiterleitung-hallo&silence/9)
exten => 1,1,Goto(weiterleitung-setzen,s,1)
exten => 2,1,Goto(weiterleitung-löschen,s,1)
exten => i,1,Goto(weiterleitung,s,1)

[weiterleitung-setzen]
exten => s,1,Read(NUMBER,weiterleitung-nummer,0,1,0)
exten => s,n,Set(DB(CF/anlage)=${NUMBER})
exten => s,n,SayDigits(${NUMBER})
exten => s,n,NoOp(Weiterleitung fuer ${CALLERID(num)} auf ${NUMBER} aktiviert.)
exten => s,n,Background(weiterleitung-check&silence/9)
exten => 1,1,Goto(weiterleitung-setzen,s,1)
exten => 2,1,Goto(weiterleitung-ende,s,1)

[weiterleitung-löschen]
exten => s,1,DBdel(CF/anlage)
exten => s,n,Playback(auth-thankyou)
exten => s,n,NoOp(Weiterleitung fuer ${CALLERID(num)} deaktiviert.)
exten => s,n,Hangup()

[weiterleitung-ende]
exten => s,1,Playback(auth-thankyou)
exten => s,n,Hangup()

Und: Vielleicht könnte man so ein Beispiel ja mal sticky machen, oder? Weil die Fragen ja immer und immer und immer wieder auftauchen...?

lg!
 
Das kann so aber noch nicht funktionieren. :gruebel:
Was gibt denn
Code:
exten => s,n,NoOp(Weiterleitung fuer ${CALLERID(num)} auf ${NUMBER} aktiviert.
aus?

Wie bereits erwähnt musst Du statt der Callerid doch erst mal die Nebenstelle abfragen, für die die Umleitung gelten soll.

Vielleicht könnte man so ein Beispiel ja mal sticky machen, oder?

So viel gibt die Suchfunktion her, da brauchen wir imho wahrlich keinen Sticky.
 
Doch es funktioniert, ich benutz das in Kombination mit dem:

Code:
exten => s,1,NoOp(Anruf von ${CALLERID(num)} fuer ${EXTEN})
exten => s,n,GotoIf($[foo${DB(CF/anlage)} != foo]?cfanlage:zweiteregel)
exten => s,n(zweiteregel),GotoIf($[foo${DB(CF/${EXTEN})} != foo]?cfnormal:normal)
exten => s,n(normal),Goto(kunden-queue,s,1)
exten => s,n(cfnormal),NoOp(Anruf fuer ${EXTEN} wird verbunden zu ${DB(CF/${EXTEN})})
exten => s,n,Dial(SIP/${DB(CF/${EXTEN})}@172.251.1.1,,r)
exten => s,n(cfanlage),NoOp(Anruf fuer ${EXTEN} wird verbunden zu ${DB(CF/anlage)})
exten => s,n,Dial(SIP/${DB(CF/anlage)}@172.251.1.1,,r)

edit: Ja, ich weiß dass es die Suchfunktion gibt und das die auch was kann. Ich sehe nur immer wieder die gleiche(n) Frage(n) hier (auch wenn ich noch voll neu bin), und dachte vielleicht kann man dem besser begegnen mit sowas. Das gleiche gilt ja für diese MOH-intern=ja,MOH-exten=nein Geschichte.
 

Neueste Beiträge

Statistik des Forums

Themen
244,858
Beiträge
2,219,647
Mitglieder
371,572
Neuestes Mitglied
#Kuddel#
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.