Guide de Configuration du Client MAP
← Retour à la Documentation Principale
Ce guide fournit une configuration détaillée pour utiliser OmniSS7 en tant que Client MAP pour envoyer des requêtes du protocole MAP aux éléments du réseau.

Table des Matières
- Qu'est-ce que le Mode Client MAP ?
- Activation du Mode Client MAP
- Opérations MAP Disponibles
- Envoi de Requêtes via l'API
- Métriques et Surveillance
- Dépannage
Qu'est-ce que le Mode Client MAP ?
Mode Client MAP permet à OmniSS7 de se connecter en tant que Processus Serveur d'Application (ASP) à un pair M3UA (STP ou SGP) et d'envoyer/recevoir des messages MAP (Mobile Application Part) pour des services tels que :
- Requêtes HLR : SRI (Send Routing Info), SRI-for-SM, Authentication Info
- Mises à Jour de Localisation : Update Location, Cancel Location
- Gestion des Abonnés : Provide Roaming Number (PRN), Insert Subscriber Data
Architecture Réseau
Activation du Mode Client MAP
Éditez config/runtime.exs et configurez les paramètres du client MAP. Pour une référence de configuration complète, voir Paramètres de Connexion M3UA dans la Référence de Configuration.
Configuration de Base
config :omniss7,
# Activer le mode Client MAP
map_client_enabled: true,
# Connexion M3UA pour le Client MAP (se connecte en tant qu'ASP à un STP/SGP distant)
map_client_m3ua: %{
mode: "ASP", # Mode M3UA : "ASP" (client) ou "SGP" (serveur)
callback: {MapClient, :handle_payload, []}, # Callback pour les messages entrants
process_name: :map_client_asp, # Nom du processus enregistré
local_ip: {10, 0, 0, 100}, # Adresse IP locale
local_port: 2905, # Port SCTP local
remote_ip: {10, 0, 0, 1}, # IP STP/SGP distante
remote_port: 2905, # Port STP/SGP distant
routing_context: 1 # Contexte de routage M3UA
}
Exemple de Configuration en Production
config :omniss7,
# Activer le Client MAP pour la production
map_client_enabled: true,
# Connexion M3UA en production
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :map_client_asp,
local_ip: {10, 0, 0, 100},
local_port: 2905,
remote_ip: {10, 0, 0, 1}, # IP STP en production
remote_port: 2905,
routing_context: 1
}
config :control_panel,
web: %{
listen_ip: "0.0.0.0",
port: 443,
hostname: "ss7-gateway.example.com",
enable_tls: true,
tls_cert: "/etc/ssl/certs/gateway.crt",
tls_key: "/etc/ssl/private/gateway.key"
}
Opérations MAP Disponibles

1. Envoyer des Informations de Routage pour SM (SRI-for-SM)
Interroge le HLR pour déterminer le MSC servant pour la livraison de SMS. Pour des informations détaillées sur la façon dont le HLR traite les requêtes SRI-for-SM, voir SRI-for-SM dans le Guide HLR.
Point de terminaison API : POST /api/sri-for-sm
Requête :
{
"msisdn": "447712345678",
"serviceCenter": "447999123456"
}
Réponse :
{
"result": {
"imsi": "234509876543210",
"locationInfoWithLMSI": {
"networkNode-Number": "447999555111"
}
}
}
Exemple cURL :
curl -X POST http://localhost/api/sri-for-sm \
-H "Content-Type: application/json" \
-d '{
"msisdn": "447712345678",
"serviceCenter": "447999123456"
}'
2. Envoyer des Informations de Routage (SRI)
Interroge le HLR pour des informations de routage d'appel vocal.
Point de terminaison API : POST /api/sri
Requête :
{
"msisdn": "447712345678",
"gmsc": "447999123456"
}
Réponse :
{
"result": {
"imsi": "234509876543210",
"extendedRoutingInfo": {
"routingInfo": {
"roamingNumber": "447999555222"
}
}
}
}
3. Fournir un Numéro de Roaming (PRN)
Demande un numéro de roaming temporaire (MSRN) au MSC servant.
Point de terminaison API : POST /api/prn
Requête :
{
"msisdn": "447712345678",
"gmsc": "447999123456",
"msc_number": "447999555111",
"imsi": "234509876543210"
}
4. Envoyer des Informations d'Authentification
Demande des vecteurs d'authentification au HLR pour l'authentification des abonnés.
Point de terminaison API : POST /api/send-auth-info
Requête :
{
"imsi": "234509876543210",
"vectors": 5
}
Réponse :
{
"result": {
"authenticationSetList": [
{
"rand": "0123456789ABCDEF0123456789ABCDEF",
"xres": "ABCDEF0123456789",
"ck": "0123456789ABCDEF0123456789ABCDEF",
"ik": "FEDCBA9876543210FEDCBA9876543210",
"autn": "0123456789ABCDEF0123456789ABCDEF"
}
]
}
}
5. Mettre à Jour la Localisation
Enregistre la localisation actuelle d'un abonné auprès du HLR. Pour des informations détaillées sur le traitement de UpdateLocation et les séquences d'InsertSubscriberData, voir Mises à Jour de Localisation dans le Guide HLR.
Point de terminaison API : POST /api/updateLocation
Requête :
{
"imsi": "234509876543210",
"vlr": "447999555111"
}
Résumé des Opérations MAP
Envoi de Requêtes via l'API
Utilisation de Swagger UI
L'interface Swagger UI fournit une interface interactive pour envoyer des requêtes SS7.
Accéder à Swagger UI :
- Naviguez vers
http://your-server/swagger - Parcourez les points de terminaison API disponibles
- Cliquez sur n'importe quel point de terminaison pour développer ses détails
Envoyer une Requête :
- Cliquez sur le point de terminaison que vous souhaitez utiliser (par exemple,
/api/sri-for-sm) - Cliquez sur le bouton "Try it out"
- Remplissez les paramètres requis dans le corps de la requête
- Cliquez sur "Execute"
- Consultez la réponse ci-dessous
Codes de Réponse de l'API
- 200 - Succès, résultat retourné dans le corps de la réponse
- 400 - Mauvaise Requête, paramètres invalides
- 504 - Délai d'Attente de la Passerelle, pas de réponse du réseau SS7 dans les 10 secondes
Métriques du Client MAP
Métriques Disponibles
Métriques de Requête :
-
map_requests_total- Nombre total de requêtes MAP envoyées- Étiquettes :
operation(valeurs :sri,sri_for_sm,prn,authentication_info, etc.)
- Étiquettes :
-
map_request_errors_total- Nombre total d'erreurs de requêtes MAP- Étiquettes :
operation
- Étiquettes :
-
map_request_duration_milliseconds- Histogramme des durées des requêtes MAP- Étiquettes :
operation
- Étiquettes :
-
map_pending_requests- Nombre actuel de requêtes MAP en attente (gauge)
Exemples de Requêtes Prometheus
# Total des requêtes SRI-for-SM au cours de la dernière heure
increase(map_requests_total{operation="sri_for_sm"}[1h])
# Temps de réponse moyen pour les requêtes SRI
rate(map_request_duration_milliseconds_sum{operation="sri"}[5m]) /
rate(map_request_duration_milliseconds_count{operation="sri"}[5m])
# Taux d'erreur pour toutes les opérations MAP
sum(rate(map_request_errors_total[5m])) by (operation)
# Requêtes en attente actuelles
map_pending_requests
Dépannage Client MAP
Problème : Délai d'Attente des Requêtes
Symptômes :
- L'API retourne 504 Gateway Timeout
- Pas de réponse du HLR/MSC
Vérifications :
-
Vérifiez que la connexion M3UA est ACTIVE :
# Dans la console IEx
:sys.get_state(:map_client_asp) -
Vérifiez la connectivité réseau vers le STP
-
Vérifiez le contexte de routage et l'adressage SCCP
-
Vérifiez les journaux pour des erreurs SCCP
Problème : Erreurs SCCP
Symptômes :
- L'API retourne des réponses d'erreur SCCP
- Les journaux montrent des messages "SCCP unitdata service"
Codes d'Erreur SCCP Courants :
- Pas de Traduction : Titre Global non trouvé dans la table de routage STP
- Échec de Sous-système : Sous-système de destination (HLR SSN 6) indisponible
- Échec Réseau : Congestion ou échec du réseau
Solutions :
- Contacter l'administrateur STP pour vérifier la configuration de routage
- Vérifiez que le Titre Global de destination est accessible
- Vérifiez si le sous-système de destination est opérationnel
Documentation Connexe
- ← Retour à la Documentation Principale
- Guide des Fonctionnalités Communes - Interface Web, API, Surveillance
- Guide STP - Configuration de routage
- Guide du Centre SMS - Livraison de SMS
- Référence Technique - Spécifications du protocole
OmniSS7 par Omnitouch Network Services