#!/usr/bin/php -q '.') then replace('^'||replace(replace(modelo||'$','X','[0-9]'),'Z','[1-9]'),'N','[2-9]') when (substring(modelo from '.$') = '.') then replace('^'||replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]') end and tipo_acesso <> '0' order by id_rota limit 1"; * */ $query = "select a.id_rota, a.tipo_acesso, a.ramal,b.modelo,c.recorte, c.acrescenta, case when (substring(modelo from '.$') <> '.') then length(replace(replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]')) when (substring(modelo from '.$') = '.') then length(replace(replace(replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]'),'.',REPEAT('[0-9]', 100))) end as prioridade from pbx_rotas_saida_ramais a inner join pbx_rotas_saida_modelos b on a.id_rota = b.id_rota inner join pbx_rotas_saida c on a.id_rota = c.id where ramal = '$ramal' and '$destino' ~ case when (substring(modelo from '.$') <> '.') then replace('^'||replace(replace(modelo||'$','X','[0-9]'),'Z','[1-9]'),'N','[2-9]') when (substring(modelo from '.$') = '.') then replace('^'||replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]') end and tipo_acesso <> '0' order by prioridade limit 1"; WriteLog($query, '/var/log/asterisk/rotas_saida.log'); $result = pg_query($conexao, $query); $row = pg_fetch_array($result); $id_rota = $row['id_rota']; $tipo_acesso = $row['tipo_acesso']; $ramal = $row['ramal']; $modelo = $row['modelo']; $recorte = $row['recorte']; $acrescenta = $row['acrescenta']; if (!$tipo_acesso) { $tipo_acesso = 0; } //Libera ligacao caso tenha agente logado no ramal else if ($tipo_acesso == '3') { $query = "select count(*) from pbx_supervisor_agentes where ramal = '$ramal'"; $result = pg_query($conexao, $query); $row = pg_fetch_array($result); $resultado = $row['0']; if (!$resultado) { $tipo_acesso = 0; } } write("SET VARIABLE ID_ROTA $id_rota"); read(); write("SET VARIABLE TIPO_ACESSO $tipo_acesso"); read(); write("SET VARIABLE NUMERO-RAMAL $ramal"); read(); write("SET VARIABLE MODELO $modelo"); read(); if ($recorte) { write("SET VARIABLE RECORTAROTA $recorte"); read(); } if ($acrescenta) { write("SET VARIABLE ACRESCENTAROTA $acrescenta"); read(); } pg_close(); fclose($in); fclose($stdlog); exit; ?>