O que é o Asterisk? O Asterisk é um software PBX. Ok, essa é a resposta curta e grossa. Na verdade se você está simplesmente procurando uma forma de economizar em ligações através de VoIP, você deveria procurar soluções como o Gizmo, FreeWorldDialup (FWD) e afins. Eles são bastante eficientes em uso doméstico ou não-empresarial e servirão para o que você quer (no caso de ter procurado o Asterisk após ouvir falar de VoIP simplesmente). O Asterisk é voltado para ambientes um pouco mais complexos, quando você deseja incrementar sua infraestrutura de telefonia usando software livre. Com ele você consegue substituir seu antigo PABX proprietário e todo analógico por um apanhado de módulos que o transformarão na sua central telefônica com recursos VoIP, podendo até mesmo integrá-lo com placas telefônicas à rede pública de telefonia. Como esse tipo de resposta costuma ser longo, vale uma lida detalhada do artigo sobre o Asterisk na Wikipédia em http://pt.wikipedia.org/wiki/Asterisk Eu posso vender o Asterisk se quiser? Sim, pode. A licença GPL te permite fazer isso, desde que você disponibilize publicamente todas as alterações e adições feitas por você no código do Asterisk. Se você não deseja disponibilizar tais trabalhos, a Digium (a empresa por trás do Asterisk) pode lhe fazer um licenciamento alternativo. Por que os módulos das placas Sangoma não são embutidos no Asterisk e no pacote Zaptel pro kernel? A resposta pra essa pergunta é curiosa mas perfeitamente compreensível. A Sangoma é uma fabricante de placas telefônicas (e outros hardware de rede) há muitos anos, então possui know how o suficiente pra ser concorrente de peso da... Digium. Além de desenvolver o Asterisk a Digium também vende placas telefônicas. Logo, é fácil entender porque a Digium não facilita em nada a inclusão de contribuições da Sangoma a comunidade VoIP. O mesmo se aplica ao famoso módulo "ztdummy", que não recebe muitas atenções dos desenvolvedores por justamente "substituir" alguns usos mínimos de placas da Digium. É importante apontar também que o problema que eles vêem na Sangoma é justamente a forma que eles mandam remendos (wrong approach) para os drivers Zaptel para fazer com que as coisas deles funcionem, tanto que drivers do Astribank foram incorporados, e são de outros concorrentes também.
Porque o comeco de alguns playbacks as vezes nao toca direito e fica mudo? Geralmente isso acontece durante um reinvite entre as pontas que ainda nao terminou, entao o Asterisk nao tem como saber pra onde mandar o audio, e o playback fica sem um pedaco inicial. Qual o procedimento para migrar as licencas de codec g729 de um servidor para outro? Quando voce registra o g729, o programa de registro cria uma chave para o seu codec usando dados do seu hardware, logo voce deve fazer backup deste arquivo para poder registrar o codec novamente se voce trocar de servidor, ou ate se voce trocar a interface de rede do mesmo servidor. Se voce perder este arquivo, so da para registrar novamente com intervencao do pessoal do suporte da digium. Variacoes desse problema ocorrem com mensagens como "Unable to determine hostid, You must have at least one NIC", que podem indicar que o Asterisk nao achou nenhuma placa de rede pro registro, caso bem possivel em BSDs. O que significa "Unable to find a codec translation path from g729 to gsm"? Provavelmente você configurou seus ramais ou troncos para usarem um codec não suportado pelo outro lado da ligação ou que sua maquina não suporta (caso comum do G729 estar sem licença de uso). O mesmo vale para outros codecs, não somente G729 e GSM. Na CLI do Asterisk, o comando "sip set debug" lhe mostrará na tela a conversa SIP entre duas pontas e os codecs suportados por cada uma também. Eu vi várias mensagens "translate.c: g729tolin did not update samples" nos meus logs mas não entendi o problema. O que significa? Parece que não rolou converter partes do stream g729 por algum motivo qualquer (o sample não atualizado é só um erro genérico) e possivelmente você anda perdendo dados nas ligações quando tem codec g729 negociado. Se tivesse algo mais nessa linha ajudaria mais, já que o Asterisk trata isso e emite outros avisos. Procure por WARNING e Translator. Se não existe samples não existe transcoding, e as duas pontas não se falam. Até pode ser bug no Asterisk, mas é improvável. Mais fácil ser "não entendo seu g729", e você talvez esteja usando um codec dito "free" com problemas. O que quer dizer a mensagem "Got 200 OK on REGISTER that isn't a register" nos meus logs? Que possivelmente o seu Asterisk não detectou uma tentativa de registro válida mas a recebeu mesmo assim. Também, pode significar que o seu Asterisk está fazendo requisições de registro no servidor X mas o servidor X não está conseguindo enviar um SIP OK de volta dentro do limite de tempo. O Asterisk então cancela a primeira requisição e faz uma outra. Porém, a primeira resposta SIP OK de volta acaba chegando mas ela já não é mais atual, então o Asterisk a ignora e emite esse tipo de alerta. Por isso que "funciona" mas é indicado como erro, pois pode indicar uma sobrecarga no servidor X ou em algum proxy intermediário. Meu Asterisk com Unicall e sinalização R2 não inicia e dá sempre a mensagem "Segmentation Fault (core dumped)". E agora? Utilizar sinalização R2 via software (através das bibliotecas e canal Unicall do Steve Underwood) pode ser uma saída razoável, mas está longe de ser eficiente. Se possível, utilize placas telefônicas com R2 via hardware ou então tente desabilitar o módulo chan_unicall.so no seu arquivo modules.conf do Asterisk. Se funcionar, é problema na sua instalação da Unicall. Se o problema persistir, mande um pedido de ajuda pra lista com a saída completa do comando "asterisk -gcvvvvvddddd" O que sigifnica a mensagem "Unknown symbol zt_receive" e outras de "Unknown symbol" quando carrego meus módulos Zaptel? Primeiro tenha em mente que compilar e instalar os "seus" módulos costuma dar problemas mesmo e você sempre estará por contra própria. Se essas mensagens são emitidas pelo kernel (e checáveis com o comando "dmesg") durante o carregamento dos módulos Zaptel, provavelmente existe um conflito de versões entre a versão do kernel pra qual esse módulo foi compilado e a versão do kernel em uso na máquina no momento do carregamento. Ou seja, você tentou encaixar um quadrado dentro de um círculo. Após verificar isso e instalar as versões compatíveis de ambos, descarregue os módulos (incluindo o principal chamado "zaptel") e tente novamente. O que quer dizer a tonelada de erros no meu log com "Inband DTMF is not supported on codec XXX. Use RFC2833" Essa pergunta se aplica a qualquer codec (por isso o XXX na mensagem) e DTMF inband, literalmente, quer dizer passar os tons como se fosse voz. Codecs com compressão (como G729, enquanto o G711 não tem) não são capazes de passar os tons de maneira apropriada. Se o seu provedor não suporta os padrões INFO ou RFC2833, você em teoria tem que usar o codec G711 nas ligações para poder trabalhar com DTMF adequadamente. Onde ficam os logs de SQLs feitos pelo Asterisk quando se usa o modo de configuração Realtime? Que tal no log padrão do seu banco de dados? Geralmente eles ficam dentro do diretório /var/log/ do seu sistema. No código do Asterisk existem INSERT e SELECT como em qualquer aplicação web, então todas as operações que ele fizer no modo Realtime (que significa "usar configurações vindas de um banco de dados") serão logados por ele. Onde posso encontrar uma explicação pra cada código SIP que eu vejo nos meus logs das ligações? Na documentação do protocolo você encontra (no meio de tanto texto) uma descrição das situações em que surgem os códigos SIP, sejam eles de resposta a alguma requisição, de indicação de erro ou mera confirmação de sucesso. Basta procurar pela RFC http://www.ietf.org/rfc/rfc3261.txt e estudá-la o quanto puder. Usando um tronco SIP as vezes eu nao recebo audio da operadora dizendo que o numero discado nao existe. O que pode estar errado? As mensagens da operadora, na grande maioria das vezes, sao tocadas sem sinalizar o atendimento para evitar cobranca, pois a chamada nao foi completada (parece ocorrer com alguns 0800 tambem). Com isso, se o tipo do canal utilizado nao deixar o canal de audio aberto ou um "ring back" for forcado, o usuario nao vai escutar esta mensagem. Usar a opcao 'r' no comando Dial() deve ajudar em alguns contextos como esse.
Não consigo compilar os módulos Zaptel, dá erro de header não encontrado. E agora? Instale os arquivos de desenvolvimento pra sua versão do kernel em uso. No Debian basta executar "apt-get install module-assistant", "m-a prepare" e tentar novamente. Em outras distribuições você precisará saber a versão do kernel executando "uname -r" e instalar o pacote kernel-header adequado.
Por que o Asterisk nunca manda corretamente os e-mails que chegam nas caixas postais de voicemail? Na verdade nao eh o Asterisk o responsavel por isso, nem adianta procurar como configurar isso nos .conf que voce tem. O Asterisk simplesmente utiliza o MTA (servidor de e-mail) da maquina, por padrao com o comando 'sendmail', compativel com praticamente todos os MTA modernos como Exim e Postfix. Configure seu MTA corretamente e teste com o comando 'mail' via linha de comando. Funcionou? Maravilha, funcionara automaticamente com o Asterisk tambem! O que significa o erro "unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)" quando inicio o Asterisk? Que seu Asterisk não conseguiu ser executado por algum erro (módulo .so com conflito, alguma dependência de um arquivo .conf - como um arquivo de dispositivo no /dev do sistema - ou outra coisa). Confira o final do seu log completo em /var/log/asterisk/full para mais detalhes (que em geral são bem explicativos). Registrei e instalei o codec G729, mas como faço pra saber todos os codecs instalados? Digite em um terminal "asterisk -rx 'core show translation'" (o mesmo comando vale dentro da CLI do Asterisk). Por que o Asterisk sempre diz que o n/umero da minha sala de conferência não é válido? Quando você configura uma nova sala de conferência é preciso reiniciar o Asterisk (não somente reler a configuração alterada). você poderá obter erros também se não possuir um temporizador emulado pelo modulo "ztdummy" ou provido por outro módulo Zaptel de uma placa telefonica real. Como faço para deixar meu Asterisk falando em português? Tanto sintaticamente quanto os audios. Pergunta complicada, resposta não tão simples. É importante lembrar que o suporte ao português falado no Brasil do Asterisk depende exclusivamente de nós (usuários, desenvolvedores e integradores). Atualmente o Asterisk consegue falar muito bem o locale pt_BR, obrigado... mas sempre existe algum ajuste a ser feito. Acontece que os áudios oficiais do Asterisk não incluem a nossa língua, entao seu PBX livre falará mensagens em inglês. Alguns integrantes do AsteriskBrasil.org começaram a arrecadar fundos (de forma totalmente extra-oficial, é importante saber) para gravar todos os áudios em português brasileiro enquanto outros tentaram fazer o Asterisk entender melhor a nossa língua. Você pode conferir os trabalhos em http://codigolivre.org.br/projects/asterisk-ptbr/ e http://www.asteriskbrasil.org/tiki/tiki-index.php?page=Prompts+de+voz+Portugues+Brasil respectivamente. Se você pretende criar produtos ou serviços em pt_BR utilizando o Asterisk, considere aumentar o valor agregado da sua solução contratando um locutor próprio e, quem sabe, disponibilize os áudios para toda a comunidade brasileira, como ja foi feito pelas equipes dos projetos Meucci (http://www.meucci.org/) e Disc-OS (http://disc-os.org/) para a versao 1.2, e parcialmente 1.4, do Asterisk. Registrei o codec G729 mas sempre veja um "Dropping extra frame of G.729 since we already have a VAD frame at the end". É grave? Essa resposta está no README disponível pra todos os compradores do codec G729, mas em todo caso aqui está uma tradução da resposta: a supressão de silêncio não é suportada quando se usa o módulo codec_g729a.so e o Asterisk então irá entupir seus logs com essa mensagem se a outra ponta da ligação tentar usar supressão de silêncio com G729. Nesse caso, verifique se a outra ponta está mesmo ou não tentando usar a supressão, ou você terá problemas nas ligações.
Quais são os melhores livros e sites pra eu aprender sobre o Asterisk? É complicado dizer que X é melhor que Y e pronto. O ideal é você ter a maior quantidade de fontes de consulta que for possível. Ótimos sites com documentações sobre o funcionamento do Asterisk (bem como explicações de conceitos de VoIP) são o www.voip-info.org, o http://www.asteriskdocs.org e o www.asteriskguru.com. Bons livros sobre VoIP saem todo dia, mas talvez tudo o que você precisa inicialmente está no (recém-licenciado sob uma licença livre) Asterisk: The Future of Telephony. Baixe ele em http://www.asteriskdocs.org/modules/tinycontent/index.php?id=11 ou compre diretamente da O'Reilly em http://www.oreilly.com/catalog/asterisk/. Por último, a melhor indicação de todas: procurar sua dúvida no Google. Onde posso encontrar a lista de prefixos de localidades de todo o Brasil? Diretamente no site da Anatel, é claro. Vá até http://sistemas.anatel.gov.br/areaarea/ para poder fazer consultas inclusive, ou veja em http://hackers.propus.com.br/~marlon/files/voip/ uma forma de importar a lista completa de localidades em um banco de dados SQL. Existe alguma documentacao que trate da seguranca em redes VoIP? No site da Agencia de Seguranca dos EUA existe 2 guias (pelo menos) que indicam alguns passos pra melhor a seguranca e arquitetura da sua rede de telefonia IP. De uma olhada em http://www.nsa.gov/snac/downloads_voip.cfm?MenuID=scg10.3.1 (eh preciso aceitar algumas clausulas antes de ler a documentacao) Existe alguma listagem geral com numeracao de varios paises, incluindo fixa e movel? Além da base de dados com numeracao DDD do Brasil existe o site http://www.numberplan.org/ que lista planos de numeracao de varios paises, de numeros fixos e de aparelhos moveis. Tem ate uma ferramenta de busca disponivel, sao quase 500 mil registros.
Como faço pra editar e ouvir arquivos GSM? Para ouvir você pode tentar o comando "play" no Linux, o WavePad no Windows, o próprio Asterisk ou o Audacity no Linux, Windows e OSX (que também permite salvar em formato GSM, como o comando "sox" do Linux também faz). O que é UAC? UAS? Me perdi... UAC significa "user agent client" e é quem faz uma requisição, e UAS "user agent server" quem responde ela. Em SIP, somos UAC quando requisitamos e UAS quando respondemos alguma mensagem do protocolo de início da chamada. De forma geral isso se aplica a outros protocolos de comunicação que funcionam como o SIP, isso não é bem exclusividade dele. Afinal de contas, o codec G729 é gratuito ou não? O G729 é uma tecnologia patenteada e por isto devem ser pagos os honorários a quem a patenteou, isto é fato. Uma empresa qualquer pode implementar o seu próprio G729, mas ela também terá que pagar para usar o codec que ela mesma implementou, porque faria uso de uma tecnologia patenteada. O que a Digium faz na verdade (sendo ela a vendedora direta do G729 para o Asterisk) é simplificar o processo para todos: ela já te entrega o codec licenciado e pronto. Se você pesquisar bem irá encontrar lugares informando sobre uma certa versão "free" do G729, mas na verdade somente o download que é "free" e no final você terá que se licenciar de uma forma ou de outra. Quais são as diferenças entre interfaces FXS e FXO? Interfaces FXS (do inglês Foreign eXchange Station) são placas controladoras de uma linha telefônica. São nelas que você conecta seus telefones pra eles terem tom de linha e uma fonte de alimentação. Placas FXS são sinalizadas no Asterisk usando sinalização FXO pra outra ponta. Interfaces FXO (do inglês Foreign eXchange Office) são placas ligadas a linhas telefônicas reais e são elas que dão ao seu Asterisk a possibilidade de terminar ligações na rede pública de telefonia (usando sinalização para FXS). Resumindo: FXS é o buraco telefônico na parede e FXO é o que você conecta nele. Estou tendo segfault no meu PBX. O que eu faço seu pegar um crash no Asterisk? Pode parecer bobagem, mas respirando fundo é o primeiro passo. Muita gente ignora pensar com a razão e sai atirando pra todos os lados e acaba não entendendo como o Asterisk parou de funcionar. Primeiro, tente isolar o problema (seja descarregando módulos adicionais ou suspeitos, testando uma placa de telefonia por vez ou clonando o ambiente pra não testá-lo enquanto as pessoas usam o PBX). Segundo, capture o máximo de logs que puder. Isso inclui um log "full" detalhado (vide logger.conf.sample para detalhes), os logs messages, syslog, dmesg e outros do seu /var/log. Terceiro, tente reproduzir o erro em um Asterisk rodando através do comando strace (leia a man page dele, é reveladora) e caso seu Asterisk esteja morrendo, cheque arquivos chamados "core" no seu /tmp ou no diretório onde executou o Asterisk. Com eles as pessoas poderão te ajudar muito melhor, acredite. Para mais detalhes e como analisar cada um desses itens veja http://www.voip-info.org/wiki-Asterisk+debugging
Como posso acompanhar a lista do AsteriskBrasil.org sem assiná-la? O histórico está disponível online? O histórico da lista está disponível online, sim. Oficialmente ele fica em http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/ mas você também pode preferir acompanhar a lista diretamente pelo Mail Archive, cujo endereço do índice do AsteriskBrasil.org é http://www.mail-archive.com/asteriskbrasil@listas.asteriskbrasil.org/ Como eu faço pra sair das listas do AsteriskBrasil.org? Eu cansei de tanto e-mail! Antes de mandar mensagens diretas para os moderadores ou reclamar na lista, olhe no fim dos e-mails enviados pra ela e notará uma URL que você pode acessar para alterar suas configurações de cadastro. O endereço, para inclusive pedir sua remoção automatica, é http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil Posso mandar um anexo com uma topologia da minha rede VoIP para as listas que assino? A regra comum sobre e-mails com arquivos anexos é sempre a seguinte: se você precisa enviar uma imagem, arquivo compactado ou outra coisa, publique online no seu site e simplesmente envie-nos o link. Dessa forma você ajuda a economizar o tráfego de dados e peso da lista. Caso queira mandar arquivos de configuração, use o ótimo serviço pastebin.com e nos mande o link pro anexo. Todos nós ganhamos dessa forma. Por que ninguém responde minhas perguntas na lista de discussão da qual faço parte há anos? Bom, existem muitas razões pra isso. Em geral, as pessoas detestam mensagens com o campo assunto "SOCORRO!!! me ajudem!!!" ou então somente "dúvida..." ou ainda "Urgente!!!1!". Tente ser bastante claro e vá direto ao ponto, lembrando de agir educadamente tambem. As pessoas se sentirão motivadas a responder suas dúvidas na medida em que elas são bem formuladas e interessantes... afinal, ninguém é obrigado a responder o que não quer, ainda mais quando a pessoa que fez a pergunta não colabora muito. Então qual é, afinal, a forma eficiente de obter respostas do grupo? Simples, siga o que foi dito na outra pergunta e lembre-se que sem informações fica muito difícil ajudar de verdade. Vai perguntar sobre infra-estrutura? Passe um esboço da topologia da sua rede. Quer saber por que seu dialplan está com problemas? Mande junto os logs do Asterisk e um trecho do plano de discagem. Não sabe porque suas ligações SIP estão estranhas? Não esqueça de nos enviar o log de debug do protocolo.... e assim vai. Mas... o que fazer se ninguém responde minhas dúvidas comerciais ou sobre produto XYZ? Simples também, envie sua pergunta para o lugar mais adequado. A lista principal do AsteriskBrasil.org serve para assuntos técnicos, de desenvolvimento e discussões sobre uso, instalações, problemas e papos gerais sobre tecnicidades. Assuntos comerciais, sobre produtos, planos de minutos, serviços a prestar e coisas relacionadas devem sempre, sem excessão, ser discutidos na lista AsteriskBrasil-Biz (do inglês "business", negócios). Como eu posso colaborar enviando novas perguntas e respostas pro FAQ? De várias formas! Quanto mais colaborações e sugestões o FAQ tiver, melhor ele será e maior qualidade terá também. Você pode ajudar enviando um e-mail pra lista do AsteriskBrasil.org dizendo que é uma colaboração pro FAQ, entrar no canal IRC do Asterisk Brasil.org e procurar o usuário caio1982 ou ainda mandar um e-mail diretamente para caio1982@gmail.com Existe algum canal IRC pra gente bater papo, potencialmente tirar dúvidas e aprender sobre Asterisk em português? Existe sim, na rede Freenode. Basta usar clientes IRC como X-Chat (disponível pra Windows, Mac e Linux) ou Konversation e IRSII (para Linux) e se conectar em irc.freenode.net. O canal se chama #asterisk-br e caso você tente acessar #asteriskbrasil.org você será redirecionado pro primeiro, já que esse último é o nome antigo. Lembre-se: a regra mor é ser educado, só isso. Não existe moderação a priori no canal, então seja amigável e nada de propagandas!