Aller au contenu principal

Gestionnaire de Portabilité Omnitouch

Gestion de la portabilité des numéros pour les opérateurs — intégration avec les chambres de compensation, routage ENUM et événements du cycle de vie OSS/BSS, avec une interface web pour les équipes opérationnelles.

Omnitouch a déployé la portabilité des numéros dans nos réseaux, avec des intégrations en direct contre PortingXS et un support pour NPAC sur les marchés nord-américains.


Aperçu​

Le Gestionnaire de Portabilité Omnitouch gère l'ensemble du cycle de vie des opérations de portabilité des numéros : soumission et suivi des demandes auprès de la chambre de compensation, maintien d'une base de données de routage ENUM pour les numéros portés, et livraison des événements de cycle de vie au OSS/BSS de l'opérateur. Il s'intègre avec PortingXS à travers son réseau de 43 pays et avec NPAC pour les déploiements aux États-Unis.

La plateforme est conçue pour être pilotée par un OSS/BSS à grande échelle, avec une interface web pour le travail opérationnel quotidien — révision du statut des ports, gestion des cas particuliers, interrogation du routage et validation de la livraison des SMS sur les numéros portés.

Quelques points à noter avant de continuer :

  • Le routage utilise All-Call-Query contre une base de données ENUM avec des paramètres npdi/rn par RFC 4694 et 3GPP TS 23.228 — pas de tables de plage statiques, qui échouent silencieusement lors des ports suivants
  • Les incompatibilités de type de compte (la raison de rejet la plus courante) sont réessayées automatiquement sans intervention manuelle
  • La plateforme possède le flux de travail de portabilité et le routage ; l'éligibilité des comptes et le cycle de vie des services restent dans votre OSS/BSS, avec des hooks API pour les connecter
  • Pour les opérateurs utilisant OmniCRM, l'intégration OSS/BSS est pré-construite

Le Gestionnaire de Portabilité Omnitouch agit comme le point d'intégration central entre les systèmes de gestion des clients, les chambres de compensation de portabilité externes, l'infrastructure de routage DNS/ENUM et les plateformes de facturation.

Architecture d'Intégration​

Le Gestionnaire de Portabilité Omnitouch est construit autour d'une frontière claire : il possède le flux de travail de portabilité et le routage, et votre OSS/BSS possède le client. C'est intentionnel.

Les opérateurs ont déjà un BSS qui sait si un compte client est en règle, quels services ils détiennent et ce qui se passe lorsqu'un service se termine. Intégrer cette logique dans une plateforme de portabilité signifierait soit la dupliquer, soit lutter contre elle. Au lieu de cela, le Gestionnaire de Portabilité Omnitouch expose les bons hooks — les vérifications d'éligibilité appellent votre BSS pour une réponse, et les événements de cycle de vie (port complet, port sortant autorisé) notifient votre BSS pour agir. La plateforme de portabilité fait son travail ; votre BSS fait son travail.

En pratique, cela signifie :

  • Le cycle de vie des demandes de port et les interactions avec la chambre de compensation sont entièrement gérés ici
  • Le routage est mis à jour automatiquement à la fin
  • L'éligibilité des comptes, l'activation des services et la fermeture des comptes restent dans votre OSS/BSS — déclenchés par des événements de cette plateforme, non remplacés par elle

Pour les opérateurs utilisant OmniCRM, cette intégration est pré-construite. Pour les opérateurs ayant un BSS existant, l'API fournit les hooks d'événements nécessaires pour l'intégrer.

L'interface web est là pour que les équipes de portabilité gèrent les opérations quotidiennes — révision des demandes, actions sur les ports en attente, interrogation du routage et diagnostic des problèmes de livraison des SMS. À grande échelle, l'attente est que les soumissions de ports et les réponses de cycle de vie soient automatisées via l'API.


Architecture Système​

Composants Principaux​

  1. Gestionnaire de Portabilité — Orchestration des flux de travail de portabilité et gestion des interactions avec la chambre de compensation de portabilité numérique
  2. Serveur DNS/ENUM — Gestion du routage des appels et de la résolution des numéros
  3. API & Interface Web — Accès programmatique et utilisateur aux fonctions de portabilité

Points d'Intégration​

  • OmniCRM — Gestion de la relation client et provisionnement de services
  • Plateforme de Facturation — Gestion de la facturation et des revenus (CGrateS)
  • PortingXS — Chambre de compensation de portabilité internationale
  • NPAC — Chambre de compensation de portabilité aux États-Unis
  • Infrastructure DNS/ENUM — Routage des appels et résolution des numéros

Gestionnaire de Portabilité​

Flux de Travail de Port-In​

  1. Initiation de la Demande — La demande de port-in est créée via l'interface web ou l'API
  2. Soumission à la Chambre de Compensation — Le Gestionnaire de Portabilité soumet la demande à la chambre de compensation appropriée (PortingXS pour les marchés internationaux, NPAC pour les États-Unis)
  3. Suivi de Statut — Le système suit les changements d'état via le flux d'événements de la chambre de compensation
  4. Provisionnement ENUM — Lors de l'achèvement réussi du port, la base de données de routage est automatiquement mise à jour
  5. Activation du Service — Le service OmniCRM est activé et la facturation commence
  6. Intégration de Facturation — La plateforme de facturation est notifiée pour commencer à facturer

Détection Automatique de l'Opérateur Donneur​

Lorsqu'une demande de port-in est soumise sans un donornetworkoperator, le Gestionnaire de Portabilité Omnitouch détermine automatiquement l'opérateur donneur à partir de la plage de numéros. C'est le défaut recommandé pour la plupart des soumissions — le code opérateur n'a besoin d'être spécifié explicitement que lorsque le résultat de la détection automatique doit être remplacé.

Résoumission Automatique du Type de Compte​

Une raison de rejet courante des opérateurs donneurs est Type de Compte Incorrect (code de rejet 35) — le drapeau Prépayé/Postpayé dans la demande ne correspond pas aux enregistrements du donneur. Plutôt que d'exiger une intervention manuelle, le Gestionnaire de Portabilité réessaie automatiquement la demande avec le type de compte basculé (Prépayé → Postpayé ou vice versa) lorsque ce rejet est reçu.

La résoumission crée un nouvel enregistrement de port. Dans l'interface web, l'ID de port d'origine est affiché en vert sur le nouvel enregistrement afin que l'historique soit traçable. Via l'API, GET /np_api/PortIn/{msgidentifier} résout de manière transparente vers l'enregistrement actif si une résoumission a eu lieu.

Flux de Travail de Port-Out​

  1. Réception de la Demande — La demande de port-out est reçue de l'opérateur gagnant via la chambre de compensation
  2. Validation du Service — Le système valide que le service existe et est éligible
  3. Notification CRM — OmniCRM est mis à jour avec le statut de port-out
  4. Déprovisionnement ENUM — La base de données de routage est mise à jour pour acheminer les appels vers l'opérateur gagnant
  5. Résiliation du Service — Au moment prévu du port : service désactivé dans OmniCRM, facture finale générée, tous les services associés fermés

Intégrations avec les Chambres de Compensation​

PortingXS​

PortingXS (PXS) est une chambre de compensation de portabilité numérique internationale largement adoptée, opérant dans 43 pays à travers quatre régions :

RégionPays
Amériques & CaraïbesAntigua & Barbuda, Bahamas, Barbade, Îles Caïmans, Curaçao, Dominique, Grenade, Guyana, Jamaïque, Panama, Sainte-Lucie, Saint-Kitts & Nevis, Saint-Martin, Saint-Vincent & les Grenadines, Trinité & Tobago, Îles Turques & Caïques
EuropeBelgique, Bosnie & Herzégovine, Gibraltar, Guernesey, Irlande, Île de Man, Jersey, Kosovo, Monténégro, Slovénie, Pays-Bas, Ukraine
AfriqueAlgérie, Bénin, Ghana, Kenya, Namibie, Nigéria, Rwanda, Sénégal, Seychelles, Togo
Moyen-Orient & AsieArménie, Bangladesh, Brunei, Irak, Sri Lanka

Le Gestionnaire de Portabilité s'intègre via une API REST/SOAP et gère l'ensemble du cycle de vie du port à travers une machine d'état.

Fonctionnalités principales :

  • Gestion des ports entrants/sortants avec un flux de travail de machine d'état complet
  • Mises à jour de statut en temps réel via l'historique des événements
  • Suivi des messages SOA/ENUM XML
  • Base de données de routage centralisée pour ENUM (IMS) et MAP/INAP/CAP (All Call Query)
  • Surcharge manuelle du routage

Points de terminaison API :

MéthodePoint de terminaisonDescription
POST/PortIn/createSoumettre une nouvelle demande de port-in
GET/PortIn/listLister toutes les demandes de port-in
GET/PortIn/{msgidentifier}Obtenir l'historique des événements
POST/PortIn/{msgidentifier}Envoyer une instruction pour procéder
DELETE/PortIn/{msgidentifier}Annuler la demande de port
GET/PortOut/listLister les demandes de port-out
POST/PortOut/{msgidentifier}Autoriser le port-out
DELETE/PortOut/{msgidentifier}Rejeter le port-out
GET/route/{phone_number}Interroger le routage actuel
POST/route/{msisdn}/{operator}/{type}Mettre à jour le routage manuellement

Les codes opérateurs, le format des numéros et les types de comptes sont configurés par déploiement.

NPAC​

Pour les opérations aux États-Unis, le Gestionnaire de Portabilité Omnitouch s'intègre avec le Centre d'Administration de la Portabilité Numérique (NPAC) :

  • Création et gestion des Ordres de Service NPAC (SO)
  • Interactions avec le Fournisseur de Service Local (LSP)
  • Gestion de la Version d'Abonnement (SV)
  • Synchronisation de statut en temps réel
  • Conformité avec les réglementations et délais de portabilité aux États-Unis

Serveur DNS / ENUM​

Le serveur DNS fournit des services DNS complets pour les réseaux de télécommunications, prenant en charge les services de paquets standard, les scénarios de roaming, IMS et le routage des appels de portabilité numérique.

Zones de Réseau 3GPP​

Zone EPC (epc.mncXXX.mccYYY.3gppnetwork.org) — Utilisée pour le signalement Diameter local et les scénarios de roaming. Permet aux réseaux visités de découvrir les ressources PGW locales. Contient des enregistrements SRV et NAPTR pour la découverte de pairs Diameter.

Zone IMS (ims.mncXXX.mccYYY.3gppnetwork.org) — Prend en charge les opérations du Système Multimédia IP. Routage du signal SIP et localisation des ressources CSCF pour les abonnés IMS. Prend en charge VoLTE et RCS.

Zone 3GPP Publique (mncXXX.mccYYY.pub.3gppnetwork.org) — Fournit un accès externe aux services destinés aux abonnés : découverte du serveur XCAP, localisation du BSF pour GBA, et découverte de l'ePDG pour VoWiFi.

ENUM pour la Portabilité Numérique​

Le serveur DNS implémente les services ENUM RFC 3761 en utilisant la zone e164enum.net.

All-Call-Query (ACQ) : Chaque appel interroge la base de données ENUM pour déterminer le routage actuel.

Flux de Requête ENUM :

  1. Le système appelant extrait le numéro composé (par exemple, +1-555-0100)
  2. Le numéro est converti au format ENUM (0.0.1.0.5.5.5.1.e164.arpa)
  3. Une requête DNS NAPTR est émise au serveur ENUM
  4. Le serveur renvoie les informations de routage : identifiant de l'opérateur, numéro de routage (RN), fournisseur de services, balises de routage personnalisées

OmniCall — la plateforme IMS et MSC d'Omnitouch — gère le flux ACQ ENUM par défaut. Aucun travail d'intégration supplémentaire n'est requis ; OmniCall interroge le serveur ENUM à chaque appel et route en fonction de la réponse NAPTR. Pour les opérateurs utilisant OmniCall aux côtés du Gestionnaire de Portabilité Omnitouch, le routage des numéros portés est correct dès qu'un port est terminé, sans intervention manuelle ni maintenance de table de routage séparée requise.

Approche de Routage pour les Numéros Portés​

L'approche définie dans RFC 4694 et adoptée par 3GPP dans TS 23.228 §4.18 pour IMS est All-Call-Query contre une base de données ENUM. Chaque appel interroge ENUM pour le routage actuel du numéro composé spécifique, et la réponse contient directement le numéro de routage de l'opérateur en service. C'est ainsi que la portabilité des numéros est censée fonctionner dans un réseau IMS — décisions de routage basées sur des données en temps réel par numéro, et non sur des tables de plage qui nécessitent une maintenance manuelle et deviennent obsolètes au fur et à mesure que les numéros sont portés et reportés.

Le Gestionnaire de Portabilité Omnitouch met cela en œuvre entièrement. Lorsqu'un port est terminé, des enregistrements NAPTR sont automatiquement poussés vers le serveur ENUM pour chaque numéro dans la plage. La réponse contient deux paramètres :

  • rn — le numéro de routage de l'opérateur en service actuel. Le commutateur d'origine route vers cela, et non vers l'opérateur d'origine du numéro composé.
  • npdi — signale que la recherche NP est terminée. Les nœuds en aval ne doivent pas re-interroger, ce qui empêche les boucles.

Lorsqu'un port est terminé, le Gestionnaire de Portabilité Omnitouch pousse automatiquement un enregistrement NAPTR vers le serveur ENUM pour chaque numéro dans la plage portée :

0.0.1.0.5.5.5.1.e164.arpa. NAPTR 10 10 "u" "E2U+pstn:tel"
"!(^.*$)!sip:\1;npdi;rn=<routing_number>@<carrier_ims_domain>!"

Pour les numéros non portés, npdi est défini sans rn — confirmant que la recherche a été effectuée et que le numéro n'a pas bougé. Dans tous les cas, le cœur IMS d'origine (S-CSCF/BGCF) obtient une réponse définitive du DNS et route sans aucun autre accès à la base de données.

Le routage reste correct à travers plusieurs ports sans aucune intervention manuelle. Le serveur ENUM est toujours la seule source de vérité.


Intégration de la Plateforme de Facturation​

Port-In​

Lorsqu'un numéro est porté avec succès :

  1. La passerelle envoie une notification d'activation à la plateforme de facturation
  2. La plateforme de facturation crée un compte abonné et des profils de tarification
  3. Les frais récurrents et la tarification d'utilisation commencent immédiatement
  4. La première facture peut être proratisée en fonction de la date de fin de port

Port-Out​

Lorsqu'un numéro est porté :

  1. La passerelle envoie une notification de désactivation à la plateforme de facturation
  2. La facturation en temps réel s'arrête à l'heure de port prévue
  3. La facture finale est générée : frais récurrents proratisés, utilisation en souffrance, frais de résiliation anticipée (le cas échéant), crédits/remboursements
  4. Le compte abonné est fermé avec le code de raison de portabilité

Flux de Travail Opérationnels​

Opérations Quotidiennes​

  1. Revue de Statut Matinale — Vérifier les activités de portabilité de la nuit et les mises à jour de la chambre de compensation
  2. Traitement des Éléments d'Action — Gérer les approbations en attente et les confirmations des clients
  3. Résolution des Erreurs — Enquêter et résoudre les ports échoués ou rejetés
  4. Communication avec les Clients — Coordonner avec les clients sur les dates de port à venir

Surveillance​

Le Gestionnaire de Portabilité Omnitouch fournit une surveillance automatisée pour :

  • Connectivité API de la chambre de compensation
  • Échecs de provisionnement ENUM
  • Erreurs de synchronisation CRM
  • Échecs d'intégration de la plateforme de facturation
  • Taux de rejet de portabilité anormaux

Conformité et Audit​

  • Toutes les activités de portabilité sont enregistrées avec des pistes d'audit complètes
  • Conformité avec les délais réglementaires de portabilité
  • Enregistrements de communication inter-opérateurs conservés
  • Réconciliation financière avec les frais de la chambre de compensation

Problèmes Courants​

Port bloqué en état en attente — Vérifiez la connectivité API de la chambre de compensation, vérifiez les informations client, examinez le journal des événements pour la raison du rejet.

Routage non mis à jour après le port — Confirmez que l'état du port est Number_Ported. Utilisez la Requête de Routage pour vérifier l'état actuel. Utilisez le Push Routing pour corriger manuellement si nécessaire.

Échecs de validation des SMS — Développez la ligne de résultat pour collecter l'ID du message et l'ID de transaction. Fournissez-les au fournisseur CPaaS lors de l'escalade.


Guide de l'Utilisateur​

Commencer​

L'accès est contrôlé par une clé API. Lors du premier chargement, vous serez invité avec une modal Entrer la Clé API. Entrez votre clé API assignée et cliquez sur Enregistrer les Modifications. Les identifiants sont stockés dans le localStorage du navigateur et persistent entre les sessions. Pour mettre à jour votre clé à tout moment, cliquez sur Changer la Clé API dans le coin supérieur droit de la barre de navigation.

Votre niveau de compte détermine quelles fonctionnalités sont disponibles :

NiveauAccès
AdminAccès complet à toutes les fonctionnalités
Utilisateur PXSGestion des ports IN/OUT et routage
Lecture SeuleRequêtes de routage et validation des SMS uniquement

Demande de Portabilité — Soumettre une nouvelle demande de port-in

Port IN — Voir et gérer toutes les demandes de port-in

Port OUT — Examiner et répondre aux demandes de port-out d'autres opérateurs

Requête de Routage — Rechercher le routage actuel pour n'importe quel numéro

Push Routing — Provisionner manuellement un enregistrement de routage

Valider le Routage SMS — Envoyer des messages SMS de test à travers plusieurs fournisseurs CPaaS

Changer la Clé API — Mettre à jour vos identifiants (bouton, en haut à droite)


Nouvelle Demande de Portabilité​

Cliquez sur Demande de Portabilité dans la navigation pour ouvrir le formulaire de soumission.

Formulaire de Nouvelle Demande de Portabilité

ChampDescription
Opérateur Réseau DonneurCode opérateur de l'opérateur donneur. Sélectionnez Auto pour la détection automatique à partir de la plage de numéros.
Contourner le Temps de RefroidissementDéfinir sur Vrai uniquement lorsque le client a explicitement renoncé à la période de refroidissement. Par défaut : Faux.
Type de ComptePrépayé ou Postpayé
Type de NumérosMobile ou Fixe
Premier NuméroDébut de la plage de numéros (format local, sans code pays)
Dernier NuméroFin de la plage — identique au Premier Numéro pour un port unique
Total de NumérosCalculé automatiquement
Email (Contact)Email de contact pour cette demande
Numéro d'AutorisationNuméro d'autorisation du client — se remplit automatiquement à partir du Premier Numéro s'il est laissé vide

Cliquez sur Soumettre pour créer la demande. Un message de succès affichera l'identifiant de message attribué.


Tableau de Bord Port IN​

Tableau de Bord Port IN

ColonneDescription
IDID de base de données interne
Port IDIdentifiant de message de la chambre de compensation
ÉtatÉtat actuel de la portabilité
DemandéHorodatage de soumission
Mis à JourHorodatage de la dernière mise à jour
OpérateurCode opérateur du réseau donneur
CibleNuméro de contact/autorisation
TypeMobile ou Fixe
Type de ServiceBouton Historique des Événements
ActionsBoutons d'action dépendants de l'état

Lorsqu'un port a été ré soumis (par exemple, après une incompatibilité de type de compte), l'ID de port d'origine est affiché en vert. Lorsqu'un port a été rejeté, la raison du rejet est affichée en rouge.

États de Port-In :

ÉtatSignification
Waiting_for_Authorisation_ResponseDemande soumise, en attente de réponse du donneur
Waiting_for_InstructionDonneur autorisé — confirmer pour procéder
Waiting_for_Instruction_ResponseInstruction envoyée, en attente d'accusé de réception
Waiting_for_Ported_ResponseExécution du port en cours
Number_Ported / Number_Ported_CompletePort complet, routage mis à jour
AbortedAnnulé
RejectedLe donneur a rejeté la demande
TimeOutLa demande a expiré

Actions :

  • Waiting_for_Authorisation_Response — Bouton Annuler (rouge) annule la demande
  • Waiting_for_Instruction — Bouton Instruction (vert) confirme que le port doit se poursuivre

Historique des Événements :

Cliquez sur Historique des Événements sur n'importe quelle ligne pour ouvrir la modal de journal des événements.

Modal d&#39;historique des événements Port IN

  • Événements — liste accordéon de chaque transition d'état avec type d'événement et détail du journal
  • Corps XML — liens de téléchargement pour tous les messages XML SOA/ENUM, divisés en sortants (Output_XML) et entrants (Input_XML)
  • Données Détails — dump JSON complet de l'enregistrement de port

Tableau de Bord Port OUT​

Tableau de Bord Port OUT

ColonneDescription
IDID de base de données interne
Port IDIdentifiant de message de la chambre de compensation
ÉtatÉtat actuel de la portabilité
DemandéHorodatage de soumission
Mis à JourHorodatage de la dernière mise à jour
OpérateurCode opérateur destinataire (gagnant)
CiblesPlages de numéros étant portées
Type de ServiceBouton Journal des Événements
ActionsBoutons Autoriser ou Rejeter

Actions (Waiting_for_Authorisation_Response):

  • Autoriser (vert) — Approuve le port-out et notifie l'opérateur gagnant
  • Rejeter (rouge) — Nier la demande. Utiliser uniquement pour des raisons légitimes : incompatibilité de compte, solde impayé, demande frauduleuse ou numéro inactif.

Cliquez sur Journal des Événements sur n'importe quelle ligne pour voir l'échange de messages complet.

Modal d&#39;historique des événements Port OUT


Requête de Routage​

Entrez le numéro local (le code pays est ajouté automatiquement) et cliquez sur Vérifier le Routage.

Résultat de la requête de routage

La réponse est le résultat brut de CGrateS ProcessEvent :

ChampDescription
Event.E164AddressLe numéro interrogé
Event.NAPTRAddressChaîne de routage NAPTR — domaine IMS ou numéro de routage
Event.NAPTROrderValeur d'ordre NAPTR
Event.NAPTRPreferenceValeur de préférence NAPTR
MatchedProfilesProfil d'attribut CGrateS correspondant pour ce numéro

Push Routing​

Formulaire de Push Routing

ChampDescription
Numéro de Téléphone (Sans code pays)Numéro local — le code pays est ajouté automatiquement
OpérateurCode opérateur vers lequel acheminer ce numéro
TypeMobile ou Fixe

Utiliser pour des corrections d'urgence, provisionnement initial ou lorsque le routage automatique après le port échoue.


Valider le Routage SMS​

Validation du routage SMS

Le cas d'utilisation principal de cet outil est de valider que les messages SMS A2P (application-à-personne) des fournisseurs CPaaS externes sont correctement routés vers les numéros portés. Lorsqu'un numéro est porté, le nouvel opérateur doit être correctement provisionné dans les tables de routage de chaque fournisseur — cela ne se produit pas toujours automatiquement, et sans un outil comme celui-ci, il n'y a pas de moyen facile de détecter le problème.

En envoyant un message de test de chaque fournisseur à un numéro porté, vous pouvez confirmer quels fournisseurs ont mis à jour leur routage et lesquels ne l'ont pas fait. Les fournisseurs qui renvoient une erreur ou échouent à livrer peuvent être escaladés directement en utilisant les informations de débogage dans le résultat.

Valide que le fournisseur a accepté la soumission du message — ne confirme pas la livraison au terminal. Utilisez un appareil de test ou vérifiez le journal SMSc pour confirmer la livraison.

  1. Entrez le numéro de téléphone cible (généralement un numéro récemment porté sous test)
  2. Sélectionnez un ou plusieurs fournisseurs A2P à tester
  3. Cliquez sur Vérifier le Routage

Le numéro cible recevra un SMS de chaque fournisseur sélectionné avec le corps Test from {ProviderName}. Les résultats montrent vert (accepté) ou rouge (erreur). Cliquez sur n'importe quelle ligne de résultat pour développer les informations de débogage — nécessaires lors de l'escalade des problèmes de routage aux fournisseurs CPaaS.

Fournisseurs Disponibles :

FournisseurRemarques
NativeLivraison SMPP de la plateforme native
CarrierADirect opérateur
CarrierBDirect opérateur
SinchFournisseur CPaaS
TwilioOmnitouch a un contact d'escalade direct
VonageOmnitouch a un contact d'escalade direct
TelnyxClient Omnitouch — contact direct de l'équipe
PilvoOmnitouch a un contact d'escalade direct

Swagger / Explorateur API​

Le Gestionnaire de Portabilité Omnitouch expose une interface Swagger en direct à /np_api/doc.

Swagger UI — aperçu des espaces de noms

Swagger UI — aperçu de l&#39;espace de noms de routage

Swagger UI — PortIn create

Le schéma OpenAPI est disponible à /np_api/swagger.json pour importation dans Postman ou d'autres outils API.


Référence API​

URL de Base​

/np_api/

Documentation interactive disponible à /np_api/doc.

Authentification​

Voir le Guide de l'Administrateur pour la configuration de l'authentification et la gestion des identifiants.

NiveauCapacités
adminAccès complet à tous les points de terminaison
pxsGestion des ports IN/OUT et routage
read_onlyValidation et points de terminaison d'informations sur les numéros uniquement

Points de Terminaison Port-In​

Créer une Demande de Port-In​

POST /np_api/PortIn/create — Auth: admin, pxs

ChampTypeRequisDescription
donornetworkoperatorstringNonCode opérateur donneur — laissez vide pour la détection automatique
emailstringOuiEmail de contact
overridecooloffbooleanNonPasser la période de refroidissement réglementaire (par défaut : faux)
contacttelephonenumberstringOuiNuméro d'autorisation du client
Type_of_NumbersstringOui"mobile" ou "fixed"
telephonenumberseriestartstringOuiPremier numéro dans la plage
telephonenumberserieendstringOuiDernier numéro dans la plage
AccountTypestringOui"Prepaid" ou "Postpaid"
PortingStateintegerNonRemplacement de l'état initial (par défaut : 0)
curl -X POST https://your-host/np_api/PortIn/create \
-u "your_username:your_api_key" \
-H "Content-Type: application/json" \
-d '{
"donornetworkoperator": "DONOR",
"email": "ops@example.com",
"overridecooloff": false,
"contacttelephonenumber": "5550100",
"Type_of_Numbers": "mobile",
"telephonenumberseriestart": "5550100",
"telephonenumberserieend": "5550199",
"AccountType": "Prepaid"
}'

Réponse :

{
"result": "success",
"msgidentifier": "XX202501-CARR-00001",
"message": "Demande de port-in créée avec succès"
}

Lister les Demandes de Port-In​

GET /np_api/PortIn/list — Auth: admin, pxs

Renvoie jusqu'à 30 enregistrements ordonnés par les plus récents.

Obtenir une Demande de Port-In​

GET /np_api/PortIn/{msgidentifier} — Auth: admin, pxs

Renvoie l'enregistrement complet, y compris l'historique des événements et les plages de numéros. Si remplacé par une résoumission, renvoie de manière transparente l'enregistrement le plus récent.

Structure de la réponse :

{
"port_in_id": 42,
"msgidentifier": "XX202501-CARR-00001",
"PortingState": 2,
"PortingStateString": "Waiting_for_Instruction",
"donornetworkoperator": "DONOR",
"email": "ops@example.com",
"contacttelephonenumber": "5550100",
"Type_of_Numbers": "mobile",
"AccountType": "Prepaid",
"overridecooloff": false,
"submission_timestamp": "2025-01-15T10:30:00",
"update_timestamp": "2025-01-15T14:22:00",
"failure_reason": null,
"original_porting_request": null,
"phone_number_ranges": [
{ "telephonenumberseriestart": "5550100", "telephonenumberserieend": "5550199" }
],
"events": [
{
"porting_in_event_id": 1,
"msgtype": "PortingRequest",
"direction": 0,
"eventlog": "Soumis à la chambre de compensation",
"submission_timestamp": "2025-01-15T10:30:00Z"
}
]
}

Valeurs d'état de portabilité :

ValeurÉtat
0NoPort
1Waiting_for_Authorisation_Response
2Waiting_for_Instruction
3Waiting_for_Instruction_Response
10Waiting_for_Ported_Response
11Waiting_for_Change_Response
20Number_Ported
30Number_Ported_Complete
97TimeOut
98Aborted
99Rejected

Codes de raison de rejet (failure_reason) :

CodeRaison
0Inconnu
31Compte Suspendu
32Problème de Compte
33Problème de Facture
34Dépôt Dépassé
35Type de Compte Incorrect
36Signalé Comme Volé ou Perdu
37Spécial
38Pas de Temps de Refroidissement (Rapatriement)
39Problème de Facture Prépayée
99Rejet Général

Envoyer une Instruction (Confirmer le Port)​

POST /np_api/PortIn/{msgidentifier} — Auth: admin, pxs

Confirme que le port doit se poursuivre. Valide uniquement lorsque PortingState est Waiting_for_Instruction (2).

Annuler le Port-In​

DELETE /np_api/PortIn/{msgidentifier} — Auth: admin, pxs

Annule un port-in. Valide dans les états : Waiting_for_Authorisation_Response, Waiting_for_Instruction, Waiting_for_Authorisation.

Lister les Fichiers XML​

GET /np_api/PortIn/get_xml_list/{msgidentifier} — Auth: admin, pxs

Renvoie un tableau de noms de fichiers XML pour un port.

Télécharger un Fichier XML​

GET /np_api/PortIn/get_xml/{folder}/{filename} — Auth: admin, pxs

folder est output_XML (envoyé) ou input_XML (reçu).


Points de Terminaison Port-Out​

Lister les Demandes de Port-Out​

GET /np_api/PortOut/list — Auth: admin, pxs

Obtenir une Demande de Port-Out​

GET /np_api/PortOut/{msgidentifier} — Auth: admin, pxs

Structure de la réponse :

{
"port_out_id": 99,
"msgidentifier": "XX202501-DONOR-00001",
"PortingState": 1,
"PortingStateString": "Waiting_for_Authorisation_Response",
"recipientnetworkoperator": "DONOR",
"Type_of_Numbers": "mobile",
"submission_timestamp": "2025-01-16T09:15:00",
"update_timestamp": "2025-01-16T09:15:00",
"phone_number_ranges": [
{ "telephonenumberseriestart": "5550200", "telephonenumberserieend": "5550249" }
],
"events": []
}

Autoriser le Port-Out​

POST /np_api/PortOut/{msgidentifier} — Auth: admin, pxs

Approuve le port-out et notifie l'opérateur gagnant.

Rejeter le Port-Out​

DELETE /np_api/PortOut/{msgidentifier} — Auth: admin, pxs

Rejette le port-out. Utiliser uniquement pour des raisons légitimes : incompatibilité de compte, solde impayé, demande frauduleuse ou numéro inactif.


Points de Terminaison de Routage​

Interroger le Routage Numérique​

GET /np_api/route/{msisdn} — Auth: admin, pxs

Renvoie l'enregistrement de routage CGrateS, y compris l'adresse NAPTR, l'ordre, la préférence et les données d'abonnement HSS. msisdn est le numéro complet E.164 sans le + initial.

Pousser la Mise à Jour de Routage​

POST /np_api/route/{msisdn}/{operator}/{type} — Auth: admin, pxs

Provisionne manuellement un enregistrement de routage. operator est spécifique au déploiement. type est mobile ou fixed.

Supprimer l'Enregistrement de Routage​

DELETE /np_api/route/{msisdn} — Auth: admin, pxs

Supprime un enregistrement de routage.

Interroger Seulement HSS​

GET /np_api/route/hss_route/{msisdn} — Auth: admin, pxs

Renvoie uniquement les données d'abonnement HSS, sans recherche dans la base de données de routage.


Points de Terminaison de Validation​

Validation du Routage SMS​

POST /np_api/validate/sms_validate — Auth: admin, pxs, read_only

Envoie un SMS de test via un fournisseur CPaaS spécifié. Le préfixe du code pays est ajouté automatiquement.

ChampTypeDescription
phone_numberstringNuméro cible
OperatorstringNative, CarrierA, CarrierB, Sinch, Twilio, Vonage, Telnyx, Pilvo, ClickSend
apiKeystringClé API du fournisseur (si nécessaire)

Réponse :

{
"result": "Sent",
"x-message-id": "SM1234567890abcdef",
"x-transaction-id": "8a2c925809bb403f01",
"x-message-timestamp": "2025-01-15T10:30:00.000Z",
"x-provider": "Twilio",
"x-provider-response": "..."
}

Informations sur le Numéro​

GET /np_api/info/{msisdn} — Auth: admin, pxs, read_only

Interroge la chambre de compensation pour obtenir des informations sur le numéro. Renvoie la réponse brute de la chambre de compensation sous forme de JSON.


Terminer un Numéro​

DELETE /np_api/terminate/{msisdn}/{type_of_numbers} — Auth: admin, pxs

Soumet une demande de résiliation à la chambre de compensation et supprime l'enregistrement de routage. type_of_numbers est mobile ou fixed.


Récepteur XML de la Chambre de Compensation​

POST /np_api/{deployment_prefix}/recv/ — Auth: pxs (identifiants de la chambre de compensation)

Point de terminaison interne utilisé par la chambre de compensation pour livrer des messages XML entrants. Pas pour un usage direct. Le préfixe de déploiement est configuré par installation.

Type de MessageAction
authorisation_requestCrée un nouvel enregistrement de port-out
authorisation_responseMet à jour l'état de port-in ; réessaie avec le type de compte basculé sur le code 35
instruction_responseAvance le port-in à Waiting_for_Ported_Response
portedMarque le port comme complet, met à jour la base de données de routage, envoie une notification de bienvenue
timedoutDéfinit l'état sur TimeOut
terminatedSupprime l'enregistrement de routage

Réponses d'Erreur​

{
"result": "Exception raised in ...",
"Reason": "détails de l'erreur"
}
StatutSignification
200Succès
401Échec de l'authentification
403Fichier non trouvé (téléchargement XML)
500Erreur interne — vérifiez le champ Reason