cmd.php?coference=989898000036&action=resume
<?php
require_once("./confbridgeinfo.php"); // get conf channel info //Function to run the commands function runcmd($command){ $socket = fsockopen("127.0.0.1","7831", $errno, $errstr,60); if (!$socket){ echo "$errstr ($errno)\n"; }else{ fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: admin\r\n"); fputs($socket, "Secret: 193\r\n\r\n"); fputs($socket, "Action: Command\r\n"); fputs($socket, "Command: $command\r\n\r\n"); fputs($socket, "Action: Logoff\r\n\r\n"); while (!feof($socket)){ echo fgets($socket).'<br>'; } fclose($socket); } } // end of the function section // $coference=$_GET['coference']; $action=$_GET['action']; if($action=="hold"){ $hold="channel originate Local/600@hold-context extension $coference@sidialConfBridges"; $agent_chan=get_conf_info($coference)[1]; $mute="confbridge mute $coference $agent_chan"; runcmd($hold); runcmd($mute); } elseif($action=="resume"){ echo $hold_channel=get_conf_info($coference)[0]; $unhold="channel request hangup $hold_channel"; $unmute="confbridge unmute $coference all"; runcmd($unhold); runcmd($unmute); } else { ///Nothing for now } ?>
----------------------------
confbridgeinfo.php
<?php $arr=array(); function get_conf_info($agent){ $socket = fsockopen("127.0.0.1","7831", $errno, $errstr,60); if (!$socket){ echo "$errstr ($errno)\n"; }else{ fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: admin\r\n"); fputs($socket, "Secret: 1333\r\n\r\n"); fputs($socket, "Action: ConfbridgeList\r\n"); fputs($socket, "Conference: $agent\r\n\r\n"); fputs($socket, "Action: Logoff\r\n\r\n"); while (!feof($socket)){ // echo fgets($socket).'<br>'; $arr[]=fgets($socket); } fclose($socket); } foreach($arr as $key=>$value){ //echo "$key - $value<br>"; if(substr_count($value,"hold")){ $arr['channel']= explode(" ",$value)[1]; } elseif(substr_count($value,"SIP")){ $arr['agent']= explode(" ",$value)[1]; } } if (isset($arr['agent'])) { return $channels=explode(" ","$arr[channel] $arr[agent]"); } else { // If the channel does not exist, create an error message and encode $arr $arr['e'] = "No conference channel found"; } } //print_r(get_conf_info($argv[1])); ?>
No hay comentarios:
Publicar un comentario