diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-01-19 00:19:29 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-01-19 00:19:29 +0000 |
commit | f8247040e6231c4b3b5099ea3a526348b7941566 (patch) | |
tree | 0cc92ad6ebf6ae49a62f6e7ef8ec819121d63630 /trunk/static-http/ajamdemo.html | |
parent | d88e56c61ce2042544c1a8a71c93b69ab2e6ffba (diff) |
Creating tag for the release of asterisk-1.6.0-beta1v1.6.0-beta1
git-svn-id: http://svn.digium.com/svn/asterisk/tags/1.6.0-beta1@99163 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'trunk/static-http/ajamdemo.html')
-rw-r--r-- | trunk/static-http/ajamdemo.html | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/trunk/static-http/ajamdemo.html b/trunk/static-http/ajamdemo.html new file mode 100644 index 000000000..607a2cfbe --- /dev/null +++ b/trunk/static-http/ajamdemo.html @@ -0,0 +1,219 @@ +<script src="prototype.js"></script> +<script src="astman.js"></script> +<link href="astman.css" media="all" rel="Stylesheet" type="text/css" /> + +<script> + var logins = new Object; + var logoffs = new Object; + var channels = new Object; + var pongs = new Object; + var loggedon = -1; + var selectedchan = null; + var hungupchan = ""; + var transferedchan = ""; + + var demo = new Object; + + function loggedOn() { + if (loggedon == 1) + return; + loggedon = 1; + updateButtons(); + $('statusbar').innerHTML = "<i>Retrieving channel status...</i>"; + astmanEngine.pollEvents(); + astmanEngine.sendRequest('action=status', demo.channels); + } + + function clearChannelList() { + $('channellist').innerHTML = "<i class='light'>Not connected</i>"; + } + + function loggedOff() { + if (loggedon == 0) + return; + loggedon = 0; + selectedchan = null; + updateButtons(); + astmanEngine.channelClear(); + clearChannelList(); + } + + function updateButtons() + { + if ($(selectedchan)) { + $('transfer').disabled = 0; + $('hangup').disabled = 0; + } else { + $('transfer').disabled = 1; + $('hangup').disabled = 1; + selectedchan = null; + } + if (loggedon) { + $('username').disabled = 1; + $('secret').disabled = 1; + $('logoff').disabled = 0; + $('login').disabled = 1; + $('refresh').disabled = 0; + } else { + $('username').disabled = 0; + $('secret').disabled = 0; + $('logoff').disabled = 1; + $('login').disabled = 0; + $('refresh').disabled = 1; + } + } + + demo.channelCallback = function(target) { + selectedchan = target; + updateButtons(); + } + + demo.channels = function(msgs) { + resp = msgs[0].headers['response']; + if (resp == "Success") { + loggedOn(); + } else + loggedOff(); + + for (i=1;i<msgs.length - 1;i++) + astmanEngine.channelUpdate(msgs[i]); + $('channellist').innerHTML = astmanEngine.channelTable(demo.channelCallback); + $('statusbar').innerHTML = "Ready"; + } + + demo.logins = function(msgs) { + $('statusbar').innerHTML = msgs[0].headers['message']; + resp = msgs[0].headers['response']; + if (resp == "Success") + loggedOn(); + else + loggedOff(); + }; + + + demo.logoffs = function(msgs) { + $('statusbar').innerHTML = msgs[0].headers['message']; + loggedOff(); + }; + + demo.hungup = function(msgs) { + $('statusbar').innerHTML = "Hungup " + hungupchan; + } + + demo.transferred = function(msgs) { + $('statusbar').innerHTML = "Transferred " + transferredchan; + } + + function doHangup() { + hungupchan = selectedchan; + astmanEngine.sendRequest('action=hangup&channel=' + selectedchan, demo.hungup); + } + + function doStatus() { + $('statusbar').innerHTML = "<i>Updating channel status...</i>"; + astmanEngine.channelClear(); + astmanEngine.sendRequest('action=status', demo.channels); + } + + function doLogin() { + $('statusbar').innerHTML = "<i>Logging in...</i>"; + astmanEngine.sendRequest('action=login&username=' + $('username').value + "&secret=" + $('secret').value, demo.logins); + } + + function doTransfer() { + var channel = astmanEngine.channelInfo(selectedchan); + var exten = prompt("Enter new extension for " + selectedchan); + var altchan; + if (exten) { + if (channel.link) { + if (confirm("Transfer " + channel.link + " too?")) + altchan = channel.link; + } + if (altchan) { + transferredchan = selectedchan + " and " + altchan + " to " + exten; + astmanEngine.sendRequest('action=redirect&channel=' + selectedchan + "&priority=1&extrachannel=" + altchan + "&exten=" + exten, demo.transferred); + } else { + transferredchan = selectedchan + " to " + exten; + astmanEngine.sendRequest('action=redirect&channel=' + selectedchan + "&priority=1&exten=" + exten, demo.transferred); + } + } + } + + function doLogoff() { + $('statusbar').innerHTML = "<i>Logging off...</i>"; + astmanEngine.sendRequest('action=logoff', demo.logoffs); + } + + demo.pongs = function(msgs) { + resp = msgs[0].headers['response']; + if (resp == "Pong") { + $('statusbar').innerHTML = "<i>Already connected...</i>"; + loggedOn(); + } else { + $('statusbar').innerHTML = "<i>Please login...</i>"; + loggedOff(); + } + } + + demo.eventcb = function(msgs) { + var x; + if (loggedon) { + for (i=1;i<msgs.length - 1;i++) { + astmanEngine.channelUpdate(msgs[i]); + } + $('channellist').innerHTML = astmanEngine.channelTable(demo.channelCallback); + astmanEngine.pollEvents(); + } + updateButtons(); + } + + function localajaminit() { + astmanEngine.setURL('../rawman'); + astmanEngine.setEventCallback(demo.eventcb); + //astmanEngine.setDebug($('ditto')); + clearChannelList(); + astmanEngine.sendRequest('action=ping', demo.pongs); + } +</script> + +<title>Asterisk™ AJAM Demo</title> +<body onload="localajaminit()"> +<table align="center" width=600> +<tr valign="top"><td> +<table align="left"> +<tr><td colspan="2"><h2>Asterisk™ AJAM Demo</h2></td> +<tr><td>Username:</td><td><input id="username"></td></tr> +<tr><td>Secret:</td><td><input type="password" id="secret"></td></tr> + <tr><td colspan=2 align="center"> + <div id="statusbar"> + <span style="margin-left: 4px;font-weight:bold"> </span> + </div> + </td></tr> + + <tr><td><input type="submit" id="login" value="Login" onClick="doLogin()"></td> + <td><input type="submit" id="logoff" value="Logoff" disabled=1 onClick="doLogoff()"></td></tr> +</table> +</td><td valign='bottom'> +<table> +<div style="margin-left:10;margin-right:50;margin-top:10;margin-bottom:20"> +<i>This is a demo of the Asynchronous Javascript Asterisk Manager interface. You can login with a +valid, appropriately permissioned manager username and secret.</i> +</div> +<tr> + <td><input type="submit" onClick="doStatus()" id="refresh" value="Refresh"></td> + <td><input type="submit" onClick="doTransfer()" id="transfer" value="Transfer..."></td> + <td><input type="submit" onClick="doHangup()" id="hangup" value="Hangup"></td> +</tr> +</table> +</td></tr> +<tr><td colspan=2> + <div id="channellist" class="chanlist"> + </div> + </td></tr> +<tr><td align="center" colspan=2> + <font size=-1><i> + Copyright (C) 2006 Digium, Inc. Asterisk and Digium are trademarks of Digium, Inc. + </i></font> +</td></tr> +</table> +</body> |