leaogimenes
(usa Ubuntu)
Enviado em 02/06/2012 - 09:23h
Bom pessoal tentei de todas as formas, mas não consegui. Abaixo segue o Script que cria o arquivo.call para efetuar as ligações no Asterisk, este não roda, mesmo com todas as permissões possíveis, e configurações criadas, caso alguem saiba o pq pode me ajudar fico muito grato:
* Este script roda em outro servidor(asterisk sainte) e atraves de ssh e scp, ele faz o envio do arquivo que gera o telefone.call e o asterisk disca, mas o que acontece, ele não esta enviando o arquivo, nas linhas do "exec". Por este motivo busquei algo sobre, permissões.
#!/usr/bin/php
<?php
set_time_limit(0);
$fp_logs = fopen("/var/log/autodial.log","a+");
include("config.php");
mysql_pconnect(DB_HOST,DB_USER_READ,DB_PASS_READ);
mysql_select_db(DB_NAME);
//$argv[1] = $_GET['id'];
$sql_discador = "SELECT * FROM `central_discadora` WHERE `id`={$argv[1]}";
$query_discador = mysql_query($sql_discador);
$num_discador = mysql_num_rows($query_discador);
if ($num_discador>0){
$data_discador = mysql_fetch_assoc($query_discador);
extract($data_discador);
$hora_inicio = str_replace(array(' ','-',':'),array('','',''),$hora_inicio);
$hora_termino = str_replace(array(' ','-',':'),array('','',''),$hora_termino);
$data_inicio = explode(' ',$data_inicio);
$data_inicio = str_replace(array(' ','-',':'),array('','',''),$data_inicio[0]);
$data_finalizacao = explode(' ',$data_finalizacao);
$data_finalizacao = str_replace(array(' ','-',':'),array('','',''),$data_finalizacao[0]);
} else {
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tDISCADOR {$argv[1]} NÃO EXISTE\n"));
exit(1);
}
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tCOLETANDO TELEFONES\n"));
$sql = "SELECT CONCAT('0',T.ddd,T.telefone) as numero,";
$sql .= " T.ddd,
T.telefone,
T.cpf_cnpj,
T.id_central_discadora,
(
SELECT
asterisk_context
FROM
central_discadora_contexto
WHERE
id={$id_central_discadora_contexto}
) asterisk_context,
D.nome,CONCAT(T.ddd,T.telefone) AS ddd_numero
FROM
`central_discadora_telefone` T
INNER JOIN tb_devedor D ON
D.cpf_cnpj=T.cpf_cnpj
INNER JOIN tb_divida DV ON
DV.tb_devedor_cpf_cnpj=D.cpf_cnpj
WHERE
(`id_central_discadora`={$argv[1]}) AND
(`status_da_tentativa` IS NULL) AND
(
T.cpf_cnpj NOT IN
(
SELECT
cpf_cnpj
FROM
central_discadora_telefone
WHERE
cpf_cnpj=T.cpf_cnpj AND
(
ddd!=T.ddd AND telefone!=T.telefone
) AND (
(`status_da_tentativa`=5) OR
(`status_da_tentativa`=7) OR
(`status_da_tentativa`=8) OR
(`status_da_tentativa`=9)
)
)
)
GROUP BY
cpf_cnpj
ORDER BY cpf_cnpj ASC, status_da_tentativa ASC";
$query = mysql_query($sql) or die(__FILE__.__LINE__.mysql_error());
$num = mysql_num_rows($query);
//var_dump($query);exit();
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tSQLSTRING: {$sql}\n"));
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tTENHO {$num} PARA LIGAR\n"));
if ($num>0){
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tINICIAR EM {$data_inicio}{$hora_inicio}\n"));
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tCONTAGEM ATUAL ".date("YmdHis")."\n"));
while (date("Ymd")>$data_inicio){
if (date("His")<$hora_inicio){
$sql_discador = "SELECT * FROM `central_discadora` WHERE `id`={$argv[1]}";
$query_discador = mysql_query($sql_discador);
$num_discador = mysql_num_rows($query_discador);
if ($num_discador>0){
$data_discador = mysql_fetch_assoc($query_discador);
extract($data_discador);
$hora_inicio = str_replace(array(' ','-',':'),array('','',''),$hora_inicio);
$hora_termino = str_replace(array(' ','-',':'),array('','',''),$hora_termino);
$data_inicio = explode(' ',$data_inicio);
$data_inicio = str_replace(array(' ','-',':'),array('','',''),$data_inicio[0]);
$data_finalizacao = explode(' ',$data_finalizacao);
$data_finalizacao = str_replace(array(' ','-',':'),array('','',''),$data_finalizacao[0]);
} else {
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tDISCADOR {$argv[1]} NÃO EXISTE\n"));
exit(1);
}
}
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tESTOU AGUARDANDO ATÉ {$data_inicio}{$hora_inicio} SÃO ".date("YmdHis")."\n"));
sleep(60);
}
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tPASSED THE WAIT TIME\n"));
$ligou = 0;
$start = 0;
while ($telefones = mysql_fetch_assoc($query)){
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tTRYING TO CALL TO {$telefones['numero']}\n"));
$telefone = trim($telefones['numero']);
$telefone_semzero = trim($telefones['ddd_numero']);
$telefone = str_replace('"','',$telefone);
$telefone_semzero = str_replace('"','',$telefone_semzero);
if ((strlen($telefone)!=11) || (strlen($telefone_semzero)!=10)) continue;
if ($last_dialed!=''){
if ($start==0){
if ($last_dialed==$telefone){
$start = 1;
continue;
} else {
continue;
}
}
}
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tWILL DO\n"));
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tTIME TO END DIALLER ".$data_finalizacao.$hora_termino."\n"));
if (date("YmdHis")>($data_finalizacao.$hora_termino)){
\\fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tURA ENCERRADA DEVIDO O HORÃRIO MÃXIMO ATINGIDO\n"));
exec('sudo ssh root@astersiksainte rm -rf /var/spool/asterisk/outgoing/*', $output);
exit("aguardando horario");
} elseif (date("His")>=$hora_inicio && date("His")<=$hora_termino){
$fp = fopen("/tmp/{$telefone}.call","a+");
if ($fp){
$syntax = 'Channel: '."SIP/tellflex/numerotel{$telefone_semzero}\n"; // 011XXXX0873
$syntax .= 'CallerID: "'.$telefone.'" <'.$telefone.'>'."\n";
$syntax .= 'MaxRetries: 3'."\n";
$syntax .= 'RetryTime: 7200'."\n";
$syntax .= 'WaitTime: 45'."\n";
$syntax .= 'Context: '.$telefones['asterisk_context']."\n";
$syntax .= 'Extension: s'."\n";
$syntax .= 'Priority: 1'."\n";
$syntax .= 'Set: DISCADOR='.$telefones['id_central_discadora']."\n";
$syntax .= 'Set: DDD='.$telefones['ddd']."\n";
$syntax .= 'Set: NUMERO='.$telefones['telefone']."\n";
$syntax .= 'Set: FICHA='.$telefones['cpf_cnpj']."\n";
$syntax .= 'Set: NOME='.$telefones['nome'];
fputs($fp,$syntax);
fclose($fp);
$ligou++;
$cpf = $telefones['cpf_cnpj'];
$nome = addslashes($telefones['nome']);
$cmdFala = "sudo ssh root@URADEVOZ falarNome \\\"{$nome}\\\" {$cpf} &> /dev/null";
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tCMD FALA: {$cmdFala}\n"));
exec($cmdFala, $output);
$comando = "scp /tmp/{$telefone}.call root@asterisksainte:/tmp";
$comando = "scp /tmp/{$telefone}.call root@asteriskteste:/tmp";
exec($comando);
var_dump($comando);
//exit();
exec($comando,$output);
exec("ssh root@asterisksainte sudo rm -rf /tmp/{$telefone}.call");
$sql_discador = "SELECT `tentativas_simultaneas` FROM `central_discadora` WHERE `id`={$argv[1]}";
$query_discador = mysql_query($sql_discador);
$num_discador = mysql_num_rows($query_discador);
if ($num_discador>0){
$data_discador = mysql_fetch_row($query_discador);
} else {
fputs($fp_logs,(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tDISCADOR {$argv[1]} NÃO EXISTE\n"));
exit(1);
}
if ($ligou % $data_discador[0]==0){
sleep(60);
}
} else {
echo "Não pude criar um arquivo aqui.\n";
exit(1);
}
} else {
// fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tURA FORA DO HORÃRIO\n"));
exec('ssh root@asterisksainte rm -rf /var/spool/asterisk/outgoing/*', $output);
echo "URA FORA DO HORÃRIO";
}
}
}
fputs($fp_logs,utf8_decode(date("d/m/Y H:i:s")."\t{$argv[1]}\t-\tTODAS AS LIGAÇÕES FORAM ENCAMINHADAS AO ASTERISK\n"));
fclose($fp_logs);
mysql_close();
exit(0);
?>