Skip to main content
A vendor is a connection out to whoever carries your traffic. FireFlo dials it.

Adding one

Vendors → Add vendor. Host, port, system id and password. The panel groups the rest by what it does, and every field carries its default.
Every setting is at Vendor settings.

Prove it before traffic depends on it

Dials once and reports what happened. The panel has the same thing as Test connection.
It is refused while the vendor is already bound. A second bind on the same systemId can cost you the live session — many carriers allow one.

Bound is not the same as able to send

A session carries traffic if it is a transceiver, or a transmitter on a client session. A receiver-only vendor binds perfectly and sends nothing. When those two numbers differ, that is the reason, and the panel shows Can send as its own figure for exactly this case.

The four states

Not loaded usually means one of two things: the gateway has not reloaded since the vendor was added, or it is not reading workers from the database at all. The badge’s detail text says which.

Retries, and the number that used to lie

maxRetries bounds the total submit_sm one message may cost at this vendor — across in-worker retries and every trip back through the router.
It used to bound only the in-worker half, and each router hop handed out a fresh allowance. A vendor could see roughly 100 PDUs for one message while the panel read 1.If you tuned around the old behaviour, re-check the value. Failing over to a different vendor still starts a fresh budget — the bound is per vendor.
status.retry.worker (default 20,88) classifies which carrier statuses are worth retrying locally; status.retry.router pushes back for another route. ESME_RSUBMITFAIL (0x45) is treated as permanent — a lane refused with it fails on the first answer rather than after twenty. Carriers that mean transient overload by it are opted back in per vendor: status.retry.worker = 20,88,69.

Receipts

request.dlrs (default on) sets registered_delivery on every submit_sm to this vendor.
Turn it off and this vendor stops reporting outcomes, so every message through it settles as EXPIRED at the deadline. Your delivery rate for that vendor becomes meaningless, not zero.

Controlling one live

The panel exposes these as Stop sending, Hold and Disable, deliberately worded rather than iconographic — each reroutes or stops production traffic the moment it is pressed.

Cost

A vendor’s scope in the rate table is what it charges you. Without a cost rule, margin on traffic through it is unknown rather than 100% — see rates.conf.