Où chaque côté est réglé
Prix — à l'entrée
Par
submit_sm entrant. Ne dépend que du tarif du client — compte, product, destination — jamais
du vendor finalement choisi.Coût — au vendor
Une fois qu’une route est choisie et que le corps est découpé, parce que ce n’est qu’à ce
moment-là que le nombre de segments est connu.
La table de tarifs
Les tarifs utilisent la grammaire de routage avec le montant à la place où le routage met la cible :[scope] est soit un nom d’instance de vendor — ce que ce vendor vous facture — soit un
id de compte — ce que vous facturez à ce client. Les règles sont évaluées de haut en bas et la
première qui correspond gagne, donc un attrape-tout se met en dernier.
Les attributs et opérateurs sont ceux du moteur de routage, donc tout ce sur quoi vous pouvez
router vous pouvez le tarifer, y compris product et systemId. Combinez les conditions avec ~~
dans les trois positions.
Le défaut que tout le monde devrait définir
[*] tarife tout compte n’ayant pas sa propre règle :
* est réservé : aucun compte ni vendor ne peut être nommé ainsi.
Inconnu n’est pas zéro
Une règle qui ne correspond à rien laisse le montant inconnu, jamais zéro. Zéro est un vrai prix signifiant gratuit, et un côté inconnu rend la marge inconnue plutôt que fausse. Cette distinction est pourquoi un vendor non tarifé apparaît comme une lacune dans un rapport de marge plutôt que comme 100 % de profit.Précision
Les montants portent au plus quatre décimales et sont parsés exactement, jamais via de la virgule flottante. Un montant avec plus de précision est rejeté plutôt que tronqué. Tronquer0.00001 à zéro offrirait silencieusement du trafic.
smsg.money.scale (0–4, par défaut 4) contrôle le nombre de décimales avec lesquelles un
total est affiché. L’Inde utilise 2.
Le stockage ne change jamais : les montants sont des entiers de dix-millièmes. Le paramètre est
purement de présentation et peut être changé à tout moment.
Routage au moindre coût
Une table marquée->function(LCR) choisit le vendor le moins cher plutôt que la première règle
correspondante :
- Les vendors en panne ou n’acceptant pas sont ignorés, donc le suivant le moins cher porte le trafic.
- Un vendor sans tarif correspondant n’est utilisé que si rien d’autre ne correspond — une ligne de tarif oubliée dégrade plutôt que de provoquer une panne.
- Les règles pointant vers une autre table sont ignorées dans une table LCR : un coût imbriqué ne peut pas être comparé, et router à un prix inconnu serait pire.
En lien
Tarifs
Éditer les tarifs depuis le panneau, et les overrides par compte.
Enregistrements d'appels
Où les deux côtés du marché sont enregistrés.