PABX da Simples IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

383 lines
15 KiB

function ApagaBilheteDuplTransfer($dbcon) {
/*
* Esta funcao apaga bilhetes que estao duplicatos na transferencia.
*/
$path = '/var/log/asterisk/apaga_bilhetes_transfer.log';
$query = "delete from ast_bilhetes a where rtrim(disposition) in('NO ANSWER', 'BUSY', 'FAILED') and exists(select '' from ast_bilhetes where uniqueid = a.uniqueid and rtrim(disposition) = 'ANSWERED');";
if (!pg_query($dbcon, $query)) {
$log = sprintf("Data: %s Cmd: Erro: %s\n", date('Y-m-d H:i:s'), $query, GetLasterror());
WriteLog($log, $path);
}
$query = "drop table if exists bilhetes_dupl
create table bilhetes_dupl as
select uniqueid, min(sequence) as sequence from ast_bilhetes where calldate::date = now()::date group by uniqueid having count(*) > 1;
delete from ast_bilhetes a using bilhetes_dupl b where b.uniqueid = a.uniqueid and a.sequence not in(select sequence from bilhetes_dupl);";
if (!pg_query($dbcon, $query)) {
$log = sprintf("Data: %s Cmd: Erro: %s\n", date('Y-m-d H:i:s'), $query, GetLasterror());
WriteLog($log, $path);
}
}
delete from ast_bilhetes a where rtrim(disposition) in('NO ANSWER', 'BUSY', 'FAILED') and exists(select '' from ast_bilhetes where uniqueid = a.uniqueid and rtrim(disposition) = 'ANSWERED');
drop table if exists bilhetes_dupl;
create table bilhetes_dupl as
select uniqueid, min(sequence) as sequence from ast_bilhetes where calldate::date = now()::date group by uniqueid having count(*) > 1;
delete from ast_bilhetes a using bilhetes_dupl b where b.uniqueid = a.uniqueid and a.sequence not in(select sequence from bilhetes_dupl);";
http://192.168.115.233:3000/amarildo.pereira/pabx-app.git
/*
* Restringe o ramal para todos os grupos.
*/
if($result){
$query = "insert into pbx_grupo_audio_ramal select '$nome2', gp_id from pbx_grupo a where gp_status = 1 and not exists(select '' from pbx_grupo_audio_ramal where gp_id = a.gp_id and nome = '$nome2');";
$result = pg_query($dbcon, $query);
}
baseurl=http://vault.centos.org/$releasever/centosplus/$basearch/
[applicationmap]
app-hangup-agentes => *0,caller,Macro,app-hangup-agentes
;Utilizadas internamente (ramal/ramal) onde qualquer um dos lados pode iniciar a conferencia
app-inicia-conferencia => *7,caller,Macro,app-inicia-conferencia
app-adiciona-conferencia => *8,caller,Macro,app-adiciona-conferencia
app-naoadiciona-conferencia => *9,caller,Macro,app-naoadiciona-conferencia
app-hangup-agentes => *0,caller,Macro,app-hangup-agentes
;Utilizadas para ligacoes externas onde somente o chamador pode iniciar a conferencia
app-inicia-conferencia-ramal => *7,self/caller,Macro,app-inicia-conferencia
app-adiciona-conferencia-ramal => *8,self/caller,Macro,app-adiciona-conferencia
app-naoadiciona-conferencia-ramal => *9,self/caller,Macro,app-naoadiciona-conferencia
app-monitora-aceita => 1,self/caller,AGI(intercala_lgpd.php,AGENTE,1)
app-monitora-bloqueia => 2,self/caller,AGI(intercala_lgpd.php,AGENTE,2)
[solintel-lgpd]
app-monitora-aceita => 1
app-monitora-bloqueia => 2
[10:20, 22/10/2022] Alan Pablo: l<EFBFBD> no sip_ramais.conf
[10:20, 22/10/2022] Alan Pablo: setvar=DYNAMIC_FEATURES=solintel-lgpd
[10:21, 22/10/2022] Alan Pablo: Depois podemos pensar em um par<EFBFBD>metro, s<EFBFBD> escreveria isso nos ramais quando estiver ativado
[3001]
type=friend
secret=SIP3001
callerid=3001
qualify=yes
port=5060
nat=force_rport,comedia
host=dynamic
dtmfmode=rfc2833
context=padrao
canreinvite=no
disallow=all
allow=alaw,ulaw
call-limit=1
videosupport=no
t38pt_udptl=yes
setvar=DYNAMIC_FEATURES=solintel-lgpd
^M
[3002]
/var/lib/asterisk/agi-bin/intercala_lgpd.php|AGENTE|
[14:14, 13/10/2022] Alan Pablo: wget -c https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xzf ioncube_loaders_lin_x86-64.tar.gz
/bin/cp -Rapf ioncube/ioncube_loader_lin_5.6.so /etc/ioncube_loader.so chmod 755 /etc/ioncube_loader.so chown pbx:pbx /etc/ioncube_loader.so
/bin/cp -Rapf ioncube/ioncube_loader_lin_5.6_ts.so /usr/lib64/php-zts/modules/
chmod 755 /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so
chown pbx:pbx /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so
echo "zend_extension = /usr/lib64/php-zts/modules/ioncube_loader_lin_5.6_ts.so" > /etc/php-zts.d/00-ioncube.ini
[14:15, 13/10/2022] Alan Pablo: Esse primeiro cp copiar para o caminho que j<EFBFBD> usamos e o segundo <EFBFBD> o passo que foi adicionado
select case when(upper(b.modo_atendimento) = 'MANUAL')then
case when( upper(e.tipo_ramal) = 'KHOMP')then
upper(e.tipo_ramal) || '/r' || e.nome
else
e.dispositivo end
else
'Local/' || b.ramal || '@app-callcenter/n' end as canal_agente,
b.matricula,
abdsr_numero,
b.ramal,
abdsr_uniqueid,
abdsr_fila,
abdsr_data_hora_inicio,
a.abdsr_callback
from pbx_abandonadas_semretorno a, pbx_supervisor_agentes b, pbx_supervisor_dacs c, pbx_queues_grupos d, pbx_ramais e
where b.dac = a.abdsr_fila
and c.dac = b.dac
and d.nome = c.dac
and e.nome = b.ramal
and a.abdsr_data_hora_retorno is null
and length(a.abdsr_numero) >= 8
and ((a.abdsr_callback < $tentativasRetorno) and (extract(epoch from (now() - coalesce(abdsr_callback_data, now())))::int > $tempoRetorno) or (a.abdsr_callback = 0))
and b.status = 'LIVRE'
and b.status_discador = 0
and b.disponivel_atendimento = 1
and strtoint(c.espera) = 0
and d.retornar_abandonadas = 1
and a.abdsr_data >= (now()::date - $diasAbandon)
order by a.abdsr_data_hora_inicio desc limit $agentesLivres
ALTER TABLE pbx_parametros ADD COLUMN prm_sk_api_centrais VARCHAR(100);
ALTER TABLE pbx_parametros ADD COLUMN prm_chat_url_client VARCHAR(255) DEFAULT('http://sipcloud02.simplesip.com.br:8001');
httpd-LX6
drwxr-xr-x 2 root root 4096 Jun 17 11:05 httpd-LX7
Select translate($1,
'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aaa<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AAA<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>eeeeeEEE<EFBFBD>EE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iii<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>III<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ooo<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OOO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>uuuu<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UUUU<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'aaaaaaaaaAAAAAAAAAeeeeeeeeeEEEEEEEiiiiiiiiIIIIIIIIooooooooOOOOOOOOuuuuuuuuUUUUUUUUcCnNyY'
);
[16:40, 26/05/2022] Alan Pablo: Altera<EFBFBD><EFBFBD>o Grupo momento no suporvisor - mostrar o identificador da rota de entrada na grid de chamadas abandonadas
* Corre<EFBFBD><EFBFBD>o reciclagem do mailing
* Supervisor
* Quando o agente est<EFBFBD> em chamada e o supervisor realiza o logoff , n<EFBFBD>o est<EFBFBD> desligando a chamada em curso.
*Pesquisa de satisfa<EFBFBD><EFBFBD>o automatica com timeout na fila
exten => _2000,n,Queue(ATENDIMENTO,trc,,${ANUNCIO},30,agente_fila.php,,,,)
exten => _2000,n,ExecIf($["${QUEUESTATUS}" = "TIMEOUT"]?AGI(transbordo.php,ATENDIMENTO,2000,filas,2000,${UNIQUEID}))
exten => _2000,n,ExecIf($["${QUEUESTATUS}" = "TIMEOUT"]?Goto(ext-fila,2000,1))
exten => _2000,n,Macro(hangup,PESQUISA)
exten => _2000,n,Goto(psq-4-ini,s,1)
exten => _2000,n,Hangup()
*Pesquisa de satisfa<EFBFBD><EFBFBD>o
[psq-2-ini]
exten => s,1,NoCDR()
exten => s,n,Macro(verifica-eventos-dacs) ;;;INCLUIR
exten => s,n,Answer()
exten => s,n,Playback(customizados/pesquisa_audio_sauda_9)
exten => s,n,AGI(pbx_pesquisa_ura.php,ini,${IDORIGEM},2)
exten => s,n,Goto(psq-2-8,s,1)
exten => s,n,Hangup()
[macro-verifica-eventos-dacs] ;;;INCLUIR no extensions_padrao.conf
exten => s,1,ExecIf($["${ISNULL(${MATRICULA-DESTINO})}" = "1"]?MacroExit())
exten => s,n,Set(FIM_DIAL=$[${EPOCH}])
exten => s,n,Set(EVENTO=$[COMPLETEAGENTRAMAL])
exten => s,n,Set(INICIO_ATENDIMENTO=${DB(INICIO_ATENDIMENTO/${UNIQUEID})})
exten => s,n,Set(TEMPO_CHAMANDO=$[${INICIO_ATENDIMENTO} - ${INICIO_DIAL}])
exten => s,n,Set(DURACAO=$[${FIM_DIAL} - ${INICIO_ATENDIMENTO}])
exten => s,n,Noop(FILA-DESTINO = ${FILA-DESTINO})
exten => s,n,Noop(UNIQUEID = ${UNIQUEID})
exten => s,n,Noop(MATRICULA-DESTINO = ${MATRICULA-DESTINO})
exten => s,n,Noop(EVENTO = ${EVENTO})
exten => s,n,Noop(TEMPO_CHAMANDO = ${TEMPO_CHAMANDO})
exten => s,n,Noop(DURACAO = ${DURACAO})
exten => s,n,QueueLog(${FILA-DESTINO},${UNIQUEID},Agent/${MATRICULA-DESTINO},${EVENTO},${TEMPO_CHAMANDO},${DURACAO})
exten => s,n,Set(DB(CANAL/${MATRICULA-DESTINO}/${IDORIGEM})=DESLIGADO)
exten => s,n,System(${ATUALIZAR} LIVRE ${MATRICULA-DESTINO})
exten => s,n,AGI(agente_pausa.php,${MATRICULA-DESTINO})
exten => s,n,MacroExit()
[17:12, 26/05/2022] Alan Pablo: /hdaux/utilitarios/scripts/dial.sh 8285 6536168253 10 6000
UPDATE pbx_cliente SET client_user_contato = '{$matricula}' WHERE client_id IN (SELECT client_id FROM pbx_cliente WHERE clo_id = $cloid AND list_id IS NULL AND cmp_id IS NULL AND client_user_contato IS NULL and client_status <> '999' LIMIT $reg);";
EXEC dbo.sip_insert_prospect '','119','SN SHIGOTO SERVICES LTDA','','','F','43235786000139','SE','SP','SANTANA DE PARNAIBA','EM PROSPEC<EFBFBD><EFBFBD>O','35136', 'SERGIO DO NASCIMENTO', '1028'
<EFBFBD>
select a.dac,
a.ramal as ramal_monitor,
a.matricula,
a.nome,
a.monitorar as statusmonitorar,
a.intercalar as statusintercalar,
( (EXTRACT(EPOCH FROM (now() - a.duracao)) / 60)) as status_time,
a.disponivel_atendimento,
chamada_classificado,
(LOCALTIMESTAMP(0) - a.tempo_login) as tempo_logado,
a.modo_atendimento,
a.origem_destino as fone,
trim(status) as status_agente,
case when((a.status = 'PAUSA') and (coalesce(a.motivo_pausa, '') <> ''))then a.status || '-' || upper(a.motivo_pausa) else a.status end as status,
(LOCALTIMESTAMP(0) - a.duracao) as duracao,
protocolo as num_protocolo,
uniqueid2,
extract(epoch from (now() - logado))::int as tempo_atualiza,
trim(motivo_pausa) as pausa_motivo_rt,
trim(uniqueid) as uniqueid,
disponivel_atendimento,
chamada_classificado,
coalesce(canal_transfer, '') as canal_transfer,
media,
tipo_ligacao, cont_identificador, status_discador,
( SELECT count(*)
FROM ast_bilhetes x, ast_eventos_dacs y
where y.uid2 = x.uniqueid
and x.data_bilhete in(a.tempo_login::date, now()::date)
and y.fila = a.dac
and y.agente = ('Agent/' || a.matricula)
and y.evento in('COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG')
and x.lastapp <> 'Transferred Call' ) as originadas_pa,
( SELECT count(*)
FROM ast_bilhetes x, ast_eventos_dacs y, ast_bilhetes_complemento z
where y.uid2 = x.uniqueid
and x.uniqueid = z.uniqueid2
and z.direcao = 'fila-ramal'
and x.data_bilhete in(a.tempo_login::date, now()::date)
and y.fila = a.dac
and y.agente = ('Agent/' || a.matricula)
and y.evento in('COMPLETEAGENT','COMPLETECALLER', 'TRANSFER','COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL')
and x.lastapp <> 'Transferred Call' ) AS atendidas_pa,
( SELECT sum(
CASE WHEN ((y.evento = 'TRANSFER') or (y.evento = 'TRANSFERORIG')) THEN strtoint(y.param4)
ELSE strtoint(y.param2) END
)
FROM ast_bilhetes x, ast_eventos_dacs y
where y.uid2 = x.uniqueid
and x.data_bilhete in(a.tempo_login::date, now()::date)
and y.fila = a.dac
and y.agente = ('Agent/' || a.matricula)
and y.evento in('COMPLETEAGENT','COMPLETECALLER', 'TRANSFER','COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL', 'COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG')
and x.lastapp <> 'Transferred Call') AS tempo_atendimento
FROM pbx_supervisor_agentes a where 1=1 order by a.dac, a.nome
error_reporting(E_ALL);
ini_set('display_errors', 0);
http://repositorio.simplesip.com.br/
SELECT * FROM pbx_campanha_contato_status WHERE ctst_id NOT IN(
SELECT ctst_id FROM (SELECT CASE WHEN(COUNT(ctst_id) > 1) THEN ctst_id END AS ctst_id
FROM pbx_grupo_campanha_contato_status
GROUP BY ctst_id ORDER BY 1) AS DATA
WHERE ctst_id IS NOT NULL) AND ctst_id NOT IN (SELECT ctst_id FROM pbx_campanha_referencia_status)
INSERT INTO pbx_cliente (client_tipo_documento, client_documento, "
. "client_razao_social, client_nome_fantasia, client_endereco, "
. "client_municipio, client_uf, client_telefone, client_celular, "
. "client_email, client_nome_contato, clo_id, client_status)
"COPY portabilidade_temp FROM '$file' WITH DELIMITER AS ',' QUOTE '\"' CSV HEADER";
"INSERT INTO pbx_listanegra (nome,numero,entrada,saida,opcao,acao)
VALUES ('NAO PERTURBE','0','0','0','','')";
http://192.168.115.83:3000/LucasCM/simples-whatsapp.git
Boa Noite!
Conforme conversamos, precisamos revisar os seguintes itens:
1) Arquivo do Apache
2) Algar
2.1) Consolida Vendas
2.2) N<EFBFBD>o perturbe
2.3) Bloqueio Televendas
2.4) Pesquisa Algar
3) Revisar crontab
4) Apagar info.php
5) Apagar diret<EFBFBD>rios improdutivos (vou fornecer uma lista)
6) Criar perfil de instala<EFBFBD><EFBFBD>o para personaliza<EFBFBD><EFBFBD>o ex.: Algar
7) Desabilitar autovacuum
8) Transbordo no crontab tem que apontar para agi-bin
9) Remover portabilidade
Att;
CREATE OR REPLACE VIEW pbx_lista_arquivo_som AS
SELECT a.tipo, a.arq_som
FROM (
( SELECT 'ura'::text AS tipo, pbx_ura.som_ura AS arq_som FROM pbx_ura
UNION
SELECT 'anuncio'::text AS tipo, pbx_anuncios.musica AS arq_som FROM pbx_anuncios
)
UNION
SELECT 'conferencia'::text AS tipo, pbx_conferencia.anuncio AS arq_som FROM pbx_conferencia) a
WHERE btrim(a.arq_som::text) <> ''::text;
ALTER TABLE pbx_lista_arquivo_som
OWNER TO contacte;
ws://app.simplesip.com.br/wss
http://app.simplesip.com.br
select id, prm_sk_host_chat, prm_chat_api, prm_media_simultaneo, prm_chat_api_supervisor into pbx_parametros_bk from pbx_parametros where id = 1;
alter table pbx_parametros drop column prm_chat_api_supervisor;
alter table pbx_parametros add prm_chat_api_supervisor varchar(255);
alter table pbx_parametros drop column prm_sk_host_chat;
alter table pbx_parametros add prm_sk_host_chat varchar(255);
alter table pbx_parametros drop column prm_chat_api;
alter table pbx_parametros add prm_chat_api varchar(255);
update pbx_parametros set prm_chat_api_supervisor = (select prm_chat_api_supervisor from pbx_parametros_bk where id = 1);
update pbx_parametros set prm_chat_api = (select prm_chat_api from pbx_parametros_bk where id = 1);
update pbx_parametros set prm_sk_host_chat = (select prm_sk_host_chat from pbx_parametros_bk where id = 1);
drop table pbx_parametros_bk;
select id, prm_sk_host_chat, prm_chat_api, prm_media_simultaneo, prm_chat_api_supervisor from pbx_parametros where id = 1;