TESTIP=192.168.1.150
+#test:
+# rcp set_network.sh get_network.sh root@$(TESTIP):/var/lib/asterisk/scripts
+# rcp index.html root@$(TESTIP):/var/lib/asterisk/static-http/
+
test:
- rcp set_network.sh get_network.sh root@$(TESTIP):/var/lib/asterisk/scripts
- rcp index.html root@$(TESTIP):/var/lib/asterisk/static-http/
+ rcp test.sh test1.sh easy.js easy1.js set_network.sh root@$(TESTIP):/www/cgi-bin
--- /dev/null
+<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 script_path = "/var/lib/asterisk/scripts/";
+
+ 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;
+
+ $('static').disabled = 0;
+ $('dhcp').disabled = 0;
+ $('ipaddress').disabled = 0;
+ $('netmask').disabled = 0;
+ $('gateway').disabled = 0;
+ $('dns').disabled = 0;
+ $('networkapply').disabled = 0;
+
+ } else {
+ $('username').disabled = 0;
+ $('secret').disabled = 0;
+ $('logoff').disabled = 1;
+ $('login').disabled = 0;
+ $('refresh').disabled = 1;
+
+ $('ipaddress').value = "";
+ $('netmask').value = "";
+ $('gateway').value = "";
+ $('dns').value = "";
+
+ $('static').disabled = 1;
+ $('dhcp').disabled = 1;
+ $('ipaddress').disabled = 1;
+ $('netmask').disabled = 1;
+ $('gateway').disabled = 1;
+ $('dns').disabled = 1;
+ $('networkapply').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();
+ $('channellist').innerHTML += 'demo.logins<br>';
+ doGetIP1();
+ }
+ else
+ loggedOff();
+ };
+
+
+ demo.logoffs = function(msgs) {
+ $('statusbar').innerHTML = msgs[0].headers['message'];
+ loggedOff();
+ };
+
+ demo.system = function(msgs) {
+ $('statusbar').innerHTML = msgs[0].headers['message'];
+ };
+
+ demo.setstaticip = function(msgs) {
+ $('statusbar').innerHTML = msgs[0].headers['message'];
+ };
+
+ demo.getIP2 = function(msgs) {
+ $('channellist').innerHTML += 'demo.getIP2<br>';
+ //var n = msgs[0].names[3];
+ //$('statusbar').innerHTML = msgs[0].headers[n];
+ for (x=0;x<msgs[0].names.length;x++) {
+ var line = msgs[0].headers[msgs[0].names[x]];
+ line = line.toLowerCase();
+ line = line.replace(/\"/g,"");
+ line = line.replace(" ","");
+ var split_line = line.split('=');
+ if (split_line[0]=="dhcp") {
+ if (split_line[1]=="yes") {
+ $('dhcp').click();
+ // grey out static IP fields but still load them
+ // with values dhcp has set up
+ $('ipaddress').disabled = 1;
+ $('netmask').disabled = 1;
+ $('gateway').disabled = 1;
+ $('dns').disabled = 1;
+ }
+ else
+ $('static').click();
+ }
+ if (split_line[0]=="ipaddress") {
+ $('ipaddress').value = split_line[1];
+ }
+ if (split_line[0]=="netmask") {
+ $('netmask').value = split_line[1];
+ }
+ if (split_line[0]=="gateway") {
+ $('gateway').value = split_line[1];
+ }
+ if (split_line[0]=="dns") {
+ $('dns').value = split_line[1];
+ }
+ $('statusbar').innerHTML = split_line;
+ }
+
+ }
+ demo.hungup = function(msgs) {
+ $('statusbar').innerHTML = "Hungup " + hungupchan;
+ }
+
+
+ demo.networkApply = function(msgs) {
+ $('statusbar').innerHTML = msgs[0].headers['message'];
+ }
+
+ demo.transferred = function(msgs) {
+ $('statusbar').innerHTML = "Transferred " + transferredchan;
+ }
+
+ demo.getIP1 = function(msgs) {
+ //astmanEngine.sendRequest('action=getconfig&filename=network.conf',demo.getip);
+ $('channellist').innerHTML += 'demo.getIP1<br>';
+ astmanEngine.sendRequest('action=getconfig&filename=network.conf', demo.getIP2);
+ }
+
+
+ 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);
+ }
+
+ function doSystem() {
+ $('statusbar').innerHTML = "<i>System Call...</i>";
+ astmanEngine.sendRequest('action=originate&channel=Local%2Fexecutecommand%40default&Variable=command%3d%2Froot%2Fsys.sh%20myarg&application=noop&60000', demo.system);
+ }
+
+ function doNetworkApply() {
+ $('statusbar').innerHTML = "<i>Set Network...</i>";
+
+ cmd = script_path + 'set_network.sh ';
+
+ if ($('dhcp').checked)
+ cmd += 'yes';
+ else
+ cmd += 'no ' + $('ipaddress').value + ' ' + $('netmask').value + ' '
+ + $('gateway').value + ' ' + $('dns').value;
+
+ url = 'action=originate&channel=' + encodeURIComponent('Local/executecommand@default') + '&' +
+ 'Variable=' + encodeURIComponent('command=' + cmd) + '&application=noop&60000';
+
+ $('statusbar').innerHTML = cmd;
+ astmanEngine.sendRequest(url, demo.networkApply)
+ }
+
+ function doGetIP2() {
+ $('channellist').innerHTML += 'doGetIP2<br>';
+ astmanEngine.sendRequest('action=getconfig&filename=network.conf',demo.getIP2);
+ }
+
+ function doGetIP1() {
+ $('channellist').innerHTML += 'doGetIP1<br>';
+ cmd = script_path + 'get_network.sh';
+ url = 'action=originate&channel=' + encodeURIComponent('Local/executecommand@default') + '&' +
+ 'Variable=' + encodeURIComponent('command=' + cmd) + '&application=noop&60000';
+ astmanEngine.sendRequest(url,demo.getIP1);
+ }
+
+ function doStatic() {
+ $('ipaddress').disabled = 0;
+ $('netmask').disabled = 0;
+ $('gateway').disabled = 0;
+ $('dns').disabled = 0;
+ }
+
+ function doDHCP() {
+ $('ipaddress').disabled = 1;
+ $('netmask').disabled = 1;
+ $('gateway').disabled = 1;
+ $('dns').disabled = 1;
+ }
+
+ 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);
+ /*
+ for (i=0;i<msgs.length;i++) {
+ for(j=0;j<msgs[i].names.length;j++) {
+ nm = msgs[i].names[j];
+ $('channellist').innerHTML += nm + '=' + msgs[i].headers[nm] + ', ';
+ $('channellist').innerHTML += '<br>';
+ }
+ $('channellist').innerHTML += '<br>';
+ }
+ */
+ astmanEngine.pollEvents();
+ }
+ updateButtons();
+ }
+
+ function localajaminit() {
+ astmanEngine.setURL('../rawman');
+ astmanEngine.setEventCallback(demo.eventcb);
+ //astmanEngine.setDebug($('ditto'));
+ clearChannelList();
+ astmanEngine.sendRequest('action=ping', demo.pongs);
+ }
+</script>
+
+<title>Easy Asterisk™ GUI</title>
+<body onload="localajaminit()">
+<table align="center" width=600>
+<tr valign="top"><td>
+<table align="left">
+<tr><td colspan="2"><h2>Easy Asterisk™ GUI</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></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>
+ <td><input type="submit" onClick="doSystem()" id="system" value="System"></td>
+ <td><input type="submit" onClick="doGetIP1()" id="getIP1" value="Get IP 1"></td>
+ <td><input type="submit" onClick="doGetIP2()" id="getIP2" value="Get IP 2"></td>
+</tr>
+</table>
+</td></tr>
+
+<tr>
+ <tr>
+ <td><input type="radio" id="static" name="staticdhcp" disabled=1 onClick="doStatic()">Static</td>
+ <td><input type="radio" id="dhcp" name="staticdhcp" disabled=1 onClick="doDHCP()">DHCP</td>
+ </tr>
+ <tr><td>IP Address:</td><td><input id="ipaddress" disabled=1></td></tr>
+ <tr><td>Netmask:</td><td><input id="netmask" disabled=1></td></tr>
+ <tr><td>Gateway:</td><td><input id="gateway" disabled=1 ></td></tr>
+ <tr><td>DNS:</td><td><input id="dns" disabled=1></td></tr>
+ <tr><td><input type="submit" id="networkapply" value="Apply" disabled=1 onClick="doNetworkApply()"></td></tr>
+</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>
--- /dev/null
+var script_path = "cgi-bin/";
+
+function doStatic() {
+ $('ipaddress').disabled = 0;
+ $('netmask').disabled = 0;
+ $('gateway').disabled = 0;
+ $('dns').disabled = 0;
+}
+
+function doDHCP() {
+ $('ipaddress').disabled = 1;
+ $('netmask').disabled = 1;
+ $('gateway').disabled = 1;
+ $('dns').disabled = 1;
+}
+
+// http://moblog.bradleyit.com/2009/06/javascript-ip-address-validation.html
+
+function isIP(obj) {
+ var ary = obj.value.split(".");
+ var ip = true;
+
+ for (var i=0; i<4; i++) {
+ ip = (!ary[i].match(/^\d{1,3}$/) || (Number(ary[i]) > 255)) ? false : ip;
+ }
+
+ if (ip)
+ ip = (ary.length == 4);
+
+ if (!ip) {
+ // the value is NOT a valid IP address
+ obj.style.background = "red";
+ obj.select();
+ }
+ else { obj.style.background = ""; } // the value IS a valid IP address
+
+ return ip;
+}
+
+function validateForm(thisForm) {
+ var valid = true;
+
+ with (thisForm) {
+ valid = isISP(ipaddress);
+ }
+
+ return !valid;
+}
+
+function localInit() {
+
+ if (init_dhcp == "yes") {
+ $('dhcp').checked = true;
+ }
+ else {
+ $('static').checked = true;
+ $('ipaddress').disabled = 0;
+ $('netmask').disabled = 0;
+ $('gateway').disabled = 0;
+ $('dns').disabled = 0;
+ }
+ $('ipaddress').value = init_ipaddress;
+ $('netmask').value = init_netmask;
+ $('gateway').value = init_gateway;
+ $('dns').value = init_dns;
+ $('networkapply').disabled = 0;
+}
+++ /dev/null
-<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 script_path = "/var/lib/asterisk/scripts/";
-
- 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;
-
- $('static').disabled = 0;
- $('dhcp').disabled = 0;
- $('ipaddress').disabled = 0;
- $('netmask').disabled = 0;
- $('gateway').disabled = 0;
- $('dns').disabled = 0;
- $('networkapply').disabled = 0;
-
- } else {
- $('username').disabled = 0;
- $('secret').disabled = 0;
- $('logoff').disabled = 1;
- $('login').disabled = 0;
- $('refresh').disabled = 1;
-
- $('ipaddress').value = "";
- $('netmask').value = "";
- $('gateway').value = "";
- $('dns').value = "";
-
- $('static').disabled = 1;
- $('dhcp').disabled = 1;
- $('ipaddress').disabled = 1;
- $('netmask').disabled = 1;
- $('gateway').disabled = 1;
- $('dns').disabled = 1;
- $('networkapply').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();
- $('channellist').innerHTML += 'demo.logins<br>';
- doGetIP1();
- }
- else
- loggedOff();
- };
-
-
- demo.logoffs = function(msgs) {
- $('statusbar').innerHTML = msgs[0].headers['message'];
- loggedOff();
- };
-
- demo.system = function(msgs) {
- $('statusbar').innerHTML = msgs[0].headers['message'];
- };
-
- demo.setstaticip = function(msgs) {
- $('statusbar').innerHTML = msgs[0].headers['message'];
- };
-
- demo.getIP2 = function(msgs) {
- $('channellist').innerHTML += 'demo.getIP2<br>';
- //var n = msgs[0].names[3];
- //$('statusbar').innerHTML = msgs[0].headers[n];
- for (x=0;x<msgs[0].names.length;x++) {
- var line = msgs[0].headers[msgs[0].names[x]];
- line = line.toLowerCase();
- line = line.replace(/\"/g,"");
- line = line.replace(" ","");
- var split_line = line.split('=');
- if (split_line[0]=="dhcp") {
- if (split_line[1]=="yes") {
- $('dhcp').click();
- // grey out static IP fields but still load them
- // with values dhcp has set up
- $('ipaddress').disabled = 1;
- $('netmask').disabled = 1;
- $('gateway').disabled = 1;
- $('dns').disabled = 1;
- }
- else
- $('static').click();
- }
- if (split_line[0]=="ipaddress") {
- $('ipaddress').value = split_line[1];
- }
- if (split_line[0]=="netmask") {
- $('netmask').value = split_line[1];
- }
- if (split_line[0]=="gateway") {
- $('gateway').value = split_line[1];
- }
- if (split_line[0]=="dns") {
- $('dns').value = split_line[1];
- }
- $('statusbar').innerHTML = split_line;
- }
-
- }
- demo.hungup = function(msgs) {
- $('statusbar').innerHTML = "Hungup " + hungupchan;
- }
-
-
- demo.networkApply = function(msgs) {
- $('statusbar').innerHTML = msgs[0].headers['message'];
- }
-
- demo.transferred = function(msgs) {
- $('statusbar').innerHTML = "Transferred " + transferredchan;
- }
-
- demo.getIP1 = function(msgs) {
- //astmanEngine.sendRequest('action=getconfig&filename=network.conf',demo.getip);
- $('channellist').innerHTML += 'demo.getIP1<br>';
- astmanEngine.sendRequest('action=getconfig&filename=network.conf', demo.getIP2);
- }
-
-
- 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);
- }
-
- function doSystem() {
- $('statusbar').innerHTML = "<i>System Call...</i>";
- astmanEngine.sendRequest('action=originate&channel=Local%2Fexecutecommand%40default&Variable=command%3d%2Froot%2Fsys.sh%20myarg&application=noop&60000', demo.system);
- }
-
- function doNetworkApply() {
- $('statusbar').innerHTML = "<i>Set Network...</i>";
-
- cmd = script_path + 'set_network.sh ';
-
- if ($('dhcp').checked)
- cmd += 'yes';
- else
- cmd += 'no ' + $('ipaddress').value + ' ' + $('netmask').value + ' '
- + $('gateway').value + ' ' + $('dns').value;
-
- url = 'action=originate&channel=' + encodeURIComponent('Local/executecommand@default') + '&' +
- 'Variable=' + encodeURIComponent('command=' + cmd) + '&application=noop&60000';
-
- $('statusbar').innerHTML = cmd;
- astmanEngine.sendRequest(url, demo.networkApply)
- }
-
- function doGetIP2() {
- $('channellist').innerHTML += 'doGetIP2<br>';
- astmanEngine.sendRequest('action=getconfig&filename=network.conf',demo.getIP2);
- }
-
- function doGetIP1() {
- $('channellist').innerHTML += 'doGetIP1<br>';
- cmd = script_path + 'get_network.sh';
- url = 'action=originate&channel=' + encodeURIComponent('Local/executecommand@default') + '&' +
- 'Variable=' + encodeURIComponent('command=' + cmd) + '&application=noop&60000';
- astmanEngine.sendRequest(url,demo.getIP1);
- }
-
- function doStatic() {
- $('ipaddress').disabled = 0;
- $('netmask').disabled = 0;
- $('gateway').disabled = 0;
- $('dns').disabled = 0;
- }
-
- function doDHCP() {
- $('ipaddress').disabled = 1;
- $('netmask').disabled = 1;
- $('gateway').disabled = 1;
- $('dns').disabled = 1;
- }
-
- 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);
- /*
- for (i=0;i<msgs.length;i++) {
- for(j=0;j<msgs[i].names.length;j++) {
- nm = msgs[i].names[j];
- $('channellist').innerHTML += nm + '=' + msgs[i].headers[nm] + ', ';
- $('channellist').innerHTML += '<br>';
- }
- $('channellist').innerHTML += '<br>';
- }
- */
- astmanEngine.pollEvents();
- }
- updateButtons();
- }
-
- function localajaminit() {
- astmanEngine.setURL('../rawman');
- astmanEngine.setEventCallback(demo.eventcb);
- //astmanEngine.setDebug($('ditto'));
- clearChannelList();
- astmanEngine.sendRequest('action=ping', demo.pongs);
- }
-</script>
-
-<title>Easy Asterisk™ GUI</title>
-<body onload="localajaminit()">
-<table align="center" width=600>
-<tr valign="top"><td>
-<table align="left">
-<tr><td colspan="2"><h2>Easy Asterisk™ GUI</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></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>
- <td><input type="submit" onClick="doSystem()" id="system" value="System"></td>
- <td><input type="submit" onClick="doGetIP1()" id="getIP1" value="Get IP 1"></td>
- <td><input type="submit" onClick="doGetIP2()" id="getIP2" value="Get IP 2"></td>
-</tr>
-</table>
-</td></tr>
-
-<tr>
- <tr>
- <td><input type="radio" id="static" name="staticdhcp" disabled=1 onClick="doStatic()">Static</td>
- <td><input type="radio" id="dhcp" name="staticdhcp" disabled=1 onClick="doDHCP()">DHCP</td>
- </tr>
- <tr><td>IP Address:</td><td><input id="ipaddress" disabled=1></td></tr>
- <tr><td>Netmask:</td><td><input id="netmask" disabled=1></td></tr>
- <tr><td>Gateway:</td><td><input id="gateway" disabled=1 ></td></tr>
- <tr><td>DNS:</td><td><input id="dns" disabled=1></td></tr>
- <tr><td><input type="submit" id="networkapply" value="Apply" disabled=1 onClick="doNetworkApply()"></td></tr>
-</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>
-#!/bin/sh -x
+#!/bin/sh
# set_network.sh
#
# A system call from AJAM/Asterisk sets the network parameters of an IP0X using
echo `date` " set_network.sh $1 $2 $3 $4 $5" >> /tmp/easy_gui.log
+cat << EOF
+<html>
+EOF
+env
+cat <<EOF
+</html>
+EOF
+
+exit
+
if [ $1 == "yes" ]; then
# DHCP
--- /dev/null
+#!/bin/sh
+
+echo `date` " get_network.sh" >> /tmp/easy_gui.log
+
+if [ -f /etc/rc.d/S10network ]; then
+ dhcp=yes
+ ipaddress=`ifconfig eth0 | sed -n 's/.*inet addr:\(.*\) Bcast.*/\1/p'`
+ netmask=`ifconfig eth0 | sed -n 's/.*Mask:\(.*\)\s*/\1/p'`
+ gateway=`route -n | awk '/^0.0.0.0/ {print $2}'`
+ dns=`cat /etc/resolv.conf | awk '/^nameserver/ {print $2}'`
+fi
+
+if [ -f /etc/rc.d/S10network-static ]
+then
+ dhcp=no
+ ipaddress=`sed -n 's/IPADDRESS="\(.*\)"/\1/p' /etc/init.d/network-static`
+ netmask=`sed -n 's/NETMASK="\(.*\)"/\1/p' /etc/init.d/network-static`
+ gateway=`sed -n 's/GATEWAY="\(.*\)"/\1/p' /etc/init.d/network-static`
+ dns=`sed -n 's/DNS="\(.*\)"/\1/p' /etc/init.d/network-static`
+fi
+
+# Construct the web page -------------------------------
+
+echo "<script src="prototype.js"></script>"
+echo "<link href="astman.css" media="all" rel="Stylesheet" type="text/css" />"
+echo "<script>"
+echo 'var init_dhcp="'$dhcp'";'
+echo 'var init_ipaddress="'$ipaddress'";'
+echo 'var init_netmask="'$netmask'";'
+echo 'var init_gateway="'$gateway'";'
+echo 'var init_dns="'$dns'";'
+cat easy.js
+echo "</script>"
+
+cat << EOF
+<html>
+<title>Easy Asterisk GUI</title>
+<body onload="localInit()">
+<form action="/cgi-bin/set_network.sh" method="get">
+<table align="center" width=600>
+<tr>
+ <tr>
+ <td><input type="radio" id="static" name="dhcp" value="no" onClick="doStatic()">Static</td>
+ <td><input type="radio" id="dhcp" name="dhcp" value="yes" onClick="doDHCP()">DHCP</td>
+ </tr>
+ <tr><td>IP Address:</td><td><input type="text" name="ipaddress" id="ipaddress" onBlur="isIP(this)" disabled=1></td></tr>
+ <tr><td>Netmask:</td><td><input type="text" name="netmask" id="netmask" onBlur="isIP(this)" disabled=1></td></tr>
+ <tr><td>Gateway:</td><td><input type="text" name="gateway" id="gateway" onBlur="isIP(this)" disabled=1></td></tr>
+ <tr><td>DNS:</td><td><input type="text" name="dns" id="dns" onBlur="isIP(this)" disabled=1></td></tr>
+ <tr><td><input id="networkapply" type="submit" value="Apply"></td></tr>
+</tr>
+</table>
+</form>
+</html>
+EOF