Aller au contenu principal

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​

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​

Services à Valeur Ajoutée​

Tests & Conformité​


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
  • 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
  • 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 /calls dans 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 secret correspond Ă  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Ă´le

    • host : 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 est 443)
    • 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 :

  1. 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
  2. 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 :

  1. Accès Interne Uniquement :

    url: [host: "10.8.82.60", path: "/"]  # Réseau interne uniquement
  2. Accès Externe avec Domaine :

    url: [host: "tas.operator.com", path: "/"]
    https: [port: 443, ...]
  3. 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 keyfile et certfile sont 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
  • 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'API

    • true : 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 true dans 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"
  • 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"

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 :

  1. API Interne Uniquement :

    listen_ip: "127.0.0.1"  # Accessible uniquement depuis localhost
    enable_tls: false # HTTP pour les tests internes
  2. 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"
  3. 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 hostname correspond 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 true si le trunk nĂ©cessite un enregistrement
  • DĂ©fini sur false pour 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 true pour 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 Ă  60 secondes
  • 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 INFO
  • inband : 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-ID
  • pid : 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 username et le password sont corrects
  • VĂ©rifiez que l'adresse proxy est accessible
  • Confirmez que le register-transport correspond 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-from correspond Ă  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 ping dans le Statut de la Passerelle
  • VĂ©rifiez que rtp-timeout-sec n'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.