jun 172010
 

No how-to anterior instalamos um servidor asterisk. Talvez você também tenha instalado uma placa para telefonia digital (E1).

“OK, mas e minhas linhas analógicas?” Provavelmente sua operadora de telefonia faz “desvio de rota”, fazendo com que os antigos números analógicos sejam redirecionados para o E1…

“OK, mas eu não tenho um canal E1, só tenho algumas linhas analógicas… E queria usar o asterisk… Consigo?” Sim! 🙂

Você poderia comprar uma placa PCI ou PCI-express que possua portas FXO, ou ainda, comprar alguns ATAs com portas FXO.

Neste how-to, veremos como configurar um ATA Linksys SPA400-NA (4 portas FXO) para “conversar” com o asterisk.

Primeiro, acesse a interface de administração web do ATA, configure um IP para ele (neste how-to usaremos 192.168.50.5). Também configure os demais parâmetros (máscara, gateway, DNS’s, servidor NTP, fuso horário) conforme o seu ambiente.

Após, efetue a atualização do firmware para a versão 1.1.2.2 (acesse o site do ATA para efetuar o download). Esta atualização é necessária para utilizarmos alguns recursos mais “avançados”.

Após feita a atualização, confirme se as configurações iniciais que efetuamos continuam OK.

Depois, acesse a guia “Setup” / “SPA9000 Interface”.

Nesta guia, no campo “User ID” você deve informar qual será o nome do “tronco” no asterisk (neste how-to usaremos “NomeTronco”). Também deve deixar selecionada a opção “Discover automatically”.

Abaixo disto, termos quatro campos para os ID’s de cada uma das portas. Sugiro utilizar nomes que identifiquem as linhas que serão ligadas em cada porta (por exemplo, o próprio número da linha). Neste how-to, vamos supor que os ID’s ficaram “IDPorta1”, “IDPorta2”, “IDPorta3” e “IDPorta4”.

Bom, no ATA era isto: salve as alterações e vamos para o asterisk-gui.

Acesse o menu “Trunks” na esquerda, depois a aba “VOIP Trunks”. Clique em “New SIP/IAX Trunk”.

No “Type”, selecione “SIP”. Em “Context Naming”, selecione “based on username”.

Coloque o nome deste tronco (o mesmo informado lá no ATA) no campo “Provider Name”.

Informe o endereço IP do ATA no campo “Hostname”. Em “Username”, também informe o nome do tronco.

Deixe o campo “Password” em branco.

Salve as alterações, mas ainda não recarregue as configurações! Apenas saia do asterisk-gui, pois precisamos efetuar alguns ajustes manualmente.

Efetue login no servidor (SSH, alguém? 🙂 ) e edite o arquivo /etc/asterisk/users.conf.

Nele, localize o tronco que foi criado e altere a linha “registersip = yes” para “registersip = no“. Salve e feche o arquivo.

Agora, edite o arquivo /etc/asterisk/sip.conf.

Localize a seção “[general]” e logo abaixo desta linha adicione uma contendo “register = NomeTronco@192.168.50.5/NomeTronco”.

Agora, vá bem para o final deste arquivo, e adicione as seguintes linhas:

[NomeTronco]
type=friend
user=NomeTronco
host=192.168.50.5
dtmfmode=rfc2833
canreinvite=no
context=DID_NomeTronco

Salve e feche este arquivo.

Agora é só recarregar as configurações do asterisk (“/etc/init.d/asterisk reload”) e pronto!

Em breve, algumas dicas de como selecionar a porta do ATA em uma ligação sainte, e também como direcionar as ligações entrantes baseando-se na porta de entrada 😉 .

 Posted by at 22:42

  32 Responses to “ATA Linksys SPA400-NA como tronco no asterisk”

  1. Bom muito bom…. e como posso fazer para utilizar por exemplo as 2 primeiras linhas sendo obtidas pelo 0|. e as outras duas linhas ou portas pelo 9|.

    até

    João Paulo

  2. Olá João!

    Obrigado :).
    Você já leu este outro post?

    []’s
    Huff

  3. Amigo Huff,

    Primeiramente parabéns pelo excelente tuto. Muito bom mesmo.

    Tenho um asterisk 1.6, e fiz tudo que você falou, e as ligações saem perfeitamente. No entanto, quando começa a gerar ring, o asterisk ja recebe ( ou da o sinal) de answer.
    Faz muito tempo que pesquiso e não consegui nada a respeito.
    Você sabe o que pode ser?

    um abraço

  4. Olá Gelmerson!

    Obrigado! 🙂

    Quanto à questão do sinal de answer, você pode postar a parte dos logs do asterisk mostrando isso? E também comendando as linhas, como por exemplo “aqui fiz a ligação”, “aqui ela foi atendida” ou “ela nunca foi atendida”. Não esqueça de trocar os números telefônicos dos logs por “XYZ” ou algo assim, quando postar os logs aqui ;).

    []’s
    Huff

  5. Ei Huff.

    Obrigado pela atenção. Esse teste fiz hoje. dê um olhada:

    VERBOSE[14233] netsock.c: == Using SIP RTP CoS mark 5
    VERBOSE[15334] pbx.c: — Executing [XXXXXXXX@a2billing:1] AGI(“SIP/98260-00000028”, “a2billing.php,1”) in new stack
    VERBOSE[15334] res_agi.c: — Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
    VERBOSE[15334] res_agi.c: — AGI Script Executing Application: (DIAL) Options: (SIP/8000/XXXXXXXX,60,HRrL(99780000:61000:30000))
    VERBOSE[15334] app_dial.c: — Limit Data for this call:
    VERBOSE[15334] netsock.c: == Using SIP RTP CoS mark 5
    VERBOSE[15334] app_dial.c: — Called 8000/32221515

    ATÉ AQUI A LIGAÇÃO TA CHEGANDO NO ASTERISK

    VERBOSE[15334] app_dial.c: — SIP/8000-00000029 answered SIP/98260-00000028 –
    QUANDO GEROU O PRIMEIRO RING, JA SAIU O SINAL DE ANSWERED, MAS NÃO HAVIA ATENDIDO. QUANTO ATENDI, NÃO MUDOU O STATUS

    VERBOSE[15334] res_agi.c: — AGI Script a2billing.php completed, returning 4
    VERBOSE[15334] pbx.c: == Spawn extension (a2billing, 32221515, 1) exited non-zero on ‘SIP/98260-00000028’

    aqui ta normal, é quando desligo depois de atendido.

    Quando sai o primeiro ring, ja chega sinal de atendido, e consequentemente começa a tarifar.
    Nesse exemplo, to usando o a2billing que subi hoje, mas tenho um cenário pronto com asterisk puro, e o problema é idêntico.

    um abraço.

    att

    Gelmerson de Oliveira

  6. Olá Gelmerson,

    De nada :).
    Você tem algum outro dispositivo SIP (digo, de marca/modelo diferente, ou de repente um softphone – programa que funciona como um ramal, no computador)?
    Isso também acontece com este outro dispositivo?

    []’s
    Huff

  7. Ei Huff,

    Utilizei PAP2, sipura, Audiocodes, X-lite, e todos tem o mesmo problema. Não seria call progress não?

  8. Olá Gelmerson!

    Estranho. Lembro de ter testado a tarifação no asterisk 1.4 que instalei, e funcionava bem direitinho. Agora não lembro de ter olhado os logs para ver como aparecia. E se você instala/configura o asterisk 1.6 como neste post, a tarifação que é instalada junto funciona? Ou também tem o mesmo problema?

    Desculpe eu não poder testar agora, se eu conseguir posto os resultados aqui.

    []’s
    Huff

  9. Olá Gelmerson!

    Acabo te fazer alguns testes com o asterisk 1.6.
    Utilizei o registro de tarifação (o “CDR”) com MySQL, como fiz no post do asterisk 1.4.
    Os registros no MySQL ficam corretos.
    No log do asterisk, vejo o “ring”, e fica assim até eu atender a ligação, e só quando atendo que o log do asterisk gera o “answered”.
    Usei a última versão do asterisk 1.6 (1.6.2.22).

    Espero que consigas resolver tue problema!
    []’s
    Huff

  10. Ei Huff, desculpe a ausência..bixo tava pegando.rs

    Huff, como é o cenário que você testou? SPA e asterisk na mesma rede? o Cenário que estou trabalhando ambos estão em redes distintas…SPA numa rede ( pública) e asterisk em outra…isso pode interferir?

    um abraço

  11. Olá Gelmerson!

    Testei com o asterisk em um linux, e dois Windows com o X-Lite, tudo na mesma rede.
    Quanto a estar em redes distintas, não deveria interferir, pelo menos não em 100% dos casos.
    O protocolo SIP (que o asterisk usa para pelo menos parte da comunicação com os ATAs / SPAs / X-Lite) é transmitido usando o protocolo UDP. Neste protocolo, se um pacote de comunicação é perdido ele não é retransmitido. Só não tenho certeza se o SIP utiliza UDP para a transmissão das mensagens de controle (por exemplo, o RING, o ANSWERED, etc).

    De repente tenta atualizar teu asterisk 1.6 para a mesma versão que utilizei (1.6.2.22), e verifica como o sistema vai se comportar.
    De repente também habilita o CDR no MySQL, só para testar. Depois você desativa e usa só pelo teu AGI script.

    []’s
    Huff

  12. Pessoal, alguém tem esse firnware? não achei mais ele para download, se alguém poder enviar para mim fico grato > grifante@gmail.com

  13. Olá Giovani,

    Não tenho mais ele. Você testou com o firmware que está disponível no site da Cisco?

    []’s
    Huff

  14. Huff, obrigado pela resposta. Consegui o firmware já faz alguns dias, porém esqueci de salvar o link para postar aqui, sorry.

    Fiz isso que vc ensinou e funcionou na primeira, muito bom. Só estou com um problema, criei um tronco com o nome SPA92, e quando tem um ligação entrante ele não coloca o DID certo, ao invés do número ele coloca o nome do tronco. Sabe como posso resolver isso?

  15. Olá Giovani!
    Legal! 🙂

    Você já leu este meu outro post?

    Qualquer coisa fala!
    []’s
    Huff

  16. em como fazer isso com GrandStream HT 486????

  17. Olá Juninho,

    Não tenho um desses para testar… Se alguém souber e postar a solução, irei aprovar o comentário ;).

    []’s
    Huff

  18. Parabéns pelo tuto!

    Se possível, me dá uma ajuda. Uso Asterisk puro (1.8.22.0).

    No sip.conf coloque o registro (register = SPA400A@192.168.1.40/SPA400A) e acertei as configurações no SPA400.

    Porém no console do Asterisk recebo a mensagem:
    WARNING[1828]: chan_sip.c:21349 handle_response_register: Forbidden – wrong password on authentication for REGISTER for ‘SPA400A’ to ‘192.168.1.40’

    O status do registry fica sempre “No Authentication”.

    As ligações saem, mas não entram. Quando ligo para uma das linhas ligadas no ata, o Asterisk não recebe nada. Consigo fazer ligação pelas linhas.

    Outra dúvida é sobre a seleção da linha. O Ln não funciona, a mensagem e de recurso não suportado.

    O firmware é 1.1.2.2.

    Consegue me ajudar?

    Abs,

    Marcio.

  19. Olá Marcio!

    Obrigado! 😀

    Você alterou a opção “registersip” para “no”, dentro da seção relacionada ao tronco que foi criado, no arquivo “users.conf”?
    De repente seria bom revisar o tutorial com cuidado, e confirmar que todos os passos foram efetuados exatamente como no tutorial.

    Quanto ao comando “L”, você não pode definir ele via asterisk-gui. Este recurso só pode ser utilizado se você edita as configurações manualmente. Veja este post.

    []’s
    Huff

  20. Boa tarde,

    Tudo bem? Gostaria de saber se é possível com este aparelho converter linhas analógicas (VIVO, Net, etc) para linhas SIP, sem utilização de algum outro servidor, como o aparelho servindo como SIP Server? Sabe como fazer? Se este aparelho não pode, qual outro me sugere para 2 linhas?

    Um grande abraço,

    Jason Soares

  21. Olá Jason,
    Tudo bem, e com você? 🙂

    Não sei se isto é possível… Pelo que consegui achar no site da Cisco, acredito que não. O SAP400 teria que se registrar em algum servidor.
    Não conheço outro equipamento que poderia fazer o que queres.

    []’s
    Huff

  22. Huff, tudo bem?

    Cara vi o seu post e tenho tentado configurar algo semelhante ao que está descrito no teu post. O meu cenário tem algumas diferenças.

    Estou usando o FreePBX Distro, com o Asterisk versão 1.8.21. O Asterisk e o SPA400 estão em redes distintas, porém ambos com os IPs públicos e portas devidamente configuradas nos firewalls.

    No meu caso, eu não tenho nenhum user.conf no /etc/asterisk

    Eu tentei de tudo que é jeito, mas no SPA400 sempre me dá a mensagem de que não está registrado e no Asterisk me dá a mensagem:

    Host ‘meuipdoSPA400:5060’ does not implement ‘REGISTER’

    Alguma coisa que eu possa estar não fazendo?

    Abraço

  23. Olá Fernando!
    Tudo bem! E com você?

    Hmmm não conheço o FreePBX. Mas pelo que descrevestes, algo está faltando sim, e teria a ver com o SPA400 se registrar no Asterisk.
    Você atualizou o firmware do SPA400? E as configurações do SPA400 você fez como nestes posts?

    []’s
    Huff

  24. Na verdade o que o fernando quer dizer e que os arquivos de configuração nao sao mais gravados nesse local e sim em outro local segundo informaçoes do proprio arquivo e eu tambem nao achei.

  25. Boa tarde, sei que faz horas esse tuto já, mas me ajudou muito, meu spa400 esta registrado com asterisk tudo certo, mas depois de realizar uma chamada a linha fica ocupada, e só consigo refazer a chamada trocando o codec no SPA400, dai faço uma chamada e fica dando msg de todas as linhas ocupadas novamente. o que poderia ser?

  26. Olá Ronaldo,

    Não administro (e não tenho mais acesso) ao ambiente asterisk com os SPA400.
    Mas não lembro disto ter ocorrido…
    Caso alguém poste alguma ideia, aprovarei o comentário ;-).

    E caso descubras o que estava ocorrendo, por favor poste aqui! 🙂

    []’s
    Huff

  27. Huff, boa tarde,

    Fiz exatamente como ensinou, inclusive nas rotas de entrada, mas as ligações apesar de entrarem no elastix ele não recebe para encaminhar para os ramais, já tentei de um tudo, mas ainda não tive sucesso. Sei que você já não tem mais esse ambiente, mas conseguiria me indicar um caminho?

    Abraços

  28. Opa,

    De repente poste mais detalhes da tua configuração e o que você vê nos logs, quando a chamada está entrando. Pode ser que alguém consiga dar uma dica ;).

    []’s
    Huff

  29. firmware do spa400 e outros também que achei (link removido)

  30. Olá Carlos,

    Temos que ter cuidado com links que oferecem os firmwares, que não sejam do site oficial do fabricante.
    Nunca se sabe se o firmware foi alterado e algum tipo de vírus ou malware foi incluído ;).

    []’s
    Huff

  31. Amigos, preciso de copia do firmware do SPA400, alguém poderia me encaminha pelo e-mail. no site do fabricante nao estou achando

  32. Luis,

    Recomendo que consiga o firmware com o fabricante.
    Qualquer firmware conseguido de outras fontes pode conter um vírus ou “malware”.

    []’s
    Huff

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.