Le routage est le choix, pour chaque message sortant, du téléphone et de la SIM qui le portent. Avec un seul téléphone et une seule SIM, il n'y a rien à choisir. Dès que vous avez plusieurs SIM, le choix compte : il répartit la charge, maintient chaque SIM sous son quota, et peut faire économiser quand un message reste sur le réseau d'un même opérateur.
Par défaut, la passerelle choisit seule. L'écran Routage, juste sous Appareils dans le menu latéral, vous permet d'ajouter des règles par préfixe : « les numéros commençant par +26134 partent de la SIM 1 du téléphone de l'accueil ».
Comment une SIM est choisie
Pour chaque message, la passerelle parcourt cette liste et s'arrête à la première réponse :
- Un téléphone désigné dans l'envoi. Quand vous choisissez un Appareil émetteur dans
l'envoi rapide ou dans une conversation, ou passez
deviceIdà l'API, ce téléphone porte le message, ou personne. Les règles ne sont pas consultées. - La SIM de la conversation. Une réponse dans une conversation part de la SIM que le correspondant connaît déjà, tant que cette SIM peut envoyer. Votre client voit toujours le même numéro.
- Les règles par préfixe. Si une règle couvre le numéro, ses SIM sont essayées dans l'ordre que vous avez fixé.
- Le routage automatique, sur tous les téléphones.
Une SIM peut envoyer quand son téléphone est en ligne et dans le pool de routage, que la SIM est en service, que ni son quota du jour ni sa limite par minute ne sont atteints, et qu'elle a attendu son intervalle minimal depuis son dernier SMS. Une SIM qui ne peut pas envoyer est simplement sautée.
Le routage automatique
Le routage automatique s'applique à tous les numéros qu'aucune règle ne couvre. Son mode se choisit
à l'installation de la passerelle, avec la variable GATEWAY_ROUTING_MODE du fichier .env, suivie
de sms-gateway restart (voir le guide d'installation) :
| Mode | Ce qu'il privilégie | Adapté à |
|---|---|---|
round_robin (par défaut) |
Chaque SIM à tour de rôle, pour répartir le trafic également | Des SIM semblables, aux forfaits semblables |
quota |
La SIM à qui il reste le plus de quota du jour. Une SIM sans plafond journalier passe toujours en premier | Des SIM aux quotas différents : le parc tient plus longtemps |
carrier |
La SIM dont l'opérateur dessert le numéro du destinataire, un message qui reste sur un même réseau coûtant souvent moins cher. Quand aucune SIM ne correspond à l'opérateur du destinataire, il se replie sur le mode quota |
Plusieurs opérateurs, tarifs internes au réseau plus bas |
Le mode carrier a besoin de la table des préfixes de chaque opérateur, fournie dans
GATEWAY_CARRIER_PREFIXES (par exemple Telma:+26134,+26138;Orange:+26132). Écrivez chaque nom
d'opérateur exactement comme le téléphone le déclare, tel qu'il apparaît dans la colonne SIM
d'Appareils : un nom orthographié autrement ne correspond à aucune SIM. Sans cette table, la
passerelle refuse de démarrer plutôt que de router en silence sans tenir compte des opérateurs.
Changer de mode demande de modifier la variable et de redémarrer la passerelle. Les règles par préfixe, elles, se modifient à chaud depuis le tableau de bord.
Les règles par préfixe
Une règle dit : « les messages vers les numéros commençant par ces préfixes partent de ces SIM, dans cet ordre ». Usages typiques :
- Une SIM avec un forfait avantageux vers un opérateur : lui confier les numéros de cet opérateur.
- Un téléphone par pays : les numéros commençant par
+33partent de la SIM française, ceux en+261de la SIM malgache. - Un numéro dédié à un segment de clientèle, pour qu'il voie toujours le même expéditeur.
Créer une règle
Dans Routage, cliquez sur Nouvelle règle (Superadministrateur). La fenêtre demande :
| Champ | Ce qu'il faut saisir |
|---|---|
| Nom | Un nom que vous reconnaissez, de 1 à 80 caractères |
| Préfixes de numéro | Un préfixe par ligne, ou séparés par des virgules, au format international : + suivi de chiffres, par exemple +26134. De 1 à 50 préfixes |
| SIM qui envoient | Cochez les SIM dans l'ordre où elles doivent être essayées, puis ajustez l'ordre avec les flèches. De 1 à 20 SIM |
| Attendre ces SIM | Ce qui se passe quand aucune de ces SIM ne peut envoyer. Voir plus bas |
| Règle active | Désactivé, la règle est conservée mais ignorée |
La règle s'applique dès le message suivant, sans rien redémarrer.
Quelle règle l'emporte
Quand plusieurs règles couvrent un numéro, le préfixe le plus long l'emporte : +26134 l'emporte
sur +261 pour +261341234567. Vous pouvez ainsi écrire une règle générale et des exceptions plus
précises. Entre deux préfixes de même longueur, la règle placée plus haut dans la liste l'emporte.
À l'intérieur d'une règle, la première SIM de la liste qui peut envoyer porte le message. Les suivantes sont là pour prendre le relais quand la première est hors ligne, à court de quota ou hors service.
Quand aucune SIM de la règle ne peut envoyer
C'est ce que décide Attendre ces SIM :
| Attendre ces SIM | Ce qui se passe |
|---|---|
| Désactivé (par défaut) | Le message part d'une autre SIM par le routage automatique. Il part à l'heure, mais d'un autre numéro |
| Activé | Le message ne part jamais d'une autre SIM. Il attend l'une des SIM de la règle, voir ci-dessous |
Avec Attendre ces SIM activé, l'attente dépend de la raison pour laquelle les SIM ne peuvent pas envoyer :
- leur quota du jour est atteint : le message passe en Quota atteint et part dès qu'un quota est relevé, ou à minuit UTC ;
- leur limite par minute est atteinte, ou elles n'ont pas attendu leur intervalle minimal : le message reste En file et part dès que l'une d'elles est libre ;
- leur téléphone est hors ligne, hors du pool de routage, ou les SIM sont hors service : le message reste En file et la passerelle réessaie chaque minute, sans consommer de tentative. Il part dès qu'une SIM de la règle revient.
Activez-le quand le numéro expéditeur compte plus que le délai : un client qui doit toujours voir le même numéro, une SIM qui est la seule autorisée à envoyer vers un réseau donné. Une règle stricte peut retenir des messages aussi longtemps que son téléphone reste absent ; vous les voyez dans la File d'attente.
Le tableau des règles
Le tableau Règles par préfixe montre chaque règle avec Numéros commençant par, SIM, dans l'ordre (téléphone, SIM, opérateur et numéro masqué), Si aucune ne peut envoyer (Attendre ou Routage automatique), un interrupteur Active, et des Actions pour modifier ou supprimer.
Désappairer un téléphone retire ses SIM de toutes les règles. Une règle qui n'a plus de SIM affiche Plus aucune SIM : la règle est ignorée. Supprimer une règle renvoie ses numéros au routage automatique ; les messages déjà envoyés ne changent pas.
Tester un numéro
La carte Tester un numéro indique de quelle SIM partirait maintenant un message vers un numéro donné, et pourquoi. Rien n'est envoyé, et le test ne dérange pas la rotation du trafic réel. La réponse est l'une de celles-ci :
| Résultat | Exemple |
|---|---|
| Règle | « Règle Telma (+26134) : part de Accueil, SIM 1. » |
| Repli | « La règle Telma correspond mais aucune de ses SIM ne peut envoyer : part de Entrepôt, SIM 0 par le routage automatique. » |
| En attente | « La règle Telma correspond et aucune de ses SIM ne peut envoyer : le message attendrait. » |
| Automatique | « Aucune règle ne correspond : routage automatique (round_robin), part de Entrepôt, SIM 0. » |
| Indisponible | « Aucune SIM ne peut envoyer pour l'instant », avec la raison |
Utilisez-le après avoir créé une règle, et quand un message n'est pas parti de la SIM attendue.
Options
| Option | Où | Par défaut | Valeurs admises | Effet |
|---|---|---|---|---|
| Mode automatique | GATEWAY_ROUTING_MODE, à l'installation |
round_robin |
round_robin, quota, carrier |
Comment se répartissent les numéros qu'aucune règle ne couvre. Demande un redémarrage |
| Préfixes des opérateurs | GATEWAY_CARRIER_PREFIXES, à l'installation |
Vide | Opérateur:+préfixe,+préfixe;Opérateur:+préfixe |
Obligatoire pour le mode carrier, ignoré sinon |
| Nom | Fenêtre de la règle ; API name |
Aucun | 1 à 80 caractères | Affichage seulement |
| Préfixes de numéro | Fenêtre de la règle ; API prefixes |
Aucun | 1 à 50, chacun + puis 1 à 14 chiffres, sans commencer par 0 ; les doublons sont fusionnés |
Les numéros que la règle couvre. Le plus long l'emporte |
| SIM qui envoient | Fenêtre de la règle ; API targets (deviceId, slot) |
Aucune | 1 à 20 SIM, chacune une seule fois | Essayées dans l'ordre ; la première qui peut envoyer porte le message |
| Attendre ces SIM | Fenêtre de la règle ; API strict |
Désactivé | Activé ou désactivé | Désactivé : repli sur le routage automatique. Activé : le message attend l'une des SIM de la règle |
| Règle active | Fenêtre de la règle et interrupteur Active ; API enabled |
Activé | Activé ou désactivé | Désactivé : la règle est ignorée, comme supprimée, mais conservée |
| Priorité | API seulement, priority |
Après les règles existantes | 0 ou plus, la plus basse d'abord | Départage deux règles dont les préfixes correspondants ont la même longueur. Le tableau liste les règles dans cet ordre |
Autres réglages qui changent les SIM capables d'envoyer : le quota journalier, SIM en service et le pool de routage dans Appareils, et la limite Messages par minute et par SIM dans Envoyer des messages.
Qui peut faire quoi : un Superadministrateur crée, modifie et supprime les règles. Les comptes Opérateur et Lecture seule voient les règles et peuvent tester un numéro.
API
| Méthode et chemin | Usage |
|---|---|
GET /routing/rules |
Lister les règles, dans l'ordre de priorité |
POST /routing/rules |
Créer une règle |
GET /routing/rules/{routingRuleId} |
Lire une règle |
PATCH /routing/rules/{routingRuleId} |
Modifier une règle. prefixes et targets remplacent toute la liste |
DELETE /routing/rules/{routingRuleId} |
Supprimer une règle |
POST /routing/test |
Tester un numéro, sans envoyer |
POST /routing/test répond avec un outcome (rule, fallback, held, automatic,
unavailable), la règle et le préfixe qui correspondent, les deviceId, deviceName et slot
choisis, et une reason quand rien ne peut envoyer (NO_DEVICE_AVAILABLE, QUOTA_EXHAUSTED,
RATE_LIMITED, RULE_SIMS_UNAVAILABLE). Écrire des règles avec une clé API demande la portée
admin.
Dépannage
| Symptôme | Ce qu'il faut vérifier |
|---|---|
| Un message n'est pas parti de la SIM de la règle | Était-ce une réponse dans une conversation (elle garde la SIM de la conversation) ? Un téléphone était-il désigné dans l'envoi ? Utilisez Tester un numéro |
| Les messages vers certains numéros restent En file | Une règle avec Attendre ces SIM les couvre et ses téléphones sont hors ligne ou ses SIM hors service |
| « Préfixe invalide » | Un préfixe commence par + suivi de chiffres, par exemple +26134, sans espace |
| La règle semble ignorée | Est-elle Active ? Un préfixe plus long d'une autre règle couvre-t-il le numéro ? A-t-elle encore une SIM ? |
La passerelle refuse de démarrer après le choix de carrier |
GATEWAY_CARRIER_PREFIXES est absente ou mal formée |