diff --git a/LANG_www/agc/images/vdc_volume_down.gif b/LANG_www/agc/images/vdc_volume_down.gif
new file mode 100644
index 00000000..d1745c65
Binary files /dev/null and b/LANG_www/agc/images/vdc_volume_down.gif differ
diff --git a/LANG_www/agc/images/vdc_volume_up.gif b/LANG_www/agc/images/vdc_volume_up.gif
new file mode 100644
index 00000000..8aa17f19
Binary files /dev/null and b/LANG_www/agc/images/vdc_volume_up.gif differ
diff --git a/bin/AST_send_action_child.pl b/bin/AST_send_action_child.pl
index eb3b9a8f..3f7aead9 100644
--- a/bin/AST_send_action_child.pl
+++ b/bin/AST_send_action_child.pl
@@ -332,20 +332,6 @@ if (length($action)>1)
$cmd_line_j =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
$cmd_line_k =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
- $originate_command = '';
- $originate_command .= "Action: $action\n";
- if (length($cmd_line_b)>3) {$originate_command .= "$cmd_line_b\n";}
- if (length($cmd_line_c)>3) {$originate_command .= "$cmd_line_c\n";}
- if (length($cmd_line_d)>3) {$originate_command .= "$cmd_line_d\n";}
- if (length($cmd_line_e)>3) {$originate_command .= "$cmd_line_e\n";}
- if (length($cmd_line_f)>3) {$originate_command .= "$cmd_line_f\n";}
- if (length($cmd_line_g)>3) {$originate_command .= "$cmd_line_g\n";}
- if (length($cmd_line_h)>3) {$originate_command .= "$cmd_line_h\n";}
- if (length($cmd_line_i)>3) {$originate_command .= "$cmd_line_i\n";}
- if (length($cmd_line_j)>3) {$originate_command .= "$cmd_line_j\n";}
- if (length($cmd_line_k)>3) {$originate_command .= "$cmd_line_k\n";}
- $originate_command .= "\n";
-
if ($DB) {print " SYSLOG: $SYSLOG\n";}
if ($DB) {print " PATHlogs: $PATHlogs\n";}
if ($DB) {print " telnet_host: $telnet_host\n";}
@@ -365,13 +351,6 @@ if (length($action)>1)
if ($DB) {print " cmd_line_j: $cmd_line_j\n";}
if ($DB) {print " cmd_line_k: $cmd_line_k\n";}
-
- print "$now_date|$SYSLOG|\n$originate_command";
- $event_string = "0|$SYSLOG|";
- $event_string .= "\n$originate_command";
- if ( ($FULL_LOG) && ($SYSLOG) )
- {&full_event_logger;}
-
use Net::Telnet ();
if (!$telnet_port) {$telnet_port = '5038';}
@@ -391,6 +370,57 @@ if (length($action)>1)
$tn->buffer_empty;
+ if ($cmd_line_b =~ /XXYYXXYYXXYYXX/)
+ {
+ # Action: Command
+ # Command: meetme list 8600051
+ #
+ # Response: Follows
+ # Privilege: Command
+ # User #: 03 261 261iax Channel: IAX2/261iax-13 (unmonitored)
+ # 1 users in that conference.
+ # --END COMMAND--
+ $meetme_command = "Action: Command\nCommand: meetme list $cmd_line_k\n\n";
+ print "$now_date|$SYSLOG|\n$meetme_command";
+
+ @list_meetme = $tn->cmd(String => "$meetme_command", Prompt => '/--END COMMAND-.*/');
+ foreach(@list_meetme)
+ {
+ if ($list_meetme[$m] =~ /$cmd_line_j /i)
+ {
+ $list_meetme[$m] =~ s/User \#: //gi;
+ @participants = split(/ /, $list_meetme[$m]);
+ $participant = ($participants[0] + 0);
+ }
+ # print "$m|$participant|$cmd_line_j|$list_meetme[$m]";
+ $m++;
+ }
+ if ($participant > 0) {$cmd_line_b =~ s/XXYYXXYYXXYYXX/$participant/gi;}
+ $cmd_line_j = '';
+ $cmd_line_k = '';
+ }
+
+ $originate_command = '';
+ $originate_command .= "Action: $action\n";
+ if (length($cmd_line_b)>3) {$originate_command .= "$cmd_line_b\n";}
+ if (length($cmd_line_c)>3) {$originate_command .= "$cmd_line_c\n";}
+ if (length($cmd_line_d)>3) {$originate_command .= "$cmd_line_d\n";}
+ if (length($cmd_line_e)>3) {$originate_command .= "$cmd_line_e\n";}
+ if (length($cmd_line_f)>3) {$originate_command .= "$cmd_line_f\n";}
+ if (length($cmd_line_g)>3) {$originate_command .= "$cmd_line_g\n";}
+ if (length($cmd_line_h)>3) {$originate_command .= "$cmd_line_h\n";}
+ if (length($cmd_line_i)>3) {$originate_command .= "$cmd_line_i\n";}
+ if (length($cmd_line_j)>3) {$originate_command .= "$cmd_line_j\n";}
+ if (length($cmd_line_k)>3) {$originate_command .= "$cmd_line_k\n";}
+ $originate_command .= "\n";
+
+
+ print "$now_date|$SYSLOG|\n$originate_command";
+ $event_string = "0|$SYSLOG|";
+ $event_string .= "\n$originate_command";
+ if ( ($FULL_LOG) && ($SYSLOG) )
+ {&full_event_logger;}
+
@list_channels = $tn->cmd(String => "$originate_command", Prompt => '/.*/');
sleep(3);
diff --git a/www/agc/images/vdc_volume_down.gif b/www/agc/images/vdc_volume_down.gif
new file mode 100644
index 00000000..d1745c65
Binary files /dev/null and b/www/agc/images/vdc_volume_down.gif differ
diff --git a/www/agc/images/vdc_volume_up.gif b/www/agc/images/vdc_volume_up.gif
new file mode 100644
index 00000000..8aa17f19
Binary files /dev/null and b/www/agc/images/vdc_volume_up.gif differ
diff --git a/www/agc/manager_send.php b/www/agc/manager_send.php
index 5bfe93f1..d8acee9f 100644
--- a/www/agc/manager_send.php
+++ b/www/agc/manager_send.php
@@ -12,7 +12,7 @@
# - $user
# - $pass
# optional variables:
-# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial')
+# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl')
# - $queryCID - ('CN012345678901234567',...)
# - $format - ('text','debug')
# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...)
@@ -32,6 +32,7 @@
# - $agent_log_id - ('123456',...)
# - $call_server_ip - ('10.10.10.15',...)
# - $CalLCID - ('VD01234567890123456',...)
+# - $stage - ('UP','DOWN')
#
# changes
@@ -117,6 +118,8 @@ if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];}
elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];}
if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];}
elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];}
+if (isset($_GET["stage"])) {$stage=$_GET["stage"];}
+ elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];}
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
@@ -1000,6 +1003,35 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") )
+######################
+# ACTION=VolumeControl - raise or lower the volume of a meetme participant
+######################
+if ($ACTION=="VolumeControl")
+{
+ if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) )
+ {
+ echo "Conference $exten, Stage $stage is not valid or queryCID $queryCID is not valid, Originate command not inserted\n";
+ }
+ else
+ {
+ $participant_number='XXYYXXYYXXYYXX';
+ if (eregi('DOWN',$stage)) {$vol_prefix='3';}
+ else {$vol_prefix='4';}
+ $local_DEF = 'Local/';
+ $local_AMP = '@';
+ $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context";
+
+ $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+ echo "Volume command sent for Conference $exten, Stage $stage Channel $channel on $server_ip\n";
+ }
+}
+
+
+
+
+
diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php
index 28f938bb..e9af0cd0 100644
--- a/www/agc/vicidial.php
+++ b/www/agc/vicidial.php
@@ -1493,6 +1493,51 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
}
}
+// ################################################################################
+// Send volume control command for meetme participant
+ function volume_control(taskdirection,taskvolchannel)
+ {
+ var xmlhttp=false;
+ /*@cc_on @*/
+ /*@if (@_jscript_version >= 5)
+ // JScript gives us Conditional compilation, we can cope with old IE versions.
+ // and security blocked creation of the objects.
+ try {
+ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ xmlhttp = false;
+ }
+ }
+ @end @*/
+ if (!xmlhttp && typeof XMLHttpRequest!='undefined')
+ {
+ xmlhttp = new XMLHttpRequest();
+ }
+ if (xmlhttp)
+ {
+ var queryCID = "VCagcW" + epoch_sec + user_abb;
+ var volchanvalue = taskvolchannel;
+ livevolume_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=VolumeControl&format=text&channel=" + volchanvalue + "&stage=" + taskdirection + "&exten=" + session_id + "&ext_context=" + ext_context + "&queryCID=" + queryCID;
+ xmlhttp.open('POST', 'manager_send.php');
+ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
+ xmlhttp.send(livevolume_query);
+ xmlhttp.onreadystatechange = function()
+ {
+ if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
+ {
+ Nactiveext = null;
+ Nactiveext = xmlhttp.responseText;
+ alert(xmlhttp.responseText);
+ }
+ }
+ delete xmlhttp;
+ }
+ }
+
+
// ################################################################################
// park customer and place 3way call
function xfer_park_dial()
@@ -1801,7 +1846,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var LMAcontent_match=0;
var conv_start=-1;
// var live_conf_HTML = "LIVE CALLS IN THIS CONFERENCE:
| # | REMOTE CHANNEL | HANGUP | XFER |
";
- var live_conf_HTML = "LIVE CALLS IN YOUR SESSION:
| # | REMOTE CHANNEL | HANGUP |
";
+ var live_conf_HTML = "LIVE CALLS IN YOUR SESSION:
| # | REMOTE CHANNEL | HANGUP | VOLUME |
";
if ( (LMAcount > live_conf_calls) || (LMAcount < live_conf_calls) || (LMAforce > 0))
{
LMAe[0]=''; LMAe[1]=''; LMAe[2]=''; LMAe[3]=''; LMAe[4]=''; LMAe[5]='';
@@ -1818,7 +1863,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var conv_ct = (loop_ct + conv_start);
var channelfieldA = conf_chan_array[conv_ct];
// live_conf_HTML = live_conf_HTML + "| " + loop_ct + " | " + channelfieldA + " | Hangup | XFER |
";
- live_conf_HTML = live_conf_HTML + "| " + loop_ct + " | " + channelfieldA + " | HANGUP |
";
+ live_conf_HTML = live_conf_HTML + "| " + loop_ct + " | " + channelfieldA + " | HANGUP |  |
";
// var debugspan = document.getElementById("debugbottomspan").innerHTML;