Gestionnaire de Portabilité Omnitouch
Gestion de la portabilité des numéros pour les opérateurs — intégration de la chambre 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é de 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 à l'OSS/BSS de l'opérateur. Il s'intègre à 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 de l'état des ports, gestion des cas particuliers, interrogation du routage et validation de la livraison 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/rnselon la RFC 4694 et 3GPP TS 23.228 — pas de tables de plages statiques, qui échouent silencieusement sur les 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é du compte et le cycle de vie du service 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 conçu 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. Cela 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. Construire 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 obtenir 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 à l'achèvement
- L'éligibilité du compte, l'activation du service et la fermeture du compte restent dans votre OSS/BSS — déclenchées par des événements de cette plateforme, pas remplacées par elle
Pour les opérateurs utilisant OmniCRM, cette intégration est préconstruite. Pour les opérateurs avec 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 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
- Gestionnaire de Portabilité — Orchestration des flux de travail de portabilité et gestion des interactions avec la chambre de compensation de portabilité de numéros
- Serveur DNS/ENUM — Gestion du routage des appels et de la résolution des numéros
- API & Interface Web — Fournit un 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é de numéros internationale
- NPAC — Chambre de compensation de portabilité de numéros aux États-Unis
- Infrastructure DNS/ENUM — Routage des appels et résolution des numéros
Gestionnaire de Portabilité
Flux de Travail de Port-In
- Initiation de la Demande — La demande de port-in est créée via l'interface web ou l'API
- 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)
- Suivi de l'État — Le système suit les changements d'état via le flux d'événements de la chambre de compensation
- Provisionnement ENUM — À l'achèvement réussi du port, la base de données de routage est automatiquement mise à jour
- Activation du Service — Le service OmniCRM est activé et la facturation commence
- 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é.
Resoumission Automatique de 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 dossiers 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 resoumission crée un nouvel enregistrement de port. Dans l'interface web, l'ID de port original 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 l'enregistrement actif si une resoumission a eu lieu.
Flux de Travail de Port-Out
- Réception de la Demande — La demande de port-out est reçue de l'opérateur gagnant via la chambre de compensation
- Validation du Service — Le système valide que le service existe et est éligible
- Notification CRM — OmniCRM est mis à jour avec l'état de port-out
- Déprovisionnement ENUM — La base de données de routage est mise à jour pour acheminer les appels vers l'opérateur gagnant
- 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 de la Chambre de Compensation
PortingXS
PortingXS (PXS) est une chambre de compensation de portabilité de numéros internationale largement adoptée opérant dans 43 pays à travers quatre régions :
| Région | Pays |
|---|---|
| Amériques & Caraïbes | Antigua & 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 |
| Europe | Belgique, Bosnie & Herzégovine, Gibraltar, Guernesey, Irlande, Île de Man, Jersey, Kosovo, Monténégro, Slovénie, Pays-Bas, Ukraine |
| Afrique | Algérie, Bénin, Ghana, Kenya, Namibie, Nigéria, Rwanda, Sénégal, Seychelles, Togo |
| Moyen-Orient & Asie | Armé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.
Capacités principales :
- Gestion de Port-In/Out avec un flux de travail de machine d'état complet
- Mises à jour d'état en temps réel via l'historique des événements
- Suivi des messages XML SOA/ENUM
- Base de données de routage centralisée pour ENUM (IMS) et MAP/INAP/CAP (All Call Query)
- Surcharge manuelle de routage
Points de terminaison API :
| Méthode | Point de terminaison | Description |
|---|---|---|
| POST | /PortIn/create | Soumettre une nouvelle demande de port-in |
| GET | /PortIn/list | Lister 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} | Abandonner la demande de port |
| GET | /PortOut/list | Lister 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 au Centre d'Administration de la Portabilité des Numéros (NPAC) :
- Création et gestion des Ordres de Service NPAC (SO)
- Interactions avec les Fournisseurs de Services Locaux (LSP)
- Gestion des Versions d'Abonnement (SV)
- Synchronisation d'état 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é de numéros.
Zones 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 des 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 de BSF pour GBA et découverte de ePDG pour VoWiFi.
ENUM pour la Portabilité de Numéros
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 :
- Le système appelant extrait le numéro composé (par exemple, +1-555-0100)
- Le numéro est converti au format ENUM (
0.0.1.0.5.5.5.1.e164.arpa) - Une requête DNS NAPTR est émise au serveur ENUM
- Le serveur renvoie des 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 de manière native. 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 complété, 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, pas des tables de plages qui nécessitent une maintenance manuelle et deviennent obsolètes à mesure que les numéros sont portés et reportés.
Le Gestionnaire de Portabilité Omnitouch met cela en œuvre complètement. Lorsqu'un port est complété, les enregistrements NAPTR sont automatiquement poussés vers le serveur ENUM pour chaque numéro de 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, pas 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 complété, le Gestionnaire de Portabilité Omnitouch pousse automatiquement un enregistrement NAPTR vers le serveur ENUM pour chaque numéro de 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 été déplacé. 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 :
- La passerelle envoie une notification d'activation à la plateforme de facturation
- La plateforme de facturation crée un compte abonné et des profils de tarification
- Les frais récurrents et la tarification d'utilisation commencent immédiatement
- La première facture peut être proratisée en fonction de la date d'achèvement du port
Port-Out
Lorsqu'un numéro est porté :
- La passerelle envoie une notification de désactivation à la plateforme de facturation
- La facturation en temps réel s'arrête à l'heure prévue du port
- La facture finale est générée : frais récurrents proratisés, utilisation en attente, frais de résiliation anticipée (le cas échéant), crédits/remboursements
- Le compte abonné est fermé avec le code de raison de portabilité
Flux de Travail Opérationnels
Opérations Quotidiennes
- Revue de l'État du Matin — Vérifier les activités de portabilité de la nuit et les mises à jour de la chambre de compensation
- Traitement des Actions — Gérer les approbations en attente et les confirmations des clients
- Résolution des Erreurs — Enquêter et résoudre les ports échoués ou rejetés
- 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 de portabilité réglementaires
- Enregistrements de communication inter-opérateurs conservés
- Rapprochement financier avec les frais de chambre de compensation
Problèmes Courants
Port bloqué dans l'état en attente — Vérifiez la connectivité API de la chambre de compensation, vérifiez les informations du client, consultez 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 SMS — Développez la ligne de résultat pour collecter l'ID du message et l'ID de transaction. Fournissez ces informations au fournisseur CPaaS lors de l'escalade.
Guide de l'Utilisateur
Prise en Main
L'accès est contrôlé par une clé API. Lors du premier chargement, vous serez invité avec une fenêtre modale 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 :
| Niveau | Accès |
|---|---|
| Admin | Accès complet à toutes les fonctionnalités |
| Utilisateur PXS | Gestion de Port IN/OUT et routage |
| Lecture Seule | Requêtes de routage et validation SMS uniquement |
Navigation
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.

| Champ | Description |
|---|---|
| Opérateur Réseau Donneur | Code opérateur de l'opérateur donneur. Sélectionnez Auto pour la détection automatique à partir de la plage de numéros. |
| Surcharge de Cool Off | Défini sur Vrai uniquement lorsque le client a explicitement renoncé à la période de cool-off. Par défaut : Faux. |
| Type de Compte | Prépayé ou Postpayé |
| Type de Numéros | Mobile ou Fixe |
| Premier Numéro | Début de la plage de numéros (format local, sans code pays) |
| Dernier Numéro | Fin de la plage — identique au Premier Numéro pour un port unique |
| Total de Numéros | Calculé automatiquement |
| Email (Contact) | Email de contact pour cette demande |
| Numéro d'Autorisation | Numéro d'autorisation du client — se remplit automatiquement à partir du Premier Numéro si laissé vide |
Cliquez sur Soumettre pour créer la demande. Un message de succès affichera l'identifiant de message assigné.
Tableau de Bord Port IN

| Colonne | Description |
|---|---|
| ID | ID de base de données interne |
| Port ID | Identifiant de message de la chambre de compensation |
| État | État actuel de la portabilité |
| Demandé | Horodatage de soumission |
| Mis à Jour | Horodatage de la dernière mise à jour |
| Opérateur | Code opérateur réseau donneur |
| Cible | Numéro de contact/autorisation |
| Type | Mobile ou Fixe |
| Type de Service | Bouton Historique des Événements |
| Actions | Boutons d'action dépendants de l'état |
Lorsqu'un port a été resoumis (par exemple, après une incompatibilité de type de compte), l'ID de port original est affiché en vert. Lorsqu'un port a été rejeté, la raison du rejet est affichée en rouge.
États de Port-In :
| État | Signification |
|---|---|
Waiting_for_Authorisation_Response | Demande soumise, en attente de réponse du donneur |
Waiting_for_Instruction | Donneur autorisé — confirmer pour procéder |
Waiting_for_Instruction_Response | Instruction envoyée, en attente d'accusé de réception |
Waiting_for_Ported_Response | Exécution du port en cours |
Number_Ported / Number_Ported_Complete | Port complet, routage mis à jour |
Aborted | Annulé |
Rejected | Le donneur a rejeté la demande |
TimeOut | Demande expirée |
Actions :
Waiting_for_Authorisation_Response— Bouton Abandonner (rouge) annule la demandeWaiting_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 fenêtre modale du journal des événements.

- É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étailées — dump JSON complet de l'enregistrement de port
Tableau de Bord Port OUT

| Colonne | Description |
|---|---|
| ID | ID de base de données interne |
| Port ID | Identifiant de message de la chambre de compensation |
| État | État actuel de la portabilité |
| Demandé | Horodatage de soumission |
| Mis à Jour | Horodatage de la dernière mise à jour |
| Opérateur | Code de l'opérateur destinataire (gagnant) |
| Cibles | Plages de numéros portées |
| Type de Service | Bouton Journal des Événements |
| Actions | Boutons 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 non actif.
Cliquez sur Journal des Événements sur n'importe quelle ligne pour voir l'échange de messages complet.

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

La réponse est le résultat brut de l'événement CGrateS ProcessEvent :
| Champ | Description |
|---|---|
Event.E164Address | Le numéro interrogé |
Event.NAPTRAddress | Chaîne de routage NAPTR — domaine IMS ou numéro de routage |
Event.NAPTROrder | Valeur de l'ordre NAPTR |
Event.NAPTRPreference | Valeur de préférence NAPTR |
MatchedProfiles | Profil d'attribut CGrateS correspondant pour ce numéro |
Push Routing

| Champ | Description |
|---|---|
| Numéro de Téléphone (Sans code pays) | Numéro local — le code pays est ajouté automatiquement |
| Opérateur | Code opérateur vers lequel router ce numéro |
| Type | Mobile ou Fixe |
Utilisé pour des corrections d'urgence, provisionnement initial ou lorsque le routage automatique après port échoue.
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 retournent 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.
- Entrez le numéro de téléphone cible (typiquement un numéro récemment porté en test)
- Sélectionnez un ou plusieurs fournisseurs A2P à tester
- 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 :
| Fournisseur | Remarques |
|---|---|
| Enet | Livraison SMPP sur la plateforme native |
| GTT | Directement auprès de l'opérateur |
| Digicel | Directement auprès de l'opérateur |
| Sinch | Fournisseur CPaaS |
| Twilio | Omnitouch a un contact d'escalade direct |
| Vonage | Omnitouch a un contact d'escalade direct |
| Telnyx | Client d'Omnitouch — contact direct de l'équipe |
| Pilvo | Omnitouch a un contact d'escalade direct |
Swagger / Explorateur API
Le Gestionnaire de Portabilité Omnitouch expose une interface Swagger en direct à /np_api/doc.



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.
| Niveau | Capacités |
|---|---|
admin | Accès complet à tous les points de terminaison |
pxs | Gestion de Port IN/OUT et routage |
read_only | Validation 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
| Champ | Type | Requis | Description |
|---|---|---|---|
donornetworkoperator | string | Non | Code opérateur donneur — laissez vide pour la détection automatique |
email | string | Oui | Email de contact |
overridecooloff | boolean | Non | Ignorer la période de cool-off réglementaire (par défaut : faux) |
contacttelephonenumber | string | Oui | Numéro d'autorisation du client |
Type_of_Numbers | string | Oui | "mobile" ou "fixed" |
telephonenumberseriestart | string | Oui | Premier numéro de la plage |
telephonenumberserieend | string | Oui | Dernier numéro de la plage |
AccountType | string | Oui | "Prepaid" ou "Postpaid" |
PortingState | integer | Non | Surcharge 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 resoumission, renvoie de manière transparente l'enregistrement plus récent.
Forme 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 |
|---|---|
| 0 | NoPort |
| 1 | Waiting_for_Authorisation_Response |
| 2 | Waiting_for_Instruction |
| 3 | Waiting_for_Instruction_Response |
| 10 | Waiting_for_Ported_Response |
| 11 | Waiting_for_Change_Response |
| 20 | Number_Ported |
| 30 | Number_Ported_Complete |
| 97 | TimeOut |
| 98 | Aborted |
| 99 | Rejected |
Codes de raison de rejet (failure_reason) :
| Code | Raison |
|---|---|
| 0 | Inconnu |
| 31 | Compte Suspendu |
| 32 | Problème de Compte |
| 33 | Problème de Facture |
| 34 | Dépôt Dépassé |
| 35 | Type de Compte Incorrect |
| 36 | Signalé Comme Volé ou Perdu |
| 37 | Spécial |
| 38 | Pas de Cool Off (Rapatriement) |
| 39 | Problème de Facture Prépayée |
| 99 | Rejet 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).
Abandonner 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
Forme 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. Utilisez uniquement pour des raisons légitimes : incompatibilité de compte, solde impayé, demande frauduleuse ou numéro non actif.
Points de Terminaison de Routage
Interroger le Routage des Numéros
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.
Mettre à Jour le 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 HSS Seulement
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.
| Champ | Type | Description |
|---|---|---|
phone_number | string | Numéro cible |
Operator | string | Enet, GTT, Digicel, Sinch, Twilio, Vonage, Telnyx, Pilvo, ClickSend |
apiKey | string | Clé API du fournisseur (si requise) |
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 au format 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. Non destiné à un usage direct. Le préfixe de déploiement est configuré par installation.
| Type de Message | Action |
|---|---|
authorisation_request | Crée un nouvel enregistrement de port-out |
authorisation_response | Met à jour l'état de port-in ; réessaie avec le type de compte basculé sur le code 35 |
instruction_response | Fait avancer le port-in vers Waiting_for_Ported_Response |
ported | Marque le port comme complet, met à jour la base de données de routage, envoie une notification de bienvenue |
timedout | Définit l'état sur TimeOut |
terminated | Supprime l'enregistrement de routage |
Réponses d'Erreur
{
"result": "Exception raised in ...",
"Reason": "détails de l'erreur"
}
| Statut | Signification |
|---|---|
| 200 | Succès |
| 401 | Échec d'authentification |
| 403 | Fichier non trouvé (téléchargement XML) |
| 500 | Erreur interne — vérifiez le champ Reason |