Référence de Configuration
← Retour à la Documentation Principale
Ce document fournit une référence complète pour tous les paramètres de configuration d'OmniSS7.
Table des Matières
- Aperçu
- Drapeaux de Mode Opérationnel
- Paramètres de Mode HLR
- Paramètres de Mode SMSc
- Paramètres de Mode STP
- Paramètres de Mode Passerelle CAMEL
- Paramètres NAT de Titre Global
- Paramètres de Connexion M3UA
- Paramètres d'Infrastructure
- Paramètres de Base de Données
- Valeurs Codées en Dur
Aperçu
La configuration d'OmniSS7 est gérée via config/runtime.exs. Le système prend en charge quatre modes opérationnels :
- Mode STP - Point de Transfert de Signal pour le routage
- Mode HLR - Registre de Localisation Domiciliaire pour la gestion des abonnés
- Mode SMSc - Centre SMS pour la livraison de messages
- Mode CAMEL GW - Passerelle CAMEL pour le contrôle intelligent des appels
Fichier de Configuration : config/runtime.exs
Drapeaux de Mode Opérationnel
Contrôle quelles fonctionnalités sont activées.
| Paramètre | Type | Par Défaut | Description | Modes |
|---|---|---|---|---|
map_client_enabled | Boolean | false | Activer le client MAP et la connectivité M3UA | Tous |
hlr_mode_enabled | Boolean | false | Activer les fonctionnalités spécifiques au HLR | HLR |
smsc_mode_enabled | Boolean | false | Activer les fonctionnalités spécifiques au SMSc | SMSc |
cap_client_enabled | Boolean | false | Activer le client CAP pour les opérations CAMEL | CAMEL GW |
camelgw_mode_enabled | Boolean | false | Activer les fonctionnalités de la Passerelle CAMEL | CAMEL GW |
ussd_gateway_enabled | Boolean | false | Activer la Passerelle USSD (pont HTTP/JSON) | USSD GW |
Exemple :
config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: true,
smsc_mode_enabled: false
Paramètres de Mode HLR
Configuration pour le mode HLR (Registre de Localisation Domiciliaire).
Configuration de l'API HLR
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
hlr_api_base_url | String | - | Oui | URL de point de terminaison de l'API HLR Backend |
hlr_api_verify_ssl | Boolean | false | Non | Activer/désactiver la vérification du certificat SSL pour l'API HLR |
hlr_service_center_gt_address | String | - | Oui | Adresse de Titre Global HLR retournée dans les réponses UpdateLocation |
smsc_service_center_gt_address | String | - | Oui | Adresse GT SMSc retournée dans les réponses SRI-for-SM |
Exemple :
config :omniss7,
hlr_api_base_url: "https://10.180.2.140:8443",
hlr_api_verify_ssl: false,
hlr_service_center_gt_address: "55512341111",
smsc_service_center_gt_address: "55512341112"
Configuration AlertServiceCenter
Lorsqu'un abonné effectue un UpdateLocation, le HLR envoie des messages alertServiceCenter aux GT SMSc configurés pour indiquer que l'abonné est maintenant joignable.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
hlr_smsc_alert_gts | Liste de Strings | [] | Non | Liste des Titres Globaux SMSc pour envoyer des notifications alertServiceCenter |
hlr_alert_location_expiry_seconds | Integer | 172800 | Non | Durée de validité de la localisation en secondes (par défaut : 48 heures). Mettre à 0 pour désactiver l'expiration. |
Exemple :
config :omniss7,
hlr_smsc_alert_gts: [
"15559876543",
"15559876544"
],
hlr_alert_location_expiry_seconds: 172800 # 48 heures
Mapping MSISDN ↔ IMSI
Configuration pour la génération IMSI synthétique à partir des MSISDN. Pour une explication technique détaillée de l'algorithme de mapping, voir Mapping MSISDN ↔ IMSI dans le Guide HLR.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
hlr_imsi_plmn_prefix | String | "50557" | Non | Préfixe PLMN (MCC+MNC) pour la génération d'IMSI synthétique |
hlr_msisdn_country_code | String | "61" | Non | Préfixe de code pays pour le mapping inverse IMSI→MSISDN |
hlr_msisdn_nsn_offset | Integer | 0 | Non | Décalage dans le MSISDN où commence le NSN (typiquement la longueur du code pays) |
hlr_msisdn_nsn_length | Integer | 9 | Non | Longueur du Numéro d'Abonné National à extraire du MSISDN |
Exemple (code pays à 2 chiffres) :
config :omniss7,
hlr_imsi_plmn_prefix: "50557", # MCC 505 + MNC 57
hlr_msisdn_country_code: "99", # Exemple de code pays à 2 chiffres
hlr_msisdn_nsn_offset: 2, # Ignorer le code pays à 2 chiffres
hlr_msisdn_nsn_length: 9 # Extraire le NSN de 9 chiffres
Exemple (code pays à 3 chiffres) :
config :omniss7,
hlr_imsi_plmn_prefix: "50557", # MCC 505 + MNC 57
hlr_msisdn_country_code: "999", # Exemple de code pays à 3 chiffres
hlr_msisdn_nsn_offset: 3, # Ignorer le code pays à 3 chiffres
hlr_msisdn_nsn_length: 8 # Extraire le NSN de 8 chiffres
Important : Définissez nsn_offset à la longueur de votre code pays pour extraire correctement le NSN. Par exemple :
- Code pays "9" (1 chiffre) →
nsn_offset: 1 - Code pays "99" (2 chiffres) →
nsn_offset: 2 - Code pays "999" (3 chiffres) →
nsn_offset: 3
Configuration InsertSubscriberData (ISD)
Configuration pour les données de provisionnement des abonnés envoyées aux VLR lors de UpdateLocation. Pour une explication détaillée de la séquence ISD et du flux de messages, voir Configuration InsertSubscriberData dans le Guide HLR.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
isd_network_access_mode | Atom | :packetAndCircuit | Non | Type d'accès réseau : :packetAndCircuit, :packetOnly, ou :circuitOnly |
isd_send_ss_data | Boolean | true | Non | Envoyer ISD #2 avec des données de Services Supplémentaires |
isd_send_call_barring | Boolean | true | Non | Envoyer ISD #3 avec des données de Blocage d'Appel |
Exemple :
config :omniss7,
isd_network_access_mode: :packetAndCircuit,
isd_send_ss_data: true,
isd_send_call_barring: true
Configuration CAMEL
Configuration pour le routage intelligent des appels basé sur CAMEL. Pour une explication détaillée de l'intégration CAMEL et des clés de service, voir Intégration CAMEL dans le Guide HLR.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
camel_service_key | Integer | 11_110 | Non | Clé de service CAMEL pour les réponses SRI |
camel_trigger_detection_point | Atom | :termAttemptAuthorized | Non | Point de déclenchement CAMEL : :termAttemptAuthorized, :tBusy, :tNoAnswer, :tAnswer |
camel_gsmscf_gt_address | String | (utilise le GT appelé) | Non | Titre Global gsmSCF par défaut pour les réponses CAMEL (peut être remplacé par GT NAT) |
Exemple :
config :omniss7,
camel_service_key: 11_110,
camel_trigger_detection_point: :termAttemptAuthorized
Préfixes VLR Domiciliaires
Configuration pour distinguer les abonnés domiciliés des abonnés en itinérance. Pour une explication détaillée de la détection domicile/itinérance et des opérations PRN, voir Gestion des Abonnés en Itinérance dans le Guide HLR.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
home_vlr_prefixes | Liste | ["5551231"] | Non | Préfixes GT VLR considérés comme réseau "domiciliaire" |
Exemple :
config :omniss7,
home_vlr_prefixes: ["5551231", "5551234"]
Paramètres de Mode SMSc
Configuration pour le mode Centre SMS.
Configuration de l'API SMSc
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
smsc_api_base_url | String | - | Oui | URL de point de terminaison de l'API SMSc Backend |
smsc_api_verify_ssl | Boolean | false | Non | Activer/désactiver la vérification du certificat SSL pour l'API SMSc |
smsc_name | String | "{hostname}_SMSc" | Non | Identifiant SMSc pour l'enregistrement backend |
smsc_service_center_gt_address | String | - | Oui | Adresse de Titre Global du Centre de Service |
Exemple :
config :omniss7,
smsc_api_base_url: "https://10.179.3.219:8443",
smsc_api_verify_ssl: false,
smsc_name: "ipsmgw",
smsc_service_center_gt_address: "55512341112"
Remarque : L'enregistrement frontal se produit toutes les 5 minutes (codé en dur) via le module SMS.FrontendRegistry.
Configuration Auto-Flush
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
auto_flush_enabled | Boolean | true | Non | Activer le traitement automatique de la file d'attente SMS |
auto_flush_interval | Integer | 10_000 | Non | Intervalle de traitement de la file d'attente en millisecondes |
auto_flush_dest_smsc | String | - | Oui | Nom du SMSc de destination pour l'auto-flush |
auto_flush_tps | Integer | 10 | Non | Taux de traitement des messages (transactions/seconde) |
Exemple :
config :omniss7,
auto_flush_enabled: true,
auto_flush_interval: 10_000,
auto_flush_dest_smsc: "ipsmgw",
auto_flush_tps: 10
Paramètres de Mode STP
Configuration pour le mode Point de Transfert de Signal M3UA. Pour une configuration de routage détaillée et des exemples, voir le Guide de Configuration STP.
Serveur STP Autonome
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
sctp_handler.enabled | Boolean | false | Non | Activer le serveur SocketHandler SCTP autonome |
sctp_handler.local_ip | Tuple ou Liste | {127, 0, 0, 1} | Non | Adresse(s) IP à écouter pour les connexions. IP unique : {10, 0, 0, 1} ou plusieurs IP pour le multihoming SCTP : [{10, 0, 0, 1}, {10, 0, 0, 2}] |
sctp_handler.local_port | Integer | 2905 | Non | Port à écouter |
sctp_handler.point_code | Integer | - | Oui (si activé) | Code de point SS7 de ce STP |
Exemple (IP Unique) :
config :omniss7,
sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 2905,
point_code: 100
}
Exemple (Multihoming SCTP) :
config :omniss7,
sctp_handler: %{
enabled: true,
# Plusieurs IP pour la redondance
local_ip: [{10, 179, 4, 10}, {10, 179, 4, 11}],
local_port: 2905,
point_code: 100
}
Remarque : Pour des informations détaillées sur la configuration du multihoming SCTP et ses avantages, voir Multihoming SCTP dans le Guide Commun.
Routage de Titre Global
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
enable_gt_routing | Boolean | false | Non | Activer le routage GT en plus du routage PC |
Exemple :
config :omniss7,
enable_gt_routing: true
Configuration des Pairs M3UA/M2PA
Les pairs sont configurés via la liste m3ua_peers (prend en charge à la fois les protocoles M3UA et M2PA). Pour des exemples de configuration complets, voir le Guide de Configuration STP et Support du Protocole M2PA.
Paramètres Communs aux Pairs :
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
peer_id | Integer | - | Oui | Identifiant unique du pair |
name | String | - | Oui | Nom descriptif du pair |
protocol | Atom | :m3ua | Non | Type de protocole : :m3ua ou :m2pa |
role | Atom | :client | Non | Rôle de connexion : :client, :server, :asp, ou :sgp |
local_ip | Tuple ou Liste | - | Oui | Adresse(s) IP locale(s) pour le binding |
local_port | Integer | - | Oui | Port SCTP local (M3UA : 2905, M2PA : 3565) |
remote_ip | Tuple ou Liste | - | Oui | Adresse(s) IP distante(s) |
remote_port | Integer | - | Oui | Port SCTP distant |
routing_context | Integer | - | Non | Identifiant de contexte de routage M3UA (uniquement M3UA) |
point_code | Integer | - | Oui | Code de point local |
network_indicator | Atom | :international | Non | Indicateur de réseau : :international ou :national |
initiate_connection | Boolean | true | Non | Indique s'il faut initier la connexion SCTP |
Paramètres Spécifiques à M2PA :
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
adjacent_point_code | Integer | - | Oui (M2PA) | Code de point du pair adjacent |
Gestion des Sockets :
M2PA utilise automatiquement SCTP.SocketHandler pour la gestion des sockets partagées. Tous les pairs M2PA utilisent le socket partagé, ce qui permet à plusieurs pairs de partager efficacement le même port SCTP. Pour une configuration détaillée, voir Exigences de Socket M2PA.
Exemple (Pair M3UA) :
config :omniss7,
m3ua_peers: [
%{
peer_id: 1,
name: "HLR_East",
protocol: :m3ua,
role: :sgp,
local_ip: {10, 179, 4, 10},
local_port: 2905,
remote_ip: {10, 179, 4, 20},
remote_port: 2905,
point_code: 100,
network_indicator: :international
}
]
Exemple (Pair M2PA) :
config :omniss7,
sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 3565,
point_code: 100
},
m3ua_peers: [
%{
peer_id: 2,
name: "M2PA_Link_STP_West",
protocol: :m2pa,
role: :client,
local_ip: {10, 179, 4, 10},
local_port: 3565,
remote_ip: {10, 179, 4, 30},
remote_port: 3565,
point_code: 100,
adjacent_point_code: 200
}
]
Routes de Code de Point M3UA
Configuration de routage de Code de Point. Les routes définissent quel pair utiliser pour atteindre des codes de point de destination spécifiques.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
m3ua_routes | Liste de Maps | [] | Non | Liste de routes de code de point. Si non spécifié, les routes sont générées automatiquement à partir des codes de point des pairs. |
Format de Route :
Chaque route dans m3ua_routes doit être une map avec :
dest_pc: Code de point de destination (Integer)peer_id: ID du pair à travers lequel router (Integer)priority: Priorité de la route - valeur inférieure = priorité plus élevée (Integer)network_indicator: Indicateur de réseau (Atom) ::internationalou:national
Exemple :
config :omniss7,
m3ua_routes: [
# Route vers PC 100 via pair 1 (priorité la plus élevée)
%{dest_pc: 100, peer_id: 1, priority: 1, network_indicator: :international},
# Route vers PC 200 via pair 2
%{dest_pc: 200, peer_id: 2, priority: 1, network_indicator: :international},
# Équilibrage de charge : même dest_pc avec différentes priorités
%{dest_pc: 300, peer_id: 3, priority: 1, network_indicator: :international},
%{dest_pc: 300, peer_id: 4, priority: 2, network_indicator: :international}
]
Routes de Titre Global M3UA
Routage basé sur le préfixe de Titre Global avec transformation avancée des paramètres SCCP. Le plus long préfixe correspondant est utilisé en premier, puis la priorité.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
m3ua_gt_routes | Liste de Maps | [] | Non | Liste des règles de routage de Titre Global avec transformations optionnelles |
Format de Route :
Chaque route dans m3ua_gt_routes doit être une map avec :
Paramètres de Base :
gt_prefix: Préfixe de Titre Global à faire correspondre (String) - chaîne vide correspond à toutpeer_id: ID du pair à travers lequel router (Integer) - utiliser 0 pour SUPPRIMER le traficpriority: Priorité de la route - valeur inférieure = priorité plus élevée (Integer)description: Description lisible par l'homme (String)
Paramètres de Correspondance Optionnels :
source_ssn: Faire correspondre le Numéro de Sous-Système source (Integer)source_tt: Faire correspondre le Type de Traduction source (Integer)source_npi: Faire correspondre l'Indicateur de Plan de Numérotation source (Integer)source_nai: Faire correspondre l'Indicateur de Nature d'Adresse source (Integer)
Paramètres de Transformation Optionnels :
dest_ssn: Transformer le SSN dans le message transféré (Integer)dest_tt: Transformer le Type de Traduction dans le message transféré (Integer)dest_npi: Transformer l'Indicateur de Plan de Numérotation dans le message transféré (Integer)dest_nai: Transformer l'Indicateur de Nature d'Adresse dans le message transféré (Integer)
Valeurs Communes :
- Type de Traduction (TT) : 0=Inconnu, 1=International, 2=National, 3=Spécifique au Réseau
- Plan de Numérotation (NPI) : 0=Inconnu, 1=ISDN(E.164), 6=Mobile(E.212)
- Nature d'Adresse (NAI) : 0=Inconnu, 1=Abonné, 3=National, 4=International
- Numéro de Sous-Système (SSN) : 6=HLR, 7=VLR, 8=MSC, 9=EIR, etc.
Exemple :
config :omniss7,
m3ua_gt_routes: [
# Routage de préfixe de base
%{gt_prefix: "1234", peer_id: 1, priority: 1, description: "Numéros US"},
%{gt_prefix: "44", peer_id: 2, priority: 1, description: "Numéros UK"},
# Transformation de Type de Traduction
%{
gt_prefix: "61",
peer_id: 3,
priority: 1,
description: "Numéros Australiens : transformation TT 0→1",
source_tt: 0, # Faire correspondre TT=0 (Inconnu)
dest_tt: 1 # Transformer en TT=1 (International)
},
# Transformation NPI
%{
gt_prefix: "49",
peer_id: 1,
priority: 1,
description: "Numéros Allemands : conversion Mobile→ISDN NPI",
source_npi: 6, # Faire correspondre NPI=6 (Mobile/E.212)
dest_npi: 1 # Transformer en NPI=1 (ISDN/E.164)
},
# Transformation combinée avec routage SSN
%{
gt_prefix: "86",
source_ssn: 8, # Faire correspondre SSN=8 (MSC)
peer_id: 3,
dest_ssn: 6, # Réécrire en SSN=6 (HLR)
priority: 1,
description: "Trafic Chinois : Normalisation complète",
source_tt: 0,
dest_tt: 2,
source_npi: 6,
dest_npi: 1,
source_nai: 4,
dest_nai: 3
},
# Route par défaut/De secours
%{
gt_prefix: "",
peer_id: 1,
priority: 99,
description: "Route de secours par défaut"
}
]
Paramètres de Mode Passerelle CAMEL
Configuration pour le mode Passerelle CAMEL (protocole CAP).
Drapeaux de Mode CAMEL
Activer les fonctionnalités CAMEL/CAP (définir cap_client_enabled: true et camelgw_mode_enabled: true dans Drapeaux de Mode Opérationnel).
Configuration du Protocole CAP
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
cap_version | Atom | :v2 | Non | Version du protocole CAP : :v1, :v2, :v3, ou :v4 |
camel_gsmscf_gt_address | String | (utilise le GT appelé) | Non | Titre Global gsmSCF par défaut pour les réponses CAMEL |
Mapping de Version CAP :
:v1→ OID de Contexte d'Application : 0.4.0.0.1.0.50.0:v2→ OID de Contexte d'Application : 0.4.0.0.1.0.50.1 (par défaut - le plus largement supporté):v3→ OID de Contexte d'Application : 0.4.0.0.1.21.3.4:v4→ OID de Contexte d'Application : 0.4.0.0.1.23.3.4
Remarque : Les requêtes entrantes sont détectées automatiquement à partir de leur OID de contexte d'application et les réponses correspondent à la version de la requête.
Exemple :
config :omniss7,
cap_client_enabled: true,
camelgw_mode_enabled: true,
cap_version: :v2,
camel_gsmscf_gt_address: "68988411553"
Intégration CGrateS
Intégration de facturation en temps réel avec CGrateS pour la facturation prépayée/postpayée.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
cgrates_enabled | Boolean | false | Non | Activer l'intégration CGrateS |
cgrates_url | String | - | Oui (si activé) | URL de point de terminaison JSON-RPC de CGrateS |
cgrates_tenant | String | "cgrates.org" | Non | Identifiant de locataire CGrateS |
cgrates_request_type | String | "*prepaid" | Non | Type de facturation : "*prepaid", "*postpaid", ou "*pseudoprepaid" |
cgrates_timeout | Integer | 5000 | Non | Délai d'attente de la requête CGrateS en millisecondes |
Exemple :
config :omniss7,
cgrates_enabled: true,
cgrates_url: "http://localhost:2080/jsonrpc",
cgrates_tenant: "cgrates.org",
cgrates_request_type: "*prepaid",
cgrates_timeout: 5000
Connexion M3UA CAP
La Passerelle CAMEL utilise une connexion M3UA séparée pour les opérations CAP.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
cap_client_m3ua | Map | - | Oui | Configuration de connexion M3UA CAP (même structure que map_client_m3ua, y compris les paramètres optionnels opc et dpc) |
Exemple :
config :omniss7,
cap_client_m3ua: %{
mode: "ASP",
callback: {CapClient, :handle_payload, []},
process_name: :camelgw_client_asp,
local_ip: {10, 5, 198, 200},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 4,
opc: 5013, # Code de Point d'Origine
dpc: 5011 # Code de Point de Destination
}
Paramètres NAT de Titre Global
La Traduction d'Adresse Réseau de Titre Global permet des GT de réponse différents en fonction du préfixe de l'appelant, du préfixe du appelé, ou des deux. Les règles sont appariées par poids (plus bas = plus haute priorité), puis par spécificité de préfixe (préfixe combiné plus long = plus spécifique). Pour une explication détaillée et des exemples, voir le Guide NAT de Titre Global.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
gt_nat_enabled | Boolean | false | Non | Activer/désactiver la fonctionnalité NAT GT |
gt_nat_rules | Liste de Maps | [] | Oui (si activé) | Liste des règles NAT GT avec correspondance de préfixe |
Format de Règle :
Chaque règle dans gt_nat_rules doit être une map avec :
calling_prefix: Préfixe de chaîne à faire correspondre contre le GT appelant (optionnel)called_prefix: Préfixe de chaîne à faire correspondre contre le GT appelé (optionnel)weight: Priorité entière (plus bas = plus haute priorité) - par défaut : 100response_gt: Titre Global à utiliser dans les réponses (requis)
Priorité de Correspondance :
- Les règles sont appariées par
weight(valeur plus basse = priorité plus élevée) - Si les poids sont égaux, la longueur de préfixe combiné plus longue l'emporte
- Les préfixes
calling_prefixetcalled_prefixpeuvent être utilisés ensemble pour un appariement précis
Exemple :
config :omniss7,
gt_nat_enabled: true,
gt_nat_rules: [
# Haute priorité : Faire correspondre à la fois l'appelant de "8772" ET le appelé à "555"
%{calling_prefix: "8772", called_prefix: "555", weight: 1, response_gt: "111111"},
# Priorité moyenne : Faire correspondre uniquement l'appelant de "8772"
%{calling_prefix: "8772", weight: 10, response_gt: "68988411553"},
# Priorité moyenne : Faire correspondre uniquement le appelé à "555"
%{called_prefix: "555", weight: 10, response_gt: "68988411554"},
# Faire correspondre uniquement l'appelant de "8773"
%{calling_prefix: "8773", weight: 10, response_gt: "68988411554"},
# Règle de secours générique (correspond à tout, poids le plus élevé)
%{weight: 100, response_gt: "68988411555"}
]
Voir Aussi : Guide NAT GT pour une utilisation détaillée et des exemples.
Paramètres de Connexion M3UA
Configuration de connexion M3UA pour le mode client MAP. Pour une utilisation détaillée et des exemples, voir le Guide Client MAP.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
map_client_m3ua.mode | String | - | Oui | Mode de connexion : "ASP" ou "SGP" |
map_client_m3ua.callback | Tuple | - | Oui | Module/fonction de rappel : {MapClient, :handle_payload, []} |
map_client_m3ua.process_name | Atom | - | Oui | Nom du processus pour l'enregistrement |
map_client_m3ua.local_ip | Tuple ou Liste | - | Oui | Adresse(s) IP locale(s) à lier. Unique : {10, 0, 0, 1} ou plusieurs pour le multihoming SCTP : [{10, 0, 0, 1}, {10, 0, 0, 2}] |
map_client_m3ua.local_port | Integer | 2905 | Oui | Port SCTP local |
map_client_m3ua.remote_ip | Tuple ou Liste | - | Oui | Adresse(s) IP STP/SGW distante(s). Unique : {10, 0, 0, 10} ou plusieurs : [{10, 0, 0, 10}, {10, 0, 0, 11}] |
map_client_m3ua.remote_port | Integer | 2905 | Oui | Port SCTP distant |
map_client_m3ua.routing_context | Integer | - | Oui | ID de contexte de routage M3UA |
map_client_m3ua.opc | Integer | 5013 | Non | Code de Point d'Origine pour les requêtes MAP sortantes. Si non défini, par défaut à la valeur héritée 5013. |
map_client_m3ua.dpc | Integer | 5011 | Non | Code de Point de Destination pour les requêtes MAP sortantes. Si non défini, par défaut à la valeur héritée 5011. |
map_client_m3ua.receive_watchdog | Boolean | true | Non | Activer le watchdog de réception ASP. Lorsque true, la connexion est interrompue si aucune donnée SCTP n'est reçue dans les receive_watchdog_idle secondes. Mettre à false pour désactiver complètement. Voir Receive Watchdog ci-dessous. |
map_client_m3ua.receive_watchdog_idle | Integer | 15 | Non | Seuil d'inactivité en secondes. Si aucune charge utile SCTP n'est reçue dans cette fenêtre, le watchdog interrompt la connexion et déclenche une reconnexion. Applicable uniquement lorsque receive_watchdog: true. |
Exemple (IP Unique) :
config :omniss7,
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
opc: 5013, # Code de Point d'Origine (2-114-5)
dpc: 5011 # Code de Point de Destination (2-114-3)
}
Format de Code de Point : Les codes de point au format
X-Y-Zse convertissent en entiers comme suit :(X * 2048) + (Y * 8) + Z. Par exemple,2-114-5=(2 * 2048) + (114 * 8) + 5=5013.
Exemple (Multihoming SCTP) :
config :omniss7,
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
# Plusieurs IP locales pour la redondance
local_ip: [{10, 179, 4, 11}, {10, 179, 4, 12}],
local_port: 2905,
# Plusieurs IP distantes pour la redondance STP
remote_ip: [{10, 179, 4, 10}, {10, 179, 4, 20}],
remote_port: 2905,
routing_context: 1
}
Remarque : Pour des informations détaillées sur la configuration du multihoming SCTP et ses avantages, voir Multihoming SCTP dans le Guide Commun.
Receive Watchdog
Le receive watchdog surveille les connexions SCTP pour les sockets zombies — des associations qui restent dans un état ÉTABLI au niveau du système d'exploitation mais où l'extrémité distante a silencieusement cessé d'envoyer des données. Sans le watchdog, une connexion morte peut ne pas être détectée avant que la prochaine tentative d'envoi échoue.
Toute charge utile SCTP reçue réinitialise le minuteur d'inactivité, y compris les réponses M3UA BEAT, les messages NOTIFY et les données d'application. Selon RFC 4666 §3.8, M3UA BEAT est optionnel — SCTP effectue déjà un heartbeat obligatoire au niveau de la couche de transport. Dans les environnements où le SG distant n'envoie pas de trafic périodique au niveau de la couche d'application (et ne send pas de M3UA BEATs), désactiver le watchdog évite des cycles de reconnexion inutiles.
| Paramètre | Type | Par Défaut | Description |
|---|---|---|---|
receive_watchdog | Boolean | true | Activer ou désactiver le watchdog de réception. Lorsque false, les connexions inactives ne sont jamais interrompues par le watchdog ; le heartbeat de la couche de transport SCTP fonctionne toujours normalement. |
receive_watchdog_idle | Integer | 15 | Secondes d'inactivité avant que le watchdog n'interrompe la connexion et déclenche une reconnexion. N'a aucun effet lorsque receive_watchdog: false. |
Exemple — Désactivation du watchdog pour un client ASP :
config :omniss7,
map_client_m3ua: %{
mode: "ASP",
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
receive_watchdog: false # Désactiver — le SG distant n'envoie pas de trafic périodique
}
Exemple — Personnalisation du seuil d'inactivité :
config :omniss7,
map_client_m3ua: %{
mode: "ASP",
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
receive_watchdog: true,
receive_watchdog_idle: 30 # Interrompre après 30 s de silence (par défaut : 15 s)
}
Paramètres d'Infrastructure
Configuration pour les composants d'infrastructure du système, y compris la licence, l'interface web, le serveur API et la journalisation.
Configuration de Licence
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
license_client.license_server_api_urls | Liste de Strings | - | Oui | URL de point de terminaison de l'API du serveur de licences |
license_client.licensee | String | - | Oui | Nom de l'organisation licenciée |
Exemple :
config :license_client,
license_server_api_urls: ["https://localhost:10443/api"],
licensee: "Omnitouch Network Services Pty. Ltd."
Interface Web du Panneau de Contrôle
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
control_panel.parent_application_readable_name | String | "OmniSS7 Stack" | Non | Nom de l'application affiché dans l'UI web |
control_panel.use_additional_pages | Liste de Tuples | [] | Non | Pages supplémentaires de l'UI web à afficher |
control_panel.page_order | Liste de Strings | [] | Non | Ordre des pages dans le menu de navigation |
ControlPanelWeb.Endpoint.url.host | String | "0.0.0.0" | Non | Nom d'hôte de l'interface web |
ControlPanelWeb.Endpoint.https.port | Integer | 8087 | Non | Port HTTPS pour l'interface web |
ControlPanelWeb.Endpoint.https.keyfile | String | "priv/cert/omnitouch.pem" | Non | Chemin du fichier de clé privée TLS |
ControlPanelWeb.Endpoint.https.certfile | String | "priv/cert/omnitouch.crt" | Non | Chemin du fichier de certificat TLS |
Exemple :
config :control_panel, ControlPanelWeb.Endpoint,
url: [host: "0.0.0.0", path: "/"],
https: [
port: 8087,
keyfile: "priv/cert/omnitouch.pem",
certfile: "priv/cert/omnitouch.crt"
],
parent_application_readable_name: "OmniSS7 Stack STP"
config :control_panel,
use_additional_pages: [
{SS7.Web.EventsLive, "/events", "Événements SS7"},
{SS7.Web.M3UAStatusLive, "/m3ua", "Pairs"}
],
page_order: ["/events", "/m3ua", "/application", "/configuration"]
Serveur API REST
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
start_http_server | Boolean | true | Non | Activer/désactiver le serveur HTTP (port 8080) |
api_ex.api.port | Integer | 8445 | Non | Port du serveur API |
api_ex.api.listen_ip | String | "0.0.0.0" | Non | IP d'écoute du serveur API |
api_ex.api.product_name | String | "OmniSS7" | Non | Nom du produit pour l'API |
api_ex.api.title | String | "API - OmniSS7" | Non | Titre de l'API pour Swagger UI |
api_ex.api.hostname | String | "localhost" | Non | Nom d'hôte de l'API |
api_ex.api.enable_tls | Boolean | true | Non | Activer TLS pour le serveur API |
api_ex.api.tls_cert_path | String | "priv/cert/omnitouch.crt" | Non | Chemin du certificat TLS pour l'API |
api_ex.api.tls_key_path | String | "priv/cert/omnitouch.pem" | Non | Chemin de la clé privée TLS pour l'API |
Exemple :
config :omniss7,
start_http_server: true
config :api_ex,
api: %{
port: 8445,
listen_ip: "0.0.0.0",
product_name: "OmniSS7",
title: "API - OmniSS7",
hostname: "localhost",
enable_tls: true,
tls_cert_path: "priv/cert/omnitouch.crt",
tls_key_path: "priv/cert/omnitouch.pem"
}
Points de Terminaison de l'API :
- API REST :
https://[server-ip]:8445/api/* - Swagger UI :
http://[server-ip]:8080/swagger - Métriques Prometheus :
http://[server-ip]:8080/metrics
Configuration de Journalisation
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
logger.level | Atom | :debug | Non | Niveau de journalisation : :debug, :info, :warning, :error |
logger.backends | Liste | [:console] | Non | Backends de journalisation (inclut SS7.Web.LoggerBackend pour l'UI web) |
logger.default_formatter.format | String | - | Non | Chaîne de format de message de journal |
logger.default_formatter.metadata | Liste | [] | Non | Champs de métadonnées à inclure dans les journaux |
logger.default_formatter.truncate | Atom/Integer | :infinity | Non | Longueur de troncature du message de journal |
Exemple :
config :logger,
level: :debug,
backends: [:console, SS7.Web.LoggerBackend]
config :logger, :default_formatter,
format: "[$date] [$time] [$level] $message\n",
metadata: [:error_code, :file],
truncate: :infinity
Paramètres de Base de Données
Configuration pour la persistance de la base de données Mnesia.
| Paramètre | Type | Par Défaut | Requis | Description |
|---|---|---|---|---|
mnesia_storage_type | Atom | :disc_copies | Non | Type de stockage Mnesia : :disc_copies ou :ram_copies |
Exemple :
config :omniss7,
mnesia_storage_type: :disc_copies # Production
# mnesia_storage_type: :ram_copies # Test uniquement
Types de Stockage :
:disc_copies- Stockage persistant sur disque (survit aux redémarrages) - Recommandé pour la production:ram_copies- Seulement en mémoire (perdu lors du redémarrage) - Pour test uniquement
Tables Mnesia :
m3ua_peer- Connexions de pairs M3UAm3ua_route- Routes de Code de Pointm3ua_gt_route- Routes de Titre Global
Emplacement : Répertoire Mnesia.{node_name}/
Valeurs Codées en Dur
Les valeurs suivantes sont codées en dur dans le code source et ne peuvent pas être modifiées via la configuration.
Délais d'Expiration
| Valeur | Impact | Contournement |
|---|---|---|
| Délai d'attente de requête MAP : 10 secondes | Toutes les opérations MAP expirent après 10s | Modifier le code source |
| Délai ISD : 10 secondes | Chaque message ISD expire après 10s | Modifier le code source |
Serveur HTTP
| Valeur | Impact | Contournement |
|---|---|---|
| IP HTTP : 0.0.0.0 | Le serveur de métriques/Swagger écoute sur toutes les interfaces | Modifier le code source |
| Port HTTP : 8080 | Le point de terminaison des métriques/Swagger fonctionne sur le port 8080 | Modifier le code source |
Intervalles d'Enregistrement
| Valeur | Impact | Contournement |
|---|---|---|
| Enregistrement frontal : 5 minutes | Le SMSc s'enregistre avec le backend toutes les 5 min | Modifier le code source |
Actualisation Automatique de l'UI Web
| Page | Intervalle |
|---|---|
| Gestion du Routage | 5 secondes |
| Abonnés Actifs | 2 secondes |
Exemples de Configuration
Configuration HLR Minimale
config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: true,
smsc_mode_enabled: false,
hlr_api_base_url: "https://10.180.2.140:8443",
hlr_service_center_gt_address: "55512341111",
smsc_service_center_gt_address: "55512341112",
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1
}
Configuration SMSc Minimale
config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: false,
smsc_mode_enabled: true,
smsc_api_base_url: "https://10.179.3.219:8443",
smsc_name: "ipsmgw",
smsc_service_center_gt_address: "55512341112",
auto_flush_enabled: true,
auto_flush_interval: 10_000,
auto_flush_dest_smsc: "ipsmgw",
auto_flush_tps: 10,
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :stp_client_asp,
local_ip: {10, 179, 4, 12},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1
}
STP avec Serveur Autonome
config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: false,
smsc_mode_enabled: false,
enable_gt_routing: true,
mnesia_storage_type: :disc_copies,
sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 2905,
point_code: 100
},
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :stp_client_asp,
local_ip: {10, 179, 4, 10},
local_port: 2906,
remote_ip: {10, 179, 4, 11},
remote_port: 2905,
routing_context: 1
}
Résumé
Total des Paramètres de Configuration : 75+
Par Catégorie :
- Mode Opérationnel : 5 paramètres
- Mode HLR : 17 paramètres
- Mode SMSc : 8 paramètres
- Mode STP : 5+ paramètres (plus les listes m3ua_peers, m3ua_routes, m3ua_gt_routes)
- Mode Passerelle CAMEL : 14 paramètres
- NAT de Titre Global : 2 paramètres
- Connexion M3UA : 8 paramètres
- Infrastructure (Licence, Web, API, Journalisation) : 23 paramètres
- Base de Données : 1 paramètre
Paramètres Requis par Mode :
Mode HLR :
hlr_api_base_urlhlr_service_center_gt_addresssmsc_service_center_gt_address- Tous les paramètres
map_client_m3ua.*(8)
Mode SMSc :
smsc_api_base_urlsmsc_service_center_gt_addressauto_flush_dest_smsc(si auto-flush activé)- Tous les paramètres
map_client_m3ua.*(8)
Mode STP :
sctp_handler.point_code(si le gestionnaire SCTP est activé)sctp_handler.local_ipsctp_handler.local_port
Mode Passerelle CAMEL :
cgrates_url(si CGrateS activé)- Tous les paramètres
cap_client_m3ua.*(8)
Infrastructure :
license_client.license_server_api_urlslicense_client.licensee
Documentation Connexe
- Guide HLR - Configuration spécifique au HLR
- Guide SMSc - Configuration spécifique au SMSc
- Guide STP - Configuration de routage STP
- Guide API - Référence de l'API REST
- Guide Passerelle USSD - Configuration de la Passerelle USSD et protocole de rappel HTTP
- Guide UI Web - Documentation de l'interface web