cdr_rejected, y es
un animal diferente a un mensaje que se enrutó y falló.
Las razones
La columna SMPP es lo que el
submit_sm_resp del cliente llevó; la columna HTTP es el equivalente
REST. Tres de las cuatro son códigos específicos del proveedor en el rango 0x4xx en lugar de códigos SMPP
estándar. 0xC3 es la excepción, siendo ESME_RMISSINGOPTPARAM de la especificación. El
cliente SMPP del cliente no tendrá nombres para los valores 0x4xx, así que cítale la palabra de la razón,
no el número.
| filtered | Un filtro lo rechazó | varía | Lee el filtro |
| maxAttempts | No es un rechazo. El enrutamiento se rindió | nada al enviar | Nada se entrega |
Qué tienen todos los rechazos en común
No se cobró nada, o el cargo fue revertido. Un rechazo no le cuesta nada al cliente, lo que es por lo que son seguros para ser estrictos con ellos. Y por lo queinsufficientCredit no es una paradoja.
El más difícil de explicar
Leer un templateNotMatched
Casi siempre una de cuatro cosas, en orden descendente de qué tan a menudo es realmente la causa:
El texto genuinamente difiere
El texto genuinamente difiere
Los espacios en blanco se colapsan antes de comparar, así que rachas de espacios y saltos de línea no son el problema. Cualquier otra
cosa (un punto extra, una palabra cambiada, una posición de variable diferente) sí lo es.La vista previa de plantilla del panel muestra un mensaje de ejemplo que la plantilla acepta. Compáralo con lo que el
cliente realmente envió, que está en la fila
cdr_rejected.La plantilla está degradada
La plantilla está degradada
Un nombre de placeholder no reconocido (
{#VAR#}, {#otp#}) se carga como una variable genérica en lugar de
ser descartado, y la fila se reporta bajo templates_degraded en /ops/health.Aún coincide, pero mucho más libremente de lo intencionado: {#var#} acepta cualquier cosa hasta el
límite de longitud. Si una plantilla está aprobando mensajes que no debería, mira aquí primero.La variable es más larga que el límite
La variable es más larga que el límite
smsg.whitelist.max.variable acota cuánto texto puede representar un placeholder. Una plantilla de
"Your code is {#var#}" con un cuerpo de 900 caracteres se rechaza aunque el texto coincida.La cuenta está en ENFORCE y no debería estarlo
La cuenta está en ENFORCE y no debería estarlo
El modo
REPORT cuenta lo que sería rechazado sin rechazarlo. whitelist_would_reject en
/ops/health. Ejecutar una cuenta nueva en REPORT durante un día antes de aplicar convierte toda esta clase de
incidente en un número que lees a tu gusto.insufficientCredit en una cuenta con dinero
No es una contradicción, y la sorpresa más común en la operación prepago.
El crédito se reserva en bloques, no por mensaje. El bloque es max(smsg.balance.block.min, price × smsg.balance.block.min.messages). Veinte mensajes por defecto.
Una reserva prueba tres peldaños descendentes: el bloque completo, ese suelo, luego el mensaje único
que preguntó. Así que el suelo nunca deja dinero atrapado. Una cuenta gasta cada unidad que tiene.
Relacionado
Whitelisting
Aprobar sender IDs y textos.
Crédito prepago
Bloques, reservas y la identidad de dinero.