Campos
Validação, por protocolo
allowedIps e allowedProducts têm padrões em direções opostas
De propósito, e vale ler duas vezes.
O produto seleciona a tarifa. Um login que pudesse nomear qualquer produto poderia escolher o
próprio preço, então nomear um que não foi concedido é recusado em vez de permitido por omissão.
product, e de onde vem
Para um bind SMPP, o system_type na requisição de bind tem precedência quando o cliente envia
um; este campo é o fallback. Chamadores HTTP sempre usam este valor, porque não há bind.
Um produto não definido é um estado suportado. Casa com product:isNull: na tabela de roteamento e é
precificado só por regras de tarifa que também não carregam produto.
TLVs default
Aplicados na entrada, depois das tags carregadas no própriosubmit_sm. Um valor que o cliente
enviou sempre vence. Rodam antes do check mandatory.tlvs.submit do gateway, então uma
credencial pode satisfazer uma tag obrigatória em nome de um cliente que nunca envia uma.
Chaves usam a gramática <name>_<tag> em declarações de TLV. Valores podem
ser um literal, MESSAGE:<field> para copiar um atributo da mensagem, ou hex:<bytes>.
Defaults de TLV de credencial são snapshotados quando um cliente faz bind, diferente dos
arquivos de routing e properties. Editar aplica no próximo bind daquele cliente, não em sessões
já conectadas.
Chaves desconhecidas geram warning, não rejeição
Assim uma configuração mais nova continua carregável em um build mais antigo. Cada chave desconhecida é logada como warning. Em modo de banco este arquivo não é lido depois do startup; os mesmos dados vivem emapp_credential. Veja Banco de dados.