summaryrefslogtreecommitdiff
path: root/static-http
diff options
context:
space:
mode:
authorTerry Wilson <twilson@digium.com>2010-10-13 22:34:32 +0000
committerTerry Wilson <twilson@digium.com>2010-10-13 22:34:32 +0000
commitb043365e98cc47795193617ea28864257001497c (patch)
tree1b54732b1bd0fd95fa826cdbb1e4c4b990923a0e /static-http
parenta30d69de1fc10d74ea1a780adb5b00c2db48ea82 (diff)
Merged revisions 291575 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r291575 | twilson | 2010-10-13 15:24:44 -0700 (Wed, 13 Oct 2010) | 8 lines Add a simple AMI client web page This patch uses the XML docs to parse all of the available AMI commands and allows you to enter the command name and be presented with a form with the available fields. You can then rapidly tab through the fields and submit the command and view the response. It is much faster/easier than having to use telnet for testing purposes. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@291576 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'static-http')
-rw-r--r--static-http/mantest.html177
1 files changed, 177 insertions, 0 deletions
diff --git a/static-http/mantest.html b/static-http/mantest.html
new file mode 100644
index 000000000..eebac628b
--- /dev/null
+++ b/static-http/mantest.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <style type="text/css">
+ #container {
+ margin: 0 auto;
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ }
+ #top {
+ float: left;
+ width: 100%;
+ background: #fff;
+ }
+ #bottom {
+ float: left;
+ width: 100%;
+ background: #fff;
+ }
+ #sender {
+ clear: left;
+ float: left;
+ width: 20%;
+ display: inline;
+ overflow: auto;
+ }
+ #output {
+ float: right;
+ width: 79%;
+ display: inline;
+ overflow: auto;
+ border: thin solid black;
+ }
+ .required {
+ color: red;
+ }
+ </style>
+ <title>Manager Utility</title>
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+
+ <script type="text/javascript">
+
+$(document).ready(function() {
+ $('#output').height($(document).height() - $('#top').height() - 100);
+ $.ajax({
+ type: "GET",
+ url: "core-en_US.xml",
+ dataType: "xml",
+ success: parseXml
+ });
+
+ $("#login").submit(function() {
+ $("#output").empty();
+ submitCommand($(this));
+ $("#command").focus();
+ return false;
+ });
+
+ $("#search_button").click(function() {
+ var command = $("#command").val();
+ $("#command").val("");
+ $("#output").empty();
+ if (commands) {
+ commands.each(function() {
+ if ($(this).attr("name").toLowerCase() == command.toLowerCase()) {
+ buildCommandForm($(this));
+ }
+ });
+ }
+ $('#output').height($(document).height() - $('#top').height() - 100);
+ return false;
+ });
+ $('#command').keyup(function(event) {
+ if (event.keyCode == '13') {
+ return;
+ }
+ var matches = [];
+ var search = $("#command").val().toLowerCase();
+ $("#output").empty();
+ if (search.length && commands) {
+ commands.each(function() {
+ var com = $(this).attr("name").toLowerCase();
+ if (com.substr(0, search.length) === search) {
+ matches.push(com);
+ }
+ });
+ }
+ if (matches.length) {
+ $("#output").append(matches.sort().join("<br/>"));
+ }
+ });
+});
+
+function parseXml(xml) {
+ commands = $(xml).find("manager")
+}
+
+function buildCommandForm(command) {
+ var name = command.attr("name");
+ var i = 0;
+ $("#sendcommand").empty();
+ $("#sendcommand").unbind('submit');
+ $("#sendcommand").append('<label>Action:&nbsp;</label><input name="action" readonly="readonly" value="'+name+'"/><br />');
+ command.find("parameter").each(function() {
+ var param = $(this).attr("name");
+ if (param != "ActionID") {
+ $("#sendcommand").append('<label for="'+param+'">'+param+':&nbsp;</label><input name="'+param+'" /><br />');
+ if ($(this).attr("required")) {
+ $('label[for='+param+']').addClass("required");
+ }
+ if (i == 0) {
+ $("input[name="+param+"]").focus();
+ }
+ i++;
+ }
+ });
+ $("#sendcommand").append('<button type="submit" id="commandbutton">Send</button>');
+ $("#sendcommand").submit(function() {
+ $("#output").empty();
+ submitCommand($(this));
+ $("#command").focus();
+ return false;
+ });
+
+ // If we don't have any fields to fill in, go ahead and submit!
+ if (i == 0) {
+ $("#sendcommand").submit();
+ }
+}
+
+function submitCommand(form) {
+ $.ajax({
+ type: "GET",
+ url: "../rawman",
+ dataType: "text",
+ data: $(form).serializeArray(),
+ success: displayResponse,
+ failure: function() {alert("Error!");}
+ });
+ return false;
+}
+
+function displayResponse(data) {
+ data = data.replace(/\r\n/g, "<br />");
+ $("#output").append(data);
+ return false;
+}
+
+ </script>
+</head>
+
+<body>
+ <div id="container">
+ <div id="top">
+ <form id="login" name="login">
+ <label for="username">Username:&nbsp;</label><input id="username" name="username" />
+ <label for="secret">Secret:&nbsp;</label><input id="secret" name="secret" type="password"/>
+ <input type="hidden" name="action" value="login" />
+ <button id="login_button" type="submit">Submit</button>
+ </form>
+ <hr />
+ <form id="search" name="search">
+ <label for="txt">Action:&nbsp;</label><input name="command" id="command"/>
+ <button id="search_button">Submit</button>
+ </form>
+ </div>
+ <hr />
+ <div id="bottom">
+ <div id="sender">
+ <form id="sendcommand" name="sendcommand"></form>
+ </div>
+ <div id="output"></div>
+ </div>
+ </div>
+</body>
+</html>