smsg.diagnostics decides how much of it is.
Set it from the control panel: Configuration → Gateway → Diagnostics. No SQL, and it takes
effect on the next configuration poll — no restart.
The three levels
problems is the level to run. It is the one that answers a support question without anybody
having to switch something on first — which is the whole problem it exists to solve, because the
moment you need the evidence is always after the thing happened.
Setting it changes nothing until you set it
smsg.diagnostics supplies the default for the two settings below. It does not override them.
So an upgraded gateway with no level set behaves exactly as it did before, and an operator who had
already tuned
message.trace.mode keeps what they chose. The panel names any setting that is
overriding the level, because a level that reads as in force while a key quietly outranks it is the
one confusing state this arrangement can produce.
What it deliberately does not touch
What problems records
Events land in cdr_event and appear on a message’s page under Customer exchange:
Callback addresses are stored with the query string removed. A
dlr-url routinely carries an API
key, and these rows are widely readable, so the endpoint is kept as scheme, host and path and
nothing else. No response body is stored at all.
registered_delivery, and the value that surprises people
A suppressed receipt is almost always this:
0x02 is the one that produces “we get some receipts but not others”. The receipt.suppressed
event prints the stored octet so it can be read rather than guessed at.
Turning it up for one message
problems. verbose logs every routing
miss, submit response and enqueue — leaving it on is real write volume on a live gateway.