Guide de Configuration
đź“– Retour Ă la Documentation Principale
Ce document fournit une référence de configuration complète pour le serveur d'application TAS.
Documentation Connexe​
Configuration de Base​
- 📋 README Principal - Vue d'ensemble et démarrage rapide
- 🔧 Guide des Opérations - Surveillance et tâches opérationnelles
- 📊 Référence des Métriques - Métriques Prometheus et surveillance
Interfaces d'Intégration​
- 👥 Interface Sh - Récupération des données des abonnés depuis HSS/Dépôt
- 💳 Chargement en Ligne (Ro) - Intégration OCS et contrôle de crédit
- 📡 SS7 MAP - Requêtes HLR pour le roaming et le renvoi d'appels
Traitement des Appels​
- 🔀 Configuration du Plan de Numérotation - Plan de numérotation XML et logique de routage des appels
- 🔢 Traduction de Numéros - Règles de normalisation E.164
- ⚙️ Services Complémentaires - Renvoi d'appels, blocage CLI, urgence
Services à Valeur Ajoutée​
- 📞 Messagerie Vocale - Service de messagerie vocale avec notifications SMS
- 🔊 Invites TTS - Configuration des invites Text-to-Speech
- 👥 Serveur de Conférence IMS - Conférences multi-parties
Tests & Conformité​
- đź§Ş HLR & Simulateur d'Appels - Outils de test
- 📜 Conformité ANSSI R226 - Conformité pour le marché français
Config​
Le serveur d'application a besoin de :
- Se connecter aux SIP Trunks / SBCs pour les appels vers/depuis l'extérieur
- Se connecter au DRA ou HSS pour obtenir le
Sh - Se connecter éventuellement au DRA ou OCS pour le chargement en ligne
Ro - Configuration du Plan de Numérotation
- Configuration autour des règles de numérotation / traduction de numéros
- Configuration de la messagerie vocale
- Invites
- Tests
- Métriques (Prometheus)
Configuration du Socket d'Événements​
Le Socket d'Événements est utilisé pour le contrôle des appels, la surveillance des appels actifs et l'interaction avec le moteur de téléphonie. Cette connexion permet au TAS de contrôler le routage des appels, de récupérer les variables de canal et de gérer les sessions actives.
Emplacement de Configuration : config/runtime.exs
config :tas,
fs_event_socket: %{
host: "127.0.0.1",
port: 8021,
secret: "YourSecretPassword"
}
Paramètres de Configuration :
-
host(chaîne, requis) : Nom d'hôte ou adresse IP du serveur Socket d'Événements- Par défaut :
"127.0.0.1"(localhost) - Utilisez localhost si le moteur de téléphonie fonctionne sur le même serveur que TAS
- Utilisez une IP distante pour les déploiements distribués
- Exemple :
"10.8.82.60"pour une connexion distante
- Par défaut :
-
port(entier, requis) : Port TCP pour les connexions Socket d'Événements- Par défaut :
8021 - Le port standard du Socket d'Événements est 8021
- Doit correspondre à la configuration du Socket d'Événements dans votre moteur de téléphonie
- Exemple :
8021
- Par défaut :
-
secret(chaîne, requis) : Mot de passe d'authentification pour le Socket d'Événements- Doit correspondre au mot de passe configuré dans votre moteur de téléphonie
- Utilisé pour authentifier les connexions ESL
- Remarque de Sécurité : Utilisez un mot de passe aléatoire fort et gardez-le sécurisé
- Exemple :
"cd463RZ8qMk9AHMMDGT3V"
Cas d'Utilisation :
- Contrôle et routage des appels en temps réel
- Récupération des informations d'appel actif pour la vue
/callsdans le Panneau de Contrôle - Exécution d'applications de plan de numérotation de manière programmatique
- Surveillance des changements d'état des appels et des événements
- Gestion des conférences téléphoniques
Comportement de Connexion :
- TAS établit des connexions persistantes au Socket d'Événements
- Se reconnecte automatiquement en cas d'échec de connexion
- Utilisé à la fois pour les modes entrants (réception d'événements) et sortants (contrôle des appels)
- Les délais d'attente de connexion et la logique de nouvelle tentative sont intégrés
Considérations de Sécurité :
- Utilisez toujours un mot de passe fort et unique pour le paramètre
secret - Si vous utilisez des connexions distantes, assurez-vous que les règles de pare-feu n'autorisent que les serveurs TAS de confiance
- Envisagez d'utiliser des connexions uniquement localhost lorsque TAS et le moteur de téléphonie sont co-localisés
- Ne pas exposer le port du Socket d'Événements aux réseaux publics
Dépannage :
- Connexion Refusée : Vérifiez que le moteur de téléphonie est en cours d'exécution et que le Socket d'Événements est activé
- Échec d'Authentification : Vérifiez que le
secretcorrespond à la configuration du moteur de téléphonie - Erreurs de Délai d'Attente : Vérifiez la connectivité réseau et les règles de pare-feu
- Impossible de Contrôler les Appels : Assurez-vous que TAS s'est connecté avec succès (vérifiez les journaux)
Configuration du Panneau de Contrôle​
Le Panneau de Contrôle fournit une interface web pour surveiller et gérer le système TAS. Cela inclut la visualisation des abonnés, des CDR, des appels actifs, des pairs Diameter, des passerelles et de la configuration système.
Emplacement de Configuration : config/runtime.exs
config :control_panel,
page_order: ["/application", "/configuration"]
config :control_panel, ControlPanelWeb.Endpoint,
url: [host: "0.0.0.0", path: "/"],
https: [
port: 443,
keyfile: "priv/cert/server.key",
certfile: "priv/cert/server.crt"
]
Paramètres de Configuration :
Configuration de l'Ordre des Pages​
page_order(liste de chaînes) : Contrôle l'ordre d'affichage des pages de configuration dans le Panneau de Contrôle- Spécifie quelles pages apparaissent dans la navigation et leur ordre
- Exemple :
["/application", "/configuration"] - Par défaut : Si non défini, les pages apparaissent dans l'ordre alphabétique par défaut
Configuration de l'Endpoint Web​
-
url(carte) : Configuration de l'URL publique pour le Panneau de Contrôlehost: Nom d'hôte pour générer des URL (par exemple,"tas.example.com"ou"0.0.0.0")path: Chemin de base pour toutes les routes du Panneau de Contrôle (par défaut :"/")- Utilisé pour générer des URL absolues dans les redirections et les liens
-
https(carte) : Configuration HTTPS/TLS pour un accès sécuriséport(entier) : Numéro de port HTTPS (le standard est443)keyfile(chaîne) : Chemin vers le fichier de clé privée TLS (format PEM)certfile(chaîne) : Chemin vers le fichier de certificat TLS (format PEM)- Les deux fichiers doivent être lisibles par l'application TAS
Gestion des Certificats :
Le Panneau de Contrôle nécessite des certificats TLS valides pour l'accès HTTPS :
-
Certificats Auto-signés (Développement/Test) :
openssl req -x509 -newkey rsa:4096 -keyout priv/cert/server.key \
-out priv/cert/server.crt -days 365 -nodes -
Certificats de Production :
- Utilisez des certificats d'une Autorité de Certification (CA) de confiance
- Fournisseurs courants : Let's Encrypt (gratuit), CAs commerciaux
- Assurez-vous que les certificats incluent la chaîne complète pour la confiance du navigateur
- Gardez les clés privées sécurisées avec des permissions de fichier appropriées (
chmod 600)
Contrôle d'Accès :
Le Panneau de Contrôle fournit un accès à des données opérationnelles sensibles :
- Informations sur les Abonnés : Détails d'enregistrement, historique des appels, emplacements
- Registres de Détails d'Appels : Enregistrements d'appels complets avec données MSISDN
- Configuration Système : Pairs Diameter, passerelles, routage
- Appels Actifs : Surveillance en temps réel des sessions en cours
Mesures de Sécurité Recommandées :
- Déployer derrière un pare-feu ou un VPN pour les environnements de production
- Utiliser des certificats TLS forts d'CA de confiance
- Mettre en œuvre des contrôles d'accès au niveau réseau (liste blanche IP)
- Envisager des couches d'authentification supplémentaires si exposé à l'extérieur
- Auditer régulièrement les journaux d'accès
- Utiliser uniquement HTTPS - ne jamais servir sur HTTP simple
Modèles de Déploiement Courants :
-
Accès Interne Uniquement :
url: [host: "10.8.82.60", path: "/"] # Réseau interne uniquement -
Accès Externe avec Domaine :
url: [host: "tas.operator.com", path: "/"]
https: [port: 443, ...] -
Derrière un Proxy Inverse :
url: [host: "tas.internal", path: "/panel"] # Nginx/Apache redirige vers ceci
Dépannage :
- Erreurs de Certificat : Vérifiez que les chemins vers
keyfileetcertfilesont corrects et que les fichiers sont lisibles - Port Déjà Utilisé : Vérifiez si un autre service utilise le port 443, ou changez-le pour un autre port
- Impossible d'Accéder à l'UI : Vérifiez que les règles de pare-feu permettent l'accès au port HTTPS configuré
- Échecs de Négociation SSL : Assurez-vous que le certificat et la clé correspondent et sont au format PEM
Configuration de l'API​
Le TAS inclut une API REST pour un accès programmatique aux fonctions système, à la gestion des abonnés et aux données opérationnelles. L'API prend en charge la documentation OpenAPI/Swagger et est sécurisée par TLS.
Emplacement de Configuration : config/runtime.exs
config :api_ex,
api: %{
port: 8444,
listen_ip: "0.0.0.0",
product_name: "OmniTAS",
title: "API - OmniTAS",
hostname: "localhost",
enable_tls: true,
tls_cert_path: "priv/cert/server.crt",
tls_key_path: "priv/cert/server.key"
}
Paramètres de Configuration :
-
port(entier, requis) : Port TCP pour le serveur API- Par défaut :
8444 - Choisissez un port qui ne rentre pas en conflit avec d'autres services
- Le port HTTPS standard est 443, mais des ports personnalisés sont courants pour les API
- Exemple :
8444,8443,9443
- Par défaut :
-
listen_ip(chaîne, requis) : Adresse IP à lier au serveur API"0.0.0.0": Écoute sur toutes les interfaces réseau (accès externe)"127.0.0.1": Écoute uniquement sur localhost (accès interne uniquement)- IP spécifique : Lier à une interface particulière (par exemple,
"10.8.82.60") - Sécurité : Utilisez
"127.0.0.1"si l'API n'est nécessaire qu'en interne
-
product_name(chaîne) : Identifiant du produit pour les métadonnées de l'API- Utilisé dans les réponses et la documentation de l'API
- Exemple :
"OmniTAS","MyOperator-IMS"
-
title(chaîne) : Titre lisible par l'homme pour la documentation de l'API- Affiché dans l'en-tête de l'interface OpenAPI/Swagger
- Exemple :
"API - OmniTAS","API du Serveur d'Application IMS"
-
hostname(chaîne) : Nom d'hôte pour le serveur API dans la documentation- Utilisé dans la spécification OpenAPI pour générer des URL d'exemple
- Doit correspondre à la manière dont les clients accèdent à l'API
- Exemples :
"localhost","api.operator.com","10.8.82.60"
-
enable_tls(booléen) : Activer ou désactiver TLS/HTTPS pour l'APItrue: Servir l'API sur HTTPS (recommandé pour la production)false: Servir l'API sur HTTP (uniquement pour les tests/développement)- Sécurité : Utilisez toujours
truedans les environnements de production
-
tls_cert_path(chaîne) : Chemin vers le fichier de certificat TLS (format PEM)- Requis lorsque
enable_tls: true - Doit ĂŞtre lisible par l'application TAS
- Exemple :
"priv/cert/server.crt"
- Requis lorsque
-
tls_key_path(chaîne) : Chemin vers le fichier de clé privée TLS (format PEM)- Requis lorsque
enable_tls: true - Doit ĂŞtre lisible par l'application TAS
- Sécurité : Protéger avec des permissions de fichier (
chmod 600) - Exemple :
"priv/cert/server.key"
- Requis lorsque
Fonctionnalités de l'API :
L'API REST fournit un accès programmatique à :
- Gestion et provisionnement des abonnés
- Requêtes de Registres de Détails d'Appels (CDR)
- État du système et vérifications de santé
- État des pairs Diameter
- État et statistiques des passerelles
- Surveillance des appels actifs
- Gestion de la configuration
Documentation OpenAPI/Swagger :
L'API inclut une documentation OpenAPI (Swagger) intégrée :
- Accédez à l'interface Swagger à :
https://hostname:port/api/swaggerui - Spécification JSON OpenAPI à :
https://hostname:port/api/openapi - Test API interactif directement depuis le navigateur
- Documentation complète des points de terminaison avec schémas de requête/réponse
Considérations de Sécurité :
- Authentification : Implémentez l'authentification API en fonction de vos exigences de sécurité
- Accès Réseau : Utilisez des règles de pare-feu pour restreindre l'accès à l'API aux clients autorisés
- TLS Requis : Activez toujours TLS en production (
enable_tls: true) - Validation des Certificats : Utilisez des certificats de confiance pour les API de production
- Limitation de Taux : Envisagez d'implémenter une limitation de taux pour les API exposées au public
- Journaux d'Accès : Surveillez les journaux d'accès API pour une activité suspecte
Exemple d'Utilisation :
# Interroger l'API avec curl (remplacez par le point de terminaison réel)
curl -k https://localhost:8444/api/health
# Accéder à la documentation Swagger
https://localhost:8444/api/swaggerui
Scénarios de Déploiement Courants :
-
API Interne Uniquement :
listen_ip: "127.0.0.1" # Accessible uniquement depuis localhost
enable_tls: false # HTTP pour les tests internes -
API de Production avec TLS :
listen_ip: "0.0.0.0" # Accessible depuis le réseau
enable_tls: true # HTTPS requis
hostname: "api.operator.com" -
Développement/Test :
listen_ip: "0.0.0.0"
enable_tls: false # HTTP pour faciliter les tests
port: 8080 # Port non privilégié
Dépannage :
- Échec de Liaison de Port : Vérifiez que le port n'est pas utilisé par un autre service, ou exécutez en tant que root pour les ports < 1024
- Erreurs TLS : Vérifiez que les chemins de certificat et de clé sont corrects et que les fichiers sont lisibles
- Impossible de Se Connecter : Vérifiez que le pare-feu permet l'accès au port configuré
- Mismatch de Certificat : Assurez-vous que le
hostnamecorrespond au Nom Commun (CN) ou au SAN du certificat - API Retourne 404 : Vérifiez que l'application API a démarré avec succès dans les journaux
Configuration du Trunk SIP​
Ansible est responsable de la création de la configuration XML pour chaque passerelle sortante, visible dans l'onglet Passerelles, qui sont utilisées pour les appels sortants.
Les adresses CSCF et les adresses de passerelle doivent être incluses dans la configuration visible à l'exécution, afin que nous sachions quelles IP autoriser pour les appels, nous faisons cela dans allowed_sbc_source_ips pour les Passerelles / SBCs (sources qui enverront du trafic MT vers le réseau) et allowed_cscf_ips pour les CSCFs (sources d'où le trafic MO sera originaire).
Remarque - Si vous allez router des appels de votre TAS vers lui-même (c'est-à -dire un appel MO vers un abonné sur le réseau qui revient dans le plan de numérotation MT), alors votre IP TAS doit également être dans la liste des IP sources autorisées.
config :tas,
allowed_sbc_source_ips: ["10.5.198.200", "103.26.174.36"],
allowed_cscf_ips: ["10.8.3.34"],
Depuis l'interface Web, nous pouvons voir l'état de chaque passerelle, et :
- Statut d'enregistrement SIP (si l'enregistrement est activé)
- Domaine SIP
- Adresse Proxy SIP (si utilisée)
- Nom d'utilisateur
- Temps de Ping (Temps de réponse moyen des OPTIONS SIP (si les OPTIONS SIP sont activées))
- Temps de fonctionnement (Secondes depuis que le profil a été redémarré ou est monté)
- Appels entrants / Appels sortants / Appels échoués entrants / Appels échoués sortants
- Dernier temps de ping OPTIONS SIP (Epoch)
- Fréquence de ping OPTIONS SIP
- Plus d'infos dans le bouton détails
Référence de Configuration des Passerelles​
Les passerelles sont configurées au format XML. Chaque passerelle représente une connexion de trunk SIP à un SBC externe, un opérateur ou une passerelle PSTN.
Exemple de Passerelle de Base :
<include>
<gateway name="carrier_trunk">
<param name="proxy" value="203.0.113.50;transport=tcp"/>
<param name="register" value="true"/>
<param name="caller-id-in-from" value="true"/>
<param name="username" value="trunk_user"/>
<param name="password" value="secure_password"/>
<param name="register-transport" value="tcp"/>
<param name="retry-seconds" value="30"/>
<param name="ping" value="25"/>
</gateway>
</include>
Passerelle sans Enregistrement :
<include>
<gateway name="sbc_static">
<param name="proxy" value="198.51.100.10"/>
<param name="register" value="false"/>
<param name="caller-id-in-from" value="true"/>
</gateway>
</include>
Paramètres de Passerelle​
Paramètres Requis​
name (attribut de passerelle)
- L'identifiant de nom unique pour cette passerelle
- Utilisé dans le plan de numérotation pour référencer la passerelle :
sofia/gateway/name/destination - Exemple :
<gateway name="my_trunk">
proxy
- Adresse IP ou nom d'hĂ´te du proxy/passerelle SIP
- Peut inclure le port et le protocole de transport
- Exemples :
value="203.0.113.50"(port par défaut 5060, UDP)value="203.0.113.50:5061"(port personnalisé)value="203.0.113.50;transport=tcp"(transport TCP)value="203.0.113.50:5061;transport=tls"(TLS sur le port 5061)
register
- Indique s'il faut envoyer un SIP REGISTER Ă la passerelle
- Valeurs :
true|false - Défini sur
truesi le trunk nécessite un enregistrement - Défini sur
falsepour les trunks basés sur IP statique
Paramètres d'Authentification​
username
- Nom d'utilisateur d'authentification SIP
- Utilisé dans l'enregistrement et pour l'authentification par digest
- Requis si
register="true" - Exemple :
value="trunk_account_123"
password
- Mot de passe d'authentification SIP
- Utilisé pour les défis d'authentification par digest
- Requis si
register="true" - Exemple :
value="MySecureP@ssw0rd"
realm
- Domaine SIP pour l'authentification
- Optionnel - généralement détecté automatiquement à partir du défi
- Exemple :
value="sip.carrier.com"
auth-username
- Nom d'utilisateur alternatif pour l'authentification (si différent de
username) - Rarement nécessaire - seulement si l'opérateur exige un utilisateur différent dans l'auth par rapport à l'en-tête From
- Exemple :
value="auth_user_456"
Paramètres d'Enregistrement​
register-transport
- Protocole de transport pour les messages REGISTER
- Valeurs :
udp|tcp|tls - Doit correspondre au transport spécifié dans le paramètre
proxy - Exemple :
value="tcp"
register-proxy
- Adresse proxy alternative pour l'enregistrement (si différente du routage des appels)
- Utile lorsque le serveur d'enregistrement diffère du serveur de routage des appels
- Exemple :
value="register.carrier.com:5060"
retry-seconds
- Secondes à attendre avant de réessayer un enregistrement échoué
- Par défaut :
30 - Plage :
5Ă3600 - Exemple :
value="30"
expire-seconds
- Temps d'expiration de l'enregistrement en secondes
- Par défaut :
3600(1 heure) - La passerelle se réenregistrera avant l'expiration
- Exemple :
value="1800"(30 minutes)
caller-id-in-from
- Inclure l'identifiant de l'appelant dans l'en-tĂŞte From SIP
- Valeurs :
true|false true: L'en-tête From inclut le numéro d'appelant réel (requis par la plupart des opérateurs)false: L'en-tête From utilise le nom d'utilisateur de la passerelle- Recommandation : Défini sur
truepour la plupart des déploiements - Exemple :
value="true"
Paramètres de Surveillance​
ping
- Envoyer un ping SIP OPTIONS toutes les N secondes
- Surveille la disponibilité de la passerelle et mesure la latence
- Désactivé si non spécifié ou défini sur
0 - Valeurs typiques :
15Ă60secondes - Visible dans l'UI de Statut de la Passerelle comme "Temps de Ping"
- Exemple :
value="25"
ping-max
- Temps maximum (secondes) pour réessayer les pings avant de marquer la passerelle comme hors ligne
- Par défaut : Calculé à partir de l'intervalle
ping - Exemple :
value="3"
Paramètres de Routage des Appels​
extension
- Numéro de destination fixe à composer toujours sur cette passerelle
- Rarement utilisé - généralement la destination provient du plan de numérotation
- Exemple :
value="+12125551234"
extension-in-contact
- Inclure l'extension dans l'en-tĂŞte Contact
- Valeurs :
true|false - Par défaut :
false - Exemple :
value="false"
contact-params
- Paramètres supplémentaires à ajouter à l'en-tête Contact
- Utile pour les exigences spécifiques à l'opérateur
- Exemple :
value="line=1;isup=true"
Paramètres Avancés​
from-user
- Remplacer le nom d'utilisateur dans l'en-tĂŞte From
- Par défaut : Utilise le numéro d'appel ou le nom d'utilisateur de la passerelle
- Exemple :
value="trunk_pilot"
from-domain
- Remplacer le domaine dans l'en-tĂŞte From
- Par défaut : Utilise le domaine du proxy
- Exemple :
value="my-domain.com"
outbound-proxy
- Proxy sortant pour tous les messages SIP
- Différent de
proxy- utilisé comme cible de l'en-tête Route - Exemple :
value="edge-proxy.carrier.com:5060"
context
- Contexte du plan de numérotation pour les appels entrants de cette passerelle
- Par défaut :
public - Permet un routage d'appels entrants différent par passerelle
- Exemple :
value="from-carrier"
channels
- Nombre maximum d'appels simultanés sur cette passerelle
- Par défaut : Illimité
- Utilisé pour la gestion de la capacité
- Exemple :
value="100"
dtmf-type
- Méthode de transmission DTMF
- Valeurs :
rfc2833|info|inband|auto - Par défaut :
rfc2833(recommandé) rfc2833: Événements RTP téléphoniques (le plus courant)info: Messages SIP INFOinband: Tons audio- Exemple :
value="rfc2833"
codec-prefs
- Liste de codecs préférés pour cette passerelle
- Liste séparée par des virgules dans l'ordre de préférence
- Exemple :
value="PCMU,PCMA,G729" - Codecs courants :
PCMU,PCMA,G729,AMR,AMR-WB,G722,OPUS
rtp-timeout-sec
- Raccrocher l'appel si aucun RTP reçu pendant N secondes
- Par défaut :
0(désactivé) - Utile pour détecter les appels morts
- Exemple :
value="120"
rtp-hold-timeout-sec
- Délai d'expiration pour les appels en attente sans RTP
- Par défaut :
0(désactivé) - Exemple :
value="1800"(30 minutes)
Options de Signalisation SIP​
sip-port
- Port SIP local Ă utiliser pour cette passerelle
- Par défaut : Port du profil
- Rarement nécessaire
- Exemple :
value="5060"
rtp-ip
- Adresse IP locale pour les médias RTP
- Par défaut : IP RTP du profil
- Exemple :
value="10.0.0.5"
register-proxy-port
- Port pour le proxy d'enregistrement
- Nécessaire uniquement s'il est différent du port proxy
- Exemple :
value="5061"
contact-host
- Remplacer la portion hĂ´te de l'en-tĂŞte Contact
- Utile pour les scénarios NAT
- Exemple :
value="public-ip.example.com"
distinct-to
- Utiliser un en-tête To distinct (différent de Request-URI)
- Valeurs :
true|false - Exigence spécifique à l'opérateur
- Exemple :
value="false"
cid-type
- Type d'identifiant de l'appelant dans les en-tĂŞtes Remote-Party-ID ou P-Asserted-Identity
- Valeurs :
rpid|pid|none rpid: En-tĂŞte Remote-Party-IDpid: En-tĂŞte P-Asserted-Identity- Exemple :
value="pid"
extension-in-contact
- Ajouter un paramètre d'extension à l'URI de Contact
- Valeurs :
true|false - Exemple :
value="true"
Sécurité des Transports​
transport (dans le paramètre proxy)
- Protocole de transport
- Valeurs :
udp|tcp|tls|ws|wss - Spécifié comme partie de la valeur du proxy
- Exemple :
proxy="203.0.113.50;transport=tcp"
Pour les connexions TLS, une configuration de certificat supplémentaire peut être requise dans le profil SIP.
Exemple Complet avec Options Courantes​
<include>
<gateway name="primary_carrier">
<!-- Requis : Connexion de base -->
<param name="proxy" value="sbc.carrier.com:5060;transport=tcp"/>
<param name="register" value="true"/>
<!-- Authentification -->
<param name="username" value="customer_trunk_01"/>
<param name="password" value="SecurePassword123"/>
<!-- Enregistrement -->
<param name="register-transport" value="tcp"/>
<param name="expire-seconds" value="1800"/>
<param name="retry-seconds" value="30"/>
<!-- Identifiant de l'appelant -->
<param name="caller-id-in-from" value="true"/>
<!-- Surveillance -->
<param name="ping" value="30"/>
<!-- Médias -->
<param name="codec-prefs" value="PCMU,PCMA,G729"/>
<param name="dtmf-type" value="rfc2833"/>
<!-- Limites d'appels -->
<param name="channels" value="100"/>
<!-- Délais RTP -->
<param name="rtp-timeout-sec" value="300"/>
</gateway>
</include>
Utilisation de la Passerelle dans le Plan de Numérotation​
Référencez les passerelles dans votre plan de numérotation en utilisant le format sofia/gateway/name/destination :
<!-- Routage vers une passerelle spécifique -->
<action application="bridge" data="sofia/gateway/primary_carrier/+12125551234"/>
<!-- Routage utilisant une variable -->
<action application="bridge" data="sofia/gateway/primary_carrier/${tas_destination_number}"/>
<!-- Routage avec des en-têtes SIP personnalisés -->
<action application="bridge" data="{sip_h_X-Custom=Value}sofia/gateway/primary_carrier/${tas_destination_number}"/>
<!-- Échec entre les passerelles -->
<action application="bridge" data="sofia/gateway/primary_carrier/${tas_destination_number}|sofia/gateway/backup_carrier/${tas_destination_number}"/>
Dépannage des Problèmes de Passerelle​
La Passerelle ne S'enregistre Pas :
- Vérifiez que le
usernameet lepasswordsont corrects - Vérifiez que l'adresse
proxyest accessible - Confirmez que le
register-transportcorrespond aux exigences de l'opérateur - Consultez les journaux pour les échecs d'authentification
Les Appels Échouent :
- Vérifiez l'état de la passerelle dans l'UI Web (
/gw) - Vérifiez que le paramètre
caller-id-in-fromcorrespond à l'exigence de l'opérateur - Confirmez la compatibilité des codecs avec
codec-prefs - Vérifiez que le pare-feu autorise le trafic SIP et RTP
Qualité d'Appel Médiocre :
- Consultez les temps de
pingdans le Statut de la Passerelle - Vérifiez que
rtp-timeout-secn'est pas trop agressif - Vérifiez que les préférences de codec correspondent aux capacités du réseau
- Surveillez la latence du réseau et la perte de paquets
Configuration des Pairs Diameter​
Les pairs Diameter doivent être définis dans la configuration d'exécution.
Cette configuration est largement standard.
L'interface Ro n'a pas besoin d'être incluse dans les Applications si Ro n'est pas utilisé dans votre déploiement.
config :diameter_ex,
diameter: %{
service_name: :omnitouch_tas,
listen_ip: "10.8.82.60",
listen_port: 3868,
decode_format: :map,
host: "example-dc01-as01",
realm: "epc.mnc001.mcc001.3gppnetwork.org",
product_name: "OmniTAS",
request_timeout: 5000,
peer_selection_algorithm: :random,
allow_undefined_peers_to_connect: true,
log_unauthorized_peer_connection_attempts: true,
control_module: Tas.Control.Diameter,
processor_module: DiameterEx.Processor,
auth_application_ids: [],
acct_application_ids: [],
vendor_id: 10415,
supported_vendor_ids: [10415],
applications: [
%{
application_name: :sh,
application_dictionary: :diameter_gen_3gpp_sh,
vendor_specific_application_ids: [
%{
vendor_id: 10415,
auth_application_id: 16_777_217,
acct_application_id: nil
}
]
},
%{
application_name: :ro,
application_dictionary: :diameter_gen_3gpp_ro,
vendor_specific_application_ids: [
%{
vendor_id: 0,
auth_application_id: 4,
acct_application_id: nil
}
]
}
],
peers: [
%{
port: 3868,
host: "example-dc01-dra01.epc.mnc001.mcc001.3gppnetwork.org",
ip: "1.2.3.4",
realm: "epc.mnc001.mcc001.3gppnetwork.org",
tls: false,
transport: :diameter_tcp,
initiate_connection: true
},
%{
port: 3869,
host: "example-dc01-dra02.epc.mnc001.mcc001.3gppnetwork.org",
ip: "1.2.3.44",
realm: "epc.mnc001.mcc001.3gppnetwork.org",
tls: false,
transport: :diameter_tcp,
initiate_connection: true
}
]
}
Vous pouvez vérifier l'état des pairs Diameter depuis l'onglet Diameter sur l'interface Web.
Vous pouvez également tester la récupération des données Sh depuis l'onglet Sh sur l'interface Web pour essayer de récupérer n'importe quelles données de Sh.