.titleBar { margin-bottom: 5px!important; }

im Dialplan per wget URL aufrufen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von xebero, 26 Jan. 2012.

  1. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo zusammen,

    vorab: Ich habe kein CURL und will das auch nicht nachträglich installieren, wenn ich es vermeiden kann - der asterisk läuft schon im produktiveinsatz.

    Ich möchte im Dialplan per wget eine URL aufrufen und versuche das wie folgt:

    Code:
    exten => 123,1,Answer()
    exten => 123,n,SayNumber(1)
    exten => 123,n,System(wget http://IP-Adresse/test.php)
    exten => 123,n,Hangup()
    
    Wenn ich den wget Teil auf der shell teste, geht das... wenn ich nun aber die 123 anrufe, bleibt das ganze am wget hängen, ohne das was passiert (die php seite wird auch nicht ausgeführt)...

    Ausgabe:
    Code:
     Executing [[email protected]:x] System("DAHDI/i3/xxxxxxxxxxxxx", "wget http://IP-ADRESSE/test.php") in new stack
    
    Da bleibt es hängen - nachfolgende Befehler werden nicht mehr ausgeführt...

    Was mache ich falsch?

    Danke
     
  2. wichard

    wichard IPPF-Promi

    Registriert seit:
    16 Juni 2005
    Beiträge:
    6,954
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Aachen
    Bei mir läuft es mit
    Code:
    exten => 0049...............,n,system(wget -q -O /dev/null "http://domain.tld/pfad/zur/datei.php" &>/dev/null &)

    Gruß,
    Wichard
     
  3. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hmmm, damit laufen die Befehle schonmal durch... also auch das, was nach dem wget folgt... das PHP Script wird aber nicht ausgeführt... aber schonmal einen Schritt weiter....
     
  4. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Schon komisch... die PHP Datei sendet eine Mail.... rufe ich den wget befehl auf der shell auf, wird die mail verschickt... mache ich das im Dialplan über den System Befehl funktioniert das nicht.... habe es nun statt mit wget auch mit lynx versucht - klappt nicht.

    Mache ich einen Denkfehler?
     
  5. rentier-s

    rentier-s Guest

    Das klingt so als hätte der Benutzer, unter dem Asterisk läuft, keine Berechtigung für oder keinen path zu wget. :gruebel:
     
  6. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    puh, jetzt kommt es raus: Von Linux habe ich nur wenig (keine) Ahnung ;) Will sagen: Wie prüfe und ändere ich das? ;)
     
  7. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ok, ich habe schonmal herausfinden können, dass asterisk vom user root ausgeführt wird...

    Code:
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     1537 root      20   0 2937m 230m  13m S 103.6  5.8   3054:33 asterisk
    
    Daran sollte es also nicht liegen,oder?.... noch jemand eine Idee?
     
  8. IEEE

    IEEE Mitglied

    Registriert seit:
    23 Juli 2005
    Beiträge:
    296
    Zustimmungen:
    1
    Punkte für Erfolge:
    16
    Gib mal sicherheitshalber im system aufruf das wget mit kompletten Pfad an (vermutlich /usr/bin/wget - das kannst du noch mittels "which wget" überprüfen).

    BTW - irgendwie finde ich die CPU Last von Deinem asterisk Prozess ungewöhnlich hoch...
     
  9. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für den Tipp - klappt auch nicht.... /usr/bin/wget ist korrekt - macht aber keinen Unterschied.

    Zur CPU Last: Ja, das hat mich auch gewundert... in der Summierung aller Prozesse wird das aber anders angezeigt
    Code:
    Cpu(s):  9.4%us, 16.3%sy,  0.0%ni, 74.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    
     
  10. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Fast vier (!!!) Jahre später beschäftigt mich dieses Problem noch immer.... (naja immer mal wieder ;))

    Jemand noch eine Idee?

    Asterisk läuft mit root, funktionieren tut das wget aber nicht.... also dachte ich mir, ich bin ein Schlaufuchs und versuche ich einen AGI Aufruf (ausführbare php datei ins AGI-BIN Verzeichnis mit erster Zeile /usr/bin/php) ..... klappt auch nicht - "Permission denied".... die Php Datei hat chmod 755 und lässt sich so einfach ausführen und tut dann was sie soll... über asterisk hingegen nicht - weder per wget aufruf, noch per system()

    Ich bin für jede Idee dankbar.... ich bin sogar bereit zu zahlen! Ich bin unheimlich genervt! Vier Jahre.... :(
     
  11. koyaanisqatsi

    koyaanisqatsi IPPF-Urgestein

    Registriert seit:
    24 Jan. 2013
    Beiträge:
    11,023
    Zustimmungen:
    165
    Punkte für Erfolge:
    63
    Moins

    Na dann poste doch mal, was du versucht hast.
    Dann kann es verbessert werden.
    Oder erwartest du eine Fertiglösung die auf deinem System* eh nicht funktioniert?
    Außerdem rate ich eher zu: same => n,TrySystem(/usr/bin/wget -O /tmp/output.html http://localhost/index.html)
    Das Verzeichnis /tmp sollte auf einen normalen Linux für ALLE Benutzer beschreibbar sein.


    * Asterisk sollte als Benutzer/Gruppe asterisk laufen
     
  12. xebero

    xebero Neuer User

    Registriert seit:
    25 Jan. 2012
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    4 Jahre..... und dann sowas..... SELinux war Schuld - nun läuft es...

    Das kommt davon, wenn man keine Ahnung hat :(