I actually use HTML5 webSockets and AsterClick ,a middleware daemon I wrote in PHP.
AsterClick is , as far as I know ,the only truly event driven Asterisk AMI interface for HTML5 on the planet. All the other solutions out there are still stuck polling
the server.
I can watch the status of calls in real time, originate . transfer between (queues,meetme,parking,individuals) simply by drag-n-drop in my browser. I can create
functioning ad hoc dialplan entries without writing to the dialplan or basically anything else Asterisk AMI can do with NO POLLING ever.
In Javascript I can use an addEventListener() function that actually takes the names
of AMI events as parameters. There is NO POLLING , but rather when the Asterisk AMI emits an event it is sent to my browser over the webSocket generating an event which
processes the data and emits more events within the browser.
I also have a tool called WBEA that allows me to deploy those same HTML5 AsterClick applications as stand alone desktop executables for Windows and Linux.