Ich benutze tatsächlich HTML5 webSockets und AsterClick, ein Middleware-Daemon, den ich in PHP geschrieben habe.
AsterClick ist, soweit ich weiß, das einzige wirklich ereignisgesteuerte Asterisk AMI-Schnittstelle für HTML5 auf dem Planeten. Alle anderen Lösungen draußen sind immer noch polling der Server.
Ich kann den Status von Anrufen in Echtzeit sehen, entstehen. Transfer zwischen (Warteschlangen, Treffen, Parken, Einzelpersonen) einfach per Drag-and-Drop in meinem Browser. Ich kann funktionierende Ad-hoc-Wählplaneinträge erstellen, ohne in den Wählplan zu schreiben, oder grundsätzlich alles, was Asterisk AMI mit NO POLLING überhaupt tun kann.
In Javascript kann ich eine addEventListener() - Funktion verwenden, die die Namen von AMI-Ereignissen als Parameter tatsächlich übernimmt. Es gibt KEINE ABRUFUNG, aber eher wenn der Asterisk AMI ein Ereignis ausgibt, wird es an meinen Browser über den webSocket gesendet, der ein Ereignis erzeugt, das die Daten verarbeitet und mehr Ereignisse innerhalb des Browsers ausgibt .
Ich habe auch ein Tool namens WBEA, mit dem ich die gleichen HTML5 AsterClick-Anwendungen als eigenständige Desktop-ausführbare Dateien für Windows und Linux bereitstellen kann.
Ok ... hier die Sache ist. Ich empfange die aufgerufene ID als GET-Parameter von de URL ('$ _GET ['calledID']'). Ich muss den Anrufstatus dieser Anrufer-ID abrufen. (Ich mache keinen Anruf mit PHP) – Harph
Da Sie nicht die Kanal-ID des Anrufs haben, gibt es keine Möglichkeit, diese Informationen direkt zu erhalten. Sie müssen stattdessen die Asterisk CDR-Datenbank verwenden. Wenn Sie Ihre CDR-Protokolle zu einer Datenbank (in der Regel MySQL) haben, dann lassen Sie einfach Ihr PHP-Skript eine Verbindung zur SQL-Datenbank herstellen und führen Sie eine Abfrage für die Anrufer-ID aus, die Sie von Ihrem Skript haben. Suchen Sie den letzten Anruf, der von der angegebenen Anrufer-ID mit einer SELECT-Anweisung getätigt wurde. Dann extrahieren Sie einfach die Informationen, die Sie benötigen (wie Anrufzeit, Ende der Anrufzeit, Anrufstatus, etc.) – rdegges
Ja, Sie haben Recht, ich kann den Status des Anrufs mithilfe der CDR-Protokolldatenbank abrufen, aber das funktioniert einfach wenn der Anruf beendet ist, weil der Protokolleintrag erstellt wird, wenn der Anruf beendet wird. Ich muss den Status in Echtzeit abrufen, indem ich die Variablen verwende, die das Telefon mir über die URL senden kann. Irgendeine Idee? – Harph