MySQL Database auslesen

Ich hab n weiteres Problem:
Ich hab den Quelltext aus einer PHP datei in ne andere kopiert und will diese nun ausführen.
Bei agi debug sagt man mir das die Datei nicht vorhanden ist (extension *Pfad* not present, rechte hab ich auch gesetzt und die datei ist definitiv im var/livb/asterisk/agi-bin verzeichnis...
 
Zeig doch mal die genaue Fehlermeldung die Du bekommst. Aufgrund Deiner Fehlerbeschreibung kann man echt nur rätseln.

Und poste mal ein "ls -a" aus dem agi Verzeichnis, damit man die zugewiesenen Rechte sieht.
 
hier n "agi debug":
Code:
 Executing AGI("mISDN/1-2", "fremd.php") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/fremd.php
AGI Tx >> agi_request: fremd.php
AGI Tx >> agi_channel: mISDN/1-2
AGI Tx >> agi_language: en
AGI Tx >> agi_type: mISDN
AGI Tx >> agi_uniqueid: 1196230263.1
AGI Tx >> agi_callerid: 62
AGI Tx >> agi_calleridname: unknown
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: unknown
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: port1
AGI Tx >> agi_extension: i
AGI Tx >> agi_priority: 1
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
AGI Rx << Extension '/var/lib/asterisk/agi-bin/fremd.php' not present.
AGI Tx >> 510 Invalid or unknown command
    -- AGI Script fremd.php completed, returning 0
    -- Executing Hangup("mISDN/1-2", "") in new stack
  == Spawn extension (port1, i, 2) exited non-zero on 'mISDN/1-2'

Hier "Dir-s":
Code:
24 -rw-r--r-- 1 user     1000 24389 May 27  2005 COPYING
 4 -rw-r--r-- 1 user     1000  1641 May 27  2005 README
 8 -rwx--x--x 1 nobody nobody  7594 Oct 30 09:28 backup.php
 4 drwxr-xr-x 3 user     1000  4096 May 27  2005 docs
12 -rwx--x--x 1 nobody nobody 10293 Nov  1 15:23 dump.php
24 -rwxrwxrwx 1 nobody nobody 20506 Nov 27 13:16 fremd.php
 4 -rwxr-xr-x 1 user     1000   239 May 27  2005 mkdocs.php
20 -rwx--x--x 1 nobody nobody 20070 Nov 22 10:08 neu.php
28 -rwxr-xr-x 1 root   root   24797 May 27  2005 phpagi-asmanager.php
 4 -rwxr-xr-x 1 root   root    2322 May 27  2005 phpagi-fastagi.php
68 -rw-r--r-- 1 user     1000 63563 May 27  2005 phpagi.php
 8 -rwxr-xr-x 1 root   root    4542 Oct 24 11:56 sql.php
 8 -rwx--x--x 1 nobody nobody  5627 Nov 27 14:01 sql1.php
 8 -rwx--x--x 1 nobody nobody  5627 Nov 27 14:01 sql2.php
20 -rwx--x--x 1 nobody nobody 19966 Nov 27 13:16 start.php
 4 -rwx--x--x 1 nobody nobody   328 Nov  2 13:31 test.php

Das komische ist ja, das die Datei start.php funktioniert....
 
Zuletzt bearbeitet:
Bist du dir sicher dass der alte und der neue Inhalt *ident* ist? start.php und fremd.php haben andere Endungen!

Der Fehlermeldung nach zu urteilen wird hier irgendwo der Dateiname als "Extension" gewertet, vielleicht rufst du das Script in der extension.conf/ael falsch auf? Oder du hast tatsächlich im neuen Script was geändert was den Fehler produziert.

Lässt sich das Script mit den Rechten von asterisk auf der Kommandozeile ausführen?

Code:
php fremd.php

"Simuliere" dort den AGI Call, indem du per STDIN die betreffenden Variablen reinschreibst (agi_*), per enter trennst und nach der letzten Variable zwei Enter machst.
Nun sollte dir das Script die AGI-Befehle, die sonst an Asterisk gehen anzeigen. Die kannst du dann nach Fehlern abklappern. Meiner Vermutung nach ich dort ein falscher Redirect auf eine Extension drinnen.
 
naja, das einzige wo der unterschied ist, ist das die fremd.php auf eine datei sql2.php zugreift, die start.php greift auf eine sql1.php zu.
Der unterschied zwischen den beiden dateinen sind die Datenbanknamen...
 
Mache es mal bitte so wie ich gesagt habe, führe das Script direkt mit PHP aus und "simuliere" die AGI Kommunikation.
 
kannst du mir das genauer erklären?
 
Ich habe es bereits beschrieben: Du führst dein Script mit PHP auf der Kommandozeile aus. Das, was du mit der Tastatur (STDIN) eingibst ist das, was Asterisk deinem Script schicken würde. Das, was dann die Ausgabe ist (STDOUT) sind die Befehle, die Asterisk von deinem Script erhält.

Eine Beschreibung des AGI "Protokolls" findest du mit google. Du musst also zuerst alle Variablen über die Tastatur eingeben, z.B.: "CALLERID: 3456456", Enter usw.

Ich bin aber wieder ein bisschen draussen aus Asterisk und da ich vom Urlaub zurückgekommen bin hab ich eine Menge zu tun und keine Zeit mich damit zu beschäftigen. Suche mit google einfach wie das AGI "Protokoll" funktioniert. Es gibt auch ein Gratis Buch als PDF indem dies schön beschrieben ist, welches das genau ist fällt mir aber gerade nicht ein.

EDIT: So heissts glaub ich: Asterisk: The Future Of Telephony
 
Bin noch kein Pro in *!
kann mir niemand helfen?
 
das was divB dir beschreibt hat auch nichts mit astersik zu tun. er schreibt ja, daß du das der konsole ausführen solllst, sprich:

./scriptname.php "übergabewert1" "übergabewert2" "übergabewert3"

damit du ggf. eine sinnvolle fehlermeldung erhältst. sollte hier alle wie gewünscht funktionieren, kannst du es im asterisk als agi versuchen.
 
hab grad ma im agi-bin-Verzeichnis ./fremd.php ausgeführt und es kommt ne meldung das die Datei nich "present is"... Aber ein LS zeigt sie mir...

die Start.php geht...
 
Welche Datei nicht "present". Wer gibt das aus?
Kopier mal die Meldung von der Konsole hier rein.

Ist das x-Bit gesetzt? User hat Lesezugriff? Shebang richtig gesetzt?

lg
 
ich hab in der Conosle:
Code:
./fremd.php
eingegeben (nicht in der asterisk cli)
dann kommt:"Extension fremd.php is not Present"

Dateirechte:
Code:
-rw-r--r-- 1 user     1000 24389 May 27  2005 COPYING
-rw-r--r-- 1 user     1000  1641 May 27  2005 README
-rwxrwxrwx 1 nobody nobody  7594 Oct 30 09:28 backup.php
drwxr-xr-x 3 user     1000  4096 May 27  2005 docs
-rwxrwxrwx 1 nobody nobody 10293 Nov  1 15:23 dump.php
-rwx--x--x 1 nobody nobody 33178 Jan 10 11:22 fremd.php
-rwxrwxrwx 1 user     1000   239 May 27  2005 mkdocs.php
-rwxrwxrwx 1 nobody nobody 20070 Nov 22 10:08 neu.php
-rwxrwxrwx 1 root   root   24797 May 27  2005 phpagi-asmanager.php
-rwxrwxrwx 1 root   root    2322 May 27  2005 phpagi-fastagi.php
-rwxr-xr-x 1 user     1000 63563 May 27  2005 phpagi.php
-rwxrwxrwx 1 root   root    4542 Oct 24 11:56 sql.php
-rwx--x--x 1 nobody nobody  8687 Dec  5 11:06 sql1.php
-rwx--x--x 1 nobody nobody  8690 Jan 10 11:21 sql2.php
-rwx--x--x 1 nobody nobody 32312 Dec  7 09:06 start.php
-rwxrwxrwx 1 nobody nobody   328 Nov  2 13:31 test.php
 
Was sagt er bei
Code:
php ./fremd.php
?

Ausserdem 2 kleine Anmerkungen:

1.) Du hast für u und o jeweils das x-Bit gesetzt. Das wird dir nix bringen ausser du hast das r-Bit auch dabei!
2.) Ich würde niemals Dateien (schon gar nicht solchen die Code beinhalten) den owner nobody geben! "nobody" ist i.d.R. ein unpriviligierter User!! Also ich würde so machen (und hab es so):

User: root, rwx
Group: asterisk, r-x
Others: ---
 
also zum 1. Punkt, das geht nicht, da sagt er
Code:
php Command not found
 
Dann wirst du aber entweder die php-CLI Version installieren müssen oder schauen wo dein PHP liegt und es in den Pfad geben.
 
ich hab in der Console das eingegeben:
Code:
/opt/lampp/bin/php fremd.php

Und es passiert nix.. keine Fehlermeldung...
 
meines wissens nach gibt es in lampp nur die mod_php version von php (als apache modul). installiere doch mal bitte php richtig. solche pakete wie lampp halte ich persönlich auch in einer produktivumgebung nicht für sinnvoll.
 
1.) Was sagt "head fremd.php"?

2.) Du musst in deiner Beschreibung einfach genauer werden wenn man dir helfen soll; was ist "Und es passiert nix.. keine Fehlermeldung..."?? Hat er den Befehl ausgeführt (d.h. ist wieder auf der Konsole) oder wartet er auf eine Eingabe?
 
zu 1. :
Code:
head: cannot open `fremp.php' for reading: No such file or directory

zu2. ich könnte ne eingabe machen, und wenn ich strg+c drücke komme ich zur Console zurück
 
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.