Guia de Configuração
📖 Voltar à Documentação Principal
Este documento fornece uma referência abrangente de configuração para o Servidor de Aplicação TAS.
Documentação Relacionada
Configuração Principal
- 📋 README Principal - Visão geral e início rápido
- 🔧 Guia de Operações - Monitoramento e tarefas operacionais
- 📊 Referência de Métricas - Métricas Prometheus e monitoramento
Interfaces de Integração
- 👥 Interface Sh - Recuperação de dados de assinantes do HSS/Repository
- 💳 Cobrança Online (Ro) - Integração OCS e controle de crédito
- 📡 SS7 MAP - Consultas HLR para roaming e encaminhamento de chamadas
Processamento de Chamadas
- 🔀 Configuração do Dialplan - Dialplan XML e lógica de roteamento de chamadas
- 🔢 Tradução de Números - Regras de normalização E.164
- ⚙️ Serviços Suplementares - Encaminhamento de chamadas, bloqueio de CLI, emergência
Serviços de Valor Agregado
- 📞 Correio de Voz - Serviço de correio de voz com notificações por SMS
- 🔊 Prompts TTS - Configuração de prompts de Texto para Fala
- 👥 Servidor de Conferência IMS - Conferência multi-participante
Testes & Conformidade
- 🧪 HLR & Simulador de Chamadas - Ferramentas de teste
- 📜 Conformidade ANSSI R226 - Conformidade no mercado francês
Config
O Servidor de Aplicação precisa:
- Conectar-se a SIP Trunks / SBCs para chamadas de/para fora da rede
- Conectar-se ao DRA ou HSS para obter o
Sh - Opcionalmente conectar-se ao DRA ou OCS para cobrança online
Ro - Configuração do Dialplan
- Configuração em torno das regras de discagem / tradução de números
- Configuração de correio de voz
- Prompts
- Testes
- Métricas (Prometheus)
Configuração do Socket de Evento
O Socket de Evento é usado para controle de chamadas, monitoramento de chamadas ativas e interação com o mecanismo de telefonia. Essa conexão permite que o TAS controle o roteamento de chamadas, recupere variáveis de canal e gerencie sessões ativas.
Localização da Configuração: config/runtime.exs
config :tas,
fs_event_socket: %{
host: "127.0.0.1",
port: 8021,
secret: "YourSecretPassword"
}
Parâmetros de Configuração:
-
host(string, obrigatório): Nome do host ou endereço IP do servidor Socket de Evento- Padrão:
"127.0.0.1"(localhost) - Use localhost se o mecanismo de telefonia estiver executando no mesmo servidor que o TAS
- Use IP remoto para implantações distribuídas
- Exemplo:
"10.8.82.60"para conexão remota
- Padrão:
-
port(inteiro, obrigatório): Porta TCP para conexões do Socket de Evento- Padrão:
8021 - A porta padrão do Socket de Evento é 8021
- Deve corresponder à configuração do Socket de Evento em seu mecanismo de telefonia
- Exemplo:
8021
- Padrão:
-
secret(string, obrigatório): Senha de autenticação para o Socket de Evento- Deve corresponder à senha configurada em seu mecanismo de telefonia
- Usada para autenticar conexões ESL
- Nota de Segurança: Use uma senha forte e aleatória e mantenha-a segura
- Exemplo:
"cd463RZ8qMk9AHMMDGT3V"
Casos de Uso:
- Controle e roteamento de chamadas em tempo real
- Recuperação de informações de chamadas ativas para a visualização
/callsno Painel de Controle - Execução programática de aplicativos de dialplan
- Monitoramento de mudanças de estado de chamadas e eventos
- Gerenciamento de chamadas em conferência
Comportamento da Conexão:
- O TAS estabelece conexões persistentes com o Socket de Evento
- Reconecta automaticamente em caso de falha de conexão
- Usado tanto para modos de entrada (recebendo eventos) quanto de saída (controlando chamadas)
- Timeouts de conexão e lógica de repetição estão incorporados
Considerações de Segurança:
- Sempre use uma senha forte e única para o parâmetro
secret - Se usar conexões remotas, certifique-se de que as regras de firewall permitam apenas servidores TAS confiáveis
- Considere usar conexões apenas localhost quando o TAS e o mecanismo de telefonia estiverem co-localizados
- Não exponha a porta do Socket de Evento a redes públicas
Solução de Problemas:
- Conexão Recusada: Verifique se o mecanismo de telefonia está em execução e se o Socket de Evento está habilitado
- Autenticação Falhou: Verifique se o
secretcorresponde à configuração do mecanismo de telefonia - Erros de Timeout: Verifique a conectividade da rede e as regras de firewall
- Não é possível controlar chamadas: Certifique-se de que o TAS se conectou com sucesso (verifique os logs)
Configuração do Painel de Controle
O Painel de Controle fornece uma interface baseada na web para monitorar e gerenciar o sistema TAS. Isso inclui visualizar assinantes, CDRs, chamadas ativas, pares Diameter, gateways e configuração do sistema.
Localização da Configuração: 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 Configuração:
Configuração da Ordem das Páginas
page_order(lista de strings): Controla a ordem de exibição das páginas de configuração no Painel de Controle- Especifica quais páginas aparecem na navegação e sua ordem
- Exemplo:
["/application", "/configuration"] - Padrão: Se não definido, as páginas aparecem na ordem alfabética padrão
Configuração do Endpoint Web
-
url(mapa): Configuração da URL pública para o Painel de Controlehost: Nome do host para gerar URLs (por exemplo,"tas.example.com"ou"0.0.0.0")path: Caminho base para todas as rotas do Painel de Controle (padrão:"/")- Usado para gerar URLs absolutas em redirecionamentos e links
-
https(mapa): Configuração HTTPS/TLS para acesso seguroport(inteiro): Número da porta HTTPS (padrão é443)keyfile(string): Caminho para o arquivo de chave privada TLS (formato PEM)certfile(string): Caminho para o arquivo de certificado TLS (formato PEM)- Ambos os arquivos devem ser legíveis pela aplicação TAS
Gerenciamento de Certificados:
O Painel de Controle requer certificados TLS válidos para acesso HTTPS:
-
Certificados Autoassinados (Desenvolvimento/Teste):
openssl req -x509 -newkey rsa:4096 -keyout priv/cert/server.key \
-out priv/cert/server.crt -days 365 -nodes -
Certificados de Produção:
- Use certificados de uma Autoridade Certificadora (CA) confiável
- Provedores comuns: Let's Encrypt (grátis), CAs comerciais
- Certifique-se de que os certificados incluam a cadeia completa para confiança do navegador
- Mantenha as chaves privadas seguras com permissões de arquivo apropriadas (
chmod 600)
Controle de Acesso:
O Painel de Controle fornece acesso a dados operacionais sensíveis:
- Informações do Assinante: Detalhes de registro, histórico de chamadas, localizações
- Registros de Detalhes de Chamadas: Registros completos de chamadas com dados MSISDN
- Configuração do Sistema: Pares Diameter, gateways, roteamento
- Chamadas Ativas: Monitoramento em tempo real de sessões em andamento
Medidas de Segurança Recomendadas:
- Implante atrás de firewall ou VPN para ambientes de produção
- Use certificados TLS fortes de CAs confiáveis
- Implemente controles de acesso em nível de rede (whitelisting de IP)
- Considere camadas adicionais de autenticação se expostas externamente
- Audite regularmente os logs de acesso
- Use HTTPS apenas - nunca sirva sobre HTTP simples
Padrões Comuns de Implantação:
-
Acesso Somente Interno:
url: [host: "10.8.82.60", path: "/"] # Somente rede interna -
Acesso Externo com Domínio:
url: [host: "tas.operator.com", path: "/"]
https: [port: 443, ...] -
Atrás de Proxy Reverso:
url: [host: "tas.internal", path: "/panel"] # Nginx/Apache encaminha para isso
Solução de Problemas:
- Erros de Certificado: Verifique se os caminhos para
keyfileecertfileestão corretos e os arquivos são legíveis - Porta Já em Uso: Verifique se outro serviço está usando a porta 443 ou mude para outra porta
- Não é possível acessar a UI: Verifique se as regras de firewall permitem acesso à porta HTTPS configurada
- Falhas na Negociação SSL: Certifique-se de que o certificado e a chave correspondem e estão no formato PEM
Configuração da API
O TAS inclui uma API REST para acesso programático a funções do sistema, gerenciamento de assinantes e dados operacionais. A API suporta documentação OpenAPI/Swagger e é protegida com TLS.
Localização da Configuração: 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 Configuração:
-
port(inteiro, obrigatório): Porta TCP para o servidor da API- Padrão:
8444 - Escolha uma porta que não conflite com outros serviços
- A porta HTTPS padrão é 443, mas portas personalizadas são comuns para APIs
- Exemplo:
8444,8443,9443
- Padrão:
-
listen_ip(string, obrigatório): Endereço IP para vincular o servidor da API"0.0.0.0": Ouvir em todas as interfaces de rede (acesso externo)"127.0.0.1": Ouvir apenas no localhost (acesso interno apenas)- IP específico: Vincular a uma interface particular (por exemplo,
"10.8.82.60") - Segurança: Use
"127.0.0.1"se a API for necessária apenas internamente
-
product_name(string): Identificador do produto para metadados da API- Usado nas respostas da API e na documentação
- Exemplo:
"OmniTAS","MyOperator-IMS"
-
title(string): Título legível por humanos para a documentação da API- Exibido no cabeçalho da interface OpenAPI/Swagger
- Exemplo:
"API - OmniTAS","API do Servidor de Aplicação IMS"
-
hostname(string): Nome do host para o servidor da API na documentação- Usado na especificação OpenAPI para gerar URLs de exemplo
- Deve corresponder à forma como os clientes acessam a API
- Exemplos:
"localhost","api.operator.com","10.8.82.60"
-
enable_tls(booleano): Habilitar ou desabilitar TLS/HTTPS para a APItrue: Servir a API sobre HTTPS (recomendado para produção)false: Servir a API sobre HTTP (apenas para teste/desenvolvimento)- Segurança: Sempre use
trueem ambientes de produção
-
tls_cert_path(string): Caminho para o arquivo de certificado TLS (formato PEM)- Necessário quando
enable_tls: true - Deve ser legível pela aplicação TAS
- Exemplo:
"priv/cert/server.crt"
- Necessário quando
-
tls_key_path(string): Caminho para o arquivo de chave privada TLS (formato PEM)- Necessário quando
enable_tls: true - Deve ser legível pela aplicação TAS
- Segurança: Proteja com permissões de arquivo (
chmod 600) - Exemplo:
"priv/cert/server.key"
- Necessário quando
Recursos da API:
A API REST fornece acesso programático a:
- Gerenciamento e provisionamento de assinantes
- Consultas de Registros de Detalhes de Chamadas (CDR)
- Status do sistema e verificações de saúde
- Status de pares Diameter
- Status e estatísticas de gateways
- Monitoramento de chamadas ativas
- Gerenciamento de configuração
Documentação OpenAPI/Swagger:
A API inclui documentação OpenAPI (Swagger) incorporada:
- Acesse a interface Swagger em:
https://hostname:port/api/swaggerui - Especificação JSON OpenAPI em:
https://hostname:port/api/openapi - Teste interativo da API diretamente do navegador
- Documentação completa de endpoints com esquemas de solicitação/resposta
Considerações de Segurança:
- Autenticação: Implemente autenticação da API com base em seus requisitos de segurança
- Acesso à Rede: Use regras de firewall para restringir o acesso à API a clientes autorizados
- TLS Necessário: Sempre habilite TLS em produção (
enable_tls: true) - Validação de Certificado: Use certificados confiáveis para APIs de produção
- Limitação de Taxa: Considere implementar limitação de taxa para APIs voltadas ao público
- Logs de Acesso: Monitore os logs de acesso da API para atividades suspeitas
Exemplo de Uso:
# Consultar API com curl (substitua pelo endpoint real)
curl -k https://localhost:8444/api/health
# Acessar documentação Swagger
https://localhost:8444/api/swaggerui
Cenários Comuns de Implantação:
-
API Somente Interna:
listen_ip: "127.0.0.1" # Acessível apenas a partir do localhost
enable_tls: false # HTTP para teste interno -
API de Produção com TLS:
listen_ip: "0.0.0.0" # Acessível pela rede
enable_tls: true # HTTPS necessário
hostname: "api.operator.com" -
Desenvolvimento/Teste:
listen_ip: "0.0.0.0"
enable_tls: false # HTTP para facilitar o teste
port: 8080 # Porta não privilegiada
Solução de Problemas:
- Falha ao Vincular Porta: Verifique se a porta não está em uso por outro serviço ou execute como root para portas < 1024
- Erros de TLS: Verifique se os caminhos do certificado e da chave estão corretos e os arquivos são legíveis
- Não é possível Conectar: Verifique se o firewall permite acesso à porta configurada
- Desconexão de Certificado: Certifique-se de que o
hostnamecorresponda ao Nome Comum (CN) ou SAN do certificado - API Retorna 404: Verifique se a aplicação da API foi iniciada com sucesso nos logs
Configuração do SIP Trunk
O Ansible é responsável por criar a configuração XML para cada gateway de saída, visível na aba Gateways, que são usados para chamadas de saída.
Os endereços CSCF e os endereços do Gateway devem ser incluídos na configuração de tempo de execução, para que saibamos quais IPs permitir chamadas, fazemos isso em allowed_sbc_source_ips para Gateways / SBCs (fontes que enviarão tráfego MT para a rede) e allowed_cscf_ips para CSCFs (fontes de onde o tráfego MO se originará).
Nota - Se você irá roteirizar chamadas do seu TAS para ele mesmo (ou seja, uma chamada MO para um assinante on-net roteia de volta para o dialplan MT), então seu IP TAS também deve estar na lista de IPs de origem permitidos.
config :tas,
allowed_sbc_source_ips: ["10.5.198.200", "103.26.174.36"],
allowed_cscf_ips: ["10.8.3.34"],
A partir da interface Web, podemos ver o estado de cada gateway, e:
- Status de Registro SIP (se o registro estiver habilitado)
- Realm SIP
- Endereço do Proxy SIP (se usado)
- Nome de Usuário
- Tempo de Ping (Tempo médio de resposta SIP OPTIONs (se SIP OPTIONs habilitado))
- Uptime (Segundos desde que o perfil foi reiniciado ou iniciado)
- Chamadas em / Chamadas Saindo / Chamadas Falhadas em / Chamadas Falhadas Saindo
- Último tempo de ping SIP OPTIONs (Epoch)
- Frequência de ping SIP OPTIONs
- Mais informações no botão detalhe
Referência de Configuração do Gateway
Os gateways são configurados em formato XML. Cada gateway representa uma conexão SIP trunk para um SBC externo, transportadora ou gateway PSTN.
Exemplo 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 sem 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 do Gateway
Parâmetros Obrigatórios
name (atributo do gateway)
- O identificador de nome único para este gateway
- Usado no dialplan para referenciar o gateway:
sofia/gateway/name/destination - Exemplo:
<gateway name="my_trunk">
proxy
- Endereço IP ou nome do host do proxy/gateway SIP
- Pode incluir porta e protocolo de transporte
- Exemplos:
value="203.0.113.50"(porta padrão 5060, UDP)value="203.0.113.50:5061"(porta personalizada)value="203.0.113.50;transport=tcp"(transporte TCP)value="203.0.113.50:5061;transport=tls"(TLS na porta 5061)
register
- Se deve enviar SIP REGISTER para o gateway
- Valores:
true|false - Defina como
truese o trunk exigir registro - Defina como
falsepara trunks baseados em IP estático
Parâmetros de Autenticação
username
- Nome de usuário de autenticação SIP
- Usado em REGISTER e para autenticação digest
- Obrigatório se
register="true" - Exemplo:
value="trunk_account_123"
password
- Senha de autenticação SIP
- Usada para desafios de autenticação digest
- Obrigatório se
register="true" - Exemplo:
value="MySecureP@ssw0rd"
realm
- Realm SIP para autenticação
- Opcional - geralmente detectado automaticamente a partir do desafio
- Exemplo:
value="sip.carrier.com"
auth-username
- Nome de usuário alternativo para autenticação (se diferente de
username) - Raramente necessário - apenas se a transportadora exigir um usuário diferente no auth vs cabeçalho From
- Exemplo:
value="auth_user_456"
Parâmetros de Registro
register-transport
- Protocolo de transporte para mensagens REGISTER
- Valores:
udp|tcp|tls - Deve corresponder ao transporte especificado no parâmetro
proxy - Exemplo:
value="tcp"
register-proxy
- Endereço proxy alternativo para REGISTER (se diferente do roteamento de chamadas)
- Útil quando o servidor de registro difere do servidor de roteamento de chamadas
- Exemplo:
value="register.carrier.com:5060"
retry-seconds
- Segundos a esperar antes de tentar novamente o registro falhado
- Padrão:
30 - Intervalo:
5a3600 - Exemplo:
value="30"
expire-seconds
- Tempo de expiração do registro em segundos
- Padrão:
3600(1 hora) - O gateway irá re-registrar antes da expiração
- Exemplo:
value="1800"(30 minutos)
caller-id-in-from
- Incluir ID do chamador no cabeçalho From SIP
- Valores:
true|false true: O cabeçalho From inclui o número real do chamador (exigido pela maioria das transportadoras)false: O cabeçalho From usa o nome de usuário do gateway- Recomendação: Defina como
truepara a maioria das implantações - Exemplo:
value="true"
Parâmetros de Monitoramento
ping
- Enviar ping SIP OPTIONS a cada N segundos
- Monitora a disponibilidade do gateway e mede a latência
- Desativado se não especificado ou definido como
0 - Valores típicos:
15a60segundos - Visível na UI de Status do Gateway como "Tempo de Ping"
- Exemplo:
value="25"
ping-max
- Tempo máximo (segundos) para tentar pings antes de marcar o gateway como inativo
- Padrão: Calculado a partir do intervalo
ping - Exemplo:
value="3"
Parâmetros de Roteamento de Chamadas
extension
- Número de destino fixo para sempre discar neste gateway
- Raramente usado - geralmente o destino vem do dialplan
- Exemplo:
value="+12125551234"
extension-in-contact
- Incluir extensão no cabeçalho Contact
- Valores:
true|false - Padrão:
false - Exemplo:
value="false"
contact-params
- Parâmetros adicionais a serem anexados ao cabeçalho Contact
- Útil para requisitos específicos da transportadora
- Exemplo:
value="line=1;isup=true"
Parâmetros Avançados
from-user
- Substituir nome de usuário no cabeçalho From
- Padrão: Usa o número de chamada ou nome de usuário do gateway
- Exemplo:
value="trunk_pilot"
from-domain
- Substituir domínio no cabeçalho From
- Padrão: Usa o domínio do proxy
- Exemplo:
value="my-domain.com"
outbound-proxy
- Proxy de saída para todas as mensagens SIP
- Diferente de
proxy- usado como alvo do cabeçalho Route - Exemplo:
value="edge-proxy.carrier.com:5060"
context
- Contexto do dialplan para chamadas recebidas deste gateway
- Padrão:
public - Permite roteamento de chamadas recebidas diferente por gateway
- Exemplo:
value="from-carrier"
channels
- Chamadas simultâneas máximas neste gateway
- Padrão: Ilimitado
- Usado para gerenciamento de capacidade
- Exemplo:
value="100"
dtmf-type
- Método de transmissão DTMF
- Valores:
rfc2833|info|inband|auto - Padrão:
rfc2833(recomendado) rfc2833: Eventos de telefone RTP (mais comum)info: Mensagens SIP INFOinband: Tons de áudio- Exemplo:
value="rfc2833"
rtp-timeout-sec
- Desligar chamada se nenhum RTP recebido por N segundos
- Padrão:
0(desativado) - Útil para detectar chamadas mortas
- Exemplo:
value="120"
rtp-hold-timeout-sec
- Timeout para chamadas em espera sem RTP
- Padrão:
0(desativado) - Exemplo:
value="1800"(30 minutos)
Opções de Sinalização SIP
sip-port
- Porta SIP local a ser usada para este gateway
- Padrão: Porta do perfil
- Raramente necessário
- Exemplo:
value="5060"
rtp-ip
- Endereço IP local para mídia RTP
- Padrão: IP RTP do perfil
- Exemplo:
value="10.0.0.5"
register-proxy-port
- Porta para proxy de registro
- Apenas necessário se diferente da porta do proxy
- Exemplo:
value="5061"
contact-host
- Substituir a parte do host do cabeçalho Contact
- Útil para cenários NAT
- Exemplo:
value="public-ip.example.com"
distinct-to
- Usar cabeçalho To distinto (diferente do Request-URI)
- Valores:
true|false - Requisito específico da transportadora
- Exemplo:
value="false"
cid-type
- Tipo de ID do chamador nos cabeçalhos Remote-Party-ID ou P-Asserted-Identity
- Valores:
rpid|pid|none rpid: Cabeçalho Remote-Party-IDpid: Cabeçalho P-Asserted-Identity- Exemplo:
value="pid"
extension-in-contact
- Adicionar parâmetro de extensão à URI de Contact
- Valores:
true|false - Exemplo:
value="true"
Segurança de Transporte
transport (no parâmetro proxy)
- Protocolo de transporte
- Valores:
udp|tcp|tls|ws|wss - Especificado como parte do valor do proxy
- Exemplo:
proxy="203.0.113.50;transport=tcp"
Para conexões TLS, pode ser necessária configuração adicional de certificado no perfil SIP.
Exemplo Completo com Opções Comuns
<include>
<gateway name="primary_carrier">
<!-- Obrigatório: Conexão básica -->
<param name="proxy" value="sbc.carrier.com:5060;transport=tcp"/>
<param name="register" value="true"/>
<!-- Autenticação -->
<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 do Chamador -->
<param name="caller-id-in-from" value="true"/>
<!-- Monitoramento -->
<param name="ping" value="30"/>
<!-- Mídia -->
<param name="codec-prefs" value="PCMU,PCMA,G729"/>
<param name="dtmf-type" value="rfc2833"/>
<!-- Limites de chamadas -->
<param name="channels" value="100"/>
<!-- Timeouts RTP -->
<param name="rtp-timeout-sec" value="300"/>
</gateway>
</include>
Uso do Gateway no Dialplan
Referencie gateways em seu dialplan usando o formato sofia/gateway/name/destination:
<!-- Roteamento para gateway específico -->
<action application="bridge" data="sofia/gateway/primary_carrier/+12125551234"/>
<!-- Roteamento usando variável -->
<action application="bridge" data="sofia/gateway/primary_carrier/${tas_destination_number}"/>
<!-- Roteamento com cabeçalhos 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}"/>
Solução de Problemas de Problemas de Gateway
Gateway Não Registra:
- Verifique se
usernameepasswordestão corretos - Verifique se o endereço
proxyé acessível - Confirme se
register-transportcorresponde aos requisitos da transportadora - Revise os logs para falhas de autenticação
Chamadas Falham:
- Verifique o status do gateway na UI Web (
/gw) - Verifique se a configuração de
caller-id-in-fromcorresponde ao requisito da transportadora - Confirme a compatibilidade de codec com
codec-prefs - Verifique se o firewall permite tráfego SIP e RTP
Qualidade de Chamada Ruim:
- Revise os tempos de
pingno Status do Gateway - Verifique se
rtp-timeout-secnão está muito agressivo - Confirme se as preferências de codec correspondem às capacidades da rede
- Monitore a latência da rede e a perda de pacotes
Configuração do Par de Diameter
Os pares Diameter devem ser definidos na configuração de tempo de execução.
Esta configuração é em grande parte boilerplate.
A interface Ro não precisa ser incluída nas Aplicações se Ro não for usado em sua implantação.
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
}
]
}
Você pode verificar o status dos pares Diameter na aba Diameter na interface Web.
Você também pode testar a recuperação de dados Sh na aba Sh na interface Web para tentar buscar qualquer um dos dados do Sh.