Skip to main content
La même grammaire que routingTable.conf, avec le montant par unité là où le routage met la cible.
Les règles sont groupées sous un en-tête [scope] et évaluées de haut en bas à l’intérieur. La première correspondance l’emporte, donc les règles spécifiques vont au-dessus de l’attrape-tout.

Un scope est un côté de la transaction

[*] est côté vente uniquement. Un fournisseur n’en hérite jamais, donc un coût sans règle reste inconnu plutôt que de devenir silencieusement le prix de vente — ce qui rapporterait une marge de zéro sur du trafic que vous payez en fait.
Rien dans le schéma ne distingue un scope fournisseur d’un scope compte ; la passerelle les distingue par la recherche qui interroge. fireflo import --dry-run classe chaque scope et nomme ceux qu’il ne peut classer ni l’un ni l’autre — c’est ainsi qu’un scope qui se chargera et ne correspondra silencieusement à rien est attrapé.

Montants

Décimal, à 4 décimales au maximum. Parsé exactement, jamais via la virgule flottante, donc 0.0450 signifie 0.0450.
smsg.money.scale contrôle avec combien de décimales un total est publié. Les tarifs par message en gardent toujours quatre, car 0.0450 affiché comme 0.05 est faux de 11 % sur chaque message. Voir Tarification.

Conditions

Les attributs sont ceux du moteur de routage : to, from, body, product, systemId, owner_id, type et le reste. matches est une expression régulière et est ancrée — ^61.* correspond à un numéro entier, un simple 61 non. Combinez les conditions avec ~~, qui doit apparaître dans les trois positions :

L’attrape-tout

Sans un default, un message qui ne correspond à rien est enregistré avec un tarif UNKNOWN, pas comme gratuit. C’est le résultat honnête, et cela signifie que le message est livré et facturé à personne jusqu’à ce que vous le remarquiez. smsg.rating.unrated.refuse en fait un refus à la place.

Forme travaillée

Coût et prix vivent dans le même fichier et sont la même grammaire, c’est pourquoi le panneau de contrôle les groupe comme Ce que nous payons et Ce que nous facturons plutôt que de les mélanger dans une seule liste. En mode base de données, ce fichier n’est pas lu après le démarrage ; les mêmes données vivent dans app_rate_rule et ses tables de condition. Voir Base de données et Comment fonctionne la tarification.