Aller au contenu principal

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

  1. Aperçu
  2. Drapeaux de Mode Opérationnel
  3. Paramètres de Mode HLR
  4. Paramètres de Mode SMSc
  5. Paramètres de Mode STP
  6. Paramètres de Mode Passerelle CAMEL
  7. Paramètres NAT de Titre Global
  8. Paramètres de Connexion M3UA
  9. Paramètres d'Infrastructure
  10. Paramètres de Base de Données
  11. 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ètreTypePar DéfautDescriptionModes
map_client_enabledBooleanfalseActiver le client MAP et la connectivité M3UATous
hlr_mode_enabledBooleanfalseActiver les fonctionnalités spécifiques au HLRHLR
smsc_mode_enabledBooleanfalseActiver les fonctionnalités spécifiques au SMScSMSc
cap_client_enabledBooleanfalseActiver le client CAP pour les opérations CAMELCAMEL GW
camelgw_mode_enabledBooleanfalseActiver les fonctionnalités de la Passerelle CAMELCAMEL GW
ussd_gateway_enabledBooleanfalseActiver 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ètreTypePar DéfautRequisDescription
hlr_api_base_urlString-OuiURL de point de terminaison de l'API HLR Backend
hlr_api_verify_sslBooleanfalseNonActiver/désactiver la vérification du certificat SSL pour l'API HLR
hlr_service_center_gt_addressString-OuiAdresse de Titre Global HLR retournée dans les réponses UpdateLocation
smsc_service_center_gt_addressString-OuiAdresse 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ètreTypePar DéfautRequisDescription
hlr_smsc_alert_gtsListe de Strings[]NonListe des Titres Globaux SMSc pour envoyer des notifications alertServiceCenter
hlr_alert_location_expiry_secondsInteger172800NonDuré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ètreTypePar DéfautRequisDescription
hlr_imsi_plmn_prefixString"50557"NonPréfixe PLMN (MCC+MNC) pour la génération d'IMSI synthétique
hlr_msisdn_country_codeString"61"NonPréfixe de code pays pour le mapping inverse IMSI→MSISDN
hlr_msisdn_nsn_offsetInteger0NonDécalage dans le MSISDN où commence le NSN (typiquement la longueur du code pays)
hlr_msisdn_nsn_lengthInteger9NonLongueur 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ètreTypePar DéfautRequisDescription
isd_network_access_modeAtom:packetAndCircuitNonType d'accès réseau : :packetAndCircuit, :packetOnly, ou :circuitOnly
isd_send_ss_dataBooleantrueNonEnvoyer ISD #2 avec des données de Services Supplémentaires
isd_send_call_barringBooleantrueNonEnvoyer 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ètreTypePar DéfautRequisDescription
camel_service_keyInteger11_110NonClé de service CAMEL pour les réponses SRI
camel_trigger_detection_pointAtom:termAttemptAuthorizedNonPoint de déclenchement CAMEL : :termAttemptAuthorized, :tBusy, :tNoAnswer, :tAnswer
camel_gsmscf_gt_addressString(utilise le GT appelé)NonTitre 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ètreTypePar DéfautRequisDescription
home_vlr_prefixesListe["5551231"]NonPré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ètreTypePar DéfautRequisDescription
smsc_api_base_urlString-OuiURL de point de terminaison de l'API SMSc Backend
smsc_api_verify_sslBooleanfalseNonActiver/désactiver la vérification du certificat SSL pour l'API SMSc
smsc_nameString"{hostname}_SMSc"NonIdentifiant SMSc pour l'enregistrement backend
smsc_service_center_gt_addressString-OuiAdresse 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ètreTypePar DéfautRequisDescription
auto_flush_enabledBooleantrueNonActiver le traitement automatique de la file d'attente SMS
auto_flush_intervalInteger10_000NonIntervalle de traitement de la file d'attente en millisecondes
auto_flush_dest_smscString-OuiNom du SMSc de destination pour l'auto-flush
auto_flush_tpsInteger10NonTaux 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ètreTypePar DéfautRequisDescription
sctp_handler.enabledBooleanfalseNonActiver le serveur SocketHandler SCTP autonome
sctp_handler.local_ipTuple ou Liste{127, 0, 0, 1}NonAdresse(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_portInteger2905NonPort à écouter
sctp_handler.point_codeInteger-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ètreTypePar DéfautRequisDescription
enable_gt_routingBooleanfalseNonActiver 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ètreTypePar DéfautRequisDescription
peer_idInteger-OuiIdentifiant unique du pair
nameString-OuiNom descriptif du pair
protocolAtom:m3uaNonType de protocole : :m3ua ou :m2pa
roleAtom:clientNonRôle de connexion : :client, :server, :asp, ou :sgp
local_ipTuple ou Liste-OuiAdresse(s) IP locale(s) pour le binding
local_portInteger-OuiPort SCTP local (M3UA : 2905, M2PA : 3565)
remote_ipTuple ou Liste-OuiAdresse(s) IP distante(s)
remote_portInteger-OuiPort SCTP distant
routing_contextInteger-NonIdentifiant de contexte de routage M3UA (uniquement M3UA)
point_codeInteger-OuiCode de point local
network_indicatorAtom:internationalNonIndicateur de réseau : :international ou :national
initiate_connectionBooleantrueNonIndique s'il faut initier la connexion SCTP

Paramètres Spécifiques à M2PA :

ParamètreTypePar DéfautRequisDescription
adjacent_point_codeInteger-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ètreTypePar DéfautRequisDescription
m3ua_routesListe de Maps[]NonListe 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) : :international ou :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ètreTypePar DéfautRequisDescription
m3ua_gt_routesListe de Maps[]NonListe 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 à tout
  • peer_id: ID du pair à travers lequel router (Integer) - utiliser 0 pour SUPPRIMER le trafic
  • priority: 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ètreTypePar DéfautRequisDescription
cap_versionAtom:v2NonVersion du protocole CAP : :v1, :v2, :v3, ou :v4
camel_gsmscf_gt_addressString(utilise le GT appelé)NonTitre 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ètreTypePar DéfautRequisDescription
cgrates_enabledBooleanfalseNonActiver l'intégration CGrateS
cgrates_urlString-Oui (si activé)URL de point de terminaison JSON-RPC de CGrateS
cgrates_tenantString"cgrates.org"NonIdentifiant de locataire CGrateS
cgrates_request_typeString"*prepaid"NonType de facturation : "*prepaid", "*postpaid", ou "*pseudoprepaid"
cgrates_timeoutInteger5000NonDé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ètreTypePar DéfautRequisDescription
cap_client_m3uaMap-OuiConfiguration 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ètreTypePar DéfautRequisDescription
gt_nat_enabledBooleanfalseNonActiver/désactiver la fonctionnalité NAT GT
gt_nat_rulesListe 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 : 100
  • response_gt: Titre Global à utiliser dans les réponses (requis)

Priorité de Correspondance :

  1. Les règles sont appariées par weight (valeur plus basse = priorité plus élevée)
  2. Si les poids sont égaux, la longueur de préfixe combiné plus longue l'emporte
  3. Les préfixes calling_prefix et called_prefix peuvent ê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ètreTypePar DéfautRequisDescription
map_client_m3ua.modeString-OuiMode de connexion : "ASP" ou "SGP"
map_client_m3ua.callbackTuple-OuiModule/fonction de rappel : {MapClient, :handle_payload, []}
map_client_m3ua.process_nameAtom-OuiNom du processus pour l'enregistrement
map_client_m3ua.local_ipTuple ou Liste-OuiAdresse(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_portInteger2905OuiPort SCTP local
map_client_m3ua.remote_ipTuple ou Liste-OuiAdresse(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_portInteger2905OuiPort SCTP distant
map_client_m3ua.routing_contextInteger-OuiID de contexte de routage M3UA
map_client_m3ua.opcInteger5013NonCode 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.dpcInteger5011NonCode 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_watchdogBooleantrueNonActiver 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_idleInteger15NonSeuil 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-Z se 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ètreTypePar DéfautDescription
receive_watchdogBooleantrueActiver 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_idleInteger15Secondes 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ètreTypePar DéfautRequisDescription
license_client.license_server_api_urlsListe de Strings-OuiURL de point de terminaison de l'API du serveur de licences
license_client.licenseeString-OuiNom 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ètreTypePar DéfautRequisDescription
control_panel.parent_application_readable_nameString"OmniSS7 Stack"NonNom de l'application affiché dans l'UI web
control_panel.use_additional_pagesListe de Tuples[]NonPages supplémentaires de l'UI web à afficher
control_panel.page_orderListe de Strings[]NonOrdre des pages dans le menu de navigation
ControlPanelWeb.Endpoint.url.hostString"0.0.0.0"NonNom d'hôte de l'interface web
ControlPanelWeb.Endpoint.https.portInteger8087NonPort HTTPS pour l'interface web
ControlPanelWeb.Endpoint.https.keyfileString"priv/cert/omnitouch.pem"NonChemin du fichier de clé privée TLS
ControlPanelWeb.Endpoint.https.certfileString"priv/cert/omnitouch.crt"NonChemin 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ètreTypePar DéfautRequisDescription
start_http_serverBooleantrueNonActiver/désactiver le serveur HTTP (port 8080)
api_ex.api.portInteger8445NonPort du serveur API
api_ex.api.listen_ipString"0.0.0.0"NonIP d'écoute du serveur API
api_ex.api.product_nameString"OmniSS7"NonNom du produit pour l'API
api_ex.api.titleString"API - OmniSS7"NonTitre de l'API pour Swagger UI
api_ex.api.hostnameString"localhost"NonNom d'hôte de l'API
api_ex.api.enable_tlsBooleantrueNonActiver TLS pour le serveur API
api_ex.api.tls_cert_pathString"priv/cert/omnitouch.crt"NonChemin du certificat TLS pour l'API
api_ex.api.tls_key_pathString"priv/cert/omnitouch.pem"NonChemin 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ètreTypePar DéfautRequisDescription
logger.levelAtom:debugNonNiveau de journalisation : :debug, :info, :warning, :error
logger.backendsListe[:console]NonBackends de journalisation (inclut SS7.Web.LoggerBackend pour l'UI web)
logger.default_formatter.formatString-NonChaîne de format de message de journal
logger.default_formatter.metadataListe[]NonChamps de métadonnées à inclure dans les journaux
logger.default_formatter.truncateAtom/Integer:infinityNonLongueur 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ètreTypePar DéfautRequisDescription
mnesia_storage_typeAtom:disc_copiesNonType 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 M3UA
  • m3ua_route - Routes de Code de Point
  • m3ua_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

ValeurImpactContournement
Délai d'attente de requête MAP : 10 secondesToutes les opérations MAP expirent après 10sModifier le code source
Délai ISD : 10 secondesChaque message ISD expire après 10sModifier le code source

Serveur HTTP

ValeurImpactContournement
IP HTTP : 0.0.0.0Le serveur de métriques/Swagger écoute sur toutes les interfacesModifier le code source
Port HTTP : 8080Le point de terminaison des métriques/Swagger fonctionne sur le port 8080Modifier le code source

Intervalles d'Enregistrement

ValeurImpactContournement
Enregistrement frontal : 5 minutesLe SMSc s'enregistre avec le backend toutes les 5 minModifier le code source

Actualisation Automatique de l'UI Web

PageIntervalle
Gestion du Routage5 secondes
Abonnés Actifs2 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_url
  • hlr_service_center_gt_address
  • smsc_service_center_gt_address
  • Tous les paramètres map_client_m3ua.* (8)

Mode SMSc :

  • smsc_api_base_url
  • smsc_service_center_gt_address
  • auto_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_ip
  • sctp_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_urls
  • license_client.licensee

Documentation Connexe