commit 133a2fecfbdc871976aa0b98214ae8051da09638 Author: monoadmin Date: Fri Apr 10 15:36:35 2026 -0700 Initial commit diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..606a352 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +# Asterisk configuration +# Copy to .env and fill in your values +ASTERISK_ADMIN_USER=admin +ASTERISK_ADMIN_PASSWORD=change_me diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..487dd4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# Environment variables +.env +.env.* +!.env.example + +# Dependencies +node_modules/ +vendor/ + +# Build output +.next/ +dist/ +build/ +*.pyc +__pycache__/ + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log + diff --git a/old-asterisk/asterisk/static-http/ajamdemo.html b/old-asterisk/asterisk/static-http/ajamdemo.html new file mode 100644 index 0000000..607a2cf --- /dev/null +++ b/old-asterisk/asterisk/static-http/ajamdemo.html @@ -0,0 +1,219 @@ + + + + + + +Asterisk™ AJAM Demo + + + + + +
+ + + + + + + + +

Asterisk™ AJAM Demo

Username:
Secret:
+
+   +
+
+
+ +
+This is a demo of the Asynchronous Javascript Asterisk Manager interface. You can login with a +valid, appropriately permissioned manager username and secret. +
+ + + + + +
+
+
+
+
+ + Copyright (C) 2006 Digium, Inc. Asterisk and Digium are trademarks of Digium, Inc. + +
+ diff --git a/old-asterisk/asterisk/static-http/astman.css b/old-asterisk/asterisk/static-http/astman.css new file mode 100644 index 0000000..fbf2b2c --- /dev/null +++ b/old-asterisk/asterisk/static-http/astman.css @@ -0,0 +1,34 @@ +.chanlist { + border : 1px solid #1f669b; + height : 150px; + overflow : auto; + background-color : #f1f1f1; + width : 600; +} + +.chantable { + border : 0px; + background-color : #f1f1f1; + width : 100%; +} + +.labels { + background-color : #000000; + color : #ffffff; +} + +.chanlisteven { + background-color : #fff8e4; +} + +.chanlistodd { + background-color : #f0f5ff; +} + +.chanlistselected { + background-color : #ffb13d; +} + +.light { + color : #717171; +} diff --git a/old-asterisk/asterisk/static-http/astman.js b/old-asterisk/asterisk/static-http/astman.js new file mode 100644 index 0000000..e00a2e0 --- /dev/null +++ b/old-asterisk/asterisk/static-http/astman.js @@ -0,0 +1,262 @@ +/* + * Asterisk -- An open source telephony toolkit. + * + * Javascript routines or accessing manager routines over HTTP. + * + * Copyright (C) 1999 - 2006, Digium, Inc. + * + * Mark Spencer + * + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + * + */ + + +function Astman() { + var me = this; + var channels = new Array; + var lastselect; + var selecttarget; + this.setURL = function(url) { + this.url = url; + }; + this.setEventCallback = function(callback) { + this.eventcallback = callback; + }; + this.setDebug = function(debug) { + this.debug = debug; + }; + this.clickChannel = function(ev) { + var target = ev.target; + // XXX This is icky, we statically use astmanEngine to call the callback XXX + if (me.selecttarget) + me.restoreTarget(me.selecttarget); + while(!target.id || !target.id.length) + target=target.parentNode; + me.selecttarget = target.id; + target.className = "chanlistselected"; + me.chancallback(target.id); + }; + this.restoreTarget = function(targetname) { + var other; + target = $(targetname); + if (!target) + return; + if (target.previousSibling) { + other = target.previousSibling.previousSibling.className; + } else if (target.nextSibling) { + other = target.nextSibling.nextSibling.className; + } + if (other) { + if (other == "chanlisteven") + target.className = "chanlistodd"; + else + target.className = "chanlisteven"; + } else + target.className = "chanlistodd"; + }; + this.channelUpdate = function(msg, channame) { + var fields = new Array("callerid", "calleridname", "context", "extension", "priority", "account", "state", "link", "uniqueid" ); + + if (!channame || !channame.length) + channame = msg.headers['channel']; + + if (!channels[channame]) + channels[channame] = new Array(); + + if (msg.headers.event) { + if (msg.headers.event == "Hangup") { + delete channels[channame]; + } else if (msg.headers.event == "Link") { + var chan1 = msg.headers.channel1; + var chan2 = msg.headers.channel2; + if (chan1 && channels[chan1]) + channels[chan1].link = chan2; + if (chan2 && channels[chan2]) + channels[chan2].link = chan1; + } else if (msg.headers.event == "Unlink") { + var chan1 = msg.headers.channel1; + var chan2 = msg.headers.channel2; + if (chan1 && channels[chan1]) + delete channels[chan1].link; + if (chan2 && channels[chan2]) + delete channels[chan2].link; + } else if (msg.headers.event == "Rename") { + var oldname = msg.headers.oldname; + var newname = msg.headers.newname; + if (oldname && channels[oldname]) { + channels[newname] = channels[oldname]; + delete channels[oldname]; + } + } else { + channels[channame]['channel'] = channame; + for (x=0;xChannelStateCallerLocationLink"; + count=0; + for (x in channels) { + if (channels[x].channel) { + if (count % 2) + cclass = "chanlistodd"; + else + cclass = "chanlisteven"; + if (me.selecttarget && (me.selecttarget == x)) { + cclass = "chanlistselected"; + foundactive = 1; + } + count++; + s = s + "\t"; + s = s + "" + channels[x].channel + ""; + if (channels[x].state) + s = s + "" + channels[x].state + ""; + else + s = s + "unknown"; + if (channels[x].calleridname && channels[x].callerid && channels[x].calleridname != "") { + cid = channels[x].calleridname.escapeHTML() + " <" + channels[x].callerid.escapeHTML() + ">"; + } else if (channels[x].calleridname && (channels[x].calleridname != "")) { + cid = channels[x].calleridname.escapeHTML(); + } else if (channels[x].callerid) { + cid = channels[x].callerid.escapeHTML(); + } else { + cid = "Unknown"; + } + s = s + "" + cid + ""; + if (channels[x].extension) { + s = s + "" + channels[x].extension + "@" + channels[x].context + ":" + channels[x].priority + ""; + } else { + s = s + "None"; + } + if (channels[x].link) { + s = s + "" + channels[x].link + ""; + } else { + s = s + "None"; + } + s = s + "\n"; + found++; + } + } + if (!found) + s += "No active channels\n"; + s += "\n"; + if (!foundactive) { + me.selecttarget = null; + } + return s; + }; + this.parseResponse = function(t, callback) { + var msgs = new Array(); + var inmsg = 0; + var msgnum = 0; + var x,y; + var s = t.responseText; + var allheaders = s.split('\r\n'); + if (me.debug) + me.debug.value = "\n"; + for (x=0;x + * Pari Nannapaneni + * + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + * +--> + + + System Log + + + + + + +
+ Asterisk Log messages +    + + Go +
+ +
+ + + + + + + + diff --git a/old-asterisk/asterisk/static-http/config/backup.html b/old-asterisk/asterisk/static-http/config/backup.html new file mode 100644 index 0000000..6adc6d9 --- /dev/null +++ b/old-asterisk/asterisk/static-http/config/backup.html @@ -0,0 +1,128 @@ + + + + Backup / Restore Configurations + + + + + + + + + +
+  Backup / Restore Configurations +    +
+ + + + +
+
Manage Configuration Backups
+
+
+  Upload a previous backup file :  + +
+ +
Create New Backup
+ +
+  List of Previous Configuration Backups :  + + + + + + +
S.NoNameDateOptions
+
+
+
+
+
+ +
+ + + + + diff --git a/old-asterisk/asterisk/static-http/config/blank.html b/old-asterisk/asterisk/static-http/config/blank.html new file mode 100644 index 0000000..e69de29 diff --git a/old-asterisk/asterisk/static-http/config/bulkadd.html b/old-asterisk/asterisk/static-http/config/bulkadd.html new file mode 100644 index 0000000..baf8413 --- /dev/null +++ b/old-asterisk/asterisk/static-http/config/bulkadd.html @@ -0,0 +1,82 @@ + + + + Bulk Add + + + + + + +
+ Bulk Add    +
+ +
Bulk Add
+ +
+ + + + + +
+
+ The below input box is for inputting configuration data for multiple Users at one time.
+
+ The first line of the text input into the box should be populated by a comma separated
listing of the user variables, + beginning with the keyword "User," as such:
+
+ User, fullname, host, type, cid_number, context, hasvoicemail, vmsecret, email, hassip, hasiax, secret
+
+ A carriage return should follow this line.
+
+ Each following line should contain the data that corresponds to each of the variables such as:
+
+

6020, Bob Jones, dynamic, peer, 6020, DLPN_Default_DialPlan, yes, 1234, bob@jones.null, yes, yes, mypassword
+ 6021, Jane Doe, dynamic, peer, 6021, DLPN_Default_DialPlan, yes, 5678, jane@doe.null, yes, yes, otherpassword

+
+ +
+ Add +
+ + + + + + + + + + + +
Create Users Starting from Extension
+
+ Create Users +


Tip: Use the 'Modify Selected Users' button from the Users page to edit any options for the created users.
+ + + + + + diff --git a/old-asterisk/asterisk/static-http/config/callingrules.html b/old-asterisk/asterisk/static-http/config/callingrules.html new file mode 100644 index 0000000..fcc522f --- /dev/null +++ b/old-asterisk/asterisk/static-http/config/callingrules.html @@ -0,0 +1,174 @@ + + + + Manage Calling Rules + + + + + + +
+ Manage Calling Rules + +    + +
+ + +
+ New Calling Rule + Restore Default Calling Rules + + Outgoing Calling Rules +
+ +
+
+ An outgoing calling rule pairs an extension pattern with a trunk used to dial the pattern. This allows different patterns to be dialed through different trunks (e.g. "local" 7-digit dials through an FXO but "long distance" 10-digit dials through a low-cost SIP trunk). You can optionally set a failover trunk to use when the primary trunk fails. Note that this panel manages only individual outgoing call rules. See the Dial Plans section to associate multiple outgoing calling rules to be used for User outbound dialing. +
+
+ + +
+ + + + + + + + + diff --git a/old-asterisk/asterisk/static-http/config/cdr.html b/old-asterisk/asterisk/static-http/config/cdr.html new file mode 100644 index 0000000..df9a827 --- /dev/null +++ b/old-asterisk/asterisk/static-http/config/cdr.html @@ -0,0 +1,113 @@ + + + + CDR Viewer + + + + + + +
+ CDR Viewer ()    +
+ +
Call Detail Report
+
+ View: + +
+
+ Inbound calls + Outbound calls + Internal calls + External calls +
+ Show all fields + Show system calls +
+ +
+
+ Previous + Next + Click on column header to sort by that column. Click on row to display full record. +
+
+
+