Saludos.
Estoy desarrollando un sistema para editar archivos de configuracion Asterisk (
http://www.asterisk.org), es un PBX open source para Voz sobre IP.
Entre otras cosas lo atractivo es poder hacer llamadas de larga distancia a un muy bajo costo. Pero para poder llamar a otra oficina se necesitan registrar las oficinas mutuamente, cada una en su servidor.
Ahora bien, para registrar la oficina GDL con la oficina MX, una de las dos debe iniciar el proceso de registro. Se ha definido que la mas nueva lo inice. Entonces GDL entraria al panel de administracion que estoy haciendo y al registrar la nueva oficina, necesito escribir una linea en un archivo del servidor de MX. Los permisos y la parte de la autentificacion no son problema de momento.
Al momento de registrar tengo esto en el servidor de GDL:
Código PHP:
function register($data) {
$editor = new editSipIax();
$hosts = array();
$hostE = array();
$user = $data['user'];
$keyName = $data['keyName'];
$hosts = explode("\n",$data['host']);
foreach($hosts as $h) {
$h = trim($h);
$hostE = explode(" ",$h);
foreach($hostE as $hs) {
$editor->preRegisterIax($user,$keyName,$hs);
$editor->save();
}
}
}
se manda llamra el metodo preRegisterIax(), el cual contiene lo siguiente:
Código PHP:
function preRegisterIax($userName,$keyName,$host) {
$this->bufferIn();
$userName = strtolower($userName);
$host = strtolower($host);
$this->setFileName($this->alterFiles['preiax']['fileName']);
$this->open();
$this->setContext($this->alterFiles['preiax']['registers']);
$this->readContext();
$regNum = count($this->registers);
$this->registers[$regNum]['login'] = $userName;
$this->registers[$regNum]['torkey'] = $keyName;
$this->registers[$regNum]['host'] = $host;
$this->saveParameters();
$locHost = $this->getLocalParameter("host");
$link = "hostremoto.com/archivoremoto.php?host=$locHost&user=$userName&key=$keyName";
$link = urlencode($link);
$dat = file($link);
$this->bufferOut();
return true;
}
como se puede ver, entre otras cosas trato de enviarle parametros a un script de PHP remoto por medio de FILE. No se si esto sea correcto o no, pero no funciona :P, o por lo menos no se ejecuta el proceso remoto.
El archivo remoto, dejando de lado la autentificacion contiene lo siguiente:
Código PHP:
include_once('asterisk/editSipIax.conf');
$editor = new editSipIax();
$fp = 0;
$data = "":
$remoteHost = "";
$remoteUser = "";
$remoteKey = "";
$file2W = "";
$registerTime = "":
$dir = "":
$file2W = $editor->alterFiles['iaxpretends']['fileName'];
$dir = $editor->workinDir;
$remoteHost = $_GET['host'];
$remoteUser = $_GET['user'];
$remoteKey = $_GET['key'];
$registerTime = date("Y-m-d-H-i-s");
$remoteUser = $remoteUser != "" ? $remoteUser.":" : "";
$data = "register => ".$rempoteUser.$remoteKey."@".$remoteHost.":-)".$registerTime;
$fp = fopen($dir.$file2W,"a");
if(fwrite($fp,$data)) {
echo 'true';
}
else {
echo 'false';
}
se supone deberia escribir el archivo, pero no hace nada, tampoco manda error.
ideas?
un saludo