From 10b08ecb1c0b80630c7c83b01812ab20e63e6e0a Mon Sep 17 00:00:00 2001 From: lgaetz Date: Thu, 19 Apr 2012 21:32:14 -0300 Subject: [PATCH] Initial commit --- README | 36 +++++++ css/defaultstyle.css | 165 +++++++++++++++++++++++++++++++ images/Thumbs.db | Bin 0 -> 6144 bytes images/queue-small.png | Bin 0 -> 19698 bytes inc/dbconnect.php | 5 + inc/defines.php | 19 ++++ inc/functions.php | 151 ++++++++++++++++++++++++++++ index.php | 218 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 594 insertions(+) create mode 100644 README create mode 100644 css/defaultstyle.css create mode 100644 images/Thumbs.db create mode 100644 images/queue-small.png create mode 100644 inc/dbconnect.php create mode 100644 inc/defines.php create mode 100644 inc/functions.php create mode 100644 index.php diff --git a/README b/README new file mode 100644 index 0000000..50b7990 --- /dev/null +++ b/README @@ -0,0 +1,36 @@ +Show callers and members in a queue using Asterisk +by Mark Veenstra +================================================================ + +** Background + When I search the Internet there are better and more +improved add-ons for Asterisk to list/show all callers and +members of an Asterisk queue. But most of them are too complex +or too expensive for my needs, therefore I created this simple +PHP page. Hopefully you enjoy! + +** Security concerns + This PHP page doesn't include any user authentication. +This is a feature I didn't need because I don' allow any other +people on port 80 of Apache. If you do want some kind of user +authentication, you can: + 1. Expand this PHP page with this feature (please let me + know) + 2. Make use of a .htaccess with a .htpasswd + +** Installation + - Upload the *.tgz file to your webroot folder of you Asterisk + server (For example: /var/www/html/). + - Login to your Asterisk server and execute the next commands: + cd /var/www/html/ + tar xzvf queue-list-v0.5.tgz + +** Configure PHP page + - Edit the file inc/defines.php and change the MySQL database + settings. + +** Check installation +Open your browser and point in to http:///queue_list/ + +** Credits +Special thanks to everyone in the Asterisk community. diff --git a/css/defaultstyle.css b/css/defaultstyle.css new file mode 100644 index 0000000..19be77a --- /dev/null +++ b/css/defaultstyle.css @@ -0,0 +1,165 @@ +body { + margin-top: 0px; + text-align:center; + margin-left: auto; + margin-right: auto; + width: 100%; + font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; + font-size: 13px; +} + +a { + color: #2E78A7; + text-decoration : underline; +} +a:hover { + color: #ee9a47; +} +div#page { + margin-left: auto; + margin-right: auto; + width: 85%; + text-align: left; + padding-left: 20px; + padding-right: 20px; +} + +div.header { + border-bottom: 1px solid #808080; + height: 82px; /* img height (100px) + img margin */ + color: #A96046; + width: 100%; + margin-top: 10px; +} + +div.header-left { + float: left; + border: none; +} + +div.header-right { + float:right; + border: none; +} + +div.header img { + border: none; +} + +div.refresh { + text-align: right; + border: none; +} + +div.queue { + margin-top: 50px; + text-align: right; + border: none; +} + +div.content { + width: 100%; + text-align:justify; +} + +div.htable { + margin-top: 10px; + text-align:justify; + font-size: 16px; + color:#A96046; + font-weight:bold; +} + +/* BEGIN TABLE CSS */ +div.table-base { + border: none; + margin: 0; + padding: 0; + width: auto; +} + +div.table-row-hdr { + border: solid #000000 1px; + margin-top: 0; + margin-right: auto; + margin-bottom: 0; + margin-left: auto; + padding: 0; + text-align: center; + width: 100%; +} + +div.table-row { + border-left: solid #000000 1px; + border-top: none; + border-right: solid #000000 1px; + border-bottom: solid #000000 1px; + margin-top: 0; + margin-right: auto; + margin-bottom: 0; + margin-left: auto; + padding: 0; + text-align: center; + width: 100%; +} + +div.cal-small-layer { + border: none; + float: left; + margin: 0; + padding: 0; + width: 10%; + text-align: center; +} + +div.cal-big-layer { + border: none; + float: left; + margin: 0; + padding: 0; + width: 70%; + text-align: left; +} + +div.mem-small-layer { + border: none; + float: left; + margin: 0; + padding: 0; + width: 10%; + text-align: center; +} + +div.mem-big-layer { + border: none; + float: left; + margin: 0; + padding: 0; + width: 35%; + text-align: left; +} + +div.space-line { + clear: both; + margin: 0; + padding: 0; + width: auto; +} + +h5.colhdr { + background: none #ffffcc; + border: none; + color: #993333; + font-weight: bold; + margin: 0; + padding: 0.3em 0.3em 0 0.3em; + width: auto; +} + +p.text { + border: none; + margin: 0; padding: 0.3em 0.3em 0 0.3em; + text-indent: 0; + width: auto; +} +*/ END TABLE CSS */ diff --git a/images/Thumbs.db b/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..91232c9c697a312ff2031e009f6f30b5373406ed GIT binary patch literal 6144 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 w71~+E&pT198OP!3K3D)01iAij~09`xuxBvhE literal 0 HcmV?d00001 diff --git a/images/queue-small.png b/images/queue-small.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d6f616b6a8a3d9e4b675a69a632ae4879068a6 GIT binary patch literal 19698 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 IN|wR@2Ll-dK>z>% literal 0 HcmV?d00001 diff --git a/inc/dbconnect.php b/inc/dbconnect.php new file mode 100644 index 0000000..26d513c --- /dev/null +++ b/inc/dbconnect.php @@ -0,0 +1,5 @@ + diff --git a/inc/defines.php b/inc/defines.php new file mode 100644 index 0000000..9e58920 --- /dev/null +++ b/inc/defines.php @@ -0,0 +1,19 @@ + diff --git a/inc/functions.php b/inc/functions.php new file mode 100644 index 0000000..707f185 --- /dev/null +++ b/inc/functions.php @@ -0,0 +1,151 @@ + $mkeys[0]) { + $goto = count($command); + } + else { + $goto = $mkeys[0]; + } + $x = 0; + for($i = ($ckeys[0] + 1); $i < $goto; $i++) { + + $no = ereg_replace(" .*", "", $command[$i]); + $temp = ereg_replace("^[0-9]*\. ", "", $command[$i]); + $cid = ereg_replace(" \(.*", "", $temp); + $temp = ereg_replace(".* \(wait: ", "", $command[$i]); + $wait = ereg_replace(",.*", "", $temp); + $temp = ereg_replace(".*, prio: ", "", $command[$i]); + $prio = ereg_replace("\).*", "", $temp); + + $array[$x] = array(); + $array[$x]["no"] = $no; + $array[$x]["cid"] = $cid; + $array[$x]["wait"] = $wait; + $array[$x]["prio"] = $prio; + $array[$x]["debug"] = $command[$i]; + + $x++; + } + } + return $array; +} + +function getMembers($command) { + $array = array(); + if(in_array(ASCLINOMEM, $command)) { + $array[0] = array(); + $array[0]["name"] = "No agent logged in!"; + $array[0]["source"] = ""; + $array[0]["status"] = ""; + $array[0]["calls"] = ""; + $array[0]["last"] = ""; + $array[0]["debug"] = ""; + } + else { + $ckeys = array_keys($command, ASCLICAL); + if(trim($ckeys[0]) == "") { + $ckeys = array_keys($command, ASCLINOCAL); + } + $mkeys = array_keys($command, ASCLIMEM); + if($ckeys[0] > $mkeys[0]) { + $goto = ($ckeys[0] - 1); + } + else { + $goto = count($command); + } + $x = 0; + for($i = ($mkeys[0] + 1); $i <= $goto; $i++) { + $name = ereg_replace("\(.*", "", $command[$i]); + $temp = str_replace($name, "", $command[$i]); + $source = substr(ereg_replace("\).*", "", $temp), 1); + $temp = ereg_replace(".*\) \(", "", $command[$i]); + $status = ereg_replace("\).*", "", $temp); + $temp = ereg_replace(".* has taken ", "", $command[$i]); + $calls = ereg_replace(" calls.*", "", $temp); + $temp = ereg_replace(".* \(last was ", "", $command[$i]); + $last = ereg_replace(" secs.*", "", $temp); + if(preg_match("/[^0-9]/", $last)) { $last = "N/A"; } else { $last = sec2hms($last); } + + $array[$x] = array(); + $array[$x]["name"] = trim($name); + $array[$x]["source"] = trim($source); + $array[$x]["status"] = trim($status); + $array[$x]["calls"] = trim($calls); + $array[$x]["last"] = trim($last); + $array[$x]["debug"] = trim($command[$i]); + + $x++; + } + } + return $array; +} + + function sec2hms ($sec, $padHours = false) + { + + // start with a blank string + $hms = ""; + + // do the hours first: there are 3600 seconds in an hour, so if we divide + // the total number of seconds by 3600 and throw away the remainder, we're + // left with the number of hours in those seconds + $hours = intval(intval($sec) / 3600); + + // add hours to $hms (with a leading 0 if asked for) + $hms .= ($padHours) + ? str_pad($hours, 2, "0", STR_PAD_LEFT). ":" + : $hours. ":"; + + // dividing the total seconds by 60 will give us the number of minutes + // in total, but we're interested in *minutes past the hour* and to get + // this, we have to divide by 60 again and then use the remainder + $minutes = intval(($sec / 60) % 60); + + // add minutes to $hms (with a leading 0 if needed) + $hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ":"; + + // seconds past the minute are found by dividing the total number of seconds + // by 60 and using the remainder + $seconds = intval($sec % 60); + + // add seconds to $hms (with a leading 0 if needed) + $hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT); + + // done! + return $hms; + + } +?> diff --git a/index.php b/index.php new file mode 100644 index 0000000..aa1718e --- /dev/null +++ b/index.php @@ -0,0 +1,218 @@ + + + + Queue list + + + + + +
+
+ +
+
+ +
+ +
+
+ Refresh rate: + +
+ +
+ Please select a queue: + +
+
+
+ +
+
+ Callers in queue 1) { echo ' ('.count($callers).' total)'; } ?>: +
+ +
+
+
+
+ No. +
+
+
+
+ Caller ID +
+
+
+
+ Wait +
+
+
+
+ Prio +
+
+
+
+ +
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+
+ " /> + +
+ +

+ +
+ Logged in agents: +
+ +
+
+
+
+ Agent name +
+
+
+
+ Source +
+
+
+
+ Status +
+
+
+
+ Calls +
+
+
+
+ Last +
+
+
+
+ +
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+
+
+ " /> + +
+ +

+ +
[GNU General Public License] Copyright © Mark Veenstra
+ +
+ + + +
+ +