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=g729allow=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.
5 - Configurar o Dialplan:
O 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.
Deixe um comentário