Aller au contenu principal

Routage

Comment la passerelle choisit le téléphone et la SIM qui portent chaque message, les trois modes automatiques, et les règles par préfixe qui envoient certains numéros depuis la SIM de votre choix.

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 :

  1. 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.
  2. 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. Cette étape peut être désactivée, voir plus bas.
  3. 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é.
  4. 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.

La SIM de la conversation

La passerelle retient quelle SIM a échangé la dernière avec chaque correspondant, et envoie depuis cette SIM tous les messages suivants adressés à cette personne. C'est ce qui fait que votre client voit toujours le même numéro, quel que soit celui d'entre vous qui lui écrit et quelle que soit l'heure : une réponse qui arrive d'un second numéro ressemble à un inconnu, ou reste sans réponse.

Cela reste une préférence, jamais un ordre : quand cette SIM ne peut pas envoyer, une autre porte le message tout de suite plutôt que de faire attendre la conversation, et la conversation suit alors la SIM qui a travaillé.

À désactiver quand une de vos SIM ne peut plus envoyer. Une SIM sans crédit, ou sans réseau, a l'air en parfaite santé vue d'ici : son téléphone est en ligne et son quota du jour est intact. Chaque conversation qu'elle a déjà portée continue de lui être proposée, message après message, et elle continue de les refuser. La réception, elle, fonctionne encore sur une telle SIM : aucun message entrant ne vient donc jamais déplacer la préférence.

L'interrupteur est Garder la même SIM pour chaque conversation, dans Paramètres > Envoi (superadministrateur). Il est activé par défaut, ce qui correspond au comportement décrit ci-dessus. Désactivez-le et aucune conversation n'a plus de SIM préférée : chaque message est routé comme un premier contact, il reprend donc la liste ci-dessus à l'étape 3 et se répartit sur tout votre parc (chaque SIM à son tour, avec le mode automatique par défaut). Cela s'applique au message suivant, sans rien redémarrer.

Le désactiver ne change rien d'autre : un téléphone désigné dans l'envoi reste le seul utilisé, les règles par préfixe s'appliquent toujours dans votre ordre, et la SIM que chaque conversation a utilisée en dernier reste enregistrée. Réactiver l'interrupteur ramène donc le numéro unique aussitôt, sans attendre que vos correspondants vous écrivent de nouveau.

Quand une SIM refuse le message

Une SIM sans crédit paraît en parfait état vue d'ici : son téléphone est en ligne, son quota du jour est intact, et rien ne dit à la passerelle que l'opérateur va refuser le message. Le refus lui-même est le seul signal.

Alors quand une SIM refuse un message, la passerelle le retient pour ce message et l'envoie aussitôt depuis la SIM suivante, en descendant la même liste que ci-dessus : un téléphone désigné dans l'envoi reste le seul utilisé, une réponse garde toujours la SIM de sa conversation, une règle essaie toujours ses SIM dans votre ordre, et une règle réglée sur Attendre ces SIM ne part toujours jamais d'une SIM qu'elle ne nomme pas. Seule la SIM qui vient de refuser est écartée, et seulement pour ce message : elle reste disponible pour tout le reste, puisque rien ne prouve qu'elle est à sec plutôt que momentanément sans réseau.

Essayer cinq SIM est une tentative de remise, pas cinq. Quand toutes les SIM qui pouvaient porter le message l'ont refusé, le message attend le délai de reprise habituel, puis recommence sur tout le parc : une SIM peut avoir été rechargée entre-temps.

Quand une réponse finit par partir d'une autre SIM, la conversation la suit : les réponses suivantes partent de cette SIM, et votre correspondant continue de voir un seul numéro au lieu d'alterner entre deux. Rechargez la première SIM et la conversation reste où elle est, ce qui est bien ce que vous voulez.

La File d'attente montre, sous le téléphone, quelle SIM a refusé et pourquoi. Un message qui répète « La SIM 1 de Accueil a refusé » avec « L'opérateur a refusé le SMS, le plus souvent faute de crédit » est le signe d'une SIM à recharger. Plus de détail dans Envoyer des messages.

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 +33 partent de la SIM française, ceux en +261 de 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.
  • elles ont toutes refusé ce message (pas de crédit, pas de réseau) : le message attend le délai de reprise habituel, puis les SIM de la règle sont réessayées. Il ne part jamais d'une SIM que la règle ne nomme pas.

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
Garder la même SIM pour chaque conversation Paramètres > Envoi ; API sending.stickySimEnabled Activé Activé ou désactivé Activé, un message adressé à un correspondant part de la SIM qui a échangé la dernière avec lui quand elle peut envoyer. Désactivé, chaque message est routé comme un premier contact, sur tout le parc
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
Tous les messages vers vos clients existants partent de la même SIM, qui les refuse C'est la SIM dont leurs conversations se souviennent. Rechargez-la, ou désactivez Garder la même SIM pour chaque conversation dans Paramètres > Envoi
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, sauf si Garder la même SIM pour chaque conversation est désactivé) ? Un téléphone était-il désigné dans l'envoi ? Cette SIM a-t-elle refusé le message (la File d'attente le dit sous le téléphone) ? 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

Rechercher dans la documentation

Saisissez quelques mots, puis choisissez une page.