Mostrar mensagens com a etiqueta ASTERISK. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ASTERISK. Mostrar todas as mensagens

Como analisar uma chamada SIP com o SNGREP

Imagem criada por IA

Imagem gerada por Inteligência Artificial.

O que é o Sngrep?

O Sngrep é um programa que roda no terminal Linux e serve para acompanhar e analisar o que acontece nas chamadas SIP.

Com ele, você pode:
• Visualizar as chamadas que estão acontecendo na sua central telefônica (PBX);
• Ver detalhes técnicos das ligações, como quem ligou para quem, duração, falhas e outros pontos importantes;
• Identificar e resolver problemas, como chamadas que não completam ou sem áudio.
Você também pode usar o Sngrep para gerar arquivos de registro (logs) e enviar para o suporte técnico quando precisar de ajuda.

Como usar?
Para começar, você precisa acessar sua central telefônica (PBX) via SSH.
Para iniciar o aplicativo, utilize o comando:

sngrep -d eth0

Onde eth0 é o adaptador de rede que você está usando para sua central telefônica (PBX) trafegar voz, mas se caso digitar apenas "SNGREP" ele irá capturar trafego de todas as interfaces.

Visualização do Sngrep

A tela principal do aplicativo mostra uma lista de todos os diálogos SIP detectados:

Use as setas ⇑ e ⇓ para navegar entre os diálogos.

Pressione Enter para visualizar detalhes de um diálogo específico.


Informações do Diálogo

Na visualização detalhada, é possível navegar entre os pacotes SIP usando ⇑ e ⇓.

Pressione [Enter] para ver o conteúdo de um pacote SIP específico.

Pressione [ESC] para voltar à tela anterior.

Use a tecla [Espaço] para selecionar múltiplos diálogos SIP e pressione [Enter] para vê-los em uma única tela.

Na tela de detalhes, use [Espaço] para selecionar dois pacotes SIP e compará-los.
Comparação de Pacotes SIP e Salvando o Dump

Pressione a tecla [Espaço] para selecionar o diálogo SIP desejado (Call).
Pressione "s" para abrir a janela de salvamento do dump em arquivo:

Use as setas ⇑ e ⇓ para navegar entre os campos.

Informe o caminho e nome do arquivo.

Selecione a opção Salvar e pressione [Enter].

Faça o download do arquivo utilizando uma conexão com a PBX via SCP e/ou WinSCP são algumas opções.

Observe: Na imagem como destacado na imagem esse PCAP não vai ter RTP(audio de chamada), porque ao iniciar o sngrep não adicionamos o parametro "-r" ou "--rtp" para capturar RTP junto, a seguir o exemplo.
Agora sim, ao salvar o RTP(audio da ligação) será salvo junto com a sinalização.
O comando utilizado foi o abaixo:
sngrep -r

Filtragem de Diálogos SIP

Pressione [F7] para abrir o menu de filtro.

Use as setas ⇑ e ⇓ para navegar pelos campos.

Pressione [Espaço] para selecionar os métodos SIP que deseja analisar.

Selecione a ação Filter e pressione [Enter].

Você também pode explorar os parametros disponíveis no sngrep, é importante para otimizar e melhorar suas capturas.

[root@ipbx]# sngrep --help
Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-LH capture_url] [] []

    -h --help            This usage
    -V --version         Version information
    -d --device          Use this capture device instead of default
    -I --input           Read captured data from pcap file
    -O --output          Write captured data to pcap file
    -c --calls           Only display dialogs starting with INVITE
    -r --rtp             Capture RTP packets payload
    -l --limit           Set capture limit to N dialogs
    -i --icase           Make  case insensitive
    -v --invert          Invert 
    -N --no-interface    Don't display sngrep interface, just capture
    -q --quiet           Don't print captured dialogs in no interface mode
    -D --dump-config     Print active configuration settings and exit
    -f --config          Read configuration from file
    -F --no-config       Do not read configuration from default config file
    -R --rotate          Rotate calls when capture limit have been reached
    -H --eep-send        Homer sipcapture url (udp:X.X.X.X:XXXX)
    -L --eep-listen      Listen for encapsulated packets (udp:X.X.X.X:XXXX)

[root@ipbx]#

Conclusão
O Sngrep é uma ferramenta poderosa para monitorar e analisar as chamadas VoIP em sua central PbxIP, assim como identificar e resolver problemas, além de gerar logs detalhados para facilitar a comunicação com o suporte técnico.

Fonte: Анализ трафика средствами Sngrep https://docs.mikopbx.com/mikopbx/faq/troubleshooting/traffic-analysis-using-sngrep

Links relacionados:
Capturando mensagens SIP/WSS (WebRTC) com SNGREP (HEP)
https://neimaravila.medium.com/asterisk-capturando-mensagens-sip-wss-webrtc-com-sngrep-hep-4032b688ef30

Git SNGREP
https://github.com/irontec/sngrep

Instalação do Sngrep para CentOS 7 (RPM)
https://github.com/janduy/install_sngrep_maroto


"Começar é a parte mais importante de qualquer trabalho" - Platão


Link para acesso ao Telegram FreePBX Brasil

INTEGRAÇÃO VIVO VOZ NEGÓCIO (VVN) | ASTERISK/FREEPBX/ISSABEL


Aviso importante:

Este material foi elaborado exclusivamente para fins educacionais e acadêmicos, com o objetivo de compartilhar o conhecimento sobre a configuração do sistema de telefonia em ambientes controlados. Não incentivamos ou recomendamos o uso das informações aqui contidas em ambientes de produção ou comerciais sem autorização expressa das operadoras envolvidas, neste caso a Vivo e o produto Vivo Voz e Negócio (VVN).

A utilização indevida ou fora do escopo acadêmico descrito neste material, sem o consentimento da operadora, pode violar os termos de serviço da Vivo, além de outras regulamentações aplicáveis ao uso de tecnologias de telecomunicação. A responsabilidade pelo uso das informações é exclusivamente do usuário, não cabendo ao autor qualquer responsabilidade por eventuais danos, interrupções de serviço ou ações legais que possam surgir em decorrência de sua aplicação.


UPDATE 18/07/2024 - Ajuste no arquivo de hosts do seu servidor linux. Frequêntemente nos grupos do telegram, a comunidade tem reclamado que o trunk não registra e/ou status não estabiliza como "registered" etc, na maioria dos casos tenho observado que o servidor em questão não está resolvendo o host metapabx.vivo.net.br da vivo, por este motivo, estamos complementando com essa orientação, que não é mandatória.

UPDATE 25/04/2024 — Adicionado as configurações para PJSIP usando Asterisk Puro, material criado pelo Neimar Avila este que foi de base para produção deste conteúdo do site.

UPDATE 11/04/2024 — Ajustado a linha de REGISTER do tronco SIP para quem está fazendo uso do CHAN_SIP.

UPDATE 02/03/2024 — Adicionado os campos de configuração do VVN para quem utiliza Issabel fazendo uso do CHAN_SIP.

UPDATE 19/06/2023 — Alterando o USER_AGENT (SIP/PJSIP) estabelecer o REGISTER, troca de OPTIONS e conseguir utilizar. Este material foi baseado na contribuição do Neimar Avila que compartilhou no grupo do telegram as configurações para fazer o uso do Vivo Voz e Negócio no asterisk puro, e do Lucas Adriano que topou este desafio comigo, de dedicar o feriado a homologar em seu ambiente freepbx e gerar esta documentação para comunidade, agradeço o apoio.

Com a modernização da telefonia, as operadoras estão começando a disponibilizar PABX via Cloud, a Vivo fornece o Vivo Voz e Negócio, se trata de um plano de baixo custo, onde voce consegue configurar as linhas através de um login e senha utilizando o protocolo SIP no asterisk.

Laboratório:

  1. Vivo Voz e Negócio(VVN);
  2. FreePBX 15;
  3. Asterisk 18.

No site de gestão da vivo, em linhas, copie a senha do hardphone do número que deseja configurar no seu FreePBX.
Caso não tenha a senha do hardphone voce pode resetar a senha, esta que chegará em seu e-mail. Com isso, vamos no Freepbx para darmos os inícios nas configurações;

Antes de seguir com as configurações na web, faz necessário alterar o user_agent do seu FPBX.

#Arquivo PJSIP(chan_pjsip)
/etc/asterisk/pjsip_custom_post.conf

#Parametros
[global](+type=global)
user_agent=MicroSIP/3.21.3

#reload no asterisk
asterisk -rx "core reload"

#No CLI consultar o user_agent
asterisk -rx "pjsip show settings" | grep -i "user_agent"

Deve ser apresentado o user_agent definido, MicroSIP/3.21.3

#Se estiver utilizando SIP
#Arquivo SIP(chan_sip)
/etc/asterisk/sip_general_custom.conf

#Parametros
useragent=MicroSIP/3.21.3
sdpsession=MicroSIP/3.21.3
Ourauthrealm=MicroSIP/3.21.3
realm=MicroSIP/3.21.3
sdpowner=MicroSIP/3.21.3

#Se tiver utilizando PJSIP(chan_pjsip)
#Arquivo
/etc/asterisk/pjsip_custom_post.conf

#Parametros
[global](+type=global)
user_agent=MicroSIP/3.21.3

#Arquivo
/etc/asterisk/pjsip.endpoint_custom_post.conf

#Parametros
[seu_trunk_vvn](+)
sdp_session=MicroSIP/3.21.3

#restart do asterisk
fwconsole chown
fwconsole restart

#Consultar no CLI o user_agent
asterisk -rx "sip show settings" | grep -i "user agent"



Na guia Connectivity e depois em Trunks, adicione um trunk do tipo PJSIP.

Na aba General, vamos adicionar somente o DDD+número, na plataforma da vivo encontra em "linha/ramal".
Na aba Dialed Number Manipulation Rules não faz necessário alterações, segue para aba pjsip Settings, nesta será feito as seguintes configurações;

General:

Abaixo os campos como devem estar definido:

Username = DDD + Número de Telefone
Auth username = DDD+Numero
Secret = Senha do Hardphone
Authentication = Outbound
Registration = Send
SIP Server = metapabx.vivo.net.br
SIP Server Port = 5060
Context = from-pstn
Transport = 0.0.0.0-udp

Na aba Advanced vamos checar e alimentar os seguintes parâmetros:

DTMF Mode = RFC 4733
Send Line in Registration = Yes
Send Connected Line = No
Permanent Auth Rejection = No
Forbidden Retry Interval = 30 Seconds
Fatal Retry Interval = 30 Seconds
General Retry Interval = 60 Seconds
Expiration = 3600 Seconds
Max Retries = 10000
Qualify Frequency = 0
Outbound Proxy = sip:187.50.251.58
User Phone = No
Contact User = DDD+Número
From Domain = metapabx.vivo.net.br
From User = DDD+Número
Client URI = sip:DDD+Número@metapabx.vivo.net.br
Server URI = sip:metapabx.vivo.net.br
Media Address = Deixar em Branco
AOR = DDD+Número
AOR Contact = sip:DDD+Número@metapabx.vivo.net.br:5060
Match (Permit) = 187.50.251.58
Support Path = No
Support T.38 UDPTL = No
T.38 UDPTL Error Correction = None
T.38 UDPTL NAT = No
T.38 UDPTL MAXDATAGRAM = Deixar em Branco
Fax Detect = No
Trust RPID/PAI = No
Send RPID/PAI = No
Send Private CallerID Information = No
Match Inbound Authentication = Auth Username
Inband Progress = No
Direct Media = No
Rewrite Contact = No
RTP Symmetric = Yes
Media Encryption = None
Force rport = Yes
Message Context = Deixar em Branco

Em Codecs deixe somente ALAW

Feito isso, o seu tronco Vivo Voz Negocio está pronto. Importante lembrar que tem que liberar as portas do seu roteador ou firewall a UDP 5060 (SIP) e as portas 16384-65535(RTP) somente para o IP 187.50.251.58, que é o ip do proxy da Vivo.

Realizado um teste de ligação apos as configurações com sucesso, sem dificuldades!

[Issabel] - Configurações do SIP Trunk VVN

Trunk Name:vivo
Outbound CallerID:Login_VVN

Outgoing Settings  
Trunk Name:vivo

PEER Details:
username=Login_VVN
type=peer
secret=Senha_VVN
qualify=no
port=5060
outboundproxy=187.50.251.58
nat=yes
insecure=port,invite
host=metapabx.vivo.net.br
dtmfmode=rfc2833
disallow=all
context=from-pstn
allow=alaw
fromdomain=metapabx.vivo.net.br

Incoming Settings  
USER Context:Login_VVN

USER Details:
secret=Senha_VVN
type=user
context=from-trunk

Register String:
Login_VVN:Senha_VVN@metapabx.vivo.net.br/Login_VVN


[Asterisk Puro] - Configurações do SIP Trunk VVN (PJSIP)

[global] type=global user_agent=MicroSIP [vivo] type=endpoint transport=transport-udp-nat context=from-vivo allow=!all,ulaw,alaw,g729 outbound_auth=vivo_auth outbound_proxy=sip:187.50.251.58\;lr from_domain=metapabx.vivo.net.br aors=vivo user_eq_phone=yes [vivo] type=aor contact=sip:Login_VVN@metapabx.vivo.net.br:5060 outbound_proxy=sip:187.50.251.58\;lr [vivo] type=identify match=187.50.251.58 endpoint=vivo [vivo] type=registration client_uri=sip:Login_VVN@metapabx.vivo.net.br server_uri=sip:metapabx.vivo.net.br outbound_auth=vivo_auth outbound_proxy=sip:187.50.251.58\;lr retry_interval=60 contact_user=Login_VVN [vivo_auth] type=auth auth_type=userpass username=Login_VVN password=Senha_VVN

Configuração do /etc/hosts

Conforme orientado pela LPI - Linux Professional Institute, o arquivo /etc/hosts é usado para resolver nomes para endereços IP e vice-versa. Tanto o IPv4 como o IPv6.
$ cat /etc/hosts
127.0.0.1       localhost issabel.local 
187.50.251.58 metapabx.vivo.net.br
$

"Começar é a parte mais importante de qualquer trabalho" - Platão

Link para acesso ao Telegram FreePBX Brasil

FreePBX 16 disponibilizado!

O FreePBX 16 beta foi anunciado em junho e, desde então, foi observado pela equipe FreePBX, milhares de instalações desta versão. As equipes de engenharia e controle de qualidade concluíram seus testes, portanto, anunciaram no domingo(31/10) o FreePBX, que mudou de beta para GA (Público Geral).

  • Para relembrar, isso é o que o FreePBX 16 traz para o projeto:

      1. Suporte ao PHP 7.4
      2. Adições importantes ao módulo API com métodos GraphQL
      3. Padronizando o PJSIP como um único driver SIP. O Chan_SIP ainda é suportado, mas agora desabilitado por padrão durante a instalação;
      4. Modelos do painel de controle do usuário - os administradores agora podem personalizar a experiência do usuário do UCP antes que ele faça login no UCP pela primeira vez;
      5. Revisão do módulo do Firewall e integração dos recursos de detecção de intrusão com o Firewall;
      6. Limites ajustáveis ​​para firewall responsivo - para administradores que buscam controle preciso sobre como o firewall responsivo detecta e bloqueia o tráfego SIP de IPs de origem não reconhecidos;
      7. Redirecionamento HTTPS - os administradores podem configurar serviços http individuais para redirecionar para https;
      8. Configuração do protocolo SSL - protocolos SSL individuais para https agora são configuráveis ​​pelo administrador;
      9. AMI bindaddr - Uma nova instalação do FreePBX irá definir o AMI bind addr para localhost por padrão;
      10. Validação de senha UCP - O administrador pode habilitar e configurar várias regras de complexidade de senha para usuários que alteram senhas.
  • Bem como muitas melhorias e correções numerosas demais para serem mencionadas individualmente. A maioria dos novos recursos foram transferidos para o FreePBX 15 durante o período beta, portanto, os administradores e usuários do FreePBX podem já estar cientes e usar alguns desses recursos. O método preferido de migração de uma versão anterior para o FreePBX 16 é restaurar um backup para uma nova instalação do FreePBX Distro ISO. Tal como acontece com as principais atualizações anteriores, foi publicado um módulo de atualização de 15-> 16 versões que fará uma verificação do sistema e realizará a atualização.

    O FreePBX como sempre saindo na frente, este se não o melhor, é um dos melhores projetos opensource para criar seu PBX IP.

         

    FreePBX, Asterisk 16 e Interface RESTful do Asterisk (ARI)

    Sejam muito bem-vindos a mais uma postagem do site FreePBX Brasil, esta documentação vai lhe auxiliar a fazer as configurações para uso do ARI no FreePBX.

    O intuito deste é contribuir com a comunidade auxiliando para execução discagens via API, um caso comum é quem faz o uso de discadores, que normalmente usam os famosos “aquivo.call” e/ou AMI para efetuar as discagens, ambos funcionam muito bem, mas fazendo uso de RESTful você vai dar um upgrade na sua aplicação.

    A Interface RESTful do Asterisk (ARI) é uma API assíncrona que permite aos desenvolvedores construir aplicativos de comunicação no asterisk, fazendo uso de objetos por meio de eventos JSON e WebSocket, o ARI está no asterisk a partir da versão 12.

    Antes de seguir, vale ressaltar que se caso identificar algum problema ou erro neste post, não deixe de nos reportar, o feedback é de suma importância para dar ainda mais qualidade aos conteúdos do site.

    Laboratório:

    1. FreePBX 15;
    2. Asterisk 16;
    3. Insomnia - Versão free.

    Vamos iniciar as configurações no FreePBX, primeiro criar o usuário RESTful.

    A seguir será necessário ir nas configurações avançadas para habilitar o WebService do FreePBX para aceitar as requisições para o ARI.

    Acima apresenta as configurações avançadas do FreePBX, aonde será configurado habilitando o WebService para as requisições de interação com o nosso core de telefonia, lembrando que estas configurações feitas via GUI do FreePBX são somente para interações com o asterisk. Lembre-se, qualquer alteração via GUI do FreePBX faz necessário logo em seguida salvar e aplicar, usando o "Submit" e o "Apply"!

    Agora que já foi criado o usuario da API e habilitado o serviço de WebService, será necessário identificar se de fato temos o ARI ativo em nosso asterisk, vamos ao CLI.

    [root@freepbx15 ~]# rasterisk -vvvvvvvcgi
    Asterisk 16.4.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
    Created by Mark Spencer 
    Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
    This is free software, with components licensed under the GNU General Public
    License version 2 and other licenses; you are welcome to redistribute it under
    certain conditions. Type 'core show license' for details.
    =========================================================================
    Connected to Asterisk 16.4.1 currently running on freepbx15 (pid = 2212)
    freepbx15*CLI> ari show 
    app     apps    status  user    users   
    freepbx15*CLI>
    
    

    No CLI digitando ari show e pressionando a tecla TAB será apresentado algumas opções que estão disponiveis para consulta, a seguir consultaremos os usuarios ativos ARI, status do serviço e se o WebService está ativo.

    
    freepbx15*CLI> ari show users
    r/o?  Username
    ----  --------
    No    freepbxuser
    No    kowalski
    
    freepbx15*CLI>
    

    freepbx15*CLI> ari show status 
    ARI Status:
    Enabled: Yes
    Output format: compact
    Auth realm: Asterisk REST Interface
    Allowed Origins: *
    User count: 2
    
    freepbx15*CLI>
    

    freepbx15*CLI> http show status 
    HTTP Server Status:
    Prefix: 
    Server: Asterisk/16.4.1
    Server Enabled and Bound to 0.0.0.0:8088
    
    Enabled URI's:
    /httpstatus => Asterisk HTTP General Status
    /static/... => Asterisk HTTP Static Delivery
    /ari/... => Asterisk RESTful API
    /ws => Asterisk HTTP WebSocket
    
    Enabled Redirects:
      None.
    
    freepbx15*CLI>
    

    Aqui observamos que nos serviços WEB do asterisk temos o ARI ativo, a linha "/ari/... => Asterisk RESTful API" os demais podemos abordar em um outro post. Idetificado que as configurações estão corretas com o ARI, será necessário agora, no asterisk criar um contexto para os testes.

    vim /etc/asterisk/extensions_custom.conf
    [freepbxbrasil]
    
    exten => 1000,1,NoOp( ..:: ------------------------- )
     same =>      n,NoOp( ..:: Comunidade FreePBX Brasil )
     same =>      n,NoOp( ..:: Prof. Kowalski )
     same =>      n,NoOp( ..:: ------------------------- )
     same =>      n,Hangup()
    
    

    Em seguida saia do vim salvando, vou pode usar o ":wq" ou ":x" que acho mais prático, após contexto criado e salvo, será necessario recarrega-lo , por que até então o asterisk não reconhece o mesmo, no CLI digite dialplan reload, para ter certeza que o contexto existe, certique usando o comando abaixo.

    freepbx15*CLI> dialplan show freepbxbrasil 
    [ Context 'freepbxbrasil' created by 'pbx_config' ]
      '1000' =>         1. NoOp( ..:: ------------------------- )     [extensions_custom.conf:3]
                        2. NoOp( ..:: Comunidade FreePBX Brasil )     [extensions_custom.conf:4]
                        3. NoOp( ..:: Prof. Kowalski )                [extensions_custom.conf:5]
                        4. NoOp( ..:: ------------------------- )     [extensions_custom.conf:6]
                        5. Hangup()                                   [extensions_custom.conf:12]
    
    -= 1 extension (5 priorities) in 1 context. =-
    freepbx15*CLI> 
    
    

    Pronto, agora está certificado que o contexto existe, agora será feito uma requisição API que vamos executa-lo e apresentar essas mensagens no console, para isso vamos usar o Insomnia na versão free, este muito usado para testes de rotas de API, assim como POSTMAN e muitos outros.

    Este que será usado uma requisição POST, conforme orienta a documentação oficial do asterisk que ao término deste deixarei explicíto.

    Acima em ❶ temos criado a nossa requisição de API do tipo "POST", seguindo a documentação do ari no site oficial do asterisk, que ao final informo o link. Em ❷ a requisição da api com os devidos parâmetros este que detalho a seguir, em ❸ aonde ao clicar será enviado sua requisição, em ❹ é um dos pontos mais importante deste processo, o codigo de retorno HTML, neste caso está como "200 OK" ou seja nossa requisição foi executar e o retorno foi sucesso, se o retorno for direfente disso, valide na documentação da API que na maioria das vezes alguns códigos de retornos são mapeados e documentados para lhe auxiliar em problemas.

    Explicando item ❷ , para ficar de facíl entendimento, será colocado a url e vamos particiona-la para explicar cada parte da mesma.

    URL = http://kowalski:freepbxbrasil@192.168.200.24:8088/ari/channels?endpoint=Local/1000@freepbxbrasil&extension=1000&context=freepbxbrasil&priority=1&callerid=9000

    Dados de autentição da API:
    User ➜ kowalski
    Password ➜ freepbxbrasil
    IP do Server ➜ 192.168.200.24
    Porta do WebService ➜ 8088

    Dados do Asterisk baseado na documentação oficial:
    channels ➜ Rota da API ARI
    endpoint ➜ O canal usado para comunicação interna com o asterisk
    extension ➜ Extensão criada no nosso contexto
    freepbxbrasil ➜ Contexto criado para homologação conforme acima.
    priority ➜ a nivel de dialplan estamos iniciando nesta posição do contexto
    callerid ➜ o callerid que vamos utilizar para essa requisição

    Agora com as informações acima validada, já pode ser feita a requisição via insomnia e o retorno deve ser um "200 OK", acompanhe no seu asterisk via terminal (CLI), abaixo um exemplo de quando o asterisk recebe a requisição via ARI.

    Acima temos o retorno de quando a requisição foi executada com sucesso, assim como o contexto do asterisk como esperado.

    Pronto, agora que você aprendeu o básico de usabilidade do recurso ARI que tem disponível em seu asterisk, aproveite que este assim como muitos outros recursos no asterisk fazem o diferencial na solução de telefonia.

    A seguir vou documentar as referências utilizadas nesta documentação, obrigado e até a próxima.

    1- Asterisk REST Interface (ARI)
    2- Introduction to ARI and Channels
    3- Asterisk 16 Channels REST API
    4- Local Channel


    "Começar é a parte mais importante de qualquer trabalho" - Platão


         

    Aprenda a criar Backups no seu FreePBX

    Olá sejam muito bem-vindos a mais uma documentação para ajudar a comunidade, antes de qualquer coisa não deixe de contribuir, nos acione e envie material para que possamos fazer deste site um grande repositório de informações para todos.

    Este material te auxilia a fazer o passo a passo para criação do backup no seu FreePBX, vamos lá!

    Faça o login na interface web do FreePBX visitando o endereço IP do seu PBX.

    Navegue em Admin -> Backup e Restauração


    Clique em Backups e depois em New Backup


    Escolha um "nome" e uma "descrição" para o backup e insira um "endereço de e-mail" que será notificado quando o backup for executado. Para fazer backup de tudo em seu servidor, incluindo correios de voz, gravações, arquivos de configuração, etc., você deverá clicar e arrastar os seguintes Modelos para a seção Itens de backup:

    1. Backup Completo
    2. CDRs
    3. Sistema de áudio
    4. Correio de voz

    Observe que isso NÃO incluirá gravações de chamadas, o que pode tornar seu backup muito grande. No entanto, se você precisar deles incluídos no seu backup, você pode clicar no "+" (mais) na parte inferior da lista "Itens" e adicionar um diretório com o caminho "__ASTSPOOLDIR __/monitor" (sem as aspas).

    Em Storage Locations, arraste “Local Storage (local)” para a coluna Storage Servers (Opcional) Se você deseja executar o backup automaticamente em uma base regular, escolha a frequência que deseja que o servidor faça backup. Se você estiver configurando backups automáticos, é altamente recomendável definir um tempo ou quantidade "Excluir após", caso contrário, os backups antigos nunca serão removidos e você poderá ficar sem espaço em disco.


    Acima em -Hooks são scripts que podem ser definidos para interagir antes e depois do backup.

    Clique em Salvar.


    Para executar o backup agora, vá até o fundo novamente e clique em "e executar"

    Após isso você já pode contar com uma rotina de backup automatica, configurando da forma que melhor lhe atender! É possível conferir a listas de backups, os mesmos ficam salvos no caminho: /var/spool/asterisk/backup no linux.

    Espero que essa documentação possa lhe auxiliar, encerramos por aqui, até a proxima!


         

    Tronco entre duas Centrais (FreePBX 14 x Issabel)



    Olá sejam muito bem-vindos a mais uma documentação para auxiliar a comunidade não só freepbx, mas também Issabel, este que usa o freepbx(2.11) não muda muita coisa, somente a interface web, mas o coração é do nosso guerreiro, bom vamos lá. Este trata a interligação de um Freepbx com um Issabel usando tronco IAX2, o mesmo server para uma comunicação entre sites, se necessário. Vamos por a mão na massa!

    Antes de seguir não deixe de compartilhar os conteúdos do nosso site e contribuir com o mesmo, assim conseguimos ainda mais ajudar a comunidade.


    Laboratório (Freepbx)

    • Virtualbox 6.0;
    • CentOS 7;
    • HD 10GB;
    • Memoria: 1024 MB;
    • Freepbx 14.

    Laboratório (Issabel)

    • PROXMOX 5.3;
    • CentOS 7;
    • HD 40GB;
    • Memoria: 1024 MB;
    • Issabel.

    Observações: O HD do Issabel está um pouco maior por ser um servidor de laboratorio que já existia, mas não se preocupe com esse detalhe, se for o caso pode criar ambos do mesmo tamanho.

    Configurações [FreePBX]

    Crie um tronco do tipo IAX2 com as seguintes informações:

    Trunk Name: Issabel
    Trunk Name (Outgoing): Issabel
    PEER Details:
    username=freepbx
    type=friend
    trunk=yes
    transfer=no
    secret=AsteriskHelp
    qualify=yes
    host=IP_DO_SERVIDOR_ISSABEL
    disallow=all
    context=from-internal
    allow=ulaw&alaw&gsm

    Se caso tiver alguma duvida, suas configurações devem estar como a imagem abaixo:



    Uma parte do trabalho foi feita que é criar o tronco, agora precisamos adicionar uma rota de saida para conseguir ligar para outra ponta, Issabel!

    Nas rotas de saída crie uma rota com as seguintes informações abaixo:



    Acima em Route Name coloque o nome da rota de saida, esta foi definida como "dial-issabel", em Trunk Sequence for Matched Routes, este você deve atribuir o tronco que foi criado, neste caso issabel.



    Agora na guia "Dial Patterns" adicione a regra de discagem para conseguir ligar nos ramais da central ISSABEL, este que estão na range 3000 ao 3999, sendo assim será usado a mascara 3XXX.

    Configurações [Issabel]

    Crie um tronco do tipo IAX2 com as seguintes informações:

    Trunk Name: freepbx
    Trunk Name: freepbx
    PEER Details:
    username=issabel
    type=friend
    trunk=yes
    transfer=no
    secret=AsteriskHelp
    qualify=yes
    host=IP_DO_SERVIDOR_FREEPBX
    disallow=all
    context=from-internal
    allow=ulaw&alaw&gsm

    Se caso tiver alguma duvida, suas configurações devem estar como a imagem abaixo:


    Agora vamos configurar uma rota de saída para para que seu server Issabel possa discar para os ramais do servidor FreePBX.



    Assim como no tronco anterior, este foi adicionado a regra de discagem para conseguir ligar nos ramais da central FreePBX, este que estão na range 1000 ao 1999, sendo assim será usado a mascara 1XXX.

    Agora que os troncos e rotas foram criadas, vamos checar o status da interligação em ambos os lados.

    [root@asteriskhelp ~]# asterisk -vvvvvvvvcgi
    asteriskhelp*CLI> iax2 show peers
    Name/Username    Host                    Mask                                      Port           Status      Description                     
    issabel/freepbx  192.168.1.95       (S)  255.255.255.255                           4569  (T)      OK (1 ms)             
    


    [root@issabel~]# asterisk -vvvvvvvvcgi
    issabel*CLI> iax2 show peers
    Name/Username    Host                    Mask                                      Port           Status      Description                     
    freepbx/issabel  192.168.1.38       (S)  255.255.255.255  4569 (T)                                OK (1 ms)             
    

    Testes de ligações

      -- Called IAX2/freepbx/1000
        -- Call accepted by 192.168.1.38 (format ulaw)
        -- Format for call is (ulaw)
        -- IAX2/freepbx-16860 is ringing
        -- IAX2/freepbx-16860 is ringing
    issabel*CLI> 
    

    Called IAX2/issabel/3000
        -- Call accepted by 192.168.1.95:4569 (format ulaw)
        -- Format for call is (ulaw)
        -- IAX2/issabel-18020 is ringing
        -- IAX2/issabel-18020 is ringing
    asteriskhelp*CLI> 
    

    Os testes foram efetuados com sucesso, desta forma a comunicação entre os servidores esta estabelecida e testada, espero que esta documentação possa lhe auxiliar, não deixe de comentar e contribuir com o site da comunidade.


         

    FreePBX - Transferencia de ligação customizada


    Olá , sejam bem-vindos a mais uma documentação voltada para o ambiente asterisk e FreePBX, esta trata a transferência cega (Blind transfer) ou seja, você transfere a chamada para o ramal destino sem saber se ele quer ou não atender, essa demanda especifica surgiu e achei interessante compartilhar com a comunidade. Este processo será necessário algumas customizações nos arquivos conf do asterisk, nada de outro mundo, fiquem tranquilos. A inicio será alterado o contexto padrão da variável “${TRANSFER_CONTEXT}” esta que é acionada todas vezes que é executado uma transferência e logo a seguir dentro do contexto customizado será tratado a variável de canal “${BLINDTRANSFER}” usada na transferência cega, desta forma quando transferir a chamada ele aguardará o time especificado e logo a seguir devolve a chamada para a extensão que originou a transferência.

    No terminal do linux vamos as alterações nos arquivos do asterisk, sempre sugiro que faça esse processo no seu ambiente de testes para não ter problemas com o sistema em produção.

    A descrição do laboratório são de dois ambientes que um usando Debian 8(Raspberry Pi) e o outro CentOS6.

    Laboratório 01:

    • Raspberry Pi;
    • Asterisk 11.21;
    • Debian 8.

    Laboratório 02:

    • Servidor IBM;
    • Asterisk 11.21;
    • CentOS 6.
    [root@asteriskhelp ~]# vim /etc/asterisk/globals_custom.conf
    
    TRANSFER_CONTEXT = custom-test_transfer
    

    Logo em seguida pressione a tecla [ESC], depois ":x!" para sair do arquivo salvando as alterações.
    Obs. Sem as ASPAS!

    A seguir será adicionado o contexto que vai tratar a transferência e devolve-la para o ramal que originou.

    [root@asteriskhelp ~]# vim /etc/asterisk/extensions_custom.conf
    
    [custom-test_transfer]
    exten => _X.,1,NoOp(Entering custom-test_transfer)
    exten => _X.,n,Set(timeoutd=25) ; Aqui adicione o tempo que deseja como timeout
    exten => _X.,n,Set(extLeng=${LEN(${EXTEN})})
    exten => _X.,n,NoOp(The extenlength is ${extLeng})
    exten => _X.,n,Dial(Local/${EXTEN}@from-internal,${timeoutd})
    exten => _X.,n,Set(CALLERID(name)=RB:${CALLERID(name)})
    exten => _X.,n,Dial(Local/${BLINDTRANSFER:4:${extLeng}}@from-internal)
    exten => _X.,n,Hangup()
    
    

    Logo em seguida pressione a tecla [ESC], depois ":x!" para sair do arquivo salvando as alterações.

    Agora será necessário executar um reload no asterisk para que ele reconheça o novo contexto criado, observe a seguir que serão rodados três comando, um para entrar no console do asterisk, outro para dar o reload nos contextos o ultimo para checar se o já existe e foi reconhecido pelo asterisk.

    [root@asteriskhelp ~]# rasterisk -vvvvvvvcgi
    
    asteriskhelp*CLI> dialplan reload
    asteriskhelp*CLI> dialplan show custom-test_transfer
    
    [ Context 'custom-test_transfer' created by 'pbx_config' ]
      '_X.' =>          1. NoOp(Entering custom-test_transfer)        [pbx_config]
                        2. Set(timeoutd=25)                           [pbx_config]
                        3. Set(extLeng=${LEN(${EXTEN})})              [pbx_config]
                        4. NoOp(The extenlength is ${extLeng})        [pbx_config]
                        5. Dial(Local/${EXTEN}@from-internal,${timeoutd}) [pbx_config]
                        6. Set(CALLERID(name)=RB:${CALLERID(name)})   [pbx_config]
                        7. Dial(Local/${BLINDTRANSFER:4:${extLeng}}@from-internal) [pbx_config]
                        8. Hangup()                                   [pbx_config]
    
    -= 1 extension (8 priorities) in 1 context. =-
    

    Agora que já alimentou os arquivos e o asterisk reconheceu o contexto, como mostra o resultado acima, já pode iniciar os testes. Lembrando que essa documentação foi homologada em ramais SIP que utilizam o modulo "chan_sip".

    Espero que tenha auxiliado e até a próxima, abraços.


         

    FreePBX - Script de Instalação customizada



    Olá sejam bem-vindos a mais uma documentação voltada para Freepbx, esta será curta e objetiva.

    O nosso amigo e parceiro RAFAEL TAVARES da Ibinetwork desenvolveu um script de instalação customizada do freepbx 14 e asterisk 13 para Linux CentOS versão 7, este estamos trabalhando em melhorias juntamente com o apoio da comunidade no telegram [FreePBX Brasil Community] o mesmo faz a instalação dos módulos básicos para uso no dia-dia, regras sip para o firewalld, instalação dos áudios em português, codec g729 e tratamento de hangupcause, abaixo o link do script onde pode conferir mais detalhes, contamos com a sua ajuda para melhora-lo ainda mais.



         

    FXO DINSTAR - DISCONNECT TONS CADÊNCIA - ASTERISK 11



    O procedimento abaixo não será extenso como a maioria, apenas para documentar as configurações desconexão do equipamento DINSTAR(FXO), ao observar que existe uma certa carência deste tipo de documentação para tal modelo, este processo foi resolvido juntamente com o auxilio do Luciano Cavalcante amigo e parceiro da comunidade FreePBX Brasil Community.

    Laboratório:

    • Asterisk 11;
    • DINSTAR – MODELO DAG1000-4O;
    • Linha Analógica da Operadora Oi.

    Antes de mais nada se possível atualize seu equipamento, abaixo o link para acesso ao diretório compartilhado com as ultimas firmwares.


    No equipamento no caminho:

    Advanced » FXO Parameter

    Segue a imagem abaixo:



    Preencha com as seguintes informações de cadência: 250,230,250,230,250,230,330,230

    Confira as demais informações acima e se caso tiver algo diferente no seu equipamento, ajuste.

    Espero que esta documentação ajude e não deixe de compartilhar e contribuir com a comunidade, se caso você tiver alguma documentação relevante que queira compartilhar aqui, nos contate que será um prazer criarmos um post com novos conhecimentos.