Pular para o conteúdo principal

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

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

Serviços de Valor Agregado

Testes & Conformidade


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
  • 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
  • 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 /calls no 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 secret corresponde à 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 Controle

    • host: 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 seguro

    • port (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:

  1. Certificados Autoassinados (Desenvolvimento/Teste):

    openssl req -x509 -newkey rsa:4096 -keyout priv/cert/server.key \
    -out priv/cert/server.crt -days 365 -nodes
  2. 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:

  1. Acesso Somente Interno:

    url: [host: "10.8.82.60", path: "/"]  # Somente rede interna
  2. Acesso Externo com Domínio:

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

    • true: Servir a API sobre HTTPS (recomendado para produção)
    • false: Servir a API sobre HTTP (apenas para teste/desenvolvimento)
    • Segurança: Sempre use true em 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"
  • 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"

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:

  1. API Somente Interna:

    listen_ip: "127.0.0.1"  # Acessível apenas a partir do localhost
    enable_tls: false # HTTP para teste interno
  2. 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"
  3. 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 hostname corresponda 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 true se o trunk exigir registro
  • Defina como false para 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: 5 a 3600
  • 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 true para 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: 15 a 60 segundos
  • 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 INFO
  • inband: 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-ID
  • pid: 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 username e password estão corretos
  • Verifique se o endereço proxy é acessível
  • Confirme se register-transport corresponde 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-from corresponde 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 ping no Status do Gateway
  • Verifique se rtp-timeout-sec nã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.