Skip to content

Fluxo de Sistema — Lorentz Server

1. Ciclo principal do servidor

O servidor executa um ciclo contínuo a cada segundo, processando todas as operações em sequência:

┌─────────────────────────────────────────────────┐
│             Ciclo do Servidor (1s)               │
│                                                  │
│  1. Aceitar novas conexões                       │
│     ├── Serviço (Supervisor web)                 │
│     ├── Agentes (aplicativo desktop)             │
│     ├── Agentes web (via banco de dados)         │
│     └── URA (IVR)                                │
│                                                  │
│  2. Processar comandos recebidos                 │
│     ├── Pacotes de agentes (desktop e web)       │
│     ├── Pacotes do monitor externo               │
│     └── Pacotes XML da URA                       │
│                                                  │
│  3. Processar centrais telefônicas               │
│     └── Eventos de cada central conectada        │
│                                                  │
│  4. Distribuir chamadas                          │
│     ├── Ordenar fila por ordem de chegada        │
│     ├── Avaliar fluxo de roteamento              │
│     └── Transferir para agente disponível        │
│                                                  │
│  5. Atualizar informações de fila                │
│     ├── Enviar status para supervisores          │
│     └── Enviar status para agentes               │
└─────────────────────────────────────────────────┘

2. Fluxo de uma chamada receptiva

Chamada chega        Central detecta       Servidor recebe
na linha ──────────► evento de ────────────► e identifica
telefônica           chamada entrante       o serviço

┌─────────────────┐
│ Chamada entra   │
│ na fila de      │
│ espera (QUEUED) │
└────────┬────────┘
┌─────────────────┐     Sim     ┌──────────────────┐
│ Há agente livre ├────────────►│ Transfere para   │
│ no grupo?       │             │ o agente (o mais  │
└────────┬────────┘             │ tempo livre)      │
         │ Não                  └──────────────────┘
┌─────────────────┐     Sim     ┌──────────────────┐
│ Tempo de        ├────────────►│ Avança para      │
│ transbordo      │             │ próxima etapa    │
│ expirou?        │             │ do fluxo         │
└────────┬────────┘             └──────────────────┘
         │ Não
    Permanece na
    fila aguardando

3. Fluxo de roteamento (distribuição inteligente)

O fluxo de roteamento é uma sequência de etapas configuradas no banco de dados. Cada etapa pode ser um destino ou uma condição:

  Início do fluxo
  ┌──────────────┐
  │  Etapa 1:    │     Agente     ┌───────────────┐
  │  Grupo A     ├───  livre? ───►│ Transferir    │
  │  (transbordo │     Sim        │ chamada       │
  │   30 seg.)   │                └───────────────┘
  └──────┬───────┘
         │ Não (após 30s)
  ┌──────────────┐
  │  Etapa 2:    │     Dentro do   ┌──────────────┐
  │  Horário     ├──── horário? ──►│ Ir para      │
  │  08:00-18:00 │     Sim         │ etapa 3      │
  └──────┬───────┘                 └──────────────┘
         │ Não
  ┌──────────────┐
  │  Etapa 4:    │
  │  Desligar    │
  │  chamada     │
  └──────────────┘

Tipos de etapas do fluxo

Tipo Comportamento
Grupo Procura agente livre no grupo. Se não encontrar, aguarda o tempo de transbordo
Agente Procura um agente específico. Se não estiver livre, aguarda transbordo
Ramal Tenta transferir para um ramal fixo. Se ocupado, aguarda transbordo
Grupo de ramais Distribui em rodízio circular entre ramais de um grupo
Horário Avalia se o horário atual atende à condição configurada (=, >, <, >=, <=, <>)
Período Avalia se o momento está dentro de um intervalo de datas/horas
Dia da semana Avalia se o dia da semana corresponde ao configurado
DDD Verifica se o DDD de origem corresponde ao valor configurado
Telefone Verifica se o número de origem corresponde ao valor configurado
Desligar Encerra a chamada
Ignorar Ignora a chamada (não processa)

Condição verdadeira/falsa

Etapas condicionais possuem dois caminhos:

  • Verdadeiro: segue para a etapa indicada em "Sequência Verdadeiro"
  • Falso: segue para a etapa indicada em "Sequência Falso"
  • Se qualquer caminho estiver em branco, o fluxo é encerrado

4. Fluxo de login do agente

Agente envia         Servidor valida        Servidor configura
login, senha, ─────► credenciais no ──────► permissões:
grupo, ramal         banco de dados         - Ativo (fazer chamadas)
                                            - Receptivo
                                            - Receptivo prioritário

┌─────────────────┐
│ Registra estado │
│ de login no     │
│ banco de dados  │
└────────┬────────┘
┌─────────────────┐
│ Envia resposta  │
│ com:            │
│ - DDD local     │
│ - Operadora     │
│ - Caminho de    │
│   gravação      │
│ - Permissões    │
│ - Versão server │
└─────────────────┘

5. Fluxo de pausa

         ┌──── Pausa eventual ────┐
         │ (intervalo pessoal)    │
         │                        │
Agente ──┤                        ├── Servidor verifica se
disponí- │                        │   o número máximo de
vel      │                        │   agentes em pausa
         │                        │   do grupo foi atingido
         ├──── Pausa produtiva ───┤
         │ (treinamento, etc.)    │
         │ + Motivo da pausa      │
         └────────────────────────┘
         Agente é removido
         da distribuição
         automática de chamadas

6. Fluxo de integração com URA

┌───────────┐         ┌──────────────┐         ┌───────────────┐
│   URA     │  XML    │   Lorentz    │ Screen  │   Agente      │
│  (IVR)    ├────────►│   Server     ├────────►│   (tela do    │
│           │         │              │  Pop    │   operador)   │
└───────────┘         └──────────────┘         └───────────────┘

Ações possíveis:

1. SCREEN POP: URA envia dados (CPF, opção de menu, etc.)
   → Servidor associa ao callId da chamada
   → Quando chamada é atendida, dados aparecem na tela do agente

2. PESQUISA: URA consulta código de chamada por ramal
   → Servidor retorna o código se existir chamada ativa

3. RESPOSTA: URA informa resultado da navegação
   → Servidor grava no registro da chamada

7. Fluxo de monitoramento em tempo real

┌───────────────────────────────────────────────────┐
│                Lorentz Server                      │
│                                                    │
│  A cada mudança de estado de agente/ramal:         │
│                                                    │
│  ┌─────────────┐    ┌──────────────┐               │
│  │ Envia para  │    │ Envia para   │               │
│  │ Supervisores│    │ Monitor CTI  │               │
│  │ (TCP)       │    │ (UDP)        │               │
│  └──────┬──────┘    └──────┬───────┘               │
└─────────┼──────────────────┼───────────────────────┘
          │                  │
          ▼                  ▼
  ┌───────────────┐  ┌───────────────┐
  │  Painel do    │  │  Monitor CTI  │
  │  Supervisor   │  │  (externo)    │
  │  (web)        │  │               │
  └───────────────┘  └───────────────┘

Dados enviados por agente:
- Usuário e grupo
- Ramal
- Estado do agente (livre, pausa, etc.)
- Estado do ramal (livre, ocupado, etc.)
- Horários (login, estado atual, ramal)
- Contadores (chamadas, pausas)
- Tempos acumulados em cada estado
- Telefone do interlocutor
- Serviço em atendimento

8. Fluxo de agente web (sem aplicativo desktop)

Agentes web se comunicam com o servidor através do banco de dados (tabela de situação CTI), sem necessidade de conexão TCP direta:

┌───────────┐     Grava comando    ┌──────────────┐
│  Agente   ├────────────────────►│  Tabela de   │
│  (web)    │     na tabela        │  Situação    │
└───────────┘                      │  CTI         │
                                   └──────┬───────┘
                    Servidor lê a cada 1s │
                                   ┌──────────────┐
                                   │   Lorentz    │
                                   │   Server     │
                                   └──────┬───────┘
                    Grava resposta        │
                    na tabela             ▼
                                   ┌──────────────┐
┌───────────┐     Lê resposta     │  Tabela de   │
│  Agente   │◄────────────────────┤  Situação    │
│  (web)    │                      │  CTI         │
└───────────┘                      └──────────────┘

Última atualização: Junho 2025