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.
 
 
 
 
 
 

704 lines
19 KiB

CREATE OR REPLACE VIEW public.pbx_dacs AS
SELECT pbx_queues_grupos.id,
pbx_queues_grupos.nome,
pbx_queues_grupos.numero,
pbx_queues_grupos.status,
pbx_queues_grupos.org_id,
pbx_queues_grupos.nome_asterisk
FROM pbx_queues_grupos;
CREATE OR REPLACE VIEW public.pabx_agentes_eventos AS
SELECT a.id AS agtevt_id,
a.id_dac AS fila_id,
a.matricula AS agt_matricula,
a.ramal AS ramal_numero,
a.entrada_pausa AS agtevt_entrada_pausa,
a.saida_pausa AS agtevt_saida_pausa,
a.id_motivo_pausa AS pausa_id,
a.login AS agtevt_hora_login,
a.logoff AS agtevt_hora_logoff,
a.org_id
FROM pbx_eventos_agentes a;
drop view if exists pabx_bilhetes;
CREATE OR REPLACE VIEW public.pabx_bilhetes AS
SELECT a.id_bilhetes AS blt_id,
a.calldate AS blt_data_hora,
a.src AS blt_origem,
a.dst AS blt_destino,
a.billsec AS blt_tempo_conversacao,
a.duration AS blt_tempo_atendimento,
a.accountcode AS blt_id_transfer,
a.uniqueid AS blt_id_chamada,
a.userfield AS blt_nome_audio,
a.data_bilhete AS blt_data,
a.org_id
FROM pbx_bilhetes a
WHERE a.lastapp::text <> 'Transferred Call'::text ;
DROP VIEW IF EXISTS pabx_bilhetes_complemento;
CREATE OR REPLACE VIEW public.pabx_bilhetes_complemento
AS SELECT pbx_bilhetes_complemento.id AS blc_id,
pbx_bilhetes_complemento.uniqueid2 AS blt_id_chamada,
pbx_bilhetes_complemento.direcao AS blc_direcao,
pbx_bilhetes_complemento.destino AS blc_destino,
pbx_bilhetes_complemento.data_registro AS data_hora
,org_id FROM pbx_bilhetes_complemento;
DROP VIEW IF EXISTS pabx_classificacao;
CREATE OR REPLACE VIEW public.pabx_classificacao
AS SELECT pbx_classifica_atendimento.clas_id,
pbx_classifica_atendimento.clas_descricao
,org_id FROM pbx_classifica_atendimento;
DROP VIEW IF EXISTS pabx_filas;
CREATE OR REPLACE VIEW public.pabx_filas
AS SELECT pbx_dacs.id AS fila_id,
pbx_dacs.nome AS fila_nome
,org_id FROM pbx_dacs
WHERE pbx_dacs.status = 'A'::bpchar ;
DROP VIEW IF EXISTS pabx_item_classificacao;
CREATE OR REPLACE VIEW public.pabx_item_classificacao
AS SELECT pbx_classifica_item.clit_id,
pbx_classifica_item.clas_id,
pbx_classifica_item.clit_descricao
,org_id FROM pbx_classifica_item;
DROP VIEW IF EXISTS pabx_pausas;
CREATE OR REPLACE VIEW public.pabx_pausas
AS SELECT pbx_motivos_pausas.id AS pausa_id,
pbx_motivos_pausas.motivo AS pausa_nome,
pbx_motivos_pausas.produtiva AS pausa_produtiva
,org_id FROM pbx_motivos_pausas;
DROP VIEW IF EXISTS pabx_pesquisa;
CREATE OR REPLACE VIEW public.pabx_pesquisa
AS SELECT pbx_pesquisa.pp_id,
pbx_pesquisa.pp_nome,
pbx_pesquisa.pp_data_inicio,
pbx_pesquisa.pp_data_fim,
pbx_pesquisa.pp_audio_saudacao,
pbx_pesquisa.pp_audio_encerramento,
pbx_pesquisa.pp_status,
pbx_pesquisa.pp_data
,org_id FROM pbx_pesquisa;
DROP VIEW IF EXISTS pabx_pesquisa_liberacao;
CREATE OR REPLACE VIEW public.pabx_pesquisa_liberacao
AS SELECT pbx_pesquisa_liberacao.pl_id,
pbx_pesquisa_liberacao.pp_id,
pbx_pesquisa_liberacao.pl_descricao,
pbx_pesquisa_liberacao.pl_data_inicio,
pbx_pesquisa_liberacao.pl_data_fim,
pbx_pesquisa_liberacao.pl_ativa,
pbx_pesquisa_liberacao.pl_data
,org_id FROM pbx_pesquisa_liberacao;
DROP VIEW IF EXISTS pabx_pesquisa_movimento;
CREATE OR REPLACE VIEW public.pabx_pesquisa_movimento
AS SELECT pbx_pesquisa_movimento.pm_id,
pbx_pesquisa_movimento.pl_id,
pbx_pesquisa_movimento.pp_id,
pbx_pesquisa_movimento.pq_id,
pbx_pesquisa_movimento.po_id,
pbx_pesquisa_movimento.uniqueid AS blt_id_chamada,
pbx_pesquisa_movimento.pm_data,
pbx_pesquisa_movimento.id_dac AS fila_id
,org_id FROM pbx_pesquisa_movimento;
DROP VIEW IF EXISTS pabx_pesquisa_opcoes;
CREATE OR REPLACE VIEW public.pabx_pesquisa_opcoes
AS SELECT pbx_pesquisa_opcoes.pp_id,
pbx_pesquisa_opcoes.pq_id,
pbx_pesquisa_opcoes.po_id,
pbx_pesquisa_opcoes.po_display,
pbx_pesquisa_opcoes.po_opcao,
pbx_pesquisa_opcoes.po_status
,org_id FROM pbx_pesquisa_opcoes;
DROP VIEW IF EXISTS pabx_pesquisa_questoes;
CREATE OR REPLACE VIEW public.pabx_pesquisa_questoes
AS SELECT pbx_pesquisa_questoes.pp_id,
pbx_pesquisa_questoes.pq_id,
pbx_pesquisa_questoes.pq_display,
pbx_pesquisa_questoes.pq_questao,
pbx_pesquisa_questoes.pq_audio,
pbx_pesquisa_questoes.pq_status
,org_id FROM pbx_pesquisa_questoes;
DROP VIEW IF EXISTS pabx_ramais;
CREATE OR REPLACE VIEW public.pabx_ramais
AS SELECT pbx_sip_ramais.nome AS ramal_numero,
pbx_sip_ramais.port AS ramal_porta,
pbx_sip_ramais.callerid AS ramal_bina
,org_id,
registro
FROM pbx_sip_ramais;
DROP VIEW IF EXISTS pabx_registra_classificacao;
CREATE OR REPLACE VIEW public.pabx_registra_classificacao
AS SELECT a.matricula AS agt_matricula,
a.clas_id,
a.clit_id,
a.id_bilhetes AS blt_id_chamada,
a.data_reg AS rcl_data_hora,
a.id_dac AS fila_id
,org_id FROM pbx_classifica_reg a;
DROP VIEW IF EXISTS pbx_dacs_api;
CREATE OR REPLACE VIEW public.pbx_dacs_api
AS SELECT pbx_queues_grupos.id,
pbx_queues_grupos.nome,
pbx_queues_grupos.numero,
pbx_queues_grupos.status
,org_id FROM pbx_queues_grupos;
DROP VIEW IF exists pbx_lista_arquivo_som;
CREATE OR REPLACE VIEW pbx_lista_arquivo_som AS
SELECT a.tipo,
a.arq_som,
org_id
FROM ( SELECT 'ura'::text AS tipo,
pbx_ura.som_ura AS arq_som,
org_id
FROM pbx_ura
UNION
SELECT 'anuncio'::text AS tipo,
pbx_anuncios.musica AS arq_som,
org_id
FROM pbx_anuncios
UNION
SELECT 'conferencia'::text AS tipo,
pbx_conferencia.anuncio AS arq_som,
org_id
FROM pbx_conferencia) a
WHERE btrim(a.arq_som::text) <> ' '::text ;
DROP VIEW IF EXISTS pbx_nao_classificado;
CREATE OR REPLACE VIEW public.pbx_nao_classificado
AS
SELECT
a.id_bilhetes,
a.data_bilhete,
a.calldate,
rtrim(a.src::text) AS origem,
rtrim(a.dst::text) AS destino,
rtrim(a.uniqueid::text) AS uniqueid,
a.duration,
a.billsec,
rtrim(a.userfield::text) AS audio,
c.id AS fila_id,
rtrim(b.fila::text) AS fila,
"substring"(b.agente::text, 7, 4) AS agente,
d.apelido AS nome_agente,
rtrim(b.evento::text) AS evento,
rtrim(b.param1::text) AS espera,
rtrim(b.param2::text) AS tempo_atendimento
,a.org_id FROM
pbx_bilhetes a
JOIN
pbx_eventos_dacs b ON b.uid2::text = a.uniqueid::text and a.org_id = b.org_id
JOIN
pbx_dacs c ON c.nome::text = b.fila::text AND c.org_id = a.org_id
JOIN
pbx_usuarios d ON d.matricula::text = "substring"(b.agente::text, 7, 4)
JOIN
pbx_organizacao_usuarios e on e.id_usuario = d.id and e.id_organizacao = a.org_id
WHERE
a.lastapp::text <> 'Transferred Call'::text
AND (b.evento::text = ANY (ARRAY['COMPLETEAGENT'::character varying::text, 'COMPLETECALLER'::character varying::text, 'COMPLETAAGENT'::character varying::text, 'COMPLETACALLER'::character varying::text, 'TRANSFER'::character varying::text, 'TRANSFERORIG'::character varying::text]))
AND NOT (EXISTS (SELECT ' '::text ,org_id FROM pbx_classifica_reg WHERE pbx_classifica_reg.id_bilhetes::text = a.uniqueid::text)) ;
DROP VIEW IF EXISTS pbx_opcao_acao;
CREATE OR REPLACE VIEW public.pbx_opcao_acao
AS SELECT 'ramal'::text AS opcao,
r.nome::text AS id,
r.nome AS descricao
,r.org_id FROM pbx_sip_ramais r
WHERE r.nome::text <> '0'::text
UNION all
SELECT 'ura'::text AS opcao,
u.id::text AS id,
u.nome AS descricao
,u.org_id FROM pbx_ura u
UNION all
SELECT 'voice'::text AS opcao,
v.caixa_postal::text AS id,
v.caixa_postal AS descricao
,v.org_id FROM pbx_voicemail_usuarios v
UNION all
SELECT 'grupo'::text AS opcao,
g.numero::text AS id,
g.descricao
,g.org_id FROM pbx_grupos g
UNION all
SELECT 'filas'::text AS opcao,
qg.numero::text AS id,
qg.nome AS descricao
,qg.org_id FROM pbx_queues_grupos qg
WHERE qg.status = 'A'::bpchar
UNION all
SELECT 'horarios'::text AS opcao,
a.id::text AS id,
a.nome AS descricao
,a.org_id FROM pbx_horarios a,
pbx_horarios_itens b
WHERE b.id_horario = a.id
UNION all
SELECT 'disa'::text AS opcao,
d.numero::text AS id,
d.numero AS descricao
,d.org_id FROM pbx_disa d
UNION all
SELECT 'anuncios'::text AS opcao,
an.id::text AS id,
an.nome AS descricao
,an.org_id FROM pbx_anuncios an
UNION all
SELECT 'conferencia'::text AS opcao,
conf.numero::text AS id,
conf.numero AS descricao
,org_id FROM pbx_conferencia conf
UNION all
SELECT 'callback'::text AS opcao,
callb.id::text AS id,
callb.descricao
,org_id FROM pbx_callback callb
UNION all
SELECT 'rotaInterna'::text AS opcao,
rs.id::text AS id,
rs.nome AS descricao
,org_id FROM pbx_rotas_saida rs
WHERE upper(rs.tipo::text) = 'I'::text
UNION all
SELECT 'departamento'::text AS opcao,
a.id::text AS id,
(b.nome::text || '/'::text) || a.nome_depto::text AS descricao
,a.org_id FROM pbx_departamentos a,
pbx_empresa b
WHERE b.id = a.empresa
UNION all
SELECT 'integativa'::text AS opcao,
b.itgm_id::text AS id,
(a.itgc_nome::text || '-'::text) || b.itgm_nome::text AS descricao
,a.org_id FROM pbx_integracao_configuracao a,
pbx_integracao_metodo b
WHERE b.itgc_id = a.itgc_id AND b.itgm_retorno = 1
ORDER BY 3;
DROP VIEW IF EXISTS pbx_opcoes;
CREATE OR REPLACE VIEW public.pbx_opcoes
AS ( SELECT 'ramal'::character varying(100) AS value,
'Ramal'::character varying(100) AS name
,org_id FROM pbx_sip_ramais
LIMIT 1)
UNION ALL
( SELECT 'filas'::character varying(100) AS value,
'Fila'::character varying(100) AS name
,org_id FROM pbx_queues_grupos
WHERE pbx_queues_grupos.status = 'A'::bpchar
LIMIT 1)
UNION ALL
( SELECT 'ura'::character varying(100) AS value,
'URA'::character varying(100) AS name
,org_id FROM pbx_ura
LIMIT 1)
UNION ALL
( SELECT 'voice'::character varying(100) AS value,
'VoiceMail'::character varying(100) AS name
,org_id FROM pbx_voicemail_usuarios
LIMIT 1)
UNION ALL
( SELECT 'grupo'::character varying(100) AS value,
'Grupo'::character varying(100) AS name
,org_id FROM pbx_grupo
LIMIT 1)
UNION ALL
( SELECT 'disa'::character varying(100) AS value,
'Disa'::character varying(100) AS name
,org_id FROM pbx_disa
LIMIT 1)
UNION ALL
( SELECT 'horarios'::character varying(100) AS value,
'Hor<EFBFBD>rios'::character varying(100) AS name
,org_id FROM pbx_horarios
LIMIT 1)
UNION ALL
( SELECT 'anuncios'::character varying(100) AS value,
'An<EFBFBD>ncios'::character varying(100) AS name
,org_id FROM pbx_anuncios
LIMIT 1)
UNION ALL
( SELECT 'conferencia'::character varying(100) AS value,
'Confer<EFBFBD>ncias'::character varying(100) AS name
,org_id FROM pbx_conferencia
LIMIT 1)
UNION ALL
( SELECT 'callback'::character varying(100) AS value,
'CallBack'::character varying(100) AS name
,org_id FROM pbx_callback
LIMIT 1)
UNION ALL
( SELECT 'rotaInterna'::character varying(100) AS value,
'Rotas Internas'::character varying(100) AS name
,org_id FROM pbx_rotas_saida
WHERE pbx_rotas_saida.tipo::text = 'I'::text
LIMIT 1)
UNION ALL
( SELECT 'repetir'::character varying(100) AS value,
'Repetir'::character varying(100) AS name
,org_id FROM pbx_rotas_saida
LIMIT 1)
UNION ALL
( SELECT 'desligar'::character varying(100) AS value,
'Desligar'::character varying(100) AS name
,org_id FROM pbx_rotas_saida
LIMIT 1)
UNION ALL
( SELECT 'integativa'::character varying(100) AS value,
'Integra<EFBFBD><EFBFBD>o Ativa'::character varying(100) AS name
,a.org_id FROM pbx_integracao_configuracao a,
pbx_integracao_metodo b
WHERE b.itgc_id = a.itgc_id
LIMIT 1);
DROP VIEW IF EXISTS pbx_prepago;
CREATE OR REPLACE VIEW public.pbx_prepago
AS SELECT 0 AS tipo,
'sip'::text AS desc_tipo,
pbx_sip_ramais.nome::text AS id,
'pbx_sip_ramais'::text AS tabela,
'nome'::text AS coluna,
pbx_sip_ramais.habilita_prepago,
pbx_sip_ramais.saldo_prepago
,org_id FROM pbx_sip_ramais
UNION ALL
SELECT 0 AS tipo,
'iax'::text AS desc_tipo,
pbx_iax_pbx.nome::text AS id,
'pbx_iax_pbx'::text AS tabela,
'nome'::text AS coluna,
pbx_iax_pbx.habilita_prepago,
pbx_iax_pbx.saldo_prepago
,org_id FROM pbx_iax_pbx
UNION ALL
SELECT 0 AS tipo,
'dgv'::text AS desc_tipo,
pbx_dgv.numero::text AS id,
'pbx_dgv'::text AS tabela,
'numero'::text AS coluna,
pbx_dgv.habilita_prepago,
pbx_dgv.saldo_prepago
,org_id FROM pbx_dgv
UNION ALL
SELECT 1 AS tipo,
'conta'::text AS desc_tipo,
pbx_cs_usuarios.matricula::text AS id,
'pbx_cs_usuarios'::text AS tabela,
'matricula'::text AS coluna,
pbx_cs_usuarios.habilita_prepago,
pbx_cs_usuarios.saldo_prepago
,org_id FROM pbx_cs_usuarios
WHERE pbx_cs_usuarios.status = 'A'::bpchar ;
DROP VIEW IF EXISTS pbx_queues_grupos_mesa;
CREATE OR REPLACE VIEW public.pbx_queues_grupos_mesa
AS SELECT pbx_queues_grupos.id,
pbx_queues_grupos.nome
,org_id FROM pbx_queues_grupos
WHERE pbx_queues_grupos.status = 'A'::bpchar
ORDER BY pbx_queues_grupos.nome;
DROP VIEW IF EXISTS pbx_ramais;
CREATE OR REPLACE VIEW pbx_ramais AS
SELECT a.id,
'SIP'::character varying(16) AS tipo_ramal,
a.nome,
a.dispositivo,
a.context AS contexto,
a.habilita_prepago,
a.saldo_prepago,
a.ramalsecretaria,
a.sigame_interno,
a.sigame_externo,
a.sigame_naoatende,
a.sigame_ocupado,
a.extranet,
a.org_id,
a.registro
FROM pbx_sip_ramais a
UNION ALL
SELECT b.id,
'IAX2'::character varying(16) AS tipo_ramal,
b.nome,
b.dispositivo,
b.context AS contexto,
b.habilita_prepago,
b.saldo_prepago,
b.ramalsecretaria,
b.sigame_interno,
b.sigame_externo,
b.sigame_naoatende,
b.sigame_ocupado,
''::character varying(256) AS extranet,
b.org_id,
b.registro
FROM pbx_iax_pbx b
UNION ALL
SELECT c.id,
'PBX'::text AS tipo_ramal,
c.numero AS nome,
(c.dispositivo::text || '/'::text) || c.numero::text AS dispositivo,
c.contexto,
c.habilita_prepago,
c.saldo_prepago,
c.ramalsecretaria,
c.sigame_interno,
c.sigame_externo,
c.sigame_naoatende,
c.sigame_ocupado,
''::character varying(256) AS extranet,
c.org_id,
c.registro
FROM pbx_ramais_pbx c
ORDER BY 1;
DROP VIEW IF EXISTS pbx_ramais_mesa;
CREATE OR REPLACE VIEW pbx_ramais_mesa AS
SELECT 0 AS tipo,
pbx_sip_ramais.id,
pbx_sip_ramais.nome,
pbx_sip_ramais.dispositivo,
pbx_sip_ramais.callerid,
pbx_sip_ramais.registro,
'SIP'::text AS tipo_table,
pbx_sip_ramais.conta_senha,
' '::character varying AS ddd,
pbx_sip_ramais.context AS contexto,
pbx_sip_ramais.org_id as org_id
FROM pbx_sip_ramais
UNION ALL
SELECT 1 AS tipo,
0 AS id,
pbx_ramais_agenda.rma_telefone AS nome,
pbx_ramais_agenda.rma_telefone AS dispositivo,
pbx_ramais_agenda.rma_nome AS callerid,
pbx_ramais_agenda.rma_registro as registro,
'AGD'::text AS tipo_table,
'F'::character varying AS conta_senha,
pbx_ramais_agenda.ddd,
' '::character varying AS contexto,
pbx_ramais_agenda.org_id AS org_id
FROM pbx_ramais_agenda
UNION ALL
SELECT 0 AS tipo,
pbx_iax_pbx.id,
pbx_iax_pbx.nome,
pbx_iax_pbx.dispositivo,
pbx_iax_pbx.nome AS callerid,
pbx_iax_pbx.registro,
'IAX'::text AS tipo_table,
pbx_iax_pbx.conta_senha,
' '::character varying AS ddd,
pbx_iax_pbx.context AS contexto,
pbx_iax_pbx.org_id AS org_id
FROM pbx_iax_pbx
ORDER BY 5;
DROP VIEW IF EXISTS pbx_rotas;
CREATE OR REPLACE VIEW public.pbx_rotas
AS SELECT 'S'::text AS tipo,
pbx_rotas_saida.id,
pbx_rotas_saida.nome
,org_id FROM pbx_rotas_saida
UNION all
SELECT 'E'::text AS tipo,
pbx_rotas_entrada.id,
pbx_rotas_entrada.nome
,org_id FROM pbx_rotas_entrada
ORDER BY 3;
DROP VIEW IF exists pbx_troncos;
CREATE OR REPLACE VIEW pbx_troncos AS
SELECT 'SIP'::text AS tipo,
pbx_troncos_sip.id,
pbx_troncos_sip.nome,
pbx_troncos_sip.max_ligacoes,
pbx_troncos_sip.nome AS username,
pbx_troncos_sip.contrato,
pbx_troncos_sip.callerid,
pbx_troncos_sip.context,
pbx_troncos_sip.callerid AS callerid_tronco,
pbx_troncos_sip.portabilidade,
pbx_troncos_sip.org_id,
pbx_troncos_sip.context_asterisk,
pbx_troncos_sip.nome_asterisk
FROM pbx_troncos_sip
UNION ALL
SELECT 'IAX2'::text AS tipo,
pbx_troncos_iax.id,
pbx_troncos_iax.nome,
pbx_troncos_iax.max_ligacoes,
pbx_troncos_iax.nome AS username,
pbx_troncos_iax.contrato,
pbx_troncos_iax.callerid,
pbx_troncos_iax.context,
pbx_troncos_iax.callerid AS callerid_tronco,
pbx_troncos_iax.portabilidade,
pbx_troncos_iax.org_id,
pbx_troncos_iax.context_asterisk,
pbx_troncos_iax.nome_asterisk
FROM pbx_troncos_iax
UNION ALL
SELECT 'KHOMP'::text AS tipo,
pbx_troncos_khomp.id,
pbx_troncos_khomp.descricao AS nome,
pbx_troncos_khomp.max_ligacoes,
pbx_troncos_khomp.grupo AS username,
pbx_troncos_khomp.contrato,
pbx_troncos_khomp.callerid,
pbx_troncos_khomp.contexto AS context,
pbx_troncos_khomp.callerid AS callerid_tronco,
pbx_troncos_khomp.portabilidade,
pbx_troncos_khomp.org_id,
pbx_troncos_khomp.contexto_asterisk as context_asterisk,
pbx_troncos_khomp.descricao_asterisk as nome_asterisk
FROM pbx_troncos_khomp
ORDER BY 1;
DROP VIEW IF EXISTS pbx_usuarios_cs;
CREATE OR REPLACE VIEW public.pbx_usuarios_cs
AS SELECT pbx_cs_usuarios.id,
pbx_cs_usuarios.nome,
pbx_cs_usuarios.apelido,
pbx_cs_usuarios.empresa,
pbx_cs_usuarios.departamento,
pbx_cs_usuarios.matricula
,org_id FROM pbx_cs_usuarios
WHERE pbx_cs_usuarios.status = 'A'::bpchar ;
DROP VIEW IF EXISTS pbx_usuarios_dacs;
CREATE OR REPLACE VIEW public.pbx_usuarios_dacs AS
SELECT
a.user_id AS id_usuario,
c.apelido,
c.nome,
a.gp_id,
d.gp_nome,
b.id AS id_dac,
e.nome AS nome_dac
,a.org_id FROM
pbx_grupo_usuario a
JOIN
pbx_fila_grupos b ON b.gp_id = a.gp_id
JOIN
pbx_usuarios c ON c.id = a.user_id
JOIN
pbx_grupo d ON d.gp_id = a.gp_id
JOIN
pbx_dacs e ON e.id = b.id
JOIN
pbx_organizacao_usuarios f on f.id_usuario = c.id and f.id_organizacao = a.org_id
AND b.org_id = a.org_id
AND d.org_id = a.org_id
AND e.org_id = a.org_id;