Skip to main content
Un mensaje puede cruzar el gateway de cuatro maneras. Son caminos de código genuinamente diferentes y fallan diferentemente, así que poder impulsar cada uno por sí solo es lo que convierte “algo está mal” en una bisección.

Preparar un carril

Eso crea una cuenta con crédito, un producto con whitelisting apagado, un login SMPP y un login HTTP, una tarifa plana, y las reglas de enrutamiento que las cuatro direcciones necesitan. Es idempotente, y un script de desmontaje correspondiente elimina exactamente lo que añadió.
Cambia las dos contraseñas antes de apuntar cualquier cosa a esto que no sea tu propia máquina.

Lee el orden de emparejamiento antes de enviar nada

El router toma la primera regla que coincide, y la última regla coincide con todo. Dos cosas se siguen, y ambas ya han mordido a un despliegue real:
Un recibo de entrega para un mensaje cuyo emisor era una dirección india numérica llega con ese número en to, una vez que flag.reverseDlrSrcDst ha intercambiado origen y destino.Colocado debajo de una regla to matches ^91…, ese recibo va a un proveedor en lugar de al cliente.Por eso el seed mueve las reglas de destino hacia abajo en lugar de simplemente insertar una regla de clase arriba del catch-all.
Cae al catch-all, llega al worker de proveedor, y se envía aguas arriba como un mensaje saliente nuevo.conf/routingTable.conf siempre ha llevado esta regla. La base de datos no. Y en modo base de datos gana la base de datos.
Ambos fallos son silenciosos desde el lado del cliente: en el primero el recibo simplemente nunca llega, en el segundo llega a un operador como tráfico por el que pagas. Ninguno produce un error en ningún sitio.

Qué prueba cada dirección

1

Dirección 1 primero: MT out sobre SMPP

Si esta falla, nada más funcionará tampoco. Cubre el camino más largo.
2

Dirección 2: el ingreso REST

Fallar aquí mientras 1 funciona aísla el problema al ingreso HTTP: auth, parseo, límites de tasa.
3

Dirección 3: recibos de vuelta

La más frecuentemente rota por el orden de enrutamiento en lugar de por el camino del recibo en sí.
4

Dirección 4: MO in

Necesita el número de destino mapeado a una cuenta. Un mensaje sin mapear se registra y se entrega a ningún sitio, sin nada observable en el lado del cliente.

Leer el resultado

No juzgues un carril por si el envío devolvió 200. Eso solo significa aceptado para enrutar. Comprueba:
  • cdr_submit para una fila, y cdr_final para un resultado
  • cdr_rejected para cualquier cosa rechazada, con su razón
  • /ops/health para submitted moviéndose en el proveedor
  • El log para message.accepted, message.submitted, message.dlr

Relacionado

Throughput

Una línea base medida contra la que comparar una ejecución de carga.

Primeras comprobaciones

Cuando un carril no funciona.