Para o teste do equipamento GoIP iremos montar a seguinte topologia e bem simples e relativamente fácil. Temos o GoIP configurado para se registrar no asterisk e um telefone IP para teste apenas, este telefone IP poderia ser um softfone ou uma ata com telefone analógico, fica a seu critério.
O modelo do GoIP que estou utilizando e o da foto abaixo.
Ele possue suporta a apenas 1 chip de celular. Mas para o teste que queremos realizar serve muito bem.
Mas afinal de contas o que é GoIP? GoIP e um aparelho que possue suporte a você colocar um chip de celular e ele tem “embutido” um cliente SIP que pode se tornar um tronco para o Asterisk realizar chamadas. No caso do GoIP realizar chamadas utilizando o chip de celular instalado no GoIP. Isto e interessante para economia de ligações de celular para celular. No dialplan do Asterisk você pode colocar que determinado padrão de ligações com destino a celular sejam enviado ao tronco do GoIP e todas as demais ligações para a PSTN normal ou circuito E1.
Para a configuração do GoIP no asterisk precisamos criar um ramal SIP.
[goip] canreinvite=no context=goip dtmfmode=rfc2833 fromuser=gsm1 host=dynamic disallow=all allow=ulaw allow=alaw allow=g729 insecure=port,invite secret=123456 type=friend defaultname=goip username=goip nat=yes
Tenho outros ramais nesse sip.conf mas apenas vou focar na configuração do GoIP. Vejam que o context do GoIP vai para um contexto chamado “goip” que esta definido no arquivo extensions.conf.
[goip] exten => 1,1,Wait(1) exten => 1,n,Answer exten => 1,n,Playback(hello-world) exten => 1,n,Wait(2) exten => 1,n,Hangup
O qual somente irá dizer “Hello World” apenas para teste.
agora nos outros ramais SIP, vamos dar uma olhada no ramal 1109, vamos dar uma olhada na definição do ramal.
[1109] type=friend username=1109 secret=123456 host=dynamic dtmfmode=rfc2833 context=from-sip canreinvite=no nat=no
Bem simples, vamos focar no parametro “context”. Repare que ele aponta para o contexto “from-sip”. Vamos olhar o contexto “from-sip” no arquivo extensions.conf.
[from-sip] exten => 1100,1,Answer exten => 1100,n,Dial(SIP/1100) exten => 1100,n,Hangup exten => 1109,1,Answer exten => 1109,n,Dial(SIP/1109) exten => 1109,n,Hangup exten =>_X.,1,Answer exten =>_X.,n,Dial(SIP/goip/${EXTEN}) exten =>_X.,n,Hangup
DETALHE NUNCA UTILIZEM ESSE DIALPLAN COM _X. Porque? porque ele é muito generico isto é apenas para entendimento, mude o dialplan e deixe ele mais estreito ou seja mais delimitado tipo o _X. casa com qualquer coisa quantas vezes quiser, ou seja, o cara liga para onde quiser, inclusive ligações internacionais e você não gostaria nada de ter sua conta com 6 digitos para pagar no final do mês então seja bem restritivo no seu dialplan e lembre-se isso e um exemplo didático para começar a entender e utilizado em laboratório. :)
Voltando ao contexto, ele permite ligar para ramais 1100, 1109 e qualquer coisa utiliza o dial para goip com a extensão informada.
Vamos a configuração do GoIP e bem simples. Precisamos enumerar alguns dados:
Ramal: goip Senha: 123456 Servidor Asterisk:192.168.10.186
Vamos a configurar, no nosso exemplo o endereço IP do GoIP é 192.168.10.181. Esse endereço ip foi setado pela interface PC. No primeiro uso do GoIP você geralmente conecta um pc ou notebook na interface PC do GoIP e configurar para obter ip automatico. O endereço IP padrão do GoIP é 192.168.8.1/24 Ele possue um servidor DHCP na porta PC fornecendo o seguinte range: 192.168.8.100 até 192.168.8.120.
Eu setei o endereço ip 192.168.10.181 acessando pelo notebook diretamente conectado na interface PC. E interessante deixar o GoIP setado com ip manual. Vejam a tela de configuração de rede.
Agora vamos a configuração do ramal SIP com as seguintes informações
Somente isso é necessário configurar no GoIP, meus testes funcionaram com essa configuração. Um item muito interessante e útil é possível realizar pequenos testes a partir da console web do GoIP, tais como enviar sms discar para números, etc.
Vamos ver se o GoIP se registrou no asterisk.
halljordan*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 1100/1100 (Unspecified) D Yes Yes 0 Unmonitored 1109/1109 192.168.10.178 D No No 5060 Unmonitored goip/goip 192.168.10.181 D Yes Yes 5070 Unmonitored 3 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 1 offline] halljordan*CLI>
vamos realizar uma chamada.
halljordan*CLI> halljordan*CLI> == Using SIP RTP CoS mark 5 > 0x7fd738222c40 -- Strict RTP learning after remote address set to: 192.168.10.178:24262 -- Executing [067992920637@from-sip:1] Answer("SIP/1109-00000007", "") in new stack > 0x7fd738222c40 -- Strict RTP switching to RTP target address 192.168.10.178:24262 as source -- Executing [067992920637@from-sip:2] Dial("SIP/1109-00000007", "SIP/goip/067992920637") in new stack == Using SIP RTP CoS mark 5 -- Called SIP/goip/067992920637 > 0x7fd72800ca90 -- Strict RTP learning after remote address set to: 192.168.10.181:16384 -- SIP/goip-00000008 is making progress passing it to SIP/1109-00000007 > 0x7fd72800ca90 -- Strict RTP switching to RTP target address 192.168.10.181:16384 as source > 0x7fd738222c40 -- Strict RTP learning complete - Locking on source address 192.168.10.178:24262 > 0x7fd72800ca90 -- Strict RTP learning complete - Locking on source address 192.168.10.181:16384 -- SIP/goip-00000008 is making progress passing it to SIP/1109-00000007 -- SIP/goip-00000008 answered SIP/1109-00000007 -- Channel SIP/goip-00000008 joined 'simple_bridge' basic-bridge <846d9215-5d5a-4567-ad84-8db1960e5873> -- Channel SIP/1109-00000007 joined 'simple_bridge' basic-bridge <846d9215-5d5a-4567-ad84-8db1960e5873> > Bridge 846d9215-5d5a-4567-ad84-8db1960e5873: switching from simple_bridge technology to native_rtp > Locally RTP bridged 'SIP/1109-00000007' and 'SIP/goip-00000008' in stack -- Channel SIP/goip-00000008 left 'native_rtp' basic-bridge <846d9215-5d5a-4567-ad84-8db1960e5873> -- Channel SIP/1109-00000007 left 'native_rtp' basic-bridge <846d9215-5d5a-4567-ad84-8db1960e5873> == Spawn extension (from-sip, 067992920637, 2) exited non-zero on 'SIP/1109-00000007' halljordan*CLI> halljordan*CLI> halljordan*CLI>
Repare na linha marcada que a ligações saiu utilizando o ramal SIP GoIP. Abaixo a foto do ambiente.
Att.