Channel PJSIP < == > Channel SIP (Configurando um Tronco IP)

Fonte: https://iplinktelecom.com/

Este guia irá ajuda-lo a realizar a configuração de um Tronco IP entre dois servidores Asterisk® SCF™, utilizando canais diferentes em relação ao protocolo SIP, afinal não importa se é CHANNEL SIP (modulo chan_sip.so) ou CHANNEL PJSIP (modulo chan_pjsip.so), o protocolo é único, SIP 2.0, ainda com a RFC 3261.

E claro que unificar ambas tecnologias não é uma tarefa facil, o recomendado é que você ABANDONE o modulo chan_sip.so. E passe a usar unicamente o modulo chan_pjsip.so. Mas como existes ainda muitas empresas que fazem uso do modulo chan_sip.so, vamos encontrar na planta de Telefonia IP (ToIP) a necessidade de criar um trunk entre as duas tecnologias (tecnologias não protocolo!).

Asterisk® SCF™ é uma estrutura de código aberto para a construção de aplicativos de comunicação. O Asterisk® SCF™ transforma um computador comum em um servidor de comunicação. O Asterisk® SCF™ lhe permite implementar sistemas em telecomunicações, como Softswitch PBX IP, Gateways POTS, ISDN, GSM, Servidores de Conferência e outras soluções personalizadas que depende exclusivamente do seu conhecimento sobre o Asterisk® SCF™. É usado por pequenas empresas e grande empresas, Call Centers, Operadoras e Agências Governamentais, em todo o mundo.

Existem dois métodos padrão para conectar um Softswitch PBX IP, baseado em Asterisk® SCF™ entre si: 

  • CHANNEL SIP, para usar o mesmo PROTOCOLO de Iniciação de Sessão (SIP) padrão usado para conectar telefones que fazem uso do PROTOCOLO SIP.
  • CHANNEL PJSIP, para usar a pilha de PROTOCOLOS Open Source Embedded SIP, que passou a ser padrão, usado para conectar telefones que fazem uso do PROTOCOLO SIP.
Muito importante lembrar que o correto para fazer um tronco entre dois servidores Asterisk® SCF™ é fazendo uso do PROTOLOCO IAX que se encontra também na versão 2.0. Aqui tem um post sobre isso

Para mais documentação do Asterisk® SCF™, veja:
  • http://www.asteriskdocs.org é um livro HTML gratuito (o livro impresso correspondente é publicado convencionalmente pela O'Reilly em Inglês e pela Novatec em Português).
  • http://www.asterisk.org é o site do Asterisk® SCF™, operado pela Digium® uma empresa do grupo Sangoma®.

.Instruções para configurar um tronco entre dois servidores Asterisk® SCF™, a seguir vamos ver:
  • Configurar um tronco SIP utilizando PJSIP_WIZARD;
  • Configurar o servidor para fazer e receber chamadas entre eles;
  • Concluindo a configuração básica do PJSIP;
  • Configurar o Dialplan.

Pré-requisitos:
  • Um servidor com Asterisk fazendo uso do modulo chan_sip.so;
  • Um servidor com Asterisk fazendo uso do modulo chan_pjsip.so;
  • Rede totalmente funcional entre os servidores.
1 - Segue as configurações para o servidor fazendo uso do modulo chan_sip.so:

OBS: Algumas configurações são recomendadas, ou seja não são obrigatórias.

Edite o arquivo sip.conf:

[general]
dtmfmode=rfc2833
notifyringing=yes
context=from-pstn
srvlookup=yes
disallow=all
rtptimeout=60
useragent=PBX IP
qualify=100000
nat=yes
maxexpirey=1800
defaultexpirey=1800
tcpenable=yes
#include "sip_custom.conf"
register => srvchansip:srv12345@172.31.31.2:5060/94455

[94455]
type=friend
allow=ulaw
allow=alaw
allow=g729
allow=gsm
dtmfmode=rfc2833
call-limit=60
defaultuser=srvchansip
fromuser=srvchansip
fromdomain=172.31.31.1
qualify=yes
port=5060
secret=srv12345
insecure=port,invite
host=172.31.31.1
context=from-itx-srvchanpjsip
transport=udp

2 - Segue as configurações para o servidor fazendo uso do modulo chan_sip.so:

Edite o arquivo pjsip_wizard.conf:

[trunk_defaults] 
type = wizard 

[srvchansip] 
endpoint/transport = 0.0.0.0-udp 
endpoint/allow = !all,ulaw,alaw,G729,G722 
endpoint/rewrite_contact = yes 
endpoint/dtmf_mode = rfc4733 
endpoint/context = from-pstn 
endpoint/force_rport = yes 
aor/qualify_frequency = 60 
sends_auth = no 
sends_registrations = no 
remote_hosts = 172.31.31.1:5060

OBS: para que esta configuração funcione, o modulo res_pjsip_config_wizard.so deve estar instalado e carregado. Este modulo está disponível desde o 
Asterisk® SCF™ 13.2.


3 - Configurando o Asterisk® SCF™ para fazer e receber chamadas:

Você precisará modificar o arquivo /etc/asterisk/pjsip_wizard.conf para adicionar as configurações globais para as extensões que utilizaremos em nossa POC (Proof Of Concept).

Neste exemplo, estamos configurando uma extensão 95566 para fazer e aceitar chamadas. Os parâmetros que fazem referência a 95566 e senha podem ser personalizados para seus requisitos e mapeados para os seguintes campos:
 
[defaults_user](!)
type = wizard 
accepts_registrations = yes 
sends_registrations = no 
accepts_auth = yes 
sends_auth = no 
endpoint/context = from-internal 
endpoint/allow = !all,ulaw,alaw,G729,G722 
endpoint/dtmf_mode = rfc4733 
endpoint/rewrite_contact = yes 
endpoint/force_rport = yes 
aor/max_contacts = 1 
aor/remove_existing = yes 
aor/minimum_expiration = 30 

95566
endpoint/callerid = Peter Parker <95566> 
inbound_auth/username = P3t35P4k35$
inbound_auth/password = P3t35P4k35$


Depois que temos o modelo "(!)", configurar um novo endpoint geralmente é tão simples quanto configurar um nome de usuário/senha, pois o objeto endpoint herda do modelo "(!)" criado em pjsip_wizard. Você nem precisará especificar um tipo. Veja os seguintes exemplos:

 
[Parker](user_defaults) 
hint_exten = 95566
endpoint/callerid = Peter Parker <95566>
inbound_auth/username = P3t35P4k35$
inbound_auth/password = P3t35P4k35$

[Diana](user_defaults) 
hint_exten = 95567
endpoint/callerid = Diana de Themyscira <95567>
endpoint/allow = !all,ulaw
inbound_auth/username = D14N4
inbound_auth/password = D14N4
;has_phoneprov = yes ;--> Padrão é não
;phoneprov/MAC = 00:1B:C9:4B:E3:57 ;--> deve especificar se has_phoneprov=yes;
;phoneprov/PROFILE = profile1 ;--> deve especificar se has_phoneprov=yes



4 - Concluindo a configuração básica do PJSIP:

Embora o pjsip_wizard.conf seja um grande facilitador na configuração endpoints PJSIP, configurações globais ou qualquer outra coisa que possa ser necessaria, ainda deve ser realizado e mesmo adicionado (muitas vezes necessario) em /etc/asterisk/pjsip.conf. No escopo de nossa configuração básica, adicione as linhas abaixo ao pjsip.conf para endpoints que estejam atras de NAT.


[global] 
type = global
user_agent = PBX IP
 
[transport-udp-nat] 
type = transport 
protocol = udp 
bind = 0.0.0.0:5060 
local_net = X.X.X.X/24 
external_media_address = X.X.X.X 
external_signaling_address = X.X.X.X 
allow_reload = no

  • Caso o Softswitch PBX IP não esteja em uma rede NAT, você pode remover com segurança (ou comentar) os seguintes parâmetros: external_media_address e external_signaling_address.
  • Com as configurações acima adicionadas aos respectivos arquivos, seu Softswitch PBX IP fazendo uso do modulo chan_pjsip.so, agora deve estar registrado no outro Softswitch PBX IP fazendo uso do modulo chan_sip.so, e o endpoint 94455 em seu telefone IP/Softphone deve estar registrado no seu Softswitch PBX IP que faz uso do modulo chan_pjsip.so.
5Configurar o Dialplan:

Asterisk® SCF™ faz uso dos Dialplans desenvolvidos em /etc/asterisk/extensions.conf, ou extensions.ael, e extensions.lua, para rotear chamadas entre endpoints, e realizar outras tarefas. Para permitir que nosso endpoint 994455 chame os usuários do outro Softswitch PBX IP que usa o modulo chan_sip.so, bem como para enviar quaisquer chamada que chegue ao DID atribuído ao respectivo troco, você precisa abrir extension.conf e adicionar as seguintes linhas de código:

[from-pstn] 
exten => _+55XXXXXXXXXXX,1,Dial(PJSIP/94455) 
exten => _XX9XXXXXXXX,1,Dial(PJSIP/94455) 

[from-internal] 
exten = _119XXXXXXXX,1,Dial(PJSIP/${EXTEN}@srvchansip) 
same = n,Hangup() 

exten = _X.,1,Dial(PJSIP/${EXTEN}@srvchansip) 
same = n,Hangup()

  • [from-pstn] - serve para encaminhar chamadas para a Rede Pública de Telefonia Comutada - RPTC (do inglês - Public Switched Telephone Network ou PSTN), proveniente do Softswitch PBX IP (modulo chan_sip.so) e as envia para o endpoint 94455. O bloco de código [from-pstn] capturará todas as chamadas para CLDs nacional padrão telefonia móvel (11 9 44 55 66 77) e enviara para o endpoint 94455.
  • [from-internal] - serve para encaminhar chamadas para a RPTC/PSTN através do Softswitch PBX IP (modulo chan_pjsip.so). O bloco [from-internal] capturará chamadas para números nacional padrão telefonia móvel e encaminhara para o Softswitch PBX IP (modulo chan_sip.so).
IMPORTANTE! Se você quiser fazer seu tronco baseado em TECH PREFIX para autenticar, isso deve ser implementado no Dialplan.

Por exemplo, se você configurou o TEC PREFIX para "9999" no Softswitch PBX IP (modulo chan_sip.so), seu bloco [from-internal] deve ficar assim:

[from-internal] 
exten = _119XXXXXXXX,1,Dial(PJSIP/9999${EXTEN}@srvchansip) 
same = n,Hangup() 

exten = _X.,1,Dial(PJSIP/9999${EXTEN}@srvchansip) 
same = n,Hangup()

É isso! Você concluiu a configuração dos servidores baseados em Asterisk® SCF™ e agora pode fazer e receber chamadas entre eles. 

Nenhum comentário

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

Tecnologia do Blogger.