Este Manual descreve um passo a passo de como configurar o Asterisk como gateway de Voz através
de uma placa de voz fxo no projeto do fone@RNP
Sumário
Com a máquina devidamente desligada da energia elétrica, abra o servidor Dell na qual estará sendo
executado o software Asterisk como gateway de voz, efetuando assim a interligação do VoIP com a
telefonia tradicional.
Instale cuidadosamente a placa de voz FXO Digium TDM400P no slot pci. Atenção: Não conecte o
plug de força da fonte na placa FXO.
Ligue a máquina, e após a carga do sistema operacional utilize o utilitário lspci para verificar se a
placa FXO instalada está sendo reconhecida.
root@maq2:~# lspci
O próximo passo é carregar os drivers da placa da Telefonia Digium, os drivers devem ser carregados
usando o comando modprobe.
Edite o arquivo /etc/zaptel.conf para que reflita a placa Digium TDM400P com 4 módulos FXO.
fxsks=1-4
loadzone = us
defaultzone=us
Zaptel Configuration
======================
Channel map:
O utilitário zttool pode ser utilizado para verificar se a placa foi identificada e configurada
corretamente. Se as informações da sua placa TDM400P aparecem na janela do aplicativo ZTTOOL,
ela está configurada e funcionando corretamente.
Como há a necessidade de identificar se a chamada que chega do PABX para uma porta FXO é de
um ramal interno ou de um telefone público, a instituição deve ter dois ramais chave. O primeiro será
utilizado para quem originar a chamada da rede pública, e o segundo, para quem originar chamadas
de ramais internos. É importante que o segundo número seja restrito e não possa receber chamadas
da rede pública. Estes números chave devem então ser associados a ramais físicos que serão
conectados às portas FXO. Das portas FXO disponíveis, normalmente 4 portas, uma parte será
reservada para receber chamadas externas, que só poderão alcançar telefones IP ou ramais de outras
instituições, e outra parte reservada para receber chamadas internas, que poderá também discar para
rede pública a partir de outra instituição. Normalmente está reservada uma porta para ligações
externas e três para as internas.
A menos que os ramais no PABX associados às FXO tenham restrições diferentes, todos os canais
devem ser associados a um único grupo. O grupo criado será usado para o encaminhamento de
chamadas do Asterisk para o PABX.
[trunkgroups]
[channels]
context=from-pstn
signalling=fxs_ks
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
busydetect=yes
busycount=6
group => 1
channel => 1
context=from-pabx
signalling=fxs_ks
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
busydetect=yes
busycount=6
group => 1
channel => 2-4
[RasSrv::RRQAuth]
gw-pabxnome=sigip:xxx.xxx.xxx.xxx nome da instituição / IP
Verifique se a regra regex em [GKStatus::Auth] inclui o IP do servidor MAQ2 (máquina onde estará
sendo executada o asterisk gateway de voz). Após este passo, é necessário reiniciar o software
gnugk.
Após configurado o GNUGK da MAQ1, deve ser feita a configuração do Asterisk na MAQ2, onde está
instalada a placa FXO. Configurar canal oh323 através do arquivo /etc/asterisk/oh323.conf . Nesta
configuração deve ser indicado o endereço IP do gatekeeper, no caso o IP da MAQ1, o ID do registro
e os prefixos que serão registrados. Deve se ter cuidado para que o ID indicado no arquivo seja
exatamente igual ao ID indicado na configuração do gatekeeper.
[general]
[register]
alias=gw-pabxnome nome da instituição
gwprefix=NNNN Prefixo do PABX
gwprefix=0XX Código da cidade da instituição
[codecs]
codec=G711U
frames=20
codec=G711A
frames=20
5.
Configuração do Plano de Numeração
Agora que as configurações associadas aos canais ZAP e OH323 já foram realizadas, deve ser
definido o plano de numeração que será utilizado no Asterisk. Este plano é especificado no arquivo
/etc/asterisk/extensions.conf.
Ao configurar o seu arquivo, use o código de DDD correspondente à cidade da sua instituição.
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=yes
[globals]
[from-voip]
include => to-pabx
include => to-pstn
[from-pabx]
include => inicial
include => semum0
include => semum55
include => internacional
[from-pstn]
include => inicial
include => comum0
include => comum55
[pbx-block]
exten => _YYYYXXXX,1,Hangup() ; YYYY => prefixo associado ao PABX
exten => _0DDYYYYXXXX,1,Hangup() ; DD => código de área da cidade
exten => _0055DDYYYYXXXX,1,Hangup()
; YYYYXXXX => YYYY[INTERVALO DE RAMAIS]
; Caso a instituição tenha vários prefixos
; associados aos ramais, devem ser criads
; extensões especificas para estes prefixos
[colocalizados]
exten => _PPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _PPPPXXXX,n,Hangup()
exten => _0DDPPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0DDPPPPXXXX,n,Hangup()
exten => _0055DDPPPPXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0055DDPPPPXXXX,n,Hangup()
; PPPPXXXX => PPPP[INTERVALO DE RAMAIS] / PPPP => Prefixo do PABX
; repetir configuração para cada instituição colocalizada
[ip]
exten => _1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _1XXXXXXX,n,Hangup()
exten => _0XX1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0XX1XXXXXXX,n,Hangup()
exten => _0055XX1XXXXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0055XX1XXXXXXX,n,Hangup()
[local-block]
exten => _0DDNXXXXXXX,1,Hangup()
exten => _0055DDNXXXXXXX,1,Hangup()
[semum0]
exten => _0XXNXXXXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0XXNXXXXXXX,n,Hangup()
[internacional]
exten => _00XXXXXXXXX.,1,Dial(OH323/${EXTEN},60,rtT)
exten => _00XXXXXXXXX.,n,Hangup()
[semum55]
exten => _0055XXNXXXXXXX,1,Dial(OH323/${EXTEN},60,rtT)
exten => _0055XXNXXXXXXX,n,Hangup()
[comum55]
exten => _0055XXNXXXXXXX,1,SetVar(prefixo=${EXTEN:0:6})
exten => _0055XXNXXXXXXX,n,Dial(OH323/${prefixo}1${EXTEN:6},60,rtT)
exten => _0055XXNXXXXXXX,n,Hangup()
[to-pabx]
exten => _YYYYXXXX,1,Dial(ZAP/g1/${EXTEN:4},60,rtT)
exten => _YYYYXXXX,n,Hangup()
; YYYYXXXX => YYYY[INTERVALO DE RAMAIS]
; YYYY => Prefixo do Ramal da instituição
; fazer isto para cada prefixo do ramal do PABX
[to-pstn]
exten => _0DDNXXXXXXX,1,Dial(ZAP/g1/0${EXTEN:3},60,rtT)
exten => _0DDNXXXXXXX,n,Hangup()
; DD => Código da cidade
; 0 => Dígito usado para pegar uma linha externa
; :3 => Exclui os 3 primeiros digitos, no caso do PABX tiver
; aceitando somente os 8 digitos do numero
Contextos definidos:
• From-voip – trata as chamadas recebidas do canal oh323. O nome do contexto deve ser o
mesmo que o definido no arquivo oh323.conf;
• From-pabx – trata as chamadas provenientes do PABX originadas de ramais internos. O
nome do contexto deve ser o mesmo que o definido no arquivo zapata.conf para os canais
que receberão chamadas internas;
• From-pstn – trata as chamadas provenientes do PABX originadas da rede pública. O nome
do contexto deve ser o mesmo que o definido no arquivo zapata.conf para os canais que
receberão chamadas externas;
• Inicial – apresenta mensagem de voz para o usuário e coleta os dígitos do telefone
chamado;
• Pbx-block – evita que o usuário disque de volta para os ramais da instituição. Não faz
sentido um usuário ligar para um ramal conectado ao Asterisk e discar para um ramal do
PABX. Isto deve ser evitado, pois ocuparia duas linhas desnecessariamente;
• Colocalizados – cria regras que permitem o encaminhamento das chamadas para
instituições localizadas na mesma cidade que compartilham o mesmo código de área. Este
contexto só deve ser definido se a instituição estiver configurada para encaminhar chamadas
para a rede pública. Caso contrário é desnecessário. Objetiva o encaminhamento das
Copie o arquivo de áudio que será tocado quando da chegada de uma chamada à porta FXO de seu
gateway Asterisk. Este arquivo pode ser obtido da RNP no site http://voip4ll.rnp.br usando o usuário
fornecido pela RNP.
6.
Passos Finais
Configure nas máquinas 1 e 2 para não habilitar canais não utilizados. Para isto, edite o arquivo
/etc/asterisk/modules.conf conforme o quadro abaixo.
[modules]
autoload=yes
[global]
Inicialize o Asterisk nas duas máquinas com tela de comando, e utilize o comando zap show
channels para visualizar os canais configurados e o contexto associado a cada canal.
• Garantir que todas as interfaces FXO entregues sejam instaladas e todos os canais estejam
operando.
Channel: 1
File Descriptor: 9
Span: 1
Extension:
Dialing: no
Context: from-pstn
Caller ID:
Calling TON: 0
Caller ID name:
Destroy: 0
InAlarm: 0
Signalling Type: FXS Kewlstart
Radio: 0>
Owner: <None>
Real: <None>
Callwait: <None>
Threeway: <None>
Confno: -1
Propagated Conference: -1
Real in conference: 0
DSP: no
Relax DTMF: no
Dialing/CallwaitCAS: 0/0
Default law: ulaw
Fax Handled: no
Pulse phone: no
Echo Cancellation: 128 taps, currently OFF
Actual Confinfo: Num/0, Mode/0x0000
Actual Confmute: No
Hookstate (FXS only): Offhook
Deve aparecer a informação “Hookstate (FXS only): Offhook”, que foi mostrado em negrito no
exemplo acima. Repetir este comando para todos os canais, ou seja, em “zap show channel 1” no
exemplo acima, alterar o número 1 pelo número do canal que será verificado.