Beispiel: Anzahl der Mailbox-Nachrichten per AJAM abfragen

Wir betrachten wieder die aus „Beispiel: Anzahl der Mailbox-Nachrichten mit Expect abfragen“ und „Beispiel: Anzahl der Mailbox-Nachrichten mit PHP abfragen“ bekannte einfache Aufgabe, also die Anzahl der Nachrichten auf einer Mailbox abzufragen. Der AJAM bietet hier folgende Möglichkeiten:

HTML

Unter der URL

http://localhost:8088/asterisk/manager

wartet das Manager-Interface auf unsere Anfragen. Dabei werden die Felder eines Pakets als Parameter an die URL gehängt. Probieren Sie die folgenden beiden Adressen im Webbrowser aus:

http://localhost:8088/asterisk/manager?action=Login&username=admin&secret=geheim
http://localhost:8088/asterisk/manager?action=MailboxCount&mailbox=123

Die Antwort erfolgt jeweils als HTML-Seite, ist also für den Zugriff durch Skripte denkbar ungeeignet.

Plain-Text

Man kann in der URL manager durch rawman ersetzen, dann erfolgt die Antwort als Plain-Text. Zum Einloggen und Abfragen der Mailbox-Nachrichten also:

http://localhost:8088/asterisk/rawman?action=Login&username=admin&secret=geheim

Response: Success
Message: Authentication accepted

http://localhost:8088/asterisk/rawman?action=MailboxCount&mailbox=123

Response: Success
Message: Mailbox Message Count
Mailbox: 123
NewMessages: 0
OldMessages: 0

http://localhost:8088/asterisk/rawman?action=Logoff

Response: Goodbye
Message: Thanks for all the fish.

Diese Text-Ausgabe kann man also gut in automatisierten Skripten verwenden.

XML

Will man stattdessen lieber XML, dann ruft man mxml auf. Die XML-Ausgabe ist hier zur leichteren Lesbarkeit formatiert dargestellt, der AJAM macht keine Zeilenumbrüche innerhalb der Tags. Einen korrekten XML-Parser würde das aber auch so wie hier dargestellt nicht stören.

http://localhost:8088/asterisk/mxml?action=Login&username=admin&secret=geheim

<ajax-response>
    <response type='object' id='unknown'>
        <generic
            response='Success'
            message='Authentication accepted' />
    </response>
</ajax-response>

http://localhost:8088/asterisk/mxml?action=MailboxCount&mailbox=123

<ajax-response>
    <response type='object' id='unknown'>
        <generic
            response='Success'
            message='Mailbox Message Count'
            mailbox='123'
            newmessages='0'
            oldmessages='0' />
    </response>
</ajax-response>

http://localhost:8088/asterisk/mxml?action=Logoff

<ajax-response>
    <response type='object' id='unknown'>
        <generic
            response='Goodbye'
            message='Thanks for all the fish.' />
    </response>
</ajax-response>