Howto: PBX In A Flash (PiaF)

Resolvi escrever este guia para os que estão começando em telefonia IP agora, e não sabem bem por onde começar, ou para aqueles que já “fuçam” a algum tempo mas não sabem bem o que fazer com os seus laboratórios ou o que realmente estudar ou qual caminho seguir. Neste documento, eu procuro dar dicas e sugestões baseadas em experiências e situações pelas quais eu passei enquanto trabalhava exclusivamente como consultor de asterisk.
Realizei diversas interligações e migrações entre pbx convencionais e servidores asterisk, depois de muito bater cabeça por ai fui definindo padrões e procedimentos que eu mesmo deveria seguir para facilitar a minha vida e é isto que venho compartilhar agora.

Antes de começarmos, queria falar sobre instalações do asterisk x sistemas completos tipo trixbox, piaf e elastix.

Para ficar competitivo no mercado, eu considero muito importante gastar o mínimo possível de horas técnicas e fazer um trabalho bem feito. Para a interligação ou substituição da maioria dos PBX convencionais, um FreePBX tira de letra a tarefa de forma estável e de fácil gerenciamento. Claro que em alguns casos é bem mais interessante montar um Asterisk limpo sem nada, para algumas tarefas bem mais específicas, como por exemplo um sistema de gravação interligado a outro pbx, um sistema de voicemail, etc..

Porque o PiaF e não o Trixbox ou elastix?
Bem, na outra empresa que eu trabalhava focado em asterisk, o carro chefe era o TrixBox (antigo asterisk@home), um fator que eu nunca gostei no tb, é que ele sempre foi muito “bleeding edge”, então por diversas vezes encontrei alguns features meio bugados. Outro motivo, seria uma grande invasão de privacidade por parte da Fonality (empresa que mantem o TB) para com os seus usuários, para saber mais sobre o assunto, pode procurar sobre “Trixbox Call Home” para ajudar, já selecionei algo aqui, aqui, aqui e aqui!
E como terceiro ponto, a Fonality resolveu abandonar o FreePBX e passar para um gerenciador próprio, isto foi mais que o suficiente para procurar outra distro.
Elastix… na época que saiu o asterisk 1.4 o freepbx demorou um pouco para lançar uma versão definitiva, e a elastix lançou uma versão do seu produto usando o freepbx beta para asterisk 1.4… Isto me fez perder credibilidade com a distro.
E por fim encontrei o PiaF, na sua página inicial, vi algo que me agradou muito, pois bate 100% com a minha linha de pensamento “estamos comprometidos em lançar releases estáveis e não bleeding edge” Depois de passar um tempo pesquisando sobre a distro, observando a comunidade e depoimentos externos, percebi que valia a pena testar… De fato, a única coisa que eu posso reclamar é o fato de eles não terem o hudlite que era um produto muito interessante para as telefonistas, mas de resto a distribuição é muito estável e tendo me gerado pouquíssimos problemas.

Instalando o PiAF
Sem muito mistério, sem muito drama, botar o cd no drive iniciar com todas as opções default, ajustar as partições de acordo com o seu gosto e aguardar o primeiro reboot.
Neste momento o PiAF oferece 2 opções, baixar os arquivos da internet ou usar do próprio CD. Na versão 1.2 era apenas baixar da internet ou cd para “reseller”. Vale a pena seguir sempre o recomendado pelo setup, que seria baixar os arquivos da internet, neste meio tempo, vá buscar o seu primeiro café e aguarde…
Depois que ele faz todos os downloads e instala todos os programas/scripts, comece a fazer as atualizações, rode na respectiva ordem:
update-scripts
update-fixes
update-source (leia as próximas linhas ANTES de rodar este comando)
Observar que o piaf vai informar que o zaptel está rodando e que o sistema de telefonia ficara indisponível blá blá e precisará reinicializar o computador para desativar o zaptel. Após o reboot rode novamente o update-source.
I M P O R T A N T E:
NÃO atualize, o Kernel através do update-source nem permita que ele rode o yum update (obviamente também não rode estes comandos manualmente). Eu vi surgirem alguns problemas após estas atualizações, portanto tenho deixado elas de lado. A minha preocupação é manter o FreePBX e o Asterisk atualizados, não o sistema (estranho não? um dia explico o meu ponto de vista). Faça como quiser, o pbx é seu :P
Agora enquanto roda o update-source, busque mais um pouco de café e mantenha-se longe do teclado :)
Conforme recomendado pelo piaf, rode um novo update-scripts e em seguida update-fixes.

Trocando a senha do usuário maint
(Durante os updates do piaf, ele informa que foi descoberto um bug no sistema de autenticação do freepbx e desabilita o controle de usuários, a autenticação passa a ser feita pelo apache e voltamos a usar o usuário “maint”)

root@pbx:~ $ passwd-maint
-------------------------------------------
Set password for AMP web GUI and maint GUI
User: maint
-------------------------------------------

New password:
Re-type new password:
Updating password for user maint

Instalando os módulos

Ao invés de instalar apenas alguns módulos, eu recomendaria instalar todos por alguns motivos:
* Não altera o resultado final para um pbx de 100 a 150 ramais. (Desconsiderando o caso de Callcenters onde o uso do pbx e dos extensions é muito intenso)
* Frequentemente vejo colocarem “pbxizes” em redes isoladas ou localidades bizarras, sem acesso a internet, embaixo de escadas ou outros lugares nunca antes imaginados. Em alguns casos, pode acabar ficando difícil instalar um módulo em um pbx de produção, por isso sempre deixo todos os módulos instalados durante a implantação, se um dia precisar, “tá ali”.
* Para quem está aprendendo também é interessante, pois com o módulo instalado fica mais fácil de “fuçar”

Acesse o seu pbx através do endereço http://servidor/admin utilizando o usuário maint.

Vá em “Module Admin”

Check for updates online
Download all/ upgrade all
Process / Confirm

Irão surgir alguns erros de dependências, apenas clique em confirmar e aguarde a instalação de todos os pacotes. Repita todo o processo até que não reste mais nenhum pacote por instalar.

Instalando a placa TDM400 com 4 FXO

root@pbx:~ $ genzaptelconf
root@pbx:~ $ ztcfg -vvv

Zaptel Version: 1.4.12.1
Echo Canceller: MG2
Configuration
======================

Channel map:

Channel 01: FXS Kewlstart (Default) (Slaves: 01)
Channel 02: FXS Kewlstart (Default) (Slaves: 02)
nullChannel 04: FXS Kewlstart (Default) (Slaves: 04)

4 channels to configure.

Observação: Neste momento deve ter rolado uma pequena confusão para quem está iniciando agora com Asterisk; No zaptel.conf para módulos FXO, usa-se fxsks, aparecendo de forma invertida, já li uma explicação sobre isso, fazia muito sentido, mas honestamente, não lembro mais o motivo real, é porque é, e não importa muito. Se alguem lembrar, comenta ai! Este é o único ponto onde isso vai acontecer.

Agora edite o arquivo /etc/asterisk/zapata-channels.conf e separe os seus canais por grupos, exemplo de caso com duas linhas fixas e uma linha Cellfix:
Canais 1 e 2 no grupo 0 (ligando nas linhas fixas)
Canal 3 no grupo 1 (ligando no CellFix)
Canal 4 no grupo 2 (sem ligar em nada)

Salve o arquivo, conecte no asterisk e faça um reload da configuração.

root@pbx:~ $ asterisk -vvvr
Asterisk 1.4.21.2, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer markster@digium.com
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.
=========================================================================
  == Parsing '/etc/asterisk/asterisk.conf': Found
Connected to Asterisk 1.4.21.2 currently running on pbx (pid = 3346)
Verbosity is at least 3
pbx*CLI> reload
...
pbx*CLI>

Verificando os canais da placa TDM:

pbx*CLI> zap show channels
   Chan Extension  Context         Language   MOH Interpret
 pseudo            default         en         default
      1            from-pstn       en         default
      2            from-pstn       en         default
      3            from-pstn       en         default
      4            from-pstn       en         default
pbx*CLI>

Ok, agora reinicialize seu PBX e verifique se tudo vai inicializar corretamente, zapata, asterisk, etc… Não havendo nenhuma surpresa após o reboot, a base do seu pbx está pronta! Agora basta configurar…

Configuração Básica:
Para termos um PBX básico operacional, precisamos do seguinte:
* Trunks
* Outbound routes
* Ramais configurados
* Inbound routes
* Music on Hold ?
* Desabilitando Features “perigosos”
* Pickup Groups
* Ajustes Finos

Configurando o Trunk:
Se clicar em Trunks, já vai haver um Trunk ZAP/g0 basta apenas adicionar o g1 (para o nosso Cellfix)
Add Zap Trunk em “Zap identifier” coloque g1 e clique em “Submit Changes”

Dialplan:
Antes de criarmos as rotas de saída, devemos pensar no nosso Dialplan, eu gosto de adotar o seguinte critério:
Ligações externas para a PSTN, sempre começam com Zero, ligações internas ou interligações com outras empresas do grupo, diretamente o número do ramal. Este por sua vez procuro manter sempre com 4 dígitos por questões de padronização, praticidade e facilidade na hora de montar um plano de numeração entre várias empresas. Exemplo:
Empresa A: Faixa de numeração 1100 até 1199
Empresa B: Faixa de numeração 1200 até 1399
Empresa C: Faixa de numeração 1400 até 1499

Assim podemos pensar da seguinte forma: Os dois primeiros dígitos são o “prefixo” da empresa e os dois últimos o número do ramal, ficando visualmente simples de entender.

Rotas de Saída (Outbound Routes):
Começamos deletando a rota 9_outside.
Agora criaremos uma rota de saída para cada tipo de ligação, basta clicar em Add Route e preencher os campos “Route Name” com o nome da rota, Dial Patterns e o Trunk Sequence.
O padrão que eu gosto de usar é o seguinte:

Route Name: Especiais
Dial Patterns:
0|1XX
0|0800XXXXX.
Trunk Sequence: (grupo de linha fixa)
1XX para policia, bombeiros, auxilio a lista, etc..
0|0800XXXXX. para números 0800 (observar que estes possuem tamanhos variados)

Route Name: Fixo_Local
Dial Patterns:
0|[2-6]XXXXXXX
Trunk Sequence: (grupo de linha fixa)

Route Name: Movel_Local
Dial Patterns:
0|[7-9]XXXXXXX
Trunk Sequence: (grupo cellfix)

Route Name: Fixo_DDD
Dial Patterns:
0|ZZ[2-6]XXXXXXX
0ZZ|ZZ[2-6]XXXXXXX
Trunk Sequence: (grupo de linha fixa)

Route Name: Movel_DDD
Dial Patterns:
0|ZZ[7-9]XXXXXXX
0ZZ|ZZ[7-9]XXXXXXX
Trunk Sequence: (grupo cellfix)

Route Name: Internacional
Dial Patterns:
0|00ZZXXXXX.
Trunk Sequence: (grupo de linha fixa)

Observar que no Dialplan, para as chamadas de longa distância, permitimos que o usuário disque sem a operadora (pode ser o padrão adotado pela empresa), mas caso o usuário seja teimoso e insista em usar operadora, também aceitamos, mas cortamos a operadora de forma transparente :)

Agora voltamos aos Trunks e montamos o nosso Dial Rules para os dois troncos:

XXXXXXXX
024+ZZXXXXXXXX
0800XX.
000ZZ|0024+XXXX.
1XX

Estas regras permitirão todas as chamadas configuradas nas Outbound Routes sendo que para as chamadas de DDD usaremos a operadora que nos forneça o melhor desconto ou pacote de ligações (usei o exemplo de 24)

Criação de Ramais (Extensions):
Agora precisamos criar os nossos ramais.
Vamos em “Add Extension” e depois Generic SIP Device

Os campos básicos (com exemplos) são:
User Extension: 1000
Display Name: Telefonista (Isto é legal pois se usar telefones IP ou softphones, o Display name aparecerá nas ligações internas, e também aparecerá nos relatórios de chamadas) Obs: Sempre uso APENAS caracteres alfa-numéricos, sem nenhum tipo de caracter especial como ç ~ + * ‘ é á, etc… Não sei qual impacto isto pode ter no sistema, portanto procuro evitar problemas
Secret: PARE! Coloque algo DECENTE, já existem vários tipos de bruteforce para asterisk (SIP principalmente) baseados em palavras de dicionário e coisas bobas como por exemplo Ext 1000 senha 1000. Um usuário malicioso interno ou externo, pode tranquilamente causar um grande prejuízo em um curto período de tempo, portanto, tome cuidado com este detalhe.

Clique em Submit Changes e adicione mais alguns extensions.

Rotas de entrada (Inbound routes):
Agora que já temos quase tudo pronto, devemos definir o que fazer com as chamadas recebidas. Vamos adicionar algo bem genérico, para isto, clique em Add Incoming route, pule todos os campos e vá direto para “Set Destination”. Marque Extensions e procure o ramal da Telefonista
clique em Submit e a sua rota de entrada está criada!

Musica de espera (Music On Hold)
Isto é básico? Sim, to de saco cheio de ligar para um PBX e ouvir sempre a mesma musica!
O Asterisk vem por default com 3 músicas pré instaladas, entretanto o FreePBX toca estas musicas sempre na mesma ordem. Mesmo que não façamos o upload de novas músicas, podíamos ao menos habilitar o random play né? Basta clicar em Enable Random Play e Submit! Simples não?

Desabilitando Features “Perigosos”
Alguns Features deveriam vir desativados por default pois podem causar transtornos e um certo perigo. Por segurança estes devem ser desabilitados. Se quiser habilitar estes features, crie contextos customizados ou procure maneiras seguras para a sua ativação.
Clique em Feature Codes e procure principalmente
* Chanspy (permite ouvir chamadas ativas a partir de qualquer telefone) Muito útil se bem usado, por exemplo: Um cliente meu tinha um helpdesk, e queria que o gerente do helpdesk tivesse a possibilidade de “ouvir” as chamadas ativas e “Sussurrar” (Whisper) apenas para o atendente, sem que o cliente escute. Desta forma ele podia ajudar seus funcionários durante uma ligação. O chanspy possui este feature (se customizado corretamente), mas você não gostaria que um funcionário qualquer escutasse uma chamada da diretoria apenas digitando um código…

* ZapBarge Semelhante ao chanspy mas ouve os canais das placas Zap.

* Gabcast (como instalamos o modulo e nao usaremos, desabilitamos)

* outros módulos que possam gerar confusão como Do not disturb, dictation, blacklist (dificilmente usado em um ambiente corporativo)

Aplicando as configurações:
O FreePBX não ativa as configurações no momento das alterações, evitando assim reloads desnecessários e que problemas apareçam entre uma configuração e outra.
Para aplicar as configurações clique no botão laranja que deve estar aparecendo no topo “Apply Configuration Changes” e confirme.

Ajustes Finos:
Agora faltam apenas pequenos detalhes para o nosso pbx ficar pronto. São eles:

No arquivo /etc/asterisk/zapata.conf
na parte [channels] adicionar:
busydetect=yes
busycount=4

Isto faz com que o asterisk “desconecte” uma linha quando esta ouvir o tom de “ocupado” (tú tú tú). No meu primeiro pbx fiquei quebrando cabeça quando as linhas ficavam penduradas por tempo indeterminado, este ajuste resolveu o problema

No arquivo /etc/asterisk/features_general_custom.conf podemos facilitar a vida de nossas amigas telefonistas..

transferdigittimeout => 5 ; tempo em segundos para esperar entre os digitos quando estiver transferindo uma chamada
courtesytone = beep
xfersound = beep ; beep que indica que uma transferência foi concluída
xferfailsound = beeperr ; beep de erro que indica que uma transferência não foi concluída
featuredigittimeout = 2000 ; Tempo máximo em ms para ativar um feature. o default é 500ms e NORMALMENTE as telefonistas tem problemas
; para digitar *2 em menos de 500ms, subindo isso para 1500 ou 2000 resolve o problema.

Instalando prompts de voz em português
A Intelbras http://www.intelbras.com.br mantém uma distribuição de SoftPBX baseada em Asterisk, esta chama-se DISC-OS http://www.disc-os.org e eles gentilmente cederam os prompts de voz em português (pt_BR) para a comunidade, através da licença Creative Commons http://creativecommons.org/licenses/by-nc-nd/2.5/br/

Vá até o site do DISC-OS http://www.disc-os.org e na seção downloads, procure o pacote Disc-OS Sounds.
Faça o download deste pacote dentro da pasta /var/lib/asterisk.
Nesta mesma pasta descomprima o arquivo:
# tar xvfz Disc-OS-Sounds-1.0-pt_BR.tar.gz
E ajuste o proprietário da pasta sounds recursivamente.
# chown asterisk:asterisk sounds -R

Edite os arquivos:
/etc/asterisk/sip_general_custom.conf
/etc/asterisk/iax_general_custom.conf
/etc/asterisk/zapata.conf

Altere o parâmetro language para pt_BR. Exemplo:

# vi /etc/asterisk/sip_general_custom.conf
language=pt_BR

Realize um reload do asterisk para que as novas configurações entrem em vigor.
# asterisk -rx reload

Pronto, agora o seu PBX Asterisk já fala Brasileirês (pt_BR)!

Ajustando o Timezone do php.ini
Não sei quanto a tua instalação, mas o meu freepbx sempre fica com o horário incorreto. Clique em Time groups e verifique se o tempo mostrado está correto, se estiver incorreto, você deve ajustar o /etc/php.ini
Procure o parâmetro date.timezone e coloque a sua timezone correta ex:
date.timezone = America/Sao_paulo
Lista com todos os Timezones

http://www.php.net/manual/en/timezones.php

Reinicialize o httpd e recarregue a página para verificar o novo horário.

Pickup groups
Já ia esquecendo deste detalhe…. Se um telefone estiver tocando na mesa ao lado, você pode digitar *8 no seu telefone e capturar a ligação, mas para isto é preciso realizar um pequeno ajuste. Tentando evitar confusões em ambientes maiores de telefonia separamos os telefones por grupo, evitando assim, coisas do tipo, o Adão do almox capturando por acidente uma chamada para o refeitório enquanto tentava atender o telefone do seu colega de serviço que foi ao banheiro para concretizar o número 2.
Geralmente eu divido os pickup groups por salas, todos os telefones de uma sala ficam no mesmo grupo. Basta editar o extension novamente e adicionar um número no campo Pickup Group, aproveite para adicionar o mesmo número no Callgroup, um dia será útil.
Observação: Alguem me reportou a muito tempo atrás que valores altos no pickupgroup apresentavam problemas as vezes, acho que isso é meio que lenda urbana mas nunca testei efetivamente, até porquê eu começo do grupo 1 em diante, na real, o número em si não afeta em nada nem aparece, é apenas para o asterisk saber que o telefone 1001 pode capturar chamadas do 1029.

e agora?
Depois destes passos, você já deve ter em mãos um servidor básico de telefonia pronto para entrar em produção com um funcionamento básico. Mas é claro que não vai parar por aí, ainda tens muito o que fuçar e muitos recursos a implementar. A minha dica é foco no que é mais convencional, como IVR (URA – atendimento automático), anúncios, filas (queues), grupos de chamadas (ring groups – procuro usar sempre 3 dígitos no range de 600 a 699), condições de tempo (time conditions – para ter atendimento diferenciado durante o dia e durante a noite por exemplo.), VoiceMail, Conferencias (estes eu gosto de usar 5 dígitos começando em 8 ex 80001 80002 sem conflitar com o dial plan), PIN sets, Call Parking, Callback e DISA.
Outros itens importantes para verificar são:
* Interligação entre 2 ou mais servidores de telefonia (recomendo IAX2 e não SIP)
* Uso de provedores VoIP para redução de custos em interurbanos

Recomendo aprender a usar e implementar BEM estes recursos que citei acima, pois são os itens mais úteis e mais pedidos por clientes.

Também é muito importante sentir-se a vontade com comandos básicos e o debug/verbose do console do asterisk. Isto vai ajudar e muito na solução de problemas.

Apenas para finalizar, eu sempre blasfemei contra o FreePBX quando eu precisava criar um contexto customizado direto extensions_custom.conf. Pior é que esta é uma coisa bem normal de um cliente pedir, e na maioria esmagadora das migrações que eu fiz, foi o único feature que o FreePBX não atendeu. Entretanto encontrei um módulo que gerencia muito bem os contextos customizados praticamente acabando com a necessidade de editar arquivos que ficam difíceis de manter (pois a cada mudança nas outbounds routes, os contextos customizados que usavam estas rotas, quebravam).
Este módulo está disponível aqui: http://www.freepbx.org/trac/ticket/1447
Mas quando que é preciso criar um contexto custom? O motivo mais frequente é quando o cliente pede para ter alguns telefones que não podem realizar chamadas externas (exemplo o ramal da portaria, vigilância, etc..) ou telefones que podem realizar apenas chamadas para números locais fixos. Este tipo de solicitação é bem frequente.

Leitura recomendada: http://dumbme.mbit.com.au/piaf/piaf_without_tears.pdf

Novamente espero ter ajudado de alguma forma.
Sugestões, dúvidas ou xingamentos, basta comentar.

Posts Relacionados:

  1. Howto: Estatísticas do Squid no Webalizer
  2. Howto: OpenVZ no CentOS 5.x
  3. Howto: Instalação e configuração do Zimbra no CentOS 5.X
  4. Howto: Filtro de emails usando Spamassassin + Postfix + ClamAV + MailScanner + MailWatch
  5. HOWTO: ISPConfig 3.x no CentOS 5.x

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

58 Comments »

 
  • Ricardo says:

    Excelente post.

    Parabéns

    também existe o asterisknow 2.5 Beta que usa o freepbx.

    Já testou?

    Qual a sua opinião?

    Do pouco que testei achei idêntica ao PIAF, se bem que também só conheci o PIAF através do seu post.

    Ia Pedir se podia fazer um post a explicar as Dial Rules e Dial Patterns pois parece haver muita gente com essa dúvida.

    Por exemplo, num trunk utilizo

    0|2. para sair todos os numeros começados por 2

    e noutro trunk queria que fossem todos os numeros começamos por 21 entao usaria
    0|21.

    Neste caso ele iria assumir todos os números começados por 2 pelo primeiro trunk e iria ignorar o segundo mesmo que o número seja 210000000

    O mesmo acontece se definir um número especifico para sair por determinado trunk, exemplo: 0|213456789 queria que fosse pelo segundo trunk mas como tenho o 0|2. no primeiro ele ignora.

    Obrigado e mais uma vez parabéns pelo post :)

  • Eduardo Silva says:

    Olá Ricardo,

    @ Asterisknow – Já havia testado as versões anteriores do Asterisknow mas nunca fui muito fã dele. Agora que a digium começou a trabalhar com o FreePBX na distro deles, acredito que seja interessante ficar de olho. Entretanto observar que ainda é beta, e eu procuro nunca usar este tipo de versão em sistemas de produção.
    Observar também que o PiaF informa durante o processo de update que o digium alterou o driver zaptel de forma que placas de terceiros não funcionem com ele, dando duas opções usar uma versão segura (que foi reportada como funcional em placas de terceiros ou usar a versão insegura onde varias pessoas reportaram que haviam encontrado este tipo de problema.
    Como ultimamente ando bem atrapalhado, não fui buscar maiores informações sobre este fato, então não tenho certeza se é verdade ou não. Se pretende usar o asterisknow, principalmente com placas de outras empresas, recomendo que busque maiores informações sobre este detalhe, apenas por garantia.

    @ Semelhanças entre as distros – É normal que elas pareçam iguais em muitos fatores, principalmente pelo fato de terem o FreePBX como gerenciador do PBX. Este pacote, assim como outros, são os mesmos em todas distribuições, mudando apenas alguns detalhes. O que muda mesmo é a maneira de empacotar as coisas e a filosofia do grupo que faz a release.

    @ Outbound Routes – Este teu problema é bem simples de resolver, basta trocar a ordem das rotas, bote primeiro a regra mais restritiva e depois a mais genérica.

    Quando uma chamada é realizada, grosseiramente falando, o número discado passa pelas outbound routes de cima para baixo, a primeira regra em que ele se encaixar, será usada para a discagem, deixando de verificar as outras regras.

  • Régis says:

    Parabéns amigo, mas preciso da sua ajuda
    em configurar uma conta vono no tronco.
    Obrigado,
    Régis

  • Eduardo Silva says:

    Olá Régis!

    Cadastrar um tronco vono é relativamente fácil.

    Vá em Trunks e Add SIP Trunk.

    Outbound Settings

    Trunk Name: vono

    PEER Detais:

    canreinvite=no
    fromdomain=vono.net.br
    fromuser=usuário
    qualify=yes
    host=vono.net.br
    insecure=very
    secret=senha
    type=peer
    username=usuário
    nat=yes

    Em Registration String:
    usuário:senha@vono.net.br:5060/usuário

    Rotas de entrada e saída:

    Inbound Routes
    Pode utilizar tanto “Any DID / Any CID”, como pode usar no “DID Number” o seu número de entrada da vono.

    Outbound Routes
    Se você seguiu o tutorial acima e quer usar o trunk vono para DDD’s por exemplo, basta trocar o Trunk Sequence de Zap/g* para SIP/Vono
    *Lembrar que pode ser necessário ajustar o Dial Pattern do Trunk Vono. A operadora espera um número no formato 0ZZXXXXXXXX (0 + DDD + Número) mesmo para as ligações locais.

    Ex: De acordo com as rotas criadas acima, o Dialpattern do tronco vono ficaria algo como:
    0+ZZXXXXXXXX
    051+XXXXXXXX (numeros locais assumindo que 51 é o seu código de área.

  • fagnerromeu says:

    Parabens, tb trabalho com integracoes e migracoes.

    Gostaria de saber se vc ja integrou TB com o Call Manager ? E se poderia me contar detalhes dessa integracao ou quem sabe me ajudar!

    Estou testando por um post mais esta dizendo que estou fazendo spawn, o que esta ocorrendo. Ja estou inclusive logado!

  • fagnerromeu says:

    Parabens, tb trabalho com integracoes e migracoes.

    Gostaria de saber se vc ja integrou TB com o Call Manager ? E se poderia me contar detalhes dessa integracao ou quem sabe me ajudar!

    Estou tentando por um post maior porem esta dando erro de spawn, o que pode estar acontecendo, estou inclusive estou logado!

  • Eduardo Silva says:

    Olá Fagner,

    @ Spam
    Fiz algumas atualizações no blog hoje e inseri um recurso anti-spam nele, reCAPTCHA. Se observar, logo abaixo do campo para comentários, existe uma imagem com 2 palavras meio distorcidas. Basta escrever estas palavras abaixo da mensagem que você conseguirá enviar o comment.
    Captcha em si é uma coisa meio chata para os visitantes, mas é um mal necessário, com este recurso consigo manter minha inbox livre de spams do blog.
    Entretanto usuários registrados não deveriam precisar fazer este tipo de teste. Vou verificar o que se passa depois.

    @ Call Manager: Tenho neste momento um PiaF usando FreePBX interligado com um Cisco Call Manager. Funciona perfeitamente via SIP.

    A interligação foi feita de forma bem simples, sem autenticação até porque os equipamentos de telefonia estão em uma rede separada e fechada.

    Que dúvidas que terias sobre o assunto?

  • fagnerromeu says:

    Primeiro é referente a maneira que vc utiliza seu dial plan é uma das mais simples e objetivas que ja encontrei na net ate hoje.

    Acho um excelente tema para um proximo post! Só faria uma pequena alteracao, pois aqui em SP por exemplo a OI esta utilizando os prefixos 6 e parece-me que em breve a AEIOU tb ira utilizar.

    Se vc me permite, para toda a comunidade entenda o que estou falando e enriquecer ainda mais o post:

    Nao sei com relacao aos outros estados, mais em Sao Paulo ficaria assim:

    Route Name: Fixo_Local
    Dial Patterns:
    0|[2-5]XXXXXXX
    Trunk Sequence: (grupo de linha fixa)

    Route Name: Movel_Local
    Dial Patterns:
    0|[6-9]XXXXXXX
    Trunk Sequence: (grupo cellfix)

    Route Name: Fixo_DDD
    Dial Patterns:
    0|ZZ[2-6]XXXXXXX
    0ZZ|ZZ[2-6]XXXXXXX
    Trunk Sequence: (grupo de linha fixa)

    Route Name: Movel_DDD
    Dial Patterns:
    0|ZZ[7-9]XXXXXXX
    0ZZ|ZZ[7-9]XXXXXXX
    Trunk Sequence: (grupo cellfix)

    Route Name: Internacional
    Dial Patterns:
    0|00ZZXXXXX.
    Trunk Sequence: (grupo de linha fixa).

    Com relacao ao Cisco Call Manager®, tenho tambem duas redes separadas, nao preciso de autenticacao pois faco a interligacao das redes por VPN estabelecida por dois check point’s.
    TB aqui em SP e la na Espanha um CCM, o trunk no meu TB ja aparece na lista de peers com status de OK, porem onde eu defino os ramais deste Cisco ? Nao sei bem por onde comecar.

    Sucesso!

  • Eduardo Silva says:

    Fagner,
    Muito obrigado pelo comentário construtivo. O que me constava era que os números fixos iam de 2 a 6, e para celulares de 7 a 9. Vou tentar descobrir se esta alteração do número 6 é apenas para SP ou se vale para todo o país. (Já estou a 1 ano fora do país então algumas mudanças eu não acompanhei) :)

    Bem, quanto a questão da interligação com o CM, (se for via SIP) primeiro você deve definir um Trunk SIP, após isto, crie uma “Outbound Route” com o dialpattern apontando a numeração dos ramais do Cisco CallManager ex: 19XX (se os ramais do Call Manager começarem por 19 e tiverem mais dois digitos).

    Se tiver problemas com a interligação, você pode procurar por erros usando o comando

    *CLI> sip set debug ip (ip_do_callmanager)

    No meu caso ajudou muito a achar erros durante o período de implementação.

    Boa sorte, depois diga como ficou sua interligação.

    Abraço

  • Fagner Romeu says:

    Consegui grandes progressos, depois de revisar todas as rotas e estabelecer as vpn’s consigo chamar um ramal do Call Manager porem ele me escuta e eu nao escuto ele.

    Tive um problema parecido com esse a um tempo atras em outro projeto mais se eu nao me engano era relacionado com NAT. Voce acha que o qualify tb pode influenciar nesse problema. De qualquer maneira abaixo vai o erro.

    SIP/2.0 400 Bad Request – ‘Malformed/Missing URL’

  • Eduardo Silva says:

    Fagner,

    Ótimo saber que conseguiu progredir na interligação entre o CCM e o Asterisk.

    Quanto a questão do escutar de um lado, mas do outro lado não, este problema normalmente é relacionado a NAT ou Firewall mesmo. Verifique se não está havendo nenhum tipo de filtragem por firewall entre o asterisk e o CM.

    Quanto ao qualify, ele não influencia nesse aspecto.

  • Ricardo says:

    Eduardo,

    Estou tendo muitos problemas para meter o PiaF a funcionar com uma placa “ATCOM AX-100P – Fully compatible with Digium X100P” (http://www.atcom.cn/En_products_AX100P.html), com o TrixBox consigo meter a funcionar perfeitamente mas com o PiaF não consigo.. será que consegue me dar umas dicas?

    Já experimentei tudo e mais alguma coisa sem sucesso.. já tou a desesperar e a ponderar voltar para o trixbox se não arranjar solução :(

    Obrigado

  • Eduardo Silva says:

    Ricardo,

    Eu não tenho trabalhado com estas placas, entretanto a instalação delas deveria ser mais ou menos igual para qualquer distro. (a não ser que o tb já tenha estes drivers pré compilados). Experimente buscar informações de instalação no site do fabricante, e tente ser um pouco mais específico, pois simplesmente “não consigo” não traz nada para que outras pessoas possam ajudar :P

  • Régis says:

    Eduardo eu instalei o piaf e estou usando 9 atas pap2tna. Esta acontecendo algo de estranho e gostaria da sua ajuda.
    Depois de um certo tempo alguns ramais não conseguem discar e só voltam ao normal quando eu dou um reboot. Você pode fazer um tutorial para configurar um ata pap2?
    Agradeço,
    Régis Vale

  • Juliano says:

    Ola.
    Estou ja a mais de uma semana tentando configurar a vono para se registrar, porem nada da certo. Ja troquei de distribuicoes (trixbox, asterisknow, elastix) e nada resolve. O meu IP valido nao esta no servidor, esta em um roteador, onde estou redirecionando as portas udp 5060 e 5061 e tambem as portas tcp/udp de 8000-20000 para o ip do servidor.
    Ja segui tudo quanto foi tutorial na internet e infelizmente nao obtive sucesso. Se puderem me ajudar, ficarei muito agradecido.

  • Eduardo Silva says:

    @Regis:
    Não é normal este tipo de ATA parar de funcionar repentinamente, provavelmente é algum problema no equipamento ou na rede.
    De qualquer forma, preciso que sejas mais detalhado com o problema em questão. É sempre o mesmo ata, ou o problema ocorre nos 9 atas? Se são todos, eles travam ao mesmo tempo? Quando o ata para de funcionar, consegue pingar ou acessar a interface web? o que diz o sip show peers?
    Quanto a configuração dos ATAs, ela é relativamente simples. Eu postei algo um pouco mais avançado que é o provisioning para estes equipamentos: http://linux.eduardosilva.eti.br/2009/02/08/provisioning-para-atas-linksys-pap2 Entretanto acredito que não vá te ajudar em muito.

    Um ajuste que pode amenizar o teu problema é o “Register expire (não tenho certeza do nome agora)”, mas por default este vem com 3600 segundos. Podes trocalo para 300 segundos, isto fará com que o ata se registre novamente a cada 5 minutos. Entretanto recomendo fortemente procurar a raiz do problema.

    @Juliano:
    Em termos de firewall, não é necessário redirecionar as portas para o asterisk apenas para registrar em um servidor SIP remoto. Você precisa apenas liberar a saída completa do servidor para a internet. Para apertar um pouco mais as regras, você pode liberar o outbound das seguintes portas:
    UDP: 5060
    UDP: 10000-20000

    Quanto as configurações, se olhar nos comentários anteriores, verá que informei como realizar estas.

    Se mesmo assim continuar tendo problemas, tente levantar maiores informações, como principalmente o resultado do sip show peers, sip show registry, ou algumas mensagens de erro também. simplesmente dizer que “não funciona”, não ajuda muito.

    []’s

  • Marco Antonio says:

    Olá Eduardo. Parabens. Tenho asterisk em produçao, feito na unha, sem base de dados. Instalei o Elastix com FreePBX. Seguindo seu tutorial, recebo chamada externa (ligo do meu celular) mais para fazer a ligaçao, apos o # demora alguns segundos e entra o tom de linha e não consigo digitar nada. o que pode ser? Obrigado

  • Eduardo Silva says:

    Ola Marco, como diria meu amigo Jack (o estripador) vamos por partes….

    Seu problema pode ser muito simples, mas faltam algumas informações…

    1) Pelo que descrevestes, acredito que estejas usando um ata, possivelmente um pap2? (digo isso pelo # no final), outros também fazem, mas este é o mais comum.
    2) Já tentou ligar de um softphone? tipo x-lite?
    3) como é a sua interligação com a PSTN? tronco sip, linha analógica, e1 (r2,isdn)?
    4) Qual placa de telefonia está usando?

    Agora tentando isolar mais o problema….
    Com o console do asterisk aberto, você consegue ver o número discado sendo repassado para um canal zap?
    Exemplo

    Called zap/g0/99XXXXXX
    Zap1-1 Answered…

    Isto aparece?
    Aguardo maiores informações.

    Cpts

  • Marco Antonio says:

    Olá Eduardo. Obrigado pelo pronto retorno.
    Respostas:
    1. Sim, utilizo PAP’s e Telefones IP’s
    2. Ainda não tentei utilizar Softphone (boa lembraça)
    3. Linhas analógicas.
    4. Uso um Banco de Canais USB da XORCOM.

    Bem, tentarei descrever o cenário:
    Tenho um Asterisk em produção onde uso os mesmos telefones IP’s e ATA’s que testei no Elastix, funcionando legal. Instalei o Elastix em outra máquina, pluguei o Xorcom no Elastix, foi reconhecido, configurei as extensões, os trunk;s as rotas. Consigo receber as chamadas, porem quando tento efetuar uma ligação, demora alguns segundos e retorna o tom de linha, e em cima desse tom, teclo qualquer digito e nada acontece, o tom permanece. Vejo sim na console a ligação tentando sair. Se achar melhor, assim que puder testar o Elastix novamente te passo os log’s da Console ,pois irei utiliza-lo para substituir o Debian com Asterisk 1.4 nele instalado e como está em produção, não poderei efetuar os testes em horário de expediente.

    Obs.: Aceito sugestões de distribiuções. O único problema que acho que encontrarei em outras distro é o reconhecimento de Banco de Canais.

    Novamente, Obrigado

  • Eduardo Silva says:

    Marco, se você está vendo no console o asterisk chamar o número digitado, é porquê o ata está comunicando corretamente com o asterisk, logo não faz diferença testar um softphone.

    Vamos partir do pressuposto que o xorcom não está repassando os dígitos por dtmf corretamente para o tronco pstn.

    Sugiro 2 testes para tentar isolar o problema.
    1) Conecte uma linha telefônica no primeiro canal do banco, puxe uma extensão desta linha para um aparelho telefônico qualquer, tipo ligando o canal 1 e o telefone ao mesmo tempo, montando assim uma espécie de “grampo” telefônico. Configure o asterisk para usar apenas o canal 1 e realize uma chamada. Ao mesmo tempo levante o grampo e tente escutar para ver se o equipamento do xorcom está discando algo (enviando tons dtmf). (também tente escutar usando o grampo, o dtmf de quando aperta as teclas do telefone ligado ao pap

    2) outro teste é apenas por descargo de consciência; com o telefone plugado diretamente na linha, tente fazer uma chamada qualquer

    Este equipamento da xorcom está funcionando atualmente no debian ou é um equipamento novo?

    Observação: se você configurar o dialplan do ATA Linksys PAP2 corretamente, você não irá precisar digitar o # ao termino do número, pois o ata reconhecerá o número discado e chamará imediatamente.

    Tem um exemplo de dialplan na minha matéria sobre provisioning para atas linksys pap2
    http://linux.eduardosilva.eti.br/provisioning-para-atas-linksys-pap2

    Cpts

  • Eduardo Silva says:

    Inseri neste post o tópico:
    Instalando prompts de voz em Português

  • Pedro Muniz says:

    Olá , gostaria de saber como configurar o a2billing no piaf.

  • Willian says:

    Parabéns pelo blog Eduardo! Me ajudou muito com relação ao asterisk.

    Pode me ajudar?

    Tenho um asterisk atrás de um firewall. Configurei a vono e registra normalmente. Quando recebo uma chamada o asterisk atende e quando vai transferir para o ramal cai a ligação.
    O erro apresentado é o seguinte:
    – Executing [s@macro-dial:7] Dial(“SIP/troncovono-025dfe00″, “SIP/1201||tr”) in new stack
    – Couldn’t call 1201
    == Everyone is busy/congested at this time (0:0/0/0)

    Abraço!

    • Olá Willian,

      Fico muito satisfeito em saber que este post te ajudou. :)
      O extension 1201 está registrado corretamente? em “sip show peers” como ele aparece?
      É um softphone, ata ou telefone IP? Consegue ligar para o 1201 a partir de outro extension?
      Caso continue com problemas, cole aqui as informações do “SIP show peer 1201″ e cole o log de uma chamada usando verbose 3.

      Outro teste que pode realizar é alterar a inbound route e apontar para outro ramal.

  • Willian says:

    Olá Eduardo, hoje mudou o erro, alguma coisa que fiz ontem que não lembro…hehe,

    Em sip show peers:
    pabx*CLI> sip show peers
    Name/username Host Dyn Nat ACL Port Status
    troncovono/LOGIN 201.86.87.5 5060 Unmonitored
    1210 (Unspecified) D N A 0 UNKNOWN
    1203 (Unspecified) D N A 0 UNKNOWN
    1202/1202 192.168.10.222 D N A 5060 OK (2 ms)
    1201/1201 192.168.10.10 D N A 5060 OK (1 ms)
    5 sip peers [Monitored: 2 online, 2 offline Unmonitored: 1 online, 0 offline]

    É softphone (Twinkle).

    Não consigo ligar a partir de outro extension, segue erro:
    – Executing [s@macro-exten-vm:9] Macro(“SIP/1202-980024c0″, “dial||tr|1201″) in new stack
    — Executing [s@macro-dial:1] GotoIf(“SIP/1202-980024c0″, “1?dial”) in new stack
    — Goto (macro-dial,s,3)
    — Executing [s@macro-dial:3] AGI(“SIP/1202-980024c0″, “dialparties.agi”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
    dialparties.agi: Starting New Dialparties.agi
    == Parsing ‘/etc/asterisk/manager.conf’: Found
    == Parsing ‘/etc/asterisk/manager_additional.conf’: Found
    == Parsing ‘/etc/asterisk/manager_custom.conf’: Found
    == Connect attempt from ‘127.0.0.1′ unable to authenticate

    SIP show peer 1201:

    pabx*CLI> SIP show peer 1201
    pabx*CLI>

    * Name : 1201
    Secret :
    MD5Secret :
    Context : from-internal
    Subscr.Cont. :
    Language : pt_BR
    AMA flags : Unknown
    Transfer mode: open
    CallingPres : Presentation Allowed, Not Screened
    Callgroup :
    Pickupgroup :
    Mailbox : 1201@device
    VM Extension : *97
    LastMsgsSent : 0/0
    Call limit : 50
    Dynamic : Yes
    Callerid : “device”
    MaxCallBR : 384 kbps
    Expire : 3159
    Insecure : no
    Nat : Always
    ACL : Yes
    T38 pt UDPTL : No
    CanReinvite : No
    PromiscRedir : No
    User=Phone : No
    Video Support: No
    Trust RPID : No
    Send RPID : No
    Subscriptions: Yes
    Overlap dial : Yes
    DTMFmode : rfc2833
    LastMsg : 0
    ToHost :
    Addr->IP : 192.168.10.10 Port 5060
    Defaddr->IP : 0.0.0.0 Port 5060
    Def. Username: 1201
    SIP Options : (none)
    Codecs : 0xc (ulaw|alaw)
    Codec Order : (ulaw:20,alaw:20)
    Auto-Framing: No
    Status : OK (1 ms)
    Useragent : Twinkle/1.2
    Reg. Contact : sip:1201@192.168.10.10

    Log de uma chamada:
    http://eduardosilva.pastebin.com/f3d23ee07

    Obrigado pela ajuda,

    Abraço!

  • Willian says:

    Reinstalei a máquina e voltou o erro anterior:

    — Couldn’t call 1202
    == Everyone is busy/congested at this time (0:0/0/0)

    Segue registros que me pediu:

    pabx*CLI> sip show peers
    Name/username Host Dyn Nat ACL Port Status
    troncovono/LOGIN 201.86.87.5 5060 Unmonitored
    1202/1202 192.168.10.222 D N A 5060 OK (3 ms)
    1201/1201 192.168.10.10 D N A 5060 OK (2 ms)
    3 sip peers [Monitored: 2 online, 0 offline Unmonitored: 1 online, 0 offline]

    pabx*CLI> sip show peer 1201
    pabx*CLI>

    * Name : 1201
    Secret :
    MD5Secret :
    Context : from-internal
    Subscr.Cont. :
    Language : pt_BR
    AMA flags : Unknown
    Transfer mode: open
    CallingPres : Presentation Allowed, Not Screened
    Callgroup :
    Pickupgroup :
    Mailbox : 1201@device
    VM Extension : *97
    LastMsgsSent : 0/0
    Call limit : 50
    Dynamic : Yes
    Callerid : “device”
    MaxCallBR : 384 kbps
    Expire : 2638
    Insecure : no
    Nat : Always
    ACL : Yes
    T38 pt UDPTL : No
    CanReinvite : No
    PromiscRedir : No
    User=Phone : No
    Video Support: No
    Trust RPID : No
    Send RPID : No
    Subscriptions: Yes
    Overlap dial : Yes
    DTMFmode : rfc2833
    LastMsg : 0
    ToHost :
    Addr->IP : 192.168.10.10 Port 5060
    Defaddr->IP : 0.0.0.0 Port 5060
    Def. Username: 1201
    SIP Options : (none)
    Codecs : 0xc (ulaw|alaw)
    Codec Order : (ulaw:20,alaw:20)
    Auto-Framing: No
    Status : OK (1 ms)
    Useragent :
    Reg. Contact : sip:1201@192.168.10.10

    Log de uma chamada:

    http://eduardosilva.pastebin.com/f1af6f8b9

    Obrigado,

    Abraço!

    • Willian,

      Desculpe a demora em responder, eu ando bem ocupado ultimamente.
      Tentando isolar o problema, preciso que me digas se consegues realizar chamadas entre os ramais.

      Caso consiga, verifique se consegue realizar chamadas externas através do tronco vono.

      Reveja também suas configurações do tronco vono, eu coloquei um guia rápido para configurar um tronco da vono em um dos primeiros comentários deste post, podes comparar com as configurações que você está utilizando agora.

      Por via das dúvidas experimente também usar o x-lite como sofphone.

      []’s

    • ps: Editei os seus dois comentários e inseri os logs das chamadas no pastebin (apenas para não ficar muito extenso aqui no blog).

    • Willian says:

      Eduardo, refiz as configurações utilizando seus tutoriais e agora funcionou… acredito que era algum problema de firewall ou mesmo da configuração.

      Muito Obrigado,

      Willian

    • Opa, que bom Willian!

      Boa sorte com o seu Asterisk ;)

      Qualquer coisa, estou sempre por aqui.

      []’s

  • Genival Sousa says:

    Olá Eduardo,

    Parabéns pelo seu guia, muito bom mesmo. Me ajudou bastante.
    O meu Asterisk está funcionando corretamente na rede local, inclusive o tronco (placa X100P), mas estou tentando habilitar um ramal remoto e não estou conseguindo. Com o X-lite não vai mesmo (já tentei de tudo). Agora estou tentando com um SipPhone (Voipper da Intelbrás). Criei um dominio (ex.: aster.ddns.com.br) e intalei o DDNS no linux do Trixbox (está funcionando corretamente). No meu router redirecionei as portas 5060 e 10000 a 20000 para o IP interno do meu Trixbox (192.168.xxx.xxx). No Asterisk, o ramal remoto (1000) ativei “nat=yes e canreinvite=no”.

    Meu sip_conf:
    videosupport=yes
    bindport=5060
    bindaddr=0.0.0.0
    disallow=all
    allow=ulaw
    allow=alaw
    allow=gsm
    allow=g729
    allow=h264
    allow=h263p
    allow=h263
    allow=ilbc
    allow=g723
    externip=aster.ddns.com.br #(exemplo)
    localnet=192.168.xxx.0/255.255.255.0
    externrefresh=60
    nat=yes

    Meu sip_nat_conf:
    externip=aster.ddns.com.br #(exemplo)
    localnet=192.168.xxx.0/255.255.255.0
    externrefresh=60
    nat=yes

    Do mundo externo eu consigo pingar o meu DDNS, inclusive consigo registrar os ramais IAX que funcionam perfeitamente. Porém, o meu ramal SIP, que inclusive o coloquei com um endereço público fixo, não funciona corretamente. Ele chega a se registrar (fica meio apagado no FOP) e origina chamadas (o interlocuto não me ouve). Também não consigo chamá-lo (vem a mensagem de indisponível). Ele chama qualquer ramal.

    Se puderes me ajudar eu vou agradecer muito, pois já estou há mais de uma semana pesquisando na net e tudo que encontrei eu já fiz no meu Asterisk e no SipPhone, porém não obtive sucesso.

    Li alguma coisa sobre os módulos ip_nat_sip e ip_conntrack_sip (alguém que resolvel um problema parecido), mas não consigo achar nada no meu Trixbox a respeito disso. Será que procede???

    • Olá Genival, sei que já fazem alguns dias que postou este comentário, e sinceramente espero que tenhas conseguido solucionar o problema. Mas caso ainda não tenha resolvido, vou tentar te ajudar.

      Definitivamente o problema informado tem relação com NAT ou firewall.
      É importante tentar isolar o problema, identificar se ele está do lado do softphone ou do lado do servidor.
      Experimente testar com um softphone em um computador conectado diretamente no modem por exemplo.

      Apenas repassando alguns itens
      - Verificando suas configurações observei que não falou nada do parâmetro “canreinvite”, este deve ter o valor “no”
      - As portas redirecionadas para o servidor, apenas para confirmar, estas são UDP.
      - Possuí firewall de saída?

      (Não vai resolver mas alguns detalhes que observei)
      - No sip_nat.conf você não precisa colocar nat=yes
      - No sip.conf, você não precisa colocar os parâmetros “externip” e “localnet”, apenas o nat=yes

      Quanto aos módulos ip_nat_sip e ip_conntrack_sip, não adiantaria aplicar eles no próprio pbx, estes devem ser carregados em um firewall linux. (onde você fez o redirecionamento das portas)
      De qualquer forma, você não precisa realmente destes módulos se o seu servidor estiver bem configurado.

      Experimente analisar o tráfego dos softphones com o tcpdump, escrevi um pequeno tutorial aqui: http://linux.eduardosilva.eti.br/canivete-suico-para-redes

      Espero ter ajudado de alguma forma.
      []’s

  • Régis says:

    Eduardo,
    Já estou alguns meses usando o Piaf e graças ao seu artigo está tudo funcionando. Mas tenho um problema que ainda não consegui solucionar e peço a sua ajuda. O piaf depois de um tempo perde o registro na vono, eu entro no tronco e peço para aplicar e logo em seguida ele volta a se registrar. Alguma sugestão de tempo para registro ou deixar automático o registro caso tenha a queda na conexão?
    Agradeço,

    Régis

    • Olá Régis,

      Fico satisfeito em saber que o meu tutorial teve um bom uso ;)

      Quanto ao seu problema, tente colocar registerattempts=0 e registertimeout=30 em /etc/asterisk/sip_general_custom.conf (não esqueça de fazer um reload no asterisk).

      Seria interessante saber se após estas alterações o problema foi amenizado, se possível, passe por aqui para dar um feedback.

      []’s

  • Henrique says:

    Opa Eduardo ! blz ???
    cara seguinte eu recebo mas a ligaca nao transfere tem ideia ??

    • Henrique,

      Verifique as opções de discagem em “General Settings”:
      Asterisk Dial command options: trw
      Asterisk Outbound Dial command options: TW

      Observar que nestas opções maiúsculas e minúsculas fazem toda a diferença.

      ps: Se este não for o seu problema, faça uma descrição mais detalhada sobre o que está acontecendo. (Não transfere é muito amplo)
      []’s

  • Henrique says:

    Opa Eduardo Blz ??
    cara seguinte …. estou com um PIAF funcionando perfeito …. se eu faco a minha rota de entrada para um ramal … ok …. para uma fila ok …. mas se boto para uma URA …. assim que eu digito a opcao ele me da como ocupado e desliga o call

  • Jonhys Lopes says:

    Eduardo
    Parabens pelo tutorial.
    Eu estou usando o Paif de acordo com post e esta funcinando muito bem. Instalei o Custom Contexts mas nao to entendendo como fazer bloqueio para celular nem outros bloqueios, com esse context.Não posso fazer bloqueio nas rotas de saida,pois alguns que pode fazer ligacões e outros não.
    Poderia me dá uma ajuda? estou com 36 ramais e 8 troncos.
    Desde Já agradeço.
    Jonhys

    • Jonhys,

      Você vai criar as rotas normalmente…
      Após isto, você vai instalar o custom contexts, e criar um contexto para cada nivel de acesso, exemplo: liberado e restrito

      No contexto liberado, você coloca allow para todos os features e rotas, e no contexto restrito, você irá colocar “Deny” para as rotas que deseja bloquear.

      Após criar os contextos, edite um ramal SIP (ou iax) e troque a opção “Context” de from-internal para liberado ou restrito de acordo com a sua necessidade.

      Simples assim ;)

      []’s

  • Henrique says:

    cara eu apliquei as configuracoes do asterisk sip settings … e agora nenhuma ligacao chega no meu asterisk ….. vc tem ideia de como tirar estas configuracoes ?

    • Henrique de que configurações você está falando? Do “dial command options” que eu informei anteriormente? Isto não afeta o recebimento de chamadas.

      Você precisa ser mais claro para que eu possa tentar te ajudar. Debugue o problema, faça o máximo de testes, e descreva claramente o que está acontecendo. Apenas desta forma eu conseguirei ter dados suficientes para poder tentar interpretar o problema. Apenas dizer que “nenhuma ligação chega no seu asterisk” é muito vago.

      []’s

  • Henrique says:

    Fala Eduardo !! acho que fiz algo errado .. .re-fiz a maquina interia agora está tudo OK !! vc sabe quais sao os passos para configurar um trunk E1 ?

    • Henrique,

      Tudo depende de qual placa você está utilizando e principalmente qual a sinalização da sua linha (ISDN ou MFC/R2)

      Se estivermos falando de uma placa E1 ISDN, a configuração do trunk no FreePBX é a mesma de um trunk analógico, apenas crie um trunk Zap correspondente ao grupo dos canais E1.

      Para configurar uma placa digium para uma E1 ISDN Pri, o procedimento também é o mesmo de uma placa analógica. O genzaptelconf se encarrega de gerar a configuração automagicamente. Lembre-se que o driver zaptel precisa estar carregado na memória para isto. (service zaptel restart já resolve)

      Se for R2 e a placa for digium, você precisará instalar o pacote Unicall, só posso dizer: Boa Sorte! O Unicall funciona bem as vezes, mas já vi muitos problemas relacionados a este pacote. (Uma alternativa é o OpenR2, me parece muito bom, mas como estou a 2 anos fora do Brasil e aqui só existe ISDN, ainda não tive como testar).

      Se a sua E1 for R2 e você ainda não comprou uma placa, recomendo que compre uma placa E1 MFC/R2 da KHOMP eu já usei estas e funcionam muito bem. Na época que trabalhei com o hardware deles, também lembro que tinham um suporte muito bom por e-mail e telefone.

      []’s

  • Nélio says:

    Fala Eduardo, tudo bem?

    Gostei muito do seu tutorial e me ajudou muito a iniciar os trabalhos no Asterisk…
    A minha “missão” vai ser integrar um servidor Piaf com uma central Analógica. A comunicação entre os dois já está rolando, mas a qualidade da ligação está ruim: muito baixa a voz, as vezes não consigo ouvir a outra ponta.

    Acredito que esteja relacionado a parte de codecs. Que dicas ou sugestões você pode me dar para melhorar a qualidade da conversa no meu cenário?

    Obrigado

    • Olá Nélio,

      Você pode editar o arquivo /etc/asterisk/zapata.conf e adicionar os parâmetros:

      rxgain= (recebido)
      txgain= (enviado)

      Estes valores vão de -100 até 100 mas normalmente não só subindo 1 ou 2 dbs já ajuda e muito!

      Experimente colocar:

      rxgain=2.0
      txgain=2.0

      (4 já é um valor bem elevado)

      Uma série de problemas podem aparecer devido a troca destes valores, dentre eles posso citar:
      - Distorções na voz
      - Problemas de reconhecimento de dígitos DTMF dificultando ou impossibilitando a interligação entre o asterisk e o pbx.

      Seria importante investigar a causa do problema, pode ser apenas um problema em alguns aparelhos telefônicos, se for este o caso, pode ser mais interessante trocar os telefones que tem um som mais baixo.

      Do lado do asterisk você está utilizando atas, telefones IP ou softphones?

      []’s

      • Nélio says:

        Oi Eduardo,

        Vou fazer os testes com as alterações.

        Estou usando o X-lite por enquanto,pois estou na fase de testes. A intenção é posteriormente comprar Softphones.

        Abraço

        • Nélio says:

          Ops, corrigindo, a intenção é comprar IP Phones.

          Alterei o parâmetro para 3.0 rx/tx. Ficou bem melhor mesmo.

          Valeu

  • Jose Clovis Marinello says:

    Parabens pelo bloq esta show

    me diga uma coisa eu to usando trixbox e quando abri o arquivo para colocar os canais e os respectivos grupos no
    zapata-channels.conf o mesmo esta vazio e noemal isso ou fiz algo de eerado?

    Se possivel como ficaria a sintaxe dentro desse arquivo

    abraços

    • Jose,

      Eu não trabalho com o trixbox a muito tempo, entretanto o “asterisk” que roda no tb ou no piaf é o mesmo, seguindo a mesma lógica.

      Verfique no arquivo zapata.conf os includes para outros arquivos de configurações onde você talvez possa encontrar as configurações de canais.

      se você executou o “genzaptelconf” toda a configuração deve ter sido gerada automaticamente, incluindo o zaptel.conf também. Caso não tenha este aplicativo, você também pode realizar a configuração manualmente, não é difícil, se precisar de ajuda me informe sobre a placa/módulos que você instalou que eu ajudo a configurar.

      []’s

  • Cleber Gomes says:

    Caro Eduardo,
    Antes de mais nada , parabéns pelo tutorial que está bacana.
    Seguinte, instalei o PiaF 1.4 em uma máquina aqui em casa e estou com o seguinte problema. Tenho 2 linhas Vono e uma linha da Oi através de um SPA-3102. Cheguei a ver funcionando há um tempo atrás quando testei no FreePBX do “asterisk at home” e de repente não sei o que aconteceu , me apareceram problemas na recepção dos troncos. Para saída, funciona sempre bem com as rotas (Oi Fixo ou Vono), usando o seu Peer Details do Vono aqui do post ou alguns outros que tentei da net.. Deixei a linha fixa de lado e estou tentando resolver as Vono por hora. Estou encaminhando a entrada das ligações diretamente para uma extensão sem usar grupos (com grupo também não funcionou). Em inbound routes, apenas coloquei o número vono em Description e em DID Number e depois apontei para o destino. Tentei desabilitar/desativar tudo quanto era configuração se siga-me, não perturbe, etc… Peguei na internet uma relação de portas e redirecionei-as no meu roteador para o IP do PBX (coloquei o IP em DMZ também e desabilitei o Firewall por desencargo de consciência). São elas: TCP 80;TCP 9080;TCP 22;TCP 9022;TCP 9001;UDP 10000-20000;UDP 5004-5082;UDP 4569;UDP 2727. Coloquei a 5090 tb, pois vi em algum lugar que era exigida pelo Vono. Não funcionou. Troquei o conjunto modem ADSL (como bridge) + Router Linksys WRT54G (como roteador PPOE) por outro conjunto Router Edimax+Modem 3G Claro que eu tinha aqui, achando que alguma coisa estaria bloqueando a entrada das ligações. Acontece que não funcionou e sei que as ligações,”a grosso modo”, estão batendo na placa de rede do PBX, pois a mensagem que recebo é em português da atualização da Intelbrás que vc indicou. Diz a mensagem que “o número discado não está em serviço, por favor, tente novamente”. Antes da atualização estava em inglês esta mensagem. Além disto, fiz confirmação de que o PBX está recebendo ao ver o extrato online do Vono e também na aba “reports” do próprio FreePBX onde aparece no log (além dos dados de data, número etc..) em “Disposition” como Answared e em “Dst” que deve ser Destination apenas um “s” onde suponho que deveria aparecer o ramal/grupo de destino que eu configurei em “Inbound Routes”. Ainda não sei o que significa este “s”, mas nas ligações internas, que estão funcionando, no lugar dele aparece o ramal corretamente. Você consegue visualizar algum furo meu de configuração (que já me fez perder uns 2 dias) ou tem alguma sugestão? Já pensei em zerar o HD e fazer tudo novamente.

  • Cleber Gomes says:

    Boa Noite,
    Rapaz, posso até estar sendo precipitado, mas acabei de ajustar um parâmetro default em General Settings e a linha vono passou a tocar.
    O parâmetro é:
    Security Settings
    Allow Anonymous Inbound SIP Calls : no
    Passei para “yes” .

    Bom, meu inglês não é dos melhores , mas na descrição do parâmetro, diz algo assim:

    “”Configurar isto para “yes” permitirá potencialmente a qualquer um chamar dentro do seu servidor asterisk usando o protocolo SIP.
    Isto deveria ser somente usado se você entender completamente o impacto de permitir as chamadas anônimas dentro do seu servidor.”"

    Tem alguma coisa de errada e insegura em permitir? A idéia de receber chamadas não é por aí?

    • Olá Cleber,

      Lamento a demora em responder as suas dúvidas, mas ando meio atrapalhado com o serviço, desde que voltei de férias, encontrei uma avalanche interminável de trabalho acumulado, quando me desenterro de uma, desaba outra avalanche por cima… Tá feia a coisa pro meu lado. :(

      Bem, você fez certo em passar o “Allow Anonymous Inbound SIP Calls” para yes, você precisava deste parâmetro mesmo.

      Como medidas preventivas, verifique se o contexto do seu provedor VoIP é “from-trunk” e utilize senhas complexas para os seus extensions!

      Verifique também as portas que você redirecionou, deixe apenas a udp 5060 e o intervalo udp de 10000 até 20000.

      De uma lida neste tópico: http://linux.eduardosilva.eti.br/os-riscos-de-um-pbx

      []’s

  • Jonhys Lopes says:

    Eduardo
    Obrigado pela resposta esclareceu minhas duvidas com relaçao ao Custom Contexts.
    Gostaria de bloquear o pabx todo apartir das 18:30 ate as 6:30 para que ninguem faça ligacoes , somente receba.
    e outra coisa para que serve o Custom Contexts Time?
    Desde ja obrigado.
    sds
    Jonhys

    • Jonhys,

      Desculpe a demora em responder, você pode utilizar o Custom Contexts + Custom Contexts Time para bloquear as chamadas fora do horário comercial.
      Não esqueça que pode ser interessante manter sempre liberado números de emergência como “19X”

      []’s

  • Clebert Gomes says:

    Olá Eduardo, valeu por responder. Eu estava me perdendo no DID Number das Inbound Routes que no caso das linhas Vono devem ser digitados os logins da conta e não os números das linhas. Bom, como estou testando funcionalidades do PBX e vc já tem vários no mercado, de repente já teve este problema e consegue me ajudar mais rapidamente que o Google. Tenho um aparelho Voiper da Intelbras funcionando como ramal 201 e habilitei o Voice Mail dele. Digito o *97 para entrar no menu de opções , me é solicitada a senha , a digito coretamente e sempre me vem a resposta de “senha incorreta”. Para me certificar que o asterisk não estava com problema (registrando a senha errada, sei lá), eu registrei o ramal 201 no PBX com o softphone x-lite. Digitei *97, o PBX solicitou a senha, e funcionou perfeitamente. Pode ser alguma configuração de registro do ramal para este tel IP ou talvez seria problema do aparelho mesmo? Como observaçaõ:após digitar o *97 no Voiper, todos os dígitos da senha me são percebidos pelos tons de discagem normalmente.

    • Clebert,

      Este problema é gerado pois o seu ATA voiper não está reconhecendo corretamente o DTMF. Desconheço as configurações do voiper, mas procure por alguma opção que permita mudar os parâmetros de reconhecimento de DTMF.
      O correto seria: rfc2833.

      []’s

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>