So könnten wir das Beispiel aus „Beispiel: Anzahl der Mailbox-Nachrichten mit Expect abfragen“ in PHP mit der StarAstAPI lösen:
#!/usr/bin/php -q <?php # der Parameter -q dient dazu, bei einem CGI-PHP die Ausgabe der # Header abzuschalten if ($argc != 2) { echo "Fehler: Geben Sie eine Mailbox an!\n"; exit(1); } # das erste Argument nach dem Programmnamen ist die Mailbox: $mailbox = $argv[1]; echo "Mailbox: $mailbox\n\n"; # StarAstAPI einbinden: require_once './StarAstAPI/StarAstAPI.php'; # verbinden und einloggen: # $ami = new AstClientConnection(); if ($ami->Login( 'admin', 'geheim', '127.0.0.1', 5038 )) { $rp = $ami->GetResponse('1'); //echo $rp->ToString(); } else { exit(1); } # folgendes Paket senden: # Action: MailboxCount # Mailbox: $mailbox # ActionID: 2 # $data = new AstPacketData; $data->AddKVPair( 'Action' , 'MailboxCount' ); $data->AddKVPair( 'Mailbox' , $mailbox ); $data->AddKVPair( 'ActionID', '2' ); $packet = new AstPacket; $packet->SetAstPacketType( 'Action' ); $packet->SetAstPacketData( $data ); $ami->SendPacket( $packet ); # Antwort-Paket mit ActionID 2 lesen: # $rPacket = $ami->GetResponse('2'); //echo $rp->ToString(); $rData = $rPacket->GetAstPacketData(); $r = $rData->GetAll(); echo "Neue Nachrichten: ", (int)trim($r['NewMessages:']), "\n"; echo "Alte Nachrichten: ", (int)trim($r['OldMessages:']), "\n"; echo "\n"; # Ausloggen - nicht unbedingt nötig, aber sauber: # $ami->Logoff(); # allerdings ist die Funktion der StarAstAPI nicht gerade schön. # sie tut dies: #echo "Logoff Called from somewhere ..."; #socket_close($this->mSocket); echo "\n"; ?>
Wir speichern das Skript als
vmcount.php
und setzen es mit chmod a+x
vmcount.exp auf ausführbar.
Aufruf:
$ ./vmcount.php 123@default Mailbox: 123123123 Neue Nachrichten: 0 Alte Nachrichten: 0 Logoff Called from somewhere ...
Version 1.2, November 2002
Neue Version verfügbar
Sie betrachten gerade die alte Version des Buches (Version 1.0). Wir empfehlen Ihnen für Asterisk 1.4 und 1.6 die neue Version des Buches.
Asterisk-Tag 2008
Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um das Thema VoIP. Asterisk-Tag.org