Skip to main content
Alguns destinos precisam de parâmetros que não fazem parte de um envio comum. O mais visível é o DLT indiano, que exige um id de entidade registrada e um id de template em cada mensagem. custom_tlvs os carrega.

Quatro regras, e cada uma já pegou alguém

O arquivo swagger versionado tipa isso como array. Está errado: o parser quer um objeto, e gerar um cliente daquele spec produz um payload recusado na primeira chamada.
1401 é decimal 1401, que é a tag 0x0579. Não é a 0x1401 que quase todo mundo quer dizer.Este é o perigoso, porque faz parse. Nada é recusado: o gateway envia a tag 0x0579, a operadora ignora um parâmetro que não reconhece, e a mensagem é entregue sem o valor que ela deveria carregar. Não há erro em lugar nenhum.Escreva 0x1401 quando você quiser hex. Tags decimais são válidas, e alguns fornecedores publicam assim, o que é exatamente por que o gateway não pode adivinhar por você.
tmid_0x1401 é tag 0x1401. O nome antes é decoração que o gateway mantém para os próprios logs, e ele mesmo pode conter sublinhados: source_network_id_5120 é tag 5120 decimal.Um nome sozinho não é o bastante. O gateway casa pelo número.
:Int8 adicionado a uma chave fixa a codificação no wire. As larguras são octetos, seguindo a convenção SMPP:Lido como bits, Int8 pareceria um campo de um byte, e a recusa resultante fica misteriosa. Um id de template DLT em torno de 1,4 × 10¹⁸ não cabe em nada menor que oito bytes.

O nome do campo mantém o sublinhado

Todo outro campo desta API trata _ e - como o mesmo caractere. custom_tlvs não: custom-tlvs é 400 Unknown argument.

De onde mais uma tag pode vir

Você não é a única fonte, e a sua nem sempre vence:
1

Seu custom_tlvs

Só extraído se o listener declara a tag. Tags não declaradas são descartadas, não repassadas.
2

Os padrões da sua credencial

Configurados pelo seu provedor, preenchendo tags que você não enviou. É onde um id de entidade DLT geralmente fica, já que é uma propriedade sua, e não de uma mensagem específica.
3

O stamp da whitelist

Em um template aprovado. No modo replace, isso sobrescreve o que você enviou. E essa sobrescrição é a aprovação.
4

Os padrões do fornecedor

Preenchendo qualquer coisa ainda vazia no momento do envio.
Se uma tag que você envia nunca chega, a causa mais provável é que o listener não a declare. Pergunte ao seu provedor se ela está em registered.tlvs.submit. Uma tag não declarada é descartada silenciosamente no ingresso, antes de qualquer outra coisa nesta lista rodar.

Relacionados

Declarações de TLV

A gramática completa e os cinco níveis de declaração.

Enviar uma mensagem

Todos os campos do endpoint.