[Problem] Problem mit Datenbankauswertung und Übergabe GotoIf

alex-kehl

Neuer User
Mitglied seit
14 Jan 2009
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Hallo Asterisk-Gemeinde

Ich verzweifle gerade an einer Anrufweiterschaltung, welche über nur eine Taste aktiviert und deaktiviert werden soll.

Plan ist folgender:
wird die *99 gewählt, soll In der Datenbank geschaut werden ob eine Umleitung aktiv ist. Wenn aktiv soll sie deaktiviert werden. Wenn deaktiviert, soll diese aktiviert werden. Ich gehe davon aus, dass die GotoIf Zeile einen Fehler hat, denn das "wenn - dann" funktioniert nicht. Es funktioniert immer nur das was vorne steht ?deaktivieren:aktivieren) egal wirum ich es drehe.
Meine Versuche bisher:

;AWS Praxis Urlaub/geschlossen aktivieren/deaktivieren
exten => *99,1,answer
exten => *99,n,wait(2)
exten => *99,n,GotoIf([(DB(CF 100) =21]?deaktivieren:aktivieren)

exten => *99,n(aktivieren),Set(DB(CF/100)=21)
exten => *99,n,Playback(call-fwd-unconditional&activated)
exten => *99,n,wait(2)
exten => *99,n,Hangup

exten => *99,n(deaktivieren),DBdel(CF/100)
exten => *99,n,Playback(call-fwd-unconditional&de-activated)
exten => *99,n,wait(2)
exten => *99,n,Hangup

Eigentlich sicher nichts wildes, da es so eine Funktion ja bei followme gibt, bekomme es aber nicht hin.

Die Genies unter Euch werden sicherlich gleich den Fehler finden.

Für Eure Hilfe schonmal VIELEN DANK
 
Zuletzt bearbeitet:
Moin


Ich mag mich ja täuschen, aber könnte es an der Syntax liegen ?
Beispiel aus voip-info.org....
Code:
GotoIf($[${DB(office/open)} = 1]?daytime:nighttime)
Demnach sollte deins wohl eher so aussehen....
Code:
GotoIf($[${DB(CF/100)} = 21]?deaktivieren:aktivieren)
 
Zuletzt bearbeitet:
;) Super, an Dich[SIZE=2pt] koyaanisqatsi [/SIZE]nochmal vielen Dank.

Würde den Post gerne erweitern, so weit bin ich nun:

exten => 21,hint,Custom:weiterleitung-praxis

;AWS Praxis Urlaub/geschlossen aktivieren/deaktivieren
exten => *99,1,answer
exten => *99,n,wait(2)
exten => *99,n,GotoIf($[${DB(CF/100)} = 21]?deaktivieren:aktivieren)
exten => *99,n(aktivieren),Set(DB(CF/100)=21)
exten => *99,n,Playback(call-fwd-unconditional&activated)
exten => *99,n,Set(DEVICE_STATE(Custom:weiterleitung-praxis)=INUSE)
exten => *99,n,wait(2)
exten => *99,n,Hangup
exten => *99,n(deaktivieren),DBdel(CF/100)
exten => *99,n,Playback(call-fwd-unconditional&de-activated)
exten => *99,n,Set(DEVICE_STATE(Custom:weiterleitung-praxis)=NOT_INUSE)
exten => *99,n,wait(2)
exten => *99,n,Hangup

;AWS Praxis Urlaub/geschlossen besprechen
exten => 24,1,VoiceMailMain(21)


Das BLF funktioniert prima. 2 Probleme wären dann noch, das kleinere zuerst:

1. Kann man exten => 24,1,VoiceMailMain(21) beibringen, dass es gleich dahin kommt, wo der Text unavailible aufgenommen wird, ohne dass man durch das Voicemail-Menü mit 0 - 1 muss?

2. Habe auch hier das Forum schon von vorne nach hinten durch, zwar einige Anfragen gesehen, die Antworten aber nicht wirklich zu mir passen. Es geht erneut um die Geschichte nur eine Ansage auf dem AB zu hinterlassen. Zeitgesteuert ist allerdings schlecht, deshalb die obige Koniguration mit dem virtuellen Nebenstellen-AB. Ist die Ärztin mal nicht da z.B.Fortbildung, Urlaub, Brückentag usw. kann Sie über obige Konfig. den AB mit sofortiger Weiterleitung schalten. Hierbei würde der obere Punkt die Sache etwas vereinfachen. Nun soll halt nur der Text "ich bin heute halt nicht da", oder "jetzt habe ich bis zum xx.xx.xxxx Urlaub" einschalten. Allerdings wie gesagt, sollte da dann keine Aufnahme stattfinden dürfen.

Nochmals Vielen Dank an alle
 
:?:
1. Kann man exten => 24,1,VoiceMailMain(21) beibringen, dass es gleich dahin kommt, wo der Text unavailible aufgenommen wird, ohne dass man durch das Voicemail-Menü mit 0 - 1 muss?
Türlich, nimm VoiceMail() und dann die Parameter (Flags) ",su" mal versuchen.
Quelle: https://www.voip-info.org/wiki/view/Asterisk+cmd+VoiceMail

Zu 2. ...
Ist auch einfach :D , sowas bastelst dir mit VoiceMail() und dem Flag ",s".
Erst kommt nach Bedingung das entsprechende Playback() und dann Hangup() oder obige "Memofunktion".

PS: Mit ExecIf() lassen sich die meisten GotoIf()s ersetzen oder kombinieren
Quelle: https://www.voip-info.org/wiki/view/Asterisk+cmd+ExecIf
 
Zuletzt bearbeitet:

Neueste Beiträge

Statistik des Forums

Themen
244,695
Beiträge
2,216,686
Mitglieder
371,314
Neuestes Mitglied
Gjorstn
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.