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

Mit PHP auf Asterisk-CLI zugreifen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von VOIPdani, 9 Jan. 2006.

  1. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo!

    Es gibt zwar einen Haufen an GUIs für Asterisk, aber irgendwie werden meine Anforderungen von keiner GUI so richtig erfüllt. Drum versuch ich mich grad selber an Tabellenabfragen und sonstigem. Nun ist einer meiner Wünsche gerade laufende Gespräche anzuzeigen. In der CLI geht das toll mit show channels.

    Aber wie kann ich den Befehl show channels mittels PHP ausführen?

    Ich möchte ja eine Weboberfläche erstellen die mir dann anzeigt wer gerade mit wem telefoniert, wer zurzeit online ist (sip show peers), etc.

    Wie kann ich also mittels PHP auf die Asterisk-CLI zugreifen bzw. besteht die Möglichkeit die CLI-Ausgaben von einem sip show peers in eine MySQL-DB zu kriegen?

    lg Daniela
     
  2. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das geht mir genauso, ich habe mir auch einiges an GUIs angeschaut und war auch nicht zufrieden.

    Ich habe mir auch gerade ein Webmenü zur Konfiguration eines Anschlußes, Rufweiterleitung, Kurzwahlmenü, etc. geschrieben. (Apache mit php und mySQL und Asterisk mit mySQL-Aufrufen) Funktioniert wirklich Super. Endlich kann ich meine Telefonanschlüsse so konfigurieren wie ich es haben möchte.

    Als nächstes wollte ich mir Kommunikation aus php über den manager mit Asterisk anschauen:

    http://www.voip-info.org/wiki-Asterisk+manager+API

    Ich habe es mal kurz angetestet, hat soweit funktioniert.

    Eine weitere Möglichkeit wäre noch mit AGI aus dem Dialplan heraus PHP aufzurufen.

    http://www.voip-info.org/tiki-index.php?page=Asterisk+AGI
     
  3. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Wenn Du Deine SIP Peers über Realtime mit MySQL konfigurierst, kannst Du von dort zumindest die Online/Offline Stati der Peers auslesen, denn Asterisk schreibt diese Daten aktuell immer in die Tabelle zurück.

    Für die Abfrage der bestehenden Verbindungen würde ich über das Asterisk Manager-Interface gehen.
     
  4. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0

    Kannst Du denn die Anwendung von Asterisk Realtime generell empfehlen? Funktioniert es zuverlässig oder handelt man sich bei nicht so vielen Anschlüssen mehr Probleme ein, als es Vorteile bringt.
     
  5. betateilchen

    betateilchen Grandstream-Guru

    Registriert seit:
    30 Juni 2004
    Beiträge:
    12,882
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    am Letzenberg
    Realtime kann ich nur empfehlen. Läuft stabil und zuverlässig.
     
  6. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
  7. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für eure Hinweise

    Ich hab mich mal auf voip-info.org informiert und es scheint auch ganz easy zu sein ein CLI-Kommando über PHP auszuführen (siehe: http://www.voip-info.org/wiki/index.php?page=Asterisk+manager+Example:+PHP)

    Mir wäre es nun aber wichtig, dass ich auch das Ergebnis zb. eines show channels irgendwo abfragen könnte. Ich kann das Kommando zwar über PHP auf der CLI ausführen, das bringt mir aber nichts wenn ich die Daten die show channels liefert nicht anzeigen kann.
     
  8. joerg98765

    joerg98765 Neuer User

    Registriert seit:
    24 Feb. 2005
    Beiträge:
    5
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich mache das so:

    Code:
    <?
    unset($status);
    exec("sudo /usr/sbin/asterisk -rx 'show channels'", $status);
    $i = 1;
    while ($status[$i])
    {
    echo $status[$i].'<br>';
    $i = $i + 1;
    }?>