Asterisk as MFCR2 provider

From Pruonckk.org

Conteúdo

Prefacio

Esta configuração foi feita apenas pela necessidade de testar a placa da ALIGERA, foram realizados testes utilizando R2, ISDN e SS7

Requerimentos

Para utilizar R2 é necessário que você instale a libopenr2

http://code.google.com/p/openr2/

Faça o download da biblioteca , e compile utilizando

./configure
make
make install

depois refaça a compilação do asterisk para que seja inserido a libopenr2 na compilação do chan_dahdi

Configuração do DAHDI

A Primeira placa configurada é a AP402 da aligera, vamos colocar este servidor como BOX-A e outro (com a placa digium) como BOX-B.

Para ligar os dois diretamente, será necessário um cabo crossover para E1/T1, para isso, utilize o que esta no link a frente [1] ou [2]

BOX-A

/etc/dahdi/system.conf

loadzone        = br
defaultzone     = br

loadzone        = br
defaultzone     = br

span=1,1,0,cas,hdb3
#span=2,0,0,ccs,hdb3,crc4

cas=1-15:1101
cas=17-31:1101

Lembre-se que esta placa possui duas portas E1 , neste caso corrija o valor para o parametro que você necessitar.

BOX-B

/etc/dahdi/system.conf

span=1,0,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101

# Global data

loadzone        = us
defaultzone     = us

Note que a porta foi configurada para não gerar Clock de origem para a E1, isso é importante para evitar erros, o cancelamento de echo adicionado com o mg2 é opcional, coloque se achar necessário.


Configuração do chan_dahdi.conf

A R2 é um protocolo ponto a ponto, deste modo não existe nada muito especifico que defina um lado como master e o outro não, apenas o clock da configuração da placa mesmo.

BOX-A

/etc/asterisk/chan_dahdi.conf

[trunkgroups]

[channels]
hidecallerid=no
callwaiting=yes
usecallerid=yes
usecallingpres=yes
relaxdtmf=yes
dtmfwhenbridged=yes
callerid=asreceived
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=no
signalling=mfcr2
mfcr2_variant=br
mfcr2_get_ani_first=yes
mfcr2_max_ani=20
mfcr2_double_answer=no
mfcr2_max_dnis=10
mfcr2_mfback_timeout=3000
mfcr2_category=national_subscriber
mfcr2_logdir=span1
mfcr2_charge_calls=yes
mfcr2_logging=all
language=pt_BR
mfcr2_allow_collect_calls=no
mfcr2_forced_release=yes
context=teste
group=0
channel => 1-15
cicbeginswith=17
channel => 17-31


BOX-B

/etc/asterisk/chan_dahdi.conf

[trunkgroups]

[channels]
hidecallerid=no
callwaiting=yes
usecallerid=yes
usecallingpres=yes
relaxdtmf=yes
dtmfwhenbridged=yes
callerid=asreceived
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=no
signalling=mfcr2
mfcr2_variant=br
mfcr2_get_ani_first=yes
mfcr2_max_ani=20
mfcr2_double_answer=no
mfcr2_max_dnis=10
mfcr2_category=national_subscriber
mfcr2_logdir=span1
mfcr2_logging=all
language=pt_BR
mfcr2_allow_collect_calls=no
mfcr2_forced_release=yes
context=teste
group=0
channel => 1-15
cicbeginswith=17
channel => 17-31

Criando um dialplan de teste

Note nas configurações foi definido o contexto como teste, então vamos abrir o arquivo extension.conf e criar um dialplan de testes

Dialplan de Teste

Vamos criar um dialplan de testes e também um ramal sip para efetivarmos o teste

BOX-A e BOX-B


extensions.conf

/etc/asterisk/extensions.conf

Adicione ao fim do arquivo o conteudo a baixo.

[teste]
exten => _X.,1,NoOp(Chamada entrando por nossa E1 de teste)
exten => _X.,n,Answer()
exten => _X.,n,Wait(2)
exten => _X.,n,PlayBack(vm-exten)
exten => _X.,n,WaitExten(4)
exten => _X.,n,PlayBack(vm-invalid)

exten => _XXXX,1,NoOp(Usuario discou ${EXTEN})
exten => _XXXX,n,Dial(SIP/${EXTEN},60,tT)
exten => _XXXX,n,Hangup()

[teste-saida]
exten => _X.,1,NoOp(Chamada saindo por nossa E1 de teste)
exten => _X.,n,Dial(DAHDI/g0/${EXTEN},60,tT)
exten => _X.,n,Hangup()

exten => _XXXX,1,NoOp(Chamada entre usuarios)
exten => _XXXX,n,Dial(SIP/${EXTEN},60,tT)
exten => _XXXX,n,Hangup()
sip.conf

/etc/asterisk/sip.conf

Adicione ao fim do arquivo o seguinte conteudo


; O dialplan foi feito com 4 digitos (XXXX) , pode colocar o numero de ramal que quiser, 
; se quiser usar menos de 4 digitos corrija no dialplan tambem
[1001]
defaultuser=1001  ; defaultuser é do asterisk 1.6 se voce esta usando 1.4 ou 1.2 troque para username
secret=teste
context=teste-saida
type=friend
host=dyanmic
qualify=yes
nat=yes ; troque para no se tiver na rede interna apenas
disallow=all
allow=ulaw,alaw


Para maiores informações consulte a documentação do Asterisk e da libopenr2 e obviamente outras documentações que descrevam a sinalização, meu intuito com este teste foi apenas o de fazer alguns testes iniciais.


Voltar

Ferramentas pessoais
Inutilidades