el punto es que antes trabajaba con la conexion afuera del metodo firstchannelidle y ahora necesito usarla dentro, y no me funciona , tampoco da error de codigo
si alguien me puede ayudar de ante mano gracias.
Código:
class hyper
{
//##################################################################################################
//variable que contiene la conexion
var $hghandle;
//##################################################################################################
//establece la conexion a hypergateway
function hyper($host, $port) //constructor de la clase
{
$this->hghandle = fsockopen($host, $port, &$errno, &$errstr, 10);
if(!$this->hghandle)
{
return false;
}
else
{
return true;
}
}
//##################################################################################################
//autentifica la sesion con hypergateway
function auth($pass)
{
fwrite($this->hghandle,"PASS $pass\r\n");
$response = fgets($this->hghandle, 1024);
$resp = split(" ", $response);
switch($resp[0])
{
case "Authenticated":
return true;
break;
case "AuthError":
return false;
break;
}
}
//##################################################################################################
//devuelve el primer canal disponible para llamada desde el array
function firstchannelidle($arritems)
{
$chan="no conexion";
for($i=0; $i<count($arritems) && $chan==false; $i++)
{
$item = $arritems[$i];
$host=$item->_tIp;
$port="8887";
$pass=$item->_pass;
$slotitem = $item->_slot;
//-------------------------------------------------------------------
$this->hyper($host, $port);
$this->auth($pass);
//--------------------------------------------------------------------
fwrite($this->hghandle,"GetStatus /I124/M0/A$slotitem\r\n");
$response = fgets($this->hghandle, 1024);
$resp = split(" ", $response);
if($resp[0]=="Status")
{
if($slot=$this->GetSection($resp[1], "g"))
{
$sims=explode(",", $slot);
$mod=($item->_channel % 4)-1;
if($sims[$mod]=="00")
{
$chan=$item->_channel;
}
}
}
//cerrar conexion
fclose($this->hghandle);
}
return $chan ;//
}
//##################################################################################################
//finaliza la conexion a hypergateway
function close()
{
if($this->hghandle)
{
fclose($this->hghandle);
}
}
//###################################################################################################
//devuelve la seccion requerida desde una repuesta de hypergateway
function GetSection($strMessage, $strSectionName)
{
$nTagLen = strlen($strSectionName);
$Params = explode("/", $strMessage);
$strParam = false;
for ($i=0; $i<count($Params) && $strParam==false; $i++)
{
if (substr($Params[$i], 0, $nTagLen)==$strSectionName)
{
$strParam=substr($Params[$i], $nTagLen);
}
}
return $strParam;
}
//##################################################################################################
function GetValidateSlot($channel)// obtener el slot y posicion del simcard segun canal
{
$valor=20+($channel/4);
$valor=round($valor);
$resto=($channel%4);
if($resto>0 && $resto<2)
{
$valor=$valor+1;
}
$resto=($channel%4);
if($resto==0)
{
$resto=4;
}
$validacion[0]=$valor;
$validacion[1]=$resto;
return array($validacion);
}
//##################################################################################################
function GetActiveSIM($slot,$resto)//obtener posicion del simcard
{
fwrite($this->hghandle,"SetMultiSIM /Q/A$slot/I919\r\n");
$response = fgets($this->hghandle, 1024);
$resp = split("/", $response);
$posiciones=$resp[3];
$posiciones=substr($posiciones,1);
$posiciones= split(",", $posiciones);
$posicion=$posiciones[$resto-1];
return $posicion;
}
} //fin clase hyper
pero si lo llamo desde otro php funciona okey
Código:
//consultar primer canal disponible a hypergateway
//if($hyper=new hyper($hghost, $hgport))
//{
// if($hyper->auth($hgpass))
// {
// if(
$hyper=new hyper();
$chan=$hyper->firstchannelidle($hgarray);//prueba($hgarray)//
// {
$chan_id=$chan;
// }
// }
// $hyper->close();
//}


