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/rnpar 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
- Gestionnaire de Portabilité — Orchestration des flux de travail de portabilité et gestion des interactions avec la chambre de compensation de portabilité numérique
- Serveur DNS/ENUM — Gestion du routage des appels et de la résolution des numéros
- 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
- 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 Statut — Le système suit les changements d'état via le flux d'événements de la chambre de compensation
- Provisionnement ENUM — Lors de 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é.
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
- 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 le statut 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 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é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.
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é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} | Annuler 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 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 :
- 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 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 :
- 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 de fin de 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 de port prévue
- 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
- Le compte abonné est fermé avec le code de raison de portabilité
Flux de Travail Opérationnels
Opérations Quotidiennes
- Revue de Statut Matinale — Vérifier les activités de portabilité de la nuit et les mises à jour de la chambre de compensation
- Traitement des Éléments d'Action — 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 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 :
| Niveau | Accès |
|---|---|
| Admin | Accès complet à toutes les fonctionnalités |
| Utilisateur PXS | Gestion des ports IN/OUT et routage |
| Lecture Seule | Requêtes de routage et validation des 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. |
| Contourner le Temps de Refroidissement | Définir sur Vrai uniquement lorsque le client a explicitement renoncé à la période de refroidissement. 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 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

| 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 du 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é 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 :
| É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 | La demande a expiré |
Actions :
Waiting_for_Authorisation_Response— Bouton Annuler (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 modal de 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étails — 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 opérateur destinataire (gagnant) |
| Cibles | Plages de numéros étant 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 inactif.
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 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 d'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 acheminer ce numéro |
| Type | Mobile ou Fixe |
Utiliser pour des corrections d'urgence, provisionnement initial ou lorsque le routage automatique après le port échoue.
Valider le 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.
- Entrez le numéro de téléphone cible (généralement un numéro récemment porté sous 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 |
|---|---|
| Native | Livraison SMPP de la plateforme native |
| CarrierA | Direct opérateur |
| CarrierB | Direct opérateur |
| Sinch | Fournisseur CPaaS |
| Twilio | Omnitouch a un contact d'escalade direct |
| Vonage | Omnitouch a un contact d'escalade direct |
| Telnyx | Client 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 des ports 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 | Passer la période de refroidissement 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 dans la plage |
telephonenumberserieend | string | Oui | Dernier numéro dans la plage |
AccountType | string | Oui | "Prepaid" ou "Postpaid" |
PortingState | integer | Non | Remplacement 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 |
|---|---|
| 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 Temps de Refroidissement (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).
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.
| Champ | Type | Description |
|---|---|---|
phone_number | string | Numéro cible |
Operator | string | Native, CarrierA, CarrierB, Sinch, Twilio, Vonage, Telnyx, Pilvo, ClickSend |
apiKey | string | Clé 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 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 | Avance le port-in à 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 de l'authentification |
| 403 | Fichier non trouvé (téléchargement XML) |
| 500 | Erreur interne — vérifiez le champ Reason |