Como configurar o GoIP-1/4/8 (GSM VoIP Gateway) como um Gateway de tronco para o Asterisk® SCF™ (P3).

Então se você chegou aqui, eu estou, dando continuidade à este assunto. Aqui tem a primeira parte, recomendo que primeira realize os procedimentos que descrevo nele. 

Somente para concluir, veja como está chegando a informação em seu Dialplan (Imagem 01) , ou seja o equipamento de fato está tentando fazer um registro em nosso Asterisk® SCF™Foi assim que concluímos a segunda parte.

Imagem 01 - Asterisk *CLI> solicitação de registro do GTW GoIP

Hoje vamos fazer a seção de registro do nosso sistema GoIP bem como o contexto de tratamento das chamadas inbound. Antes somente uma explicação necessária, o termo GoIP é a abreviatura de G => GSM (Global System for Mobile Communications, ou "Sistema Global para Comunicações Móveis" é uma tecnologia móvel para telefones celulares. A tecnologia GSM é utilizada por mais de um bilhão de pessoas em mais de 200 países.), o = over (é um advérbio, que significa sobre em português do acordo ortográfico.), IP => Internet Protocol (Um Endereço de Protocolo da Internet, do inglês Internet Protocol address, é um rótulo numérico atribuído a cada dispositivo conectado a uma rede de computadores que utiliza o Protocolo de Internet para comunicação.). Então, isto é que significa a sigla GoIP, o equipamento de fato é um Gateway GoIP, assim como temos Gateway ToIP (Alígera, Khomp, Rhino, Sangoma, etc.).

Vamos editar o arquivo PJSIP.CONF, aqui não tenho como objetivo de explicar cada linha de configuração do mesmo, e sim, fazer as configurações de registro e tratamento do fluxo da chamada, caso queira de fato aprender sobre o PJSIP.CONF recomendo que leia o livro da Novatec Asterisk Guia Definitivo: Telefonia de código aberto para empresas.

# cd /etc/asterisk/
# mkdir pbx
# > pjsip.conf
# vim pjsip.conf

Inicio do arquivo PJSIP.CONF:
;========================================================
;== Exemplo de configuração PJSIP e Referência Rápida  ==
;========================================================
[global]
 type=global
 user_agent=RK2222 

[pbx-lan]
 type=transport
 protocol=udp
 bind=0.0.0.0:5060
 allow_reload=no

[pbx-default](!)
;suppress_q850_reason_headers=no
 allow_subscribe=yes
 subscribe_context=presence-blf
 disallow=all
 allow=alaw,ulaw,gsm,h263,h264,vp8
 language=br
 moh_suggest=espera
 dtmf_mode=rfc4733
 direct_media=no
 force_rport=yes
 rtp_symmetric=yes
 rewrite_contact=yes
 transport=pbx-lan

[pbx-interno](pbx-default,!)
 type=endpoint
 context=interno

[pbx-externo](pbx-default,!)
 type=endpoint
 context=externo

[pbx-itsp](pbx-default,!)
 type=endpoint
 context=from-itsp

[pbx-goip](pbx-default,!)
 type=endpoint
 context=from-itsp

[auth-user-pass](!)
 type=auth
 auth_type=userpass

[aors-user-register](!)
 type=aor
 max_contacts=1
 remove_existing=yes
 qualify_frequency=30

#include /etc/asterisk/pbx/pjsip_endpoints.conf
#include /etc/asterisk/pbx/pjsip_trunks.conf
;========================================================
Final do arquivo PJSIP.CONF.

# cd pbx
# > pjsip_endpoints.conf
# > pjsip_trunks.conf
# mkdir trunks
# mkdir endpoints
# vim pjsip_endpoints.conf

Inicio do arquivo PJSIP_ENDPOINTS.CONF:
;========================================================
;== Exemplo de configuração PJSIP_ENDPOINTS            ==
;========================================================
#include /etc/asterisk/pbx/endpoints/1001.conf
;========================================================
Final do arquivo PJSIP_ENDPOINTS.CONF.

# vim pjsip_trunks.conf

Inicio do arquivo PJSIP_TRUNKS.CONF:
;========================================================
;== Exemplo de configuração PJSIP_TRUNKS               ==
;========================================================
#include /etc/asterisk/pbx/trunks/6686.conf
;========================================================
Final do arquivo PJSIP_TRUNKS.CONF.

# cd trunks
# > 6686.conf
# vim 6686.conf

Inicio do arquivo 6686.CONF (Trunk para o GTW GoIP):
;========================================================
;== Exemplo de configuração PJSIP TRUNKS para o GoIP   ==
;========================================================
[6686]
 type=endpoint
 context=from-goip
 disallow=all
 allow=ulaw
 outbound_auth=6686
 auth=6686
 aors=6686
 transport=pbx-lan
 from_user=6686
 send_diversion=yes
 send_pai=yes
 send_rpid=yes
 trust_id_inbound=yes
 trust_id_outbound=yes

[6686]
 type=aor
 contact=sip:192.168.0.2:5060
 qualify_frequency=200
 max_contacts=1
 remove_existing=yes

[6686]
 type=auth
 auth_type=userpass
 username=6686
 password=944676686

[6686]
 type=identify
 endpoint=6686
 match=192.168.0.2
;========================================================
Final do arquivo 6686.CONF (Trunk para o GTW GoIP).

OBS: no item send_diversion=yes, envia o cabeçalho de desvio transmitindo as informações de desvio ao agente do usuário chamado (default: "yes"). 

Já send_pai=yes envia o cabeçalho "P" identidade assertada (default: "no"). 

trust_id_inbound=yes, aceita as informações de identificação recebidas deste terminal (default: "no"), deixamos yes, porque necessitamos das informações o GTW GoIP para fazer tratamentos de desvios de fluxo no Dialplan.

# cd ../endpoints/
# > 1001.conf
# vim 1001.conf

Inicio do arquivo 1001.CONF (Extensão Telefônica):
;========================================================
;== Exemplo de configuração PJSIP ENDPOINTS EXTENSION  ==
;========================================================
[1001](pbx-externo)
 type=endpoint
 accountcode=1001
 mailboxes=1001@default
 voicemail_extension=1001
 callerid=1001 <1001>
 call_group=1
 pickup_group=1
 named_call_group=Engenharia
 named_pickup_group=Engenharia
 auth=1001
 aors=1001

[1001](auth-user-pass)
 type=auth
 password=pbx1001
 username=1001

[1001](aors-user-register)
 type=aor
 mailboxes=1001@default
 voicemail_extension=1001

[1001]
 type=identify
 endpoint=1001
 match=pbx.lan
;========================================================
Final do arquivo 1001.CONF (Extensão Telefônica).

Com estes arquivos configurados já estamos prontos para validar as autenticações de nossa Extensão Telefônica 1001, e de nosso Trunk 6686 com o GTW GoIP. Execute os comandos abaixo:

# rasterisk -x"reload" 
# rasterisk -x"pjsip show endpoints"

Veja o resultado na imagem 02 a seguir:

Imagem 02 - Asterisk *CLI> reload e pjsip show endpoints
 
Como, você pode ver, já estamos com uma extensão telefônica (soft-phone Grandstream WAVE em um Smartphone) em nosso Softswitch PBX IP (Baseado em Asterisk® SCF™) e nosso equipamento GTW GoIP do fabricante DBL Technology.

Nosso próximo passo, é fazer o tratamento do desvio de chamadas inbound com origem de nosso GTW GoIP para a Extensão Telefônica 1001, em nosso Smartphone, fazendo uso do soft-phone Grandstream WAVE.

#  cd /etc/asterisk
# > extensions.conf
# > extensions.ael
# > extensions.lua
# vim extensions.conf

Inicio do arquivo EXTENSIONS.CONF:
;========================================================
;== Exemplo de configuração EXTENSIONS.CONF            ==
;========================================================
[general]
static=yes
writeprotect=yes
autofallthrough=yes
extenpatternmatchnew=yes
clearglobalvars=no
;========================================================
Final do arquivo EXTENSIONS.CONF.

# vim extensions.ael

Inicio do arquivo EXTENSIONS.AEL:
//========================================================
//== Exemplo de configuração EXTENSIONS.AEL             ==
//========================================================
#include "/etc/asterisk/pbx/exten_presence.ael"
#include "/etc/asterisk/pbx/exten_recursos.ael"

globals {
 
}

context interno {
    includes {
      ddr;
    }
}

context externo {
    includes {
      ddr;
      ddl;
      ddd;
      ddm;
      ddi;
    }
}

context ddr {
    includes {
      parkedcalls;
      recursos;
    }
    _1XXX => {
      verbose(Chamadas Internas);
      Set(RECORDCALL=${UNIQUEID}-ORIG${CALLERID(num)}-para-R${EXTEN});
      MixMonitor(${RECORDCALL}.wav,ba);
      Dial(PJSIP/${EXTEN},15,rTtKkHh);
      HangUp();
    }
    
    h => {
      Verbose(Chamada encerrada);  
    } 
}

context ddl {

}

context ddd {

}

context ddm {

}

context ddi {

}

context from-pots {

}

context from-pstn {

}

context from-itsp {

}

context from-goip {
    _6686 => {
        Verbose(Inbound GTW GoIP);
        Answer();
        Set(language=br);        
        Playback(call-fwd-unconditional&call-thankyou&call-goodbye);
        StartMusicOnHold(mohpark);
        Wait(30);
        StopMusicOnHold();
        goto ddr|1001|1;
        HangUp();

    }
}
//========================================================
Final do arquivo EXTENSIONS.AEL.

Imagem 03, Inbound Call for GTW GoIP:

Imagem 03 - Asterisk *CLI> Inbound Call for GTW GoIP

Como pode ver em nossa última imagem deste post, já estamos com as chamadas Inbound do GTW GoIP sendo recebidas e procedendo com o devido desvio de fluxo para a Extensão Telefônica 1001

Continua...

Artigos: ➌ ➍ ➎ ➏







Nenhum comentário

Toda vez que um homem supera os reveses, torna-se mentalmente e espiritualmente mais forte!

Tecnologia do Blogger.