Guía de Configuración
📖 Volver a la Documentación Principal
Este documento proporciona una referencia de configuración completa para el Servidor de Aplicaciones TAS.
Documentación Relacionada
Configuración Principal
- 📋 README Principal - Visión general y comienzo rápido
- 🔧 Guía de Operaciones - Monitoreo y tareas operativas
- 📊 Referencia de Métricas - Métricas de Prometheus y monitoreo
Interfaces de Integración
- 👥 Interfaz Sh - Recuperación de datos de suscriptores desde HSS/Repositorio
- 💳 Carga en Línea (Ro) - Integración de OCS y control de crédito
- 📡 SS7 MAP - Consultas HLR para roaming y desvío de llamadas
Procesamiento de Llamadas
- 🔀 Configuración del Plan de Marcado - XML del plan de marcado y lógica de enrutamiento de llamadas
- 🔢 Traducción de Números - Reglas de normalización E.164
- ⚙️ Servicios Suplementarios - Desvío de llamadas, bloqueo de CLI, emergencia
Servicios de Valor Agregado
- 📞 Correo de Voz - Servicio de correo de voz con notificaciones SMS
- 🔊 Prompts TTS - Configuración de prompts de Texto a Voz
- 👥 Servidor de Conferencias IMS - Conferencias multipartitas
Pruebas y Cumplimiento
- 🧪 HLR y Simulador de Llamadas - Herramientas de prueba
- 📜 Cumplimiento ANSSI R226 - Cumplimiento en el mercado francés
Config
El Servidor de Aplicaciones necesita:
- Conectarse a Troncales SIP / SBCs para llamadas de/a fuera de la red
- Conectarse al DRA o HSS para obtener el
Sh - Opcionalmente conectarse al DRA o OCS para la carga en línea
Ro - Configuración del Plan de Marcado
- Configuración en torno a las reglas de marcado / traducción de números
- Configuración de correo de voz
- Prompts
- Pruebas
- Métricas (Prometheus)
Configuración del Socket de Eventos
El Socket de Eventos se utiliza para el control de llamadas, monitoreo de llamadas activas e interacción con el motor de telefonía. Esta conexión permite al TAS controlar el enrutamiento de llamadas, recuperar variables de canal y gestionar sesiones activas.
Ubicación de Configuración: config/runtime.exs
config :tas,
fs_event_socket: %{
host: "127.0.0.1",
port: 8021,
secret: "YourSecretPassword"
}
Parámetros de Configuración:
-
host(cadena, requerido): Nombre de host o dirección IP del servidor Socket de Eventos- Predeterminado:
"127.0.0.1"(localhost) - Utilice localhost si el motor de telefonía se ejecuta en el mismo servidor que TAS
- Utilice IP remota para implementaciones distribuidas
- Ejemplo:
"10.8.82.60"para conexión remota
- Predeterminado:
-
port(entero, requerido): Puerto TCP para conexiones del Socket de Eventos- Predeterminado:
8021 - El puerto estándar del Socket de Eventos es 8021
- Debe coincidir con la configuración del Socket de Eventos en su motor de telefonía
- Ejemplo:
8021
- Predeterminado:
-
secret(cadena, requerido): Contraseña de autenticación para el Socket de Eventos- Debe coincidir con la contraseña configurada en su motor de telefonía
- Utilizada para autenticar conexiones ESL
- Nota de Seguridad: Use una contraseña aleatoria fuerte y manténgala segura
- Ejemplo:
"cd463RZ8qMk9AHMMDGT3V"
Casos de Uso:
- Control y enrutamiento de llamadas en tiempo real
- Recuperación de información de llamadas activas para la vista
/callsen el Panel de Control - Ejecución programática de aplicaciones de plan de marcado
- Monitoreo de cambios de estado de llamadas y eventos
- Gestión de conferencias telefónicas
Comportamiento de Conexión:
- TAS establece conexiones persistentes al Socket de Eventos
- Se reconecta automáticamente en caso de fallo de conexión
- Se utiliza tanto para modos entrantes (recibiendo eventos) como salientes (controlando llamadas)
- Los tiempos de espera de conexión y la lógica de reintento están integrados
Consideraciones de Seguridad:
- Siempre use una contraseña fuerte y única para el parámetro
secret - Si utiliza conexiones remotas, asegúrese de que las reglas del firewall permitan solo servidores TAS de confianza
- Considere usar conexiones solo localhost cuando TAS y el motor de telefonía estén co-localizados
- No exponga el puerto del Socket de Eventos a redes públicas
Solución de Problemas:
- Conexión Rechazada: Verifique que el motor de telefonía esté en funcionamiento y que el Socket de Eventos esté habilitado
- Autenticación Fallida: Verifique que el
secretcoincida con la configuración del motor de telefonía - Errores de Tiempo de Espera: Verifique la conectividad de red y las reglas del firewall
- No se Pueden Controlar Llamadas: Asegúrese de que TAS se haya conectado correctamente (verifique los registros)
Configuración del Panel de Control
El Panel de Control proporciona una interfaz web para monitorear y gestionar el sistema TAS. Esto incluye ver suscriptores, CDRs, llamadas activas, pares Diameter, gateways y configuración del sistema.
Ubicación de Configuración: 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"
]
Parámetros de Configuración:
Configuración del Orden de Páginas
page_order(lista de cadenas): Controla el orden de visualización de las páginas de configuración en el Panel de Control- Especifica qué páginas aparecen en la navegación y su orden
- Ejemplo:
["/application", "/configuration"] - Predeterminado: Si no se establece, las páginas aparecen en orden alfabético predeterminado
Configuración del Endpoint Web
-
url(mapa): Configuración de URL pública para el Panel de Controlhost: Nombre de host para generar URLs (por ejemplo,"tas.example.com"o"0.0.0.0")path: Ruta base para todas las rutas del Panel de Control (predeterminado:"/")- Utilizado para generar URLs absolutas en redirecciones y enlaces
-
https(mapa): Configuración de HTTPS/TLS para acceso seguroport(entero): Número de puerto HTTPS (el estándar es443)keyfile(cadena): Ruta al archivo de clave privada TLS (formato PEM)certfile(cadena): Ruta al archivo de certificado TLS (formato PEM)- Ambos archivos deben ser legibles por la aplicación TAS
Gestión de Certificados:
El Panel de Control requiere certificados TLS válidos para acceso HTTPS:
-
Certificados Autofirmados (Desarrollo/Pruebas):
openssl req -x509 -newkey rsa:4096 -keyout priv/cert/server.key \
-out priv/cert/server.crt -days 365 -nodes -
Certificados de Producción:
- Utilice certificados de una Autoridad de Certificación (CA) de confianza
- Proveedores comunes: Let's Encrypt (gratis), CAs comerciales
- Asegúrese de que los certificados incluyan la cadena completa para la confianza del navegador
- Mantenga las claves privadas seguras con permisos de archivo apropiados (
chmod 600)
Control de Acceso:
El Panel de Control proporciona acceso a datos operativos sensibles:
- Información del Suscriptor: Detalles de registro, historial de llamadas, ubicaciones
- Registros de Detalles de Llamadas: Registros completos de llamadas con datos MSISDN
- Configuración del Sistema: Pares Diameter, gateways, enrutamiento
- Llamadas Activas: Monitoreo en tiempo real de sesiones en curso
Medidas de Seguridad Recomendadas:
- Despliegue detrás de un firewall o VPN para entornos de producción
- Utilice certificados TLS fuertes de CAs de confianza
- Implemente controles de acceso a nivel de red (lista blanca de IP)
- Considere capas de autenticación adicionales si se expone externamente
- Audite regularmente los registros de acceso
- Use HTTPS únicamente - nunca sirva a través de HTTP sin cifrado
Patrones Comunes de Despliegue:
-
Acceso Solo Interno:
url: [host: "10.8.82.60", path: "/"] # Solo red interna -
Acceso Externo con Dominio:
url: [host: "tas.operator.com", path: "/"]
https: [port: 443, ...] -
Detrás de un Proxy Inverso:
url: [host: "tas.internal", path: "/panel"] # Nginx/Apache reenvía a esto
Solución de Problemas:
- Errores de Certificado: Verifique que las rutas a
keyfileycertfilesean correctas y que los archivos sean legibles - Puerto Ya en Uso: Verifique si otro servicio está utilizando el puerto 443, o cambie a otro puerto
- No se Puede Acceder a la UI: Verifique que las reglas del firewall permitan el acceso al puerto HTTPS configurado
- Fallos en el Handshake SSL: Asegúrese de que el certificado y la clave coincidan y estén en formato PEM
Configuración de la API
El TAS incluye una API REST para acceso programático a funciones del sistema, gestión de suscriptores y datos operativos. La API soporta documentación OpenAPI/Swagger y está asegurada con TLS.
Ubicación de Configuración: 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"
}
Parámetros de Configuración:
-
port(entero, requerido): Puerto TCP para el servidor API- Predeterminado:
8444 - Elija un puerto que no entre en conflicto con otros servicios
- El puerto estándar HTTPS es 443, pero los puertos personalizados son comunes para APIs
- Ejemplo:
8444,8443,9443
- Predeterminado:
-
listen_ip(cadena, requerido): Dirección IP para vincular el servidor API"0.0.0.0": Escuchar en todas las interfaces de red (acceso externo)"127.0.0.1": Escuchar solo en localhost (acceso interno únicamente)- IP específica: Vincular a una interfaz particular (por ejemplo,
"10.8.82.60") - Seguridad: Utilice
"127.0.0.1"si la API solo es necesaria internamente
-
product_name(cadena): Identificador del producto para los metadatos de la API- Utilizado en respuestas y documentación de la API
- Ejemplo:
"OmniTAS","MyOperator-IMS"
-
title(cadena): Título legible por humanos para la documentación de la API- Mostrado en el encabezado de la interfaz OpenAPI/Swagger
- Ejemplo:
"API - OmniTAS","API del Servidor de Aplicaciones IMS"
-
hostname(cadena): Nombre de host para el servidor API en la documentación- Utilizado en la especificación OpenAPI para generar URLs de ejemplo
- Debe coincidir con cómo los clientes acceden a la API
- Ejemplos:
"localhost","api.operator.com","10.8.82.60"
-
enable_tls(booleano): Habilitar o deshabilitar TLS/HTTPS para la APItrue: Servir la API a través de HTTPS (recomendado para producción)false: Servir la API a través de HTTP (solo para pruebas/desarrollo)- Seguridad: Siempre use
trueen entornos de producción
-
tls_cert_path(cadena): Ruta al archivo de certificado TLS (formato PEM)- Requerido cuando
enable_tls: true - Debe ser legible por la aplicación TAS
- Ejemplo:
"priv/cert/server.crt"
- Requerido cuando
-
tls_key_path(cadena): Ruta al archivo de clave privada TLS (formato PEM)- Requerido cuando
enable_tls: true - Debe ser legible por la aplicación TAS
- Seguridad: Proteger con permisos de archivo (
chmod 600) - Ejemplo:
"priv/cert/server.key"
- Requerido cuando
Características de la API:
La API REST proporciona acceso programático a:
- Gestión y aprovisionamiento de suscriptores
- Consultas de Registros de Detalles de Llamadas (CDR)
- Estado del sistema y verificaciones de salud
- Estado de pares Diameter
- Estado y estadísticas de gateways
- Monitoreo de llamadas activas
- Gestión de configuración
Documentación OpenAPI/Swagger:
La API incluye documentación OpenAPI (Swagger) incorporada:
- Acceda a la interfaz Swagger en:
https://hostname:port/api/swaggerui - Especificación JSON de OpenAPI en:
https://hostname:port/api/openapi - Pruebas interactivas de la API directamente desde el navegador
- Documentación completa de los endpoints con esquemas de solicitud/respuesta
Consideraciones de Seguridad:
- Autenticación: Implemente autenticación de API basada en sus requisitos de seguridad
- Acceso a la Red: Utilice reglas de firewall para restringir el acceso a la API a clientes autorizados
- TLS Requerido: Siempre habilite TLS en producción (
enable_tls: true) - Validación de Certificados: Utilice certificados de confianza para APIs de producción
- Limitación de Tasa: Considere implementar limitación de tasa para APIs expuestas al público
- Registros de Acceso: Monitoree los registros de acceso a la API para detectar actividad sospechosa
Ejemplo de Uso:
# Consultar API con curl (reemplazar con el endpoint real)
curl -k https://localhost:8444/api/health
# Acceder a la documentación Swagger
https://localhost:8444/api/swaggerui
Escenarios Comunes de Despliegue:
-
API Solo Interna:
listen_ip: "127.0.0.1" # Solo accesible desde localhost
enable_tls: false # HTTP para pruebas internas -
API de Producción con TLS:
listen_ip: "0.0.0.0" # Accesible desde la red
enable_tls: true # HTTPS requerido
hostname: "api.operator.com" -
Desarrollo/Pruebas:
listen_ip: "0.0.0.0"
enable_tls: false # HTTP para pruebas más fáciles
port: 8080 # Puerto no privilegiado
Solución de Problemas:
- Fallo en la Vinculación del Puerto: Verifique que el puerto no esté en uso por otro servicio, o ejecute como root para puertos < 1024
- Errores de TLS: Verifique que las rutas de certificado y clave sean correctas y que los archivos sean legibles
- No se Puede Conectar: Verifique que el firewall permita el acceso al puerto configurado
- Desajuste de Certificado: Asegúrese de que el
hostnamecoincida con el Nombre Común (CN) o SAN del certificado - API Devuelve 404: Verifique que la aplicación API se haya iniciado correctamente en los registros
Configuración de Troncales SIP
Ansible es responsable de crear la configuración XML para cada gateway saliente, visible en la pestaña Gateways, que se utiliza para llamadas salientes.
Las direcciones CSCF y las direcciones de Gateway deben incluirse en la configuración que es visible en la configuración de tiempo de ejecución, para que sepamos qué IPs permitir para las llamadas, hacemos esto en allowed_sbc_source_ips para Gateways / SBCs (fuentes que enviarán tráfico MT hacia la red) y allowed_cscf_ips para CSCFs (fuentes de las que se originará tráfico MO).
Nota: Si va a enrutar llamadas desde su TAS hacia sí mismo (es decir, una llamada MO a un suscriptor en la red que se enruta de nuevo al plan de marcado MT), entonces su IP de TAS también debe estar en la lista de IPs de origen permitidas.
config :tas,
allowed_sbc_source_ips: ["10.5.198.200", "103.26.174.36"],
allowed_cscf_ips: ["10.8.3.34"],
Desde la interfaz web podemos ver el estado de cada gateway, y:
- Estado de Registro SIP (si el registro está habilitado)
- Reino SIP
- Dirección Proxy SIP (si se usa)
- Nombre de usuario
- Tiempo de Ping (Tiempo promedio de respuesta SIP OPTIONs (si SIP OPTIONs está habilitado))
- Tiempo de Actividad (Segundos desde que el perfil fue reiniciado o se activó)
- Llamadas Entrantes / Llamadas Salientes / Llamadas Fallidas Entrantes / Llamadas Fallidas Salientes
- Último tiempo de ping SIP OPTIONs (Epoch)
- Frecuencia de ping SIP OPTIONs
- Más información en el botón detail
Referencia de Configuración de Gateway
Los gateways se configuran en formato XML. Cada gateway representa una conexión de troncal SIP a un SBC externo, transportista o gateway PSTN.
Ejemplo Básico de Gateway:
<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>
Gateway sin Registro:
<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>
Parámetros de Gateway
Parámetros Requeridos
name (atributo de gateway)
- El identificador único para este gateway
- Usado en el plan de marcado para referenciar el gateway:
sofia/gateway/name/destination - Ejemplo:
<gateway name="my_trunk">
proxy
- Dirección IP o nombre de host del proxy/gateway SIP
- Puede incluir puerto y protocolo de transporte
- Ejemplos:
value="203.0.113.50"(puerto predeterminado 5060, UDP)value="203.0.113.50:5061"(puerto personalizado)value="203.0.113.50;transport=tcp"(transporte TCP)value="203.0.113.50:5061;transport=tls"(TLS en el puerto 5061)
register
- Si se debe enviar SIP REGISTER al gateway
- Valores:
true|false - Establecer en
truesi la troncal requiere registro - Establecer en
falsepara troncales basadas en IP estática
Parámetros de Autenticación
username
- Nombre de usuario de autenticación SIP
- Usado en REGISTER y para autenticación digest
- Requerido si
register="true" - Ejemplo:
value="trunk_account_123"
password
- Contraseña de autenticación SIP
- Usada para desafíos de autenticación digest
- Requerido si
register="true" - Ejemplo:
value="MySecureP@ssw0rd"
realm
- Reino SIP para autenticación
- Opcional - generalmente detectado automáticamente desde el desafío
- Ejemplo:
value="sip.carrier.com"
auth-username
- Nombre de usuario alternativo para autenticación (si es diferente de
username) - Rara vez necesario - solo si el transportista requiere un usuario diferente en la autenticación frente al encabezado From
- Ejemplo:
value="auth_user_456"
Parámetros de Registro
register-transport
- Protocolo de transporte para mensajes REGISTER
- Valores:
udp|tcp|tls - Debe coincidir con el transporte especificado en el parámetro
proxy - Ejemplo:
value="tcp"
register-proxy
- Dirección proxy alternativa para REGISTER (si es diferente del enrutamiento de llamadas)
- Útil cuando el servidor de registro difiere del servidor de enrutamiento de llamadas
- Ejemplo:
value="register.carrier.com:5060"
retry-seconds
- Segundos a esperar antes de reintentar un registro fallido
- Predeterminado:
30 - Rango:
5a3600 - Ejemplo:
value="30"
expire-seconds
- Tiempo de expiración del registro en segundos
- Predeterminado:
3600(1 hora) - El gateway volverá a registrarse antes de la expiración
- Ejemplo:
value="1800"(30 minutos)
caller-id-in-from
- Incluir ID de llamada en el encabezado From SIP
- Valores:
true|false true: El encabezado From incluye el número de llamada real (requerido por la mayoría de los transportistas)false: El encabezado From utiliza el nombre de usuario del gateway- Recomendación: Establecer en
truepara la mayoría de las implementaciones - Ejemplo:
value="true"
Parámetros de Monitoreo
ping
- Enviar ping SIP OPTIONS cada N segundos
- Monitorea la disponibilidad del gateway y mide la latencia
- Desactivado si no se especifica o se establece en
0 - Valores típicos:
15a60segundos - Visible en la UI de Estado del Gateway como "Tiempo de Ping"
- Ejemplo:
value="25"
ping-max
- Tiempo máximo (segundos) para reintentar pings antes de marcar el gateway como inactivo
- Predeterminado: Calculado a partir del intervalo de
ping - Ejemplo:
value="3"
Parámetros de Enrutamiento de Llamadas
extension
- Número de destino fijo para marcar siempre en este gateway
- Rara vez utilizado - generalmente el destino proviene del plan de marcado
- Ejemplo:
value="+12125551234"
extension-in-contact
- Incluir extensión en el encabezado Contact
- Valores:
true|false - Predeterminado:
false - Ejemplo:
value="false"
contact-params
- Parámetros adicionales para agregar al encabezado Contact
- Útil para requisitos específicos del transportista
- Ejemplo:
value="line=1;isup=true"
Parámetros Avanzados
from-user
- Sobrescribir el nombre de usuario en el encabezado From
- Predeterminado: Utiliza el número de llamada o el nombre de usuario del gateway
- Ejemplo:
value="trunk_pilot"
from-domain
- Sobrescribir el dominio en el encabezado From
- Predeterminado: Utiliza el dominio del proxy
- Ejemplo:
value="my-domain.com"
outbound-proxy
- Proxy saliente para todos los mensajes SIP
- Diferente de
proxy- utilizado como objetivo del encabezado Route - Ejemplo:
value="edge-proxy.carrier.com:5060"
context
- Contexto del plan de marcado para llamadas entrantes desde este gateway
- Predeterminado:
public - Permite un enrutamiento de llamadas entrantes diferente por gateway
- Ejemplo:
value="from-carrier"
channels
- Llamadas concurrentes máximas en este gateway
- Predeterminado: Ilimitado
- Utilizado para la gestión de capacidad
- Ejemplo:
value="100"
dtmf-type
- Método de transmisión DTMF
- Valores:
rfc2833|info|inband|auto - Predeterminado:
rfc2833(recomendado) rfc2833: Eventos de teléfono RTP (más común)info: Mensajes SIP INFOinband: Tonos de audio- Ejemplo:
value="rfc2833"
rtp-timeout-sec
- Colgar la llamada si no se recibe RTP durante N segundos
- Predeterminado:
0(deshabilitado) - Útil para detectar llamadas muertas
- Ejemplo:
value="120"
rtp-hold-timeout-sec
- Tiempo de espera para llamadas en espera sin RTP
- Predeterminado:
0(deshabilitado) - Ejemplo:
value="1800"(30 minutos)
Opciones de Señalización SIP
sip-port
- Puerto SIP local a utilizar para este gateway
- Predeterminado: Puerto del perfil
- Rara vez necesario
- Ejemplo:
value="5060"
rtp-ip
- Dirección IP local para medios RTP
- Predeterminado: IP RTP del perfil
- Ejemplo:
value="10.0.0.5"
register-proxy-port
- Puerto para el proxy de registro
- Solo necesario si es diferente del puerto del proxy
- Ejemplo:
value="5061"
contact-host
- Sobrescribir la porción de host del encabezado Contact
- Útil para escenarios NAT
- Ejemplo:
value="public-ip.example.com"
distinct-to
- Usar encabezado To distinto (diferente de Request-URI)
- Valores:
true|false - Requisito específico del transportista
- Ejemplo:
value="false"
cid-type
- Tipo de ID de llamada en los encabezados Remote-Party-ID o P-Asserted-Identity
- Valores:
rpid|pid|none rpid: Encabezado Remote-Party-IDpid: Encabezado P-Asserted-Identity- Ejemplo:
value="pid"
extension-in-contact
- Agregar parámetro de extensión al URI de Contact
- Valores:
true|false - Ejemplo:
value="true"
Seguridad en el Transporte
transport (en el parámetro proxy)
- Protocolo de transporte
- Valores:
udp|tcp|tls|ws|wss - Especificado como parte del valor del proxy
- Ejemplo:
proxy="203.0.113.50;transport=tcp"
Para conexiones TLS, puede ser necesaria una configuración adicional de certificados en el perfil SIP.
Ejemplo Completo con Opciones Comunes
<include>
<gateway name="primary_carrier">
<!-- Requerido: Conexión básica -->
<param name="proxy" value="sbc.carrier.com:5060;transport=tcp"/>
<param name="register" value="true"/>
<!-- Autenticación -->
<param name="username" value="customer_trunk_01"/>
<param name="password" value="SecurePassword123"/>
<!-- Registro -->
<param name="register-transport" value="tcp"/>
<param name="expire-seconds" value="1800"/>
<param name="retry-seconds" value="30"/>
<!-- ID de Llamada -->
<param name="caller-id-in-from" value="true"/>
<!-- Monitoreo -->
<param name="ping" value="30"/>
<!-- Medios -->
<param name="codec-prefs" value="PCMU,PCMA,G729"/>
<param name="dtmf-type" value="rfc2833"/>
<!-- Límites de Llamadas -->
<param name="channels" value="100"/>
<!-- Tiempos de espera RTP -->
<param name="rtp-timeout-sec" value="300"/>
</gateway>
</include>
Uso del Gateway en el Plan de Marcado
Referencie gateways en su plan de marcado utilizando el formato sofia/gateway/name/destination:
<!-- Ruta a un gateway específico -->
<action application="bridge" data="sofia/gateway/primary_carrier/+12125551234"/>
<!-- Ruta utilizando variable -->
<action application="bridge" data="sofia/gateway/primary_carrier/${tas_destination_number}"/>
<!-- Ruta con encabezados SIP personalizados -->
<action application="bridge" data="{sip_h_X-Custom=Value}sofia/gateway/primary_carrier/${tas_destination_number}"/>
<!-- Failover entre gateways -->
<action application="bridge" data="sofia/gateway/primary_carrier/${tas_destination_number}|sofia/gateway/backup_carrier/${tas_destination_number}"/>
Solución de Problemas de Gateway
El Gateway No se Registra:
- Verifique que
usernameypasswordsean correctos - Verifique que la dirección
proxysea accesible - Confirme que
register-transportcoincida con los requisitos del transportista - Revise los registros en busca de fallos de autenticación
Las Llamadas Fallan:
- Verifique el estado del gateway en la UI Web (
/gw) - Verifique que la configuración de
caller-id-in-fromcoincida con el requisito del transportista - Confirme la compatibilidad de códecs con
codec-prefs - Verifique que el firewall permita el tráfico SIP y RTP
Calidad de Llamada Deficiente:
- Revise los tiempos de
pingen el Estado del Gateway - Verifique que
rtp-timeout-secno sea demasiado agresivo - Confirme que las preferencias de códecs coincidan con las capacidades de la red
- Monitoree la latencia de la red y la pérdida de paquetes
Configuración de Pares Diameter
Los pares Diameter deben definirse en la configuración de tiempo de ejecución.
Esta configuración es en gran medida un modelo.
La interfaz Ro no necesita incluirse en las Aplicaciones si Ro no se utiliza en su implementación.
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
}
]
}
Puede verificar el estado de los pares Diameter desde la pestaña Diameter en la interfaz web.
También puede probar la recuperación de datos Sh desde la pestaña Sh en la interfaz web para intentar obtener cualquiera de los datos de Sh.