Intégration du routage d’appels SBC via API REST : architecture, cas d’usage et implémentation

Aperçu de l'intégration du routage d'appels SBC via API REST

Les tables de routage statiques fonctionnaient quand les réseaux vocaux étaient simples : une poignée d’opérateurs, un ensemble prévisible de numéros et une logique de routage qui changeait une fois par trimestre. Ce n’est plus la réalité dans laquelle la plupart des fournisseurs de services et des entreprises opèrent aujourd’hui. Les réseaux vocaux modernes acheminent le trafic via de multiples opérateurs, appliquent des règles de détection de fraude en temps réel, interrogent des bases de données de portabilité des numéros à chaque appel, et s’intègrent avec des systèmes de facturation et de CRM qui se trouvent entièrement en dehors du Session Border Controller (SBC).
C’est là que l’intégration du routage d’appels via API REST change la donne. Au lieu de s’appuyer sur des tables de routage configurées manuellement, le SBC interroge des systèmes externes pendant l’établissement de l’appel, reçoit des instructions de routage sous forme de données structurées et les applique avant de transmettre l’appel. Le résultat est un réseau vocal où les décisions de routage sont aussi dynamiques que les systèmes qui les alimentent.
Ce guide explique le fonctionnement du routage SBC via API REST, l’architecture sous-jacente, les problèmes concrets qu’il résout, et les critères à évaluer lors du choix d’un SBC pour le routage piloté par API.

Termes et concepts clés
Un glossaire de référence rapide pour les termes utilisés dans cet article.
API RESTUne interface sans état basée sur HTTP, utilisée pour interroger ou mettre à jour des données sur un système distant. Dans le routage d’appels, le SBC envoie une requête HTTP (ou HTTPS) à un service externe pendant l’établissement de l’appel et reçoit une réponse structurée (généralement en JSON) qui lui indique comment traiter l’appel.
Session Border Controller (SBC)Un équipement ou une instance logicielle à la frontière entre deux réseaux SIP, gérant la signalisation et les médias des deux côtés de manière indépendante. Pour le routage piloté par API, le SBC est le point d’insertion naturel pour les requêtes externes car il termine intégralement chaque session SIP et peut marquer une pause entre les segments d’appel.
B2BUA (Back-to-Back User Agent)Une architecture SBC dans laquelle l’équipement termine intégralement le dialogue SIP entrant et en ré-initie un nouveau, indépendant, de l’autre côté. Ce comportement de terminaison et ré-initiation crée un point d’insertion naturel où le SBC peut interroger un système externe, recevoir une réponse et appliquer les instructions de routage avant de compléter le segment sortant.
NAP (Network Access Point)Un bloc de configuration logique représentant un groupe de trunks ou un pair SIP. La logique de routage, le comportement des requêtes HTTP et les règles de basculement sont configurables par NAP, permettant un contrôle granulaire entre opérateurs et locataires.
DID (Direct Inward Dialing)Un numéro de téléphone attribué à un client ou un point de terminaison qui achemine les appels directement, sans intervention d’un opérateur. Les grands fournisseurs de services peuvent maintenir 200 000 DID ou plus, souvent avec des associations trop dynamiques pour être gérées dans des tables de routage SBC statiques.
LNP / MNP (portabilité des numéros locaux / mobiles)La capacité pour un client de conserver son numéro de téléphone lorsqu’il change d’opérateur. Une requête de portabilité (ou « dip ») retourne l’opérateur actuel d’enregistrement pour un numéro afin que les appels soient acheminés correctement après un portage.
LRN (Local Routing Number)Le numéro retourné par une base de données LNP qui identifie l’opérateur de terminaison correct pour un numéro porté. Le SBC remplace le numéro composé par le LRN aux fins de routage.
NPDI (Number Portability Database Indicator)Un indicateur transporté dans la signalisation qui informe les commutateurs en aval qu’une requête de portabilité a déjà été effectuée, empêchant les requêtes redondantes dans les environnements SS7.
STIR/SHAKENUn cadre cryptographique pour l’authentification des numéros appelants. L’opérateur d’origine signe l’appel avec un certificat numérique et un jeton PASSporT, et l’opérateur de terminaison vérifie la signature. STIR/SHAKEN est imposé par la FCC pour les fournisseurs de services américains.
PASSporTUn jeton JSON signé qui porte la revendication d’identité STIR/SHAKEN, incluant le numéro d’origine, le numéro de destination et le niveau d’attestation (A, B ou C). Le jeton est inséré dans le SIP INVITE sortant via l’en-tête Identity.
ASR (Answer-Seizure Ratio)Le ratio d’appels répondus par rapport aux appels tentés sur un trunk. Les moteurs de routage utilisent l’ASR comme l’un des critères pour le routage au moindre coût et les décisions de qualité des opérateurs.
CDR (Call Detail Record)Un enregistrement structuré capturant les données clés d’un appel : numéro appelant, numéro appelé, heures de début/fin, durée, disposition et résultat de routage. Les décisions de routage pilotées par API doivent être enregistrées dans les CDR pour l’audit et le dépannage.

Qu’est-ce que le routage d’appels SBC via API REST ?

Fondamentalement, le routage d’appels SBC via API REST est un mécanisme par lequel le Session Border Controller envoie une requête HTTP ou HTTPS à un moteur de routage externe pendant l’établissement de l’appel. Le système externe évalue les paramètres de l’appel, applique la logique métier qu’il contient, et retourne une réponse structurée (généralement en JSON) indiquant au SBC comment acheminer l’appel.
Cette approche diffère fondamentalement des deux méthodes de routage traditionnelles proposées par la plupart des SBC. Le routage statique repose sur des tables de routage configurées manuellement : « les appels vers le préfixe 1-212 passent par l’opérateur A, les appels vers le préfixe 1-310 passent par l’opérateur B. » Le routage par motifs ajoute la correspondance par expressions régulières pour des règles plus flexibles, mais la logique reste dans la configuration du SBC et nécessite des mises à jour manuelles à chaque changement.
Le routage via API REST déplace la prise de décision en dehors du SBC. Le SBC gère toujours la signalisation SIP, le contrôle des médias et l’application de la sécurité pour lesquels il a été conçu. Mais la question « où cet appel doit-il aller ? » obtient sa réponse d’un système externe qui peut accéder à des données en temps réel que le SBC ne possède pas : tarifs actuels des opérateurs, enregistrements de portabilité des numéros, scores de risque de fraude, statut du compte client, ou toute autre source de données accessible via HTTP.
La raison pour laquelle cette approche fonctionne particulièrement bien sur un SBC, par opposition à un proxy SIP, est l’architecture Back-to-Back User Agent (B2BUA). Parce que le SBC termine intégralement la session SIP entrante et en ré-initie une nouvelle vers la destination, il existe un point d’insertion naturel entre les deux segments où le SBC peut marquer une pause, interroger un système externe, recevoir une réponse et appliquer les instructions de routage avant de compléter le segment sortant. Un proxy SIP ne dispose pas de cette capacité car il transmet les messages sans terminer aucune des deux sessions.

Pourquoi les tables de routage statiques ne suffisent pas

Les tables de routage statiques atteignent leurs limites de manière prévisible, et la plupart des fournisseurs de services rencontrent au moins deux ou trois de ces situations simultanément.

Échelle

Lorsque vous routez des appels pour 200 000 numéros DID (Direct Inward Dialing) ou plus, maintenir ces associations dans la configuration locale d’un SBC standard devient irréalisable. Surtout si les données changent fréquemment, les fichiers de configuration deviennent encombrants et chaque mise à jour nécessite un rechargement ou, pire, une fenêtre de maintenance. Une API de routage externe vous permet de maintenir les associations DID-route dans une base de données dédiée et de l’interroger par appel.

Fraîcheur

Les données de portabilité des numéros, les tarifs des opérateurs et le renseignement sur la fraude changent constamment. Un numéro qui s’acheminait correctement vers l’opérateur A hier a peut-être été porté vers l’opérateur B ce matin. Un moteur de score de fraude a peut-être signalé un schéma de numéros appelants dans la dernière heure dont votre table de routage statique ne sait rien. Le routage basé sur API interroge la source faisant autorité à chaque fois, de sorte que le SBC agit toujours sur des données actuelles.

Intégration

La logique métier qui devrait informer les décisions de routage réside souvent dans des systèmes auxquels le SBC n’a pas de connexion native : plateformes de facturation déterminant quel opérateur offre le tarif le plus bas pour une destination donnée, systèmes CRM identifiant les appelants à haute valeur, moteurs de détection de fraude évaluant chaque appel en temps réel, ou systèmes de conformité appliquant les règles réglementaires comme l’attestation STIR/SHAKEN. Les API REST sont le moyen standard de communication de ces systèmes, et un SBC qui prend en charge les requêtes HTTP pendant l’établissement d’appel peut participer à cet écosystème.

Multilocation

Les fournisseurs de services gérés exploitant un seul SBC pour 50 clients ou plus ont besoin d’une logique de routage qui varie par locataire. Le locataire A route via l’opérateur X avec la signature STIR/SHAKEN. Le locataire B route via l’opérateur Y sans. Le locataire C nécessite un routage au moindre coût entre trois opérateurs. Les tables de routage statiques peuvent techniquement gérer cela, mais la complexité de configuration augmente linéairement avec le nombre de locataires, et une seule erreur de configuration peut mal acheminer le trafic d’un client entier. Un moteur de routage externe gère nativement la logique par locataire et maintient la configuration du SBC propre.

Comment fonctionne le routage d’appels via API REST : architecture

Le flux d’appels pour le routage intégré par API suit un schéma cohérent quelle que soit l’implémentation SBC spécifique. Voici le fonctionnement étape par étape.

Étape 1 : arrivée du SIP INVITE entrant

Un appel atteint le SBC sur l’un de ses Network Access Points (NAP). Le SBC extrait les paramètres de l’appel : numéro appelant, numéro appelé, NAP source ou groupe de trunks, en-têtes SIP et toute autre métadonnée disponible dans le INVITE.

Étape 2 : le script de routage déclenche une requête HTTP

Le moteur de routage du SBC, au lieu de chercher immédiatement une correspondance dans une table de routage locale, envoie une requête HTTP à un système externe. La requête inclut les paramètres d’appel dont le système externe a besoin pour prendre une décision de routage. Selon le schéma d’intégration, il peut s’agir d’une simple requête GET avec le numéro appelé dans le chemin de l’URL, ou d’une requête POST avec un corps JSON complet contenant le NAP source, le numéro appelant, le numéro appelé et tout contexte supplémentaire.

Étape 3 : le système externe traite la requête

Le moteur de routage externe, le service de score de fraude, la base de données LNP ou l’application métier reçoit la requête et applique sa logique. Cela peut signifier rechercher le numéro appelé dans une base de données de portabilité, calculer un score de risque de fraude, interroger les grilles tarifaires des opérateurs pour un routage au moindre coût, ou vérifier le statut du compte de l’appelant dans un CRM.

Étape 4 : le système externe retourne une réponse JSON

La réponse indique au SBC ce qu’il doit faire. Dans le cas le plus simple, elle fournit un numéro appelé remappé (par exemple après une requête LNP). Dans les intégrations plus complexes, elle retourne une liste priorisée de routes de destination, chacune avec un nom de NAP, une valeur de priorité et un poids pour la répartition de charge. Elle peut aussi inclure des indicateurs comme le NPDI (Number Portability Database Indicator) pour la signalisation en aval.

Étape 5 : le SBC applique les instructions de routage

Le moteur de routage reçoit la réponse, la valide et applique les instructions. Si la réponse fournit plusieurs routes, le SBC les ordonne par priorité et tente chacune en séquence jusqu’à ce que l’une réussisse. Si le système externe est injoignable ou retourne une erreur, le SBC bascule sur ses routes statiques configurées localement.

Deux schémas d’intégration

En pratique, le routage SBC via API REST se décline en deux schémas courants.

Requête simple (requête GET)

Le SBC envoie le numéro appelé à un système externe et reçoit un numéro appelant ou appelé remappé en retour. Ce schéma est typique des services de traduction de numéros, des requêtes de portabilité des numéros mobiles (MNP) et des interrogations de bases de données simples. La requête HTTP est légère, la réponse est un objet JSON unique avec un ou deux champs, et la latence est minimale.
Par exemple, le SBC envoie une requête GET à https://routing-engine.example.com/v1/lookup/14155551234 et reçoit :

{
  "callerNumber": "14155551234",
  "destinationNumber": "12125559876"
}

Le SBC remplace le numéro appelé par la valeur de la réponse et procède à la correspondance de route normale.

Composition dynamique de routes (requête POST)

Le SBC envoie le contexte complet de l’appel à un moteur de routage externe et reçoit un ensemble de routes de destination. Ce schéma est utilisé pour le routage au moindre coût, la sélection dynamique d’opérateur, la répartition de charge et tout scénario où le système externe doit évaluer plusieurs facteurs pour déterminer le meilleur chemin.
Le SBC envoie une requête POST avec le NAP source, le numéro appelant et le numéro appelé :

{
  "SRCNAP": "NAP_CARRIER_A",
  "SRCNUM": "14155551234",
  "DESTNUM": "442071234567"
}

Le système externe répond avec jusqu’à quatre routes priorisées :

{
  "npdi": "yes",
  "ported_number": "442071234567",
  "route1": "NAP_UK_PRIMARY",
  "priority": 5,
  "weight": 100,
  "route2": "NAP_UK_SECONDARY",
  "priority": 6,
  "weight": 100,
  "route3": "NAP_UK_TERTIARY",
  "priority": 7,
  "weight": 50
}

Le SBC crée des routes dynamiques à partir de cette réponse, attribue les valeurs de priorité et de poids fournies, et les combine avec les routes statiques déjà configurées. L’appel tente la route de plus haute priorité en premier et bascule vers la suivante si cette route est indisponible.

Délai d’attente et basculement

Les requêtes API REST s’effectuent pendant l’établissement de l’appel, donc la latence compte. Un SBC bien conçu vous permet de configurer le délai d’attente par requête API, généralement entre 500 millisecondes et 2 500 millisecondes. Si le système externe ne répond pas dans le délai configuré, le SBC doit avoir un comportement de basculement défini : router via les tables statiques, rejeter l’appel avec un code de réponse SIP approprié, ou appliquer une route par défaut.
Les meilleures implémentations prennent également en charge des points de terminaison API primaires et secondaires. Si l’URL primaire échoue, le SBC réessaie automatiquement contre le secondaire avant de basculer vers le routage local. Cette redondance est essentielle pour les environnements de production où le moteur de routage externe constitue un point unique de défaillance.

Cas d’usage concrets du routage SBC via API

Le routage d’appels via API REST n’est pas une capacité théorique. Voici les scénarios d’intégration que les fournisseurs de services et les entreprises déploient en production.

Détection de fraude et score d’appel en temps réel

La fraude tarifaire coûte des milliards de dollars par an à l’industrie des télécommunications. Un SBC avec routage via API REST peut interroger un moteur de détection de fraude à chaque appel, recevoir un score de risque, et acheminer, bloquer ou rediriger l’appel en fonction de ce score.
L’intégration fonctionne ainsi : le SBC envoie le numéro appelant, le numéro appelé et les métadonnées de l’appel à un service de score de fraude (tel que TransNexus ClearIP, SecureLogix ou YouMail) via HTTP. Le service évalue l’appel en fonction de son renseignement sur la fraude, incluant les sources connues d’appels automatisés, les schémas de fraude tarifaire, les anomalies de vélocité d’appels et les bases de données de numéros usurpés, et retourne un score de risque. Le script de routage du SBC agit en fonction du score : les appels à faible risque sont acheminés normalement, les appels à risque modéré sont acheminés avec journalisation, et les appels à haut risque sont bloqués ou déviés vers une file d’analyse de fraude.
Il ne s’agit pas d’un traitement par lots ni d’une analyse rétrospective. Cela se produit pendant l’établissement de l’appel, n’ajoutant que quelques centaines de millisecondes de latence, et évalue chaque appel, pas un échantillon.

Signature et vérification STIR/SHAKEN

Le mandat STIR/SHAKEN de la FCC exige que les fournisseurs de services signent cryptographiquement les appels sortants avec leur identité, fournissant au destinataire une attestation vérifiée de l’initiateur de l’appel. Le SBC joue un rôle central dans ce processus en interrogeant un service de signature STIR/SHAKEN externe pendant l’établissement de l’appel.
Lorsqu’un appel sortant transite par le SBC, le script de routage envoie une demande de signature via HTTP au service de signature STIR/SHAKEN. La requête inclut le numéro d’origine (provenant de l’en-tête P-Asserted-Identity ou From), le numéro de destination et le niveau d’attestation (A pour attestation complète, B pour partielle, C pour passerelle). Le service de signature génère un jeton PASSporT, le signe avec le certificat du fournisseur, et retourne le jeton dans un en-tête Identity que le SBC insère dans le SIP INVITE sortant.
Pour la fiabilité en production, l’implémentation prend en charge des URL de service de signature primaires et secondaires. Si le service de signature principal est injoignable après le délai d’attente configuré et les tentatives de réessai, le SBC ajoute un en-tête P-Identity-Bypass pour indiquer que la signature a été tentée mais n’était pas disponible, plutôt que de bloquer entièrement l’appel. Ce mécanisme de basculement garantit qu’une panne du service de signature n’arrête pas le trafic d’appels légitimes.

Requêtes de portabilité des numéros (LNP/MNP)

Lorsqu’un client porte son numéro de téléphone d’un opérateur à un autre, les appels vers ce numéro doivent être acheminés vers le nouvel opérateur, pas celui originellement assigné au bloc de numéros. Les bases de données de portabilité des numéros locaux (LNP) suivent ces associations, et un SBC avec routage via API REST peut les interroger en temps réel.
Pendant l’établissement de l’appel, le SBC envoie le numéro appelé à un service de requête LNP. Le service retourne le Local Routing Number (LRN), qui identifie l’opérateur correct pour le numéro porté. Le SBC remplace le numéro appelé par le LRN aux fins de routage, garantissant que l’appel atteint la bonne destination. Pour les environnements de signalisation SS7, le SBC gère également l’indicateur NPDI (Number Portability Database Indicator), qui informe les commutateurs en aval que le numéro a déjà fait l’objet d’une requête et ne nécessite pas de seconde interrogation.
Cette requête par appel élimine le besoin de maintenir une copie locale des données de portabilité des numéros, qui changent des milliers de fois par jour à travers le plan de numérotation nord-américain.

Sélection dynamique d’opérateur et routage au moindre coût

Les fournisseurs de services avec de multiples interconnexions opérateur doivent acheminer chaque appel par le chemin le plus rentable tout en maintenant la qualité. Un moteur de routage externe peut évaluer les tarifs des opérateurs en temps réel, les ratios de réponse aux tentatives (ASR) et la disponibilité des trunks, puis indiquer au SBC la route optimale.
Le SBC envoie les détails de l’appel au moteur de routage via une requête POST. Le moteur retourne une liste priorisée de NAP de destination avec des poids. Le SBC crée des routes dynamiques à partir de cette réponse et les tente dans l’ordre de priorité. Si l’opérateur de plus haute priorité rejette l’appel ou est indisponible, le SBC bascule automatiquement vers la route suivante dans la liste.
Ce schéma est particulièrement précieux pour le trafic international, où les tarifs des opérateurs peuvent varier considérablement selon la destination et l’heure de la journée, et où disposer de quatre options d’opérateur ou plus par route assure des taux d’aboutissement élevés.

Intégration CRM et systèmes métier

Les centres de contact et les entreprises utilisent le routage SBC via API pour connecter le trafic vocal à leurs systèmes métier. Le SBC interroge un CRM pendant l’établissement de l’appel pour identifier l’appelant, déterminer le statut de son compte et appliquer les règles de routage en conséquence : les appelants VIP sont acheminés vers une équipe d’agents dédiée, les comptes en retard de paiement vers le recouvrement, et les appelants au support vers la file correspondant à leur produit.
Cette intégration permet également l’enrichissement des métadonnées. Le SBC peut attacher des données issues du CRM aux en-têtes SIP ou aux enregistrements CDR afin que la plateforme réceptrice (centre de contact, PBX ou système de communications unifiées) dispose du contexte sur l’appelant avant que l’agent ne décroche.

Bonnes pratiques d’implémentation

La mise en production du routage SBC via API REST nécessite une attention particulière à quelques domaines critiques au-delà de l’intégration de base.

Définissez des délais d’attente réalistes

Les requêtes API s’effectuent pendant l’établissement de l’appel, et les appelants remarquent les retards. Configurez votre délai d’attente HTTP entre 500 et 2 000 millisecondes pour la plupart des intégrations. Pour le score de fraude et la signature STIR/SHAKEN, où la requête est obligatoire, vous pouvez étendre à 2 500 millisecondes avec un mécanisme de basculement. Au-delà, vous risquez un délai post-numérotation qui dégrade l’expérience de l’appelant.

Intégrez la redondance dans chaque intégration

Configurez des points de terminaison API primaires et secondaires pour chaque système externe. Si votre moteur de fraude fonctionne dans AWS us-east-1, votre secondaire devrait être dans une région ou un fournisseur différent. Le chemin de basculement du SBC (routage statique, route par défaut ou rejet d’appel) doit être explicitement défini et testé, pas supposé.

Utilisez la bonne étape de filtre

Un SBC bien conçu offre plusieurs points d’insertion dans le pipeline de routage. Les filtres de pré-routage (before-filters) sont l’endroit approprié pour les décisions qui doivent intervenir avant toute correspondance de route : authentification, score de fraude et validation de l’appelant. Les filtres post-correspondance (after-filters) conviennent à la modification des routes après que le SBC a déterminé son ensemble initial : sélection d’opérateur, requêtes LNP et réordonnancement basé sur les tarifs. Les filtres par route (after-remap-filters) s’appliquent aux routes individuelles après le remappage de numéros : définition d’en-têtes SIP spécifiques par opérateur, ajustement des préférences de codecs ou application de règles de normalisation spécifiques à l’opérateur.

Validez chaque réponse

Ne faites jamais aveuglément confiance à la réponse du système externe. Vérifiez le code de statut HTTP (tout code autre que 200 devrait déclencher un comportement de basculement), validez la structure JSON et vérifiez que les noms de NAP ou les destinations de route retournés existent réellement dans la configuration de votre SBC. Un nom de NAP mal orthographié dans une réponse API dirigera silencieusement les appels vers un trou noir.

Journalisez les décisions API dans les CDR

Chaque décision de routage pilotée par API devrait être enregistrée dans les Call Detail Records du SBC. Ce n’est pas optionnel. Lorsqu’un client conteste une facture, lorsque vous devez dépanner un appel mal acheminé, ou lorsque vous voulez auditer l’efficacité de votre moteur de fraude, le CDR est l’endroit où vous cherchez. Incluez la réponse du système externe (ou au minimum les champs clés) comme champs CDR personnalisés.

Gardez les charges utiles réduites et les connexions persistantes

La requête et la réponse HTTP ne devraient contenir que les champs nécessaires à la décision de routage. Des charges utiles volumineuses augmentent le temps de sérialisation et le temps de transfert réseau, deux facteurs qui s’ajoutent au délai d’établissement de l’appel. Utilisez des connexions HTTP persistantes (HTTP keep-alive) lorsque votre SBC les prend en charge pour éliminer la surcharge de la poignée de main TCP sur les requêtes répétées.

Ce qu’il faut rechercher dans un SBC avec routage via API REST

Tous les SBC ne prennent pas en charge le routage via API REST, et parmi ceux qui le font, la profondeur de l’implémentation varie considérablement. Voici ce qui distingue un simple crochet API d’un cadre d’intégration de qualité production.

Chaîne de filtres configurable avec plusieurs points d’insertion

Vous avez besoin de la capacité de déclencher des requêtes API à différentes étapes du processus de routage : avant la correspondance (pour l’authentification et les vérifications de fraude), après la correspondance (pour la modification de route et la LNP), et après le remappage (pour la manipulation d’en-têtes par route). Un SBC qui n’offre qu’un seul crochet de « routage externe » limite vos options architecturales.

Prise en charge des méthodes GET et POST

Les requêtes simples fonctionnent avec GET. La composition dynamique de routes nécessite POST avec un corps JSON. Votre SBC devrait prendre en charge les deux nativement sans contournement.

Analyse de réponse JSON avec extraction au niveau des champs

Le SBC doit être capable d’analyser une réponse JSON structurée et de mapper les champs individuels aux paramètres de routage (NAP de destination, numéro appelé, numéro appelant, priorité, poids). Si le SBC traite la réponse entière comme une valeur opaque unique, vous perdez la capacité de construire une logique de routage sophistiquée à partir de données externes.

Prise en charge de réponses multi-routes

Le système externe devrait pouvoir retourner plusieurs routes candidates dans une seule réponse, avec des valeurs de priorité et de poids pour chacune. Le SBC devrait créer des routes dynamiques à partir de ces candidats et basculer automatiquement entre eux. Les réponses à destination unique forcent le système externe à prendre la décision de basculement, ce qui ajoute de la latence et de la complexité.

Délai d’attente configurable avec basculement explicite

Vous devez pouvoir définir le délai d’attente API par intégration (pas seulement une valeur globale), définir le comportement de basculement lorsque le délai est dépassé, et configurer des points de terminaison API primaires/secondaires pour la redondance.

HTTPS/TLS pour le transport API

Les requêtes API transportent des métadonnées d’appel (numéros appelants, numéros appelés, informations source), qui sont des données sensibles. Le SBC doit prendre en charge HTTPS pour toutes les requêtes API. C’est non négociable en production.

Intégration CDR pour les décisions de routage API

Le SBC devrait journaliser les décisions de routage pilotées par API dans sa sortie CDR afin que vous puissiez auditer, dépanner et réconcilier la facturation.

Comment ProSBC gère le routage d’appels via API REST

ProSBC, le SBC logiciel de TelcoBridges, implémente le routage d’appels via API REST à travers un moteur de scripts de routage Ruby configurable avec une architecture de chaîne de filtres modulaire.
La fondation est la classe BaseRouting, que tous les scripts de routage étendent. Elle fournit un processus de routage structuré en 11 étapes : before-filters, correspondance de routes, recherches d’utilisateurs enregistrés/DNS, ordonnancement des routes, after-filters, remappage par route et after-remap filters. Les requêtes HTTP peuvent être déclenchées à n’importe quelle étape de filtre en levant une RoutingException qui met en pause le pipeline de routage, exécute la requête HTTP et reprend le pipeline avec les données de réponse disponibles pour le script.
Le moteur de routage de ProSBC expose plus de 100 paramètres d’appel par appel, incluant les numéros appelant et appelé, le NAP source, les en-têtes SIP, les informations de codecs et les détails de transport. N’importe lequel de ces paramètres peut être inclus dans une requête API vers un système externe.
Deux schémas d’intégration HTTP sont disponibles prêts à l’emploi. Un module de requête basé sur GET envoie le numéro appelé à un système externe et applique les correspondances de numéros retournées. Un module de routage dynamique basé sur POST envoie le contexte complet de l’appel (NAP source, numéro appelant, numéro appelé) et reçoit jusqu’à quatre routes de destination priorisées avec des valeurs de poids. Les deux prennent en charge les délais d’attente configurables, le transport HTTPS et les en-têtes HTTP personnalisés.
Pour les intégrations courantes, ProSBC inclut des modules pré-construits qui gèrent les détails au niveau du protocole :

  • Signature, attestation et vérification STIR/SHAKEN avec URL de service de signature primaires/secondaires et basculement P-Identity-Bypass.
  • Intégration TransNexus ClearIP pour le routage au moindre coût, le score de fraude et STIR/SHAKEN.
  • Intégration SecureLogix pour le score de risque de spam en temps réel avec application de stratégie de routage.
  • Intégration YouMail pour l’évaluation du risque de spam et d’appels automatisés.
  • Intégration Neustar pour l’authentification, la vérification STIR/SHAKEN et la gestion des redirections SIP 302.

Pour les intégrations qui ne correspondent pas à un module pré-construit, le moteur de scripts Ruby vous permet d’écrire une logique personnalisée qui interroge tout système accessible via HTTP, analyse la réponse et applique les décisions de routage en conséquence. Il ne s’agit pas de programmation généraliste, mais d’une couche de scripts configurable spécialement conçue pour les décisions de routage d’appels.
ProSBC fournit également une API de gestion RESTful pour la configuration à distance, la surveillance de l’état et la récupération des CDR, permettant aux systèmes externes à la fois d’informer et de gérer le SBC.

Foire aux questions

Qu’est-ce que le routage d’appels SBC via API REST ?

Le routage d’appels SBC via API REST est un mécanisme par lequel le Session Border Controller envoie une requête HTTP ou HTTPS à un moteur de routage externe pendant l’établissement de l’appel. Le système externe évalue les paramètres de l’appel, applique la logique métier et retourne une réponse structurée (généralement en JSON) indiquant au SBC comment acheminer l’appel. Cela déplace les décisions de routage en dehors du SBC afin qu’elles puissent refléter des données en temps réel que le SBC ne possède pas localement, comme les tarifs actuels des opérateurs, les enregistrements de portabilité, les scores de risque de fraude et le statut du compte client.

Pourquoi le routage via API REST fonctionne-t-il bien sur un SBC mais pas sur un proxy SIP ?

L’architecture Back-to-Back User Agent (B2BUA) d’un SBC termine intégralement la session SIP entrante et en ré-initie une nouvelle vers la destination. Ce comportement de terminaison et ré-initiation crée un point d’insertion naturel entre les deux segments où le SBC peut marquer une pause, interroger un système externe, recevoir une réponse et appliquer les instructions de routage avant de compléter le segment sortant. Un proxy SIP transmet les messages sans terminer aucune des deux sessions et ne dispose donc pas d’un point de pause équivalent.

Quel délai d’attente configurer pour les requêtes API REST pendant l’établissement d’appel ?

Configurez votre délai d’attente HTTP entre 500 et 2 000 millisecondes pour la plupart des intégrations. Pour le score de fraude et la signature STIR/SHAKEN, où la requête est obligatoire, vous pouvez étendre à 2 500 millisecondes avec un mécanisme de basculement. Au-delà, vous risquez un délai post-numérotation qui dégrade l’expérience de l’appelant.

Que se passe-t-il si l’API externe est injoignable pendant un appel ?

Un SBC bien conçu dispose d’un comportement de basculement explicite : router via les tables statiques, rejeter l’appel avec un code de réponse SIP approprié, ou appliquer une route par défaut. Les meilleures implémentations prennent également en charge des points de terminaison API primaires et secondaires, de sorte que si l’URL primaire échoue, le SBC réessaie automatiquement contre le secondaire avant de basculer vers le routage local. Pour STIR/SHAKEN spécifiquement, le SBC peut ajouter un en-tête P-Identity-Bypass pour indiquer que la signature a été tentée mais n’était pas disponible, plutôt que de bloquer entièrement l’appel.

Quelles intégrations ProSBC prend-il en charge prêtes à l’emploi ?

ProSBC inclut des modules pré-construits pour la signature, l’attestation et la vérification STIR/SHAKEN avec URL de service de signature primaires/secondaires et basculement P-Identity-Bypass ; TransNexus ClearIP pour le routage au moindre coût, le score de fraude et STIR/SHAKEN ; SecureLogix pour le score de risque de spam en temps réel ; YouMail pour l’évaluation du risque de spam et d’appels automatisés ; et Neustar pour l’authentification, la vérification STIR/SHAKEN et la gestion des redirections SIP 302. Pour les intégrations qui ne correspondent pas à un module pré-construit, le moteur de scripts Ruby permet une logique personnalisée interrogeant tout système accessible via HTTP.

Conclusion

Le routage d’appels via API REST transforme le SBC d’un commutateur de trafic statique en un moteur de décision de routage intelligent qui participe à l’écosystème plus large de votre réseau vocal. À mesure que les réseaux vocaux gagnent en complexité (plus d’opérateurs, plus de locataires, plus d’exigences réglementaires et plus de points d’intégration), la capacité du SBC à interroger des systèmes externes en temps réel est ce qui maintient les décisions de routage précises, actuelles et alignées avec la logique métier qui réside en dehors du SBC.

Construisez le routage d’appels via API REST sur ProSBC

ProSBC traite le routage d’appels via API REST comme une capacité de premier ordre, pas un module complémentaire. Le moteur de scripts de routage Ruby configurable expose plus de 100 paramètres d’appel par appel et vous permet de déclencher des requêtes HTTP à n’importe quelle étape de son pipeline de routage en 11 étapes : before filters, après correspondance et après remappage de numéros. Les schémas GET et POST sont pris en charge nativement, avec des délais d’attente configurables, le transport HTTPS et des points de terminaison primaires/secondaires pour la redondance.

Pour les intégrations courantes (STIR/SHAKEN, TransNexus ClearIP, SecureLogix, YouMail, Neustar), des modules pré-construits gèrent les détails au niveau du protocole. Pour tout le reste, la couche de scripts vous permet d’interroger tout système accessible via HTTP, d’analyser la réponse JSON et d’appliquer le résultat à l’appel avant qu’il ne quitte le SBC.

ProSBC Lab est une licence gratuite, permanente, de trois sessions conçue pour tester exactement ce type d’intégration. Vous pouvez le déployer sur AWS, Azure, VMware ou KVM en environ 20 minutes et commencer à construire des scripts de routage qui interrogent vos propres systèmes externes, sans appel commercial requis et sans limite de temps. Pour les déploiements en production, ProSBC commence à seulement 1,40 $ par session par an, avec toutes les capacités de routage API incluses dans la licence de base. TelcoBridges propose également une option de service entièrement géré où le déploiement, la configuration, la surveillance et le support continu sont pris en charge pour vous, à partir d’environ 500 $ par mois.

Vous préférez évaluer par vous-même d’abord ? Commencez votre essai gratuit de 30 jours.