cmd Authenticate Eingabe per variable übergeben

Crackstar

Neuer User
Mitglied seit
20 Dez 2006
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Hallöche liebe Gemeinde :)

folgendes Attentat:

Ich versuche eine Zeiterfassung durch Pineingabe zu realisieren.

Das heisst, ein Mitarbeiter ruft Nummer xy an und gibt seine spezielle PIN ein.

Diese Pin wird dann mittels AGI an ein PHP Script übergeben und in eine Datenbank mit timestamp geschrieben, später werden aus der sql datenbank csv's exportiert und anhand der Werte die Zeiten für die Lohnabrechnung ermittelt.

Nun hänge ich bei der übergabe der eingegebenen PIN.

Die PIN wird über authenticate aus einer Datei gelesen und gegengeprüft.

Wie kann ich nun die Eingabe bei authenticate mittels Variable an ein php script weiter schicken?

Mein Kontext sieht in etwa so aus

[zeiterfassung]
exten => s,1,GotoIf($["${CALLERID(num)}" = "0101213" | "${CALLERID(num)}" = "4711"]?3:7)
exten => s,3,Playback(Willkommen_Bitte_Pin_Eingeben)
exten => s,4,Authenticate(/usr/share/asterisk/agi-bin/mapins.txt|${PINUEBER})
exten => s,5,AGI(push.php,${PINUEBER})
exten => s,7,Playback(Viel_Spass_Bei_Der_Arbeit)

Hat jemand einen Lösungsvorschlag vielleicht für mich?
 
is jetzt eine gedanken spielerei, hab mich damit noch nich beschäftigt..

könnte man nicht denn Pin an ein PHP script übergeben (per system, agi oder so) und per gotoIF überprüfen lassen ob er richtig ist und dann weitergeben zur push.php?
 
Naja, der Haken an der Sache ist ja, das es mehrere PINS sind, je Mitarbeiter eine Kennung/PIN und die müssen ja differenziert werden.
 
das ist doch kein problem
also, er ruft an und gibts sein pin ein, die erste übergabe überprüft ob der pin existiert, und gibt true oder false wieder.
Per gotoif wirds ausgewertet, und bei true, wird z.b. push.php?pin=$PINUEBER aufgerufen.
über die Pin kannst ja rausfinden wer der anrufer ist, und denn timestamp enstprechen zuordnen lassen
 
Stimmt, wäre auch eine möglichkeit :)

Nur würde der Kontext dann was groß werden bei 30 Mitarbeitern vorallem wenn ein Mitarbeiter kommt oder den Betrieb verlässt müsste ich die extensions auch immer mitpflegen ..... Wäre aber Quick 'N Dirty ;)
 
würde er nich. sind doch nur 6 oder 7 zeilen.

wird doch alles über PHP und mysql gemacht, die extension muss nur einmal drinn stehen
 
Hättest du da vielleicht n Codeschnipsel für mich als grober Leitpfaden wie ich das aufbauen könnten?

Gruss
 
ist jetzt ungetestet
Code:
exten => s,1,GotoIf($["${CALLERID(num)}" = "0101213" | "${CALLERID(num)}" = "4711"]?3:7)
exten => s,3,Playback(Willkommen_Bitte_Pin_Eingeben)
exten => s,4,GotoIf($["System(/usr/local/bin/php -f /var/pincheck.php?pin=${PINUEBER})" = "true"]?5:1); 
exten => s,5,System(/usr/local/bin/php -f /var/push.php?pin=${PINUEBER});
exten => s,7,Playback(Viel_Spass_Bei_Der_Arbeit)

mußt natürlich das php script noch schreiben, das dann true oder false liefert.

achja, wo wird bei dir eigentlich PINUEBER definiert?
 
PINUEBER Hab ich wie folgt definiert, was aber eben nicht funktioniert

Code:
exten => s,4,Authenticate(/usr/share/asterisk/agi-bin/mapins.txt|${PINUEBER})

Mein Problem ist ja schlichtweg das ich die Eingabe bei Authenticate nicht ermittelt und per Variable übergeben kann.
 
So ich bin nun einen Schritt weiter :)

Habs nun mit:

Code:
exten => s,4,Authenticate(/usr/share/asterisk/agi-bin/mapins.txt|a)

Hinbekommen .... |a gibt die Eingabe in {ACCOUNTCODE} weiter und damit kann ich dann ja weiter arbeiten :)
 
ja ok, so gehts auch :)

geht aber auch anders ;-)

Code:
exten => s,1,GotoIf($["${CALLERID(num)}" = "0101213" | "${CALLERID(num)}" = "4711"]?3:7)
exten => s,3,Playback(Willkommen_Bitte_Pin_Eingeben)
exten = s,4,Read(PINUEBER,beep,4); 4stelliger pin wird erwartet
exten => s,5,GotoIf($["System(/usr/local/bin/php -f /var/pincheck.php?pin=${PINUEBER})" = "true"]?5:1); 
exten => s,6,System(/usr/local/bin/php -f /var/push.php?pin=${PINUEBER});
exten => s,7,Playback(Viel_Spass_Bei_Der_Arbeit)
ist zwar alles ungetestet, sollte aber funktionieren
 

Statistik des Forums

Themen
246,300
Beiträge
2,249,714
Mitglieder
373,904
Neuestes Mitglied
Elemir
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.