A edição que aparentemente não fez nada
routingTable.conf é hot reloaded — uma edição se aplica em cerca de 200 ms, sem restart. Essa
velocidade é exatamente por que o caso de tabela retida é fácil de perder: não há restart para
notar, então “minha mudança não fez nada” é o sintoma inteiro.
O que o router faz com uma mensagem
1
A submissão é respondida primeiro
O gateway envia
submit_sm_resp, ou o 200 do REST, antes de o roteamento rodar. O cliente
já foi informado de que a mensagem foi aceita, e cobrado por ela.2
A mensagem vai para a fila do router
Trabalho aceito espera aqui. Veja Queues and retries.
3
A tabela `default` é varrida
Regras são tentadas de cima para baixo e o primeiro match ganha. Uma regra pode enviar a um
fornecedor, a um grupo de fornecedores, ou a outra tabela.
4
O worker escolhido a pega
A mensagem é enfileirada na fila daquele fornecedor e sai na velocidade que o fornecedor
permite.
cdr_rejected.
Tabelas são um grafo, não uma lista
Uma regra cujo alvo nomeia outra tabela encadeia nela, entãodefault → MESSAGE → cheapest é uma
forma comum. Duas coisas limitam a recursão:
Uma tabela alcançada duas vezes por caminhos diferentes não é um ciclo:
default → a → c junto com
default → b → c carrega normalmente.
As duas coisas que carregam e depois se comportam mal em silêncio
Ambas aparecem em/ops/health sob routing_warnings, e cada uma é logada uma vez quando aparece
pela primeira vez em vez de a cada publicação.
Quando mensagens somem
Antes de editar qualquer regra, descarte as três causas que não são de roteamento. Apenas
reason = 'maxAttempts' em cdr_rejected significa roteamento; headerNotApproved,
templateNotMatched, missingMandatoryTlv, insufficientCredit e filtered todos significam que
a mensagem foi recusada antes de o roteamento ser alcançado. Veja
Nothing is delivered.Perguntando por que uma mensagem não casou
Próximo
Writing rules
A gramática de quatro partes, os operadores que mentem, e grupos de fornecedores.
Least-cost routing
Onde a ordem das regras deixa de significar algo.
Filters
Condições nomeadas, e por que desabilitar uma estreita uma regra até nada.
Queues and retries
O que já está pago e sentado na memória.