Aller au contenu principal

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.

Interface Web du Client MAP

Table des Matières

  1. Qu'est-ce que le Mode Client MAP ?
  2. Activation du Mode Client MAP
  3. Opérations MAP Disponibles
  4. Envoi de Requêtes via l'API
  5. Métriques et Surveillance
  6. 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

API Client MAP

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 :

  1. Naviguez vers http://your-server/swagger
  2. Parcourez les points de terminaison API disponibles
  3. Cliquez sur n'importe quel point de terminaison pour développer ses détails

Envoyer une Requête :

  1. Cliquez sur le point de terminaison que vous souhaitez utiliser (par exemple, /api/sri-for-sm)
  2. Cliquez sur le bouton "Try it out"
  3. Remplissez les paramètres requis dans le corps de la requête
  4. Cliquez sur "Execute"
  5. 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.)
  • map_request_errors_total - Nombre total d'erreurs de requêtes MAP

    • Étiquettes : operation
  • map_request_duration_milliseconds - Histogramme des durées des requêtes MAP

    • Étiquettes : operation
  • 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 :

  1. Vérifiez que la connexion M3UA est ACTIVE :

    # Dans la console IEx
    :sys.get_state(:map_client_asp)
  2. Vérifiez la connectivité réseau vers le STP

  3. Vérifiez le contexte de routage et l'adressage SCCP

  4. 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


OmniSS7 par Omnitouch Network Services