deliver_sm chega do gateway. Ele carrega duas coisas
diferentes, e seu handler tem que separá-las antes de qualquer outra coisa.
Lendo um recibo
O corpo segue o formato convencional:id é o message id da sua submit_sm_resp. É a chave de correlação, e a única.
stat é o estado bruto — DELIVRD, UNDELIV, EXPIRED, DELETED, ACCEPTD, UNKNOWN,
REJECTD, FAILED, BUFFRED, SEEN. EXPIRED, REJECTD e UNDELIV todos são cobrados como
falha, mas significam coisas diferentes.
Três segmentos, três recibos
Por padrão, você recebe um recibo porsubmit_sm enviado, cada um citando o id que você recebeu.
Seu provedor pode reduzir para um com conf.dlr.multipart em first ou last, o que traz os
totais reais de sub:/dlvrd:.
Todos os recibos reportam o mesmo desfecho independentemente da escolha, porque os segmentos de
saída são agregados antes de qualquer recibo ser construído. Então não há nada para reconciliar
entre eles — escolha um e ignore o resto, ou peça ao seu provedor para mandar um.
Mensagens de entrada
Umdeliver_sm sem os bits de recibo é uma mensagem real que alguém enviou para o seu número.
O gateway tem que resolver qual conta é dona do número de destino antes de poder rotear a você.
Se esse mapeamento está faltando, a mensagem é registrada e entregue a lugar nenhum. E não há nada
observável do seu lado, porque, do ponto de vista do roteamento, ela nunca foi endereçada a você.
Respondendo
Responda cadadeliver_sm com um deliver_sm_resp. Uma PDU não respondida consome um slot de
janela no lado do gateway, e o bastante deles trava a sessão de um jeito que parece o gateway ter
parado de enviar.
Se os recibos nunca chegam
1
Seu bind consegue receber?
Um bind só de transmitter não consegue. Essa é a causa mais comum e a mais fácil de passar
batida, porque enviar funciona perfeitamente.
2
Você pediu?
registered_delivery em 0x00 significa nenhum. Algumas bibliotecas usam zero por padrão.3
O fornecedor os produz?
Se seu provedor tem
request.dlrs desligado para o fornecedor que transporta seu tráfego, nada
reporta desfecho e toda mensagem termina como EXPIRED no seu prazo.Relacionados
Submetendo
registered_delivery e como ele mapeia para os níveis de recibo.FAQ de SMPP
Janelas, throttling, reconexões e sessões zumbis.