Eventos de Identificação

Quando uma tentativa de identificação ocorre, os eventos descritos abaixo são enviados automaticamente pelo equipamento se o mesmo estiver operando no modo enterprise. Cabe ao servidor tratar esses eventos.

Evento imagem biométrica

Tentativa de identificação por biometria. Esse evento é enviado apenas se a configuração extract_template estiver desativada. O método HTTP usado é o POST. O contentType é application/octet-stream. Todos os parâmetros são enviados através da query string, exceto o binário da imagem.

POST /new_biometric_image.fcgi

Parâmetros

  • device_id (int 64) : ID único do equipamento.
  • identifier_id (int) : ID do identificador (wiegand, RFID, biometria), vide Formatação identifier_id.
  • width (int) : Largura, em pixels, da imagem enviada.
  • height (int) : Altura, em pixels, da imagem enviada.
  • imagem (binário (octet-stream)) : Imagem da digital em formato binário. É enviado 1 byte por pixel, em escala de cinza (Este é o único parâmetro enviado no corpo da mensagem).

Resposta

Evento template biométrica

Tentativa de identificação por biometria. Esse evento é enviado apenas se a configuração extract_template estiver ativada. O método HTTP usado é o POST. O contentType é application/octet-stream. Todos os parâmetros são enviados através da query string, exceto o binário do template.

POST /new_biometric_template.fcgi

Parâmetros

  • device_id (int 64) : ID único do equipamento.
  • identifier_id (int) : ID do identificador (wiegand, RFID, biometria), vide Formatação identifier_id.
  • Template (binário (octet-stream)) : Template biométrico no formato Innovatrics (Este é o único parâmetro enviado no corpo da mensagem).

Resposta

Evento cartão de proximidade

Tentativa de identificação por cartão de proximidade. O método HTTP usado é o POST. O contentType é application/x-www-form-urlencoded. Todos os parâmetros são enviados através da query string.

POST /new_card.fcgi

Parâmetros

  • device_id (int 64) : ID único do equipamento.
  • identifier_id (int) : ID do identificador (wiegand, RFID, biometria), vide Formatação identifier_id.
  • card_value (int 64) : Número do cartão.
  • block_read_error (int 64) : Quando diferente de 0, indica que um erro de leitura do bloco ocorreu. Só será preenchido quando mifare->read_block for não vazio.
  • block_read_data (string) : Dados lidos do bloco em hexadecimal (Não é possível incluir base64 em uma URL sem escapar alguns caracteres). Só será preenchido quando mifare->read_block for não vazio.

Resposta

Evento id e senha

Tentativa de identificação por id e senha. O método HTTP usado é o POST. O contentType é application/x-www-form-urlencoded. Todos os parâmetros são enviados através da query string.

POST /new_user_id_and_password.fcgi

Parâmetros

  • device_id (int 64) : ID único do equipamento.
  • identifier_id (int) : ID do identificador (wiegand, RFID, biometria), vide Formatação identifier_id.
  • user_id (int) : ID informado pelo usuário.
  • password (string) : Senha informada pelo usuário.

Resposta

Evento usuário identificado

Este evento é enviado apenas se a configuração local_identification estiver ativada.

Nesse modo, quando o usuário se identifica no equipamento, este realiza a identificação de forma local, enviando o ID do usuário ao servidor. O servidor processa as regras de acesso e diz se deve abrir a porta ou não. Repare que nesse método o servidor tem que sempre atualizar os usuários e biometrias dos equipamentos, tendo a limitação de templates dos equipamentos.

O método HTTP usado é o POST. O contentType é application/x-www-form-urlencoded. Todos os parâmetros são enviados através da query string.

POST /new_user_identified.fcgi

Parâmetros

  • device_id (int 64) : ID único do equipamento.
  • identifier_id (int) : ID do identificador (wiegand, RFID, biometria), vide Formatação identifier_id.
  • event (int) : Evento do resultado da identificação, (e.g.: 3 para não identificado).
  • user_id (int) : ID do usuário.
  • duress (int) : Esse parâmetro retorna um inteiro que indica se é dedo do pânico ou uma simples identificação (1 ser for dedo de pânico ou 0 para identificação comum).

Resposta

Formatação identifier_id

O campo identifier_id contido nas mensagens de evento de identificação enviadas pelo terminal de acesso, indica o id do identificador (wiegand, RFID, biometria, etc), e deverá ser interpretado da seguinte forma:

O tipo do dado é inteiro de 32 bits, mas os três bytes mais significativos devem ser interpretados como caracteres ASCII, e o último byte como valor inteiro binário.

Exemplo:

  • "w" = 0x77 (ASCII)
  • "i" = 0x69 (ASCII)
  • "n" = 0x6E (ASCII)
  • "0" = 0x00 (Binário)

"win0" indica wiegand zero, portanto, convertendo para o formato acima ficaria 0x77696E00 em hexadecimal, que em decimal é 2003398144.

Solicitar imagem de usuário ao servidor

O equipamento irá solicitar a foto do usuário para o servidor sempre que na resposta dos eventos de identificação o parâmetro user_image for true (indicando que o usuário possui foto). O método HTTP usado é o GET. O contentType é application/octet-stream. Todos os parâmetros são enviados através da query string.

GET /user_get_image.fcgi

Parâmetros

  • user_id (int) : ID do usuário.

Resposta

  • imagem (octet-stream) : Foto do usuário requisitado nos formatos BMP, JPG/JPG ou PNG;

Verifica disponibilidade do servidor

Se o equipamento não tiver êxito em se comunicar com o servidor nas três (configurável) tentativas que realizar, o equipamento entrará em modo de continência.

Neste modo todas as identificações são feitas no banco local do equipamento, que deve ser previamente configurado, além disso a cada minuto o equipamento envia o comando {ip}/device_is_alive.fcgi?device_id={valor} ao servidor com o número de logs disponíveis no corpo da mensagem (JSON). Assim que obter uma resposta (HTTP status code OK), ele volta ao modo enterprise. O método HTTP usado é o POST. O contentType é application/json.

POST /device_is_alive.fcgi

Parâmetros

  • Esta chamada não possui parâmetros.

Resposta

  • access_logs (int) : Número de logs disponíveis.

Mensagem de Retorno

Mensagem de retorno do servidor para o equipamentos após um evento de tentativa de identificação.

result

Resultado da análise da tentativa de identificação.

Campo Tipo Descrição
event int Tipo do evento, pode ser:
  1. Equipamento inválido
  2. Parâmetros de regra de identificação inválidos
  3. Não identificado
  4. Identificação pendente
  5. Timeout na identificação
  6. Acesso negado
  7. Acesso autorizado
  8. Acesso pendente(usado quando o acesso depende de mais de uma pessoa)
  9. Usuário não é administrador (usado quando um usuário tenta acessar o menu mas não é administrador)
  10. Acesso não identificado (quando o portal é aberto através da API e o motivo não é informado)
  11. Acesso através de botoeira
  12. Acesso através da interface WEB
  13. Desistência de entrada (somente utilizado pela catraca)
user_id int ID do usuário, em caso de identificação.
user_name string Nome do usuário, em caso de identificação.
user_image bool Usuário identificado possui ou não foto.
user_image_hash string Caso o usuário identificado possua imagem, envia o hash (SHA1) da mesma. O equipamento usa esse valor para saber se ele possui a imagem em cache ou se precisa pedir a imagem ao servidor.
portal_id string ID do portal correspondente.
actions Array de Objetos JSON Ações que devem ser executas pelo equipamento. Exemplo: [ {"action":"door", "parameters":"door=1"}, {"action":"door", "parameters":"door=2"} ]
message string Mensagem a ser exibida no display no momento do acesso.

Exemplos de respostas

Resposta para os dispositivos iDAccess, iDFit e iDBox

Autoriza um acesso:

{"result":
    {"event":7,
    "user_id":6,
    "user_name":"Neal Caffrey",
    "user_image":false,
    "portal_id":1,
    "actions":[ {"action":"door", "parameters":"door=1"},
                {"action":"door", "parameters":"door=2"} ]
    }
}

Resposta para os dispositivos iDFlex, iDAccess Pro e iDAccess Nano

Autoriza um acesso:

{"result":
    {"event":7,
    "user_id":6,
    "user_name":"Neal Caffrey",
    "user_image":false,
    "portal_id":1,
    "actions":[ {"action": "sec_box", "parameters": "id=65793, reason=1"} ]
    }
}

Nota: O parâmetro reason, define o motivo de abertura (0 = Desconhecido, 1 = Autorizado, 2 = Botoeira e 3 = Comando WEB).

Resposta específica para a catraca iDBlock

Autoriza um acesso:

{"result":
    {"event":7,
    "user_id":6,
    "user_name":"Danny Boy",
    "user_image":false,
    "portal_id":1,
    "actions":[ {"action":"catra", "parameters":"allow=clockwise"} ]
    }
}

Nota: O parâmetro "clockwise" abre a catraca no sentido horário, outros valores possíveis são "anticlockwise" ou "both" que abrem a catraca no sentido anti-horário e ambos, respectivamente.