Vendor e server
Vendor
Uma conexão de saída para quem transporta seu tráfego. O FireFlo disca para ele. A configuração
chama isso de
smppclient.Server
Um listener ao qual seus clientes se conectam (bind). O FireFlo aceita. A configuração chama isso
de
smppserver.smppclient e smppserver, e sempre permanecerão. É o que o
gateway lê. Eles nunca aparecem na interface e não são usados em prosa neste site fora de
blocos de código e nomes de chaves.
Ambos são workers e compartilham um conjunto de configurações base.
Account, login, product
Uma account, muitos logins. É por isso que o teto de taxa é indexado pela account em vez da
credencial. Um limite por login permitiria que um cliente aumentasse o próprio limite criando outro login.
system_type em um bind SMPP e, em seguida, o campo product
da credencial. Chamadores HTTP não têm bind, portanto o valor da credencial é a única fonte.
Routing table, rule, chain, group
Uma routing table é uma lista nomeada de rules, avaliadas de cima para baixo; a primeira que corresponder vence. O alvo de uma rule pode ser um worker, outra table — o que constitui uma chain, e é como[default] envia mensagens de texto para [MESSAGE] — ou um group.
Um group é um conjunto de vendors com uma política: round-robin, weighted ou failover. Ele
pula membros que estão suspensos ou que não aceitam, o que é o failover que uma rule de alvo único não
consegue fazer.
Uma LCR table é marcada como ->function(LCR) e inverte a regra usual: toda rule que casar é um
candidato, e o vendor mais barato vence. A ordem das rules é irrelevante nesse caso.
Filter
Um conjunto nomeado e reutilizável de condições, compartilhado por roteamento e rating para que o mesmo predicado não seja escrito duas vezes.Scope e tariff
Um scope é o lado esquerdo de uma rate rule, e qual lado da troca ele é depende inteiramente do que ele nomeia:
Nada no schema os distingue. O gateway os diferencia por qual lookup pergunta, e é por isso que o
painel os agrupa como What we pay e What we charge em vez de uma única lista.
Uma tariff é o conjunto de price rules para uma account.
Message, segment, part
Uma message é o que um cliente submete. Se mais longa do que um SMS, ela sai como vários segments, esmsg.restapi.billing.units decide se isso é cobrado uma vez ou por segmento.
Qualquer que seja a unidade de faturamento, uma mensagem deixa exatamente uma linha
part_no = 1
em cdr_submit. Retentativas não adicionam linhas. Esse invariante é o que faz contar mensagens e
somar dinheiro serem a mesma pergunta.Prepaid e postpaid
Ambos recusam identicamente —
0x402 sobre SMPP, 402 com insufficientCredit sobre HTTP — para
que a integração de um cliente nunca precise saber em qual dos dois ele está.