Asterisk as SS7 provider

From Pruonckk.org

Conteúdo

Prefacio

Precisei realizar alguns testes para uma interconexão a ser realizada utilizando SS7 (SCC7) , para isso coloquei dois asterisk para os testes de sinalização, foi utilizada uma placa TE110P da Digium [1] e uma AP402 de Aligera [2].


ESTE DOCUMENTO UTILIZA A LIBSS7 DA DIGIUM E NAO O CHAN_SS7

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 [3] ou [4]

BOX-A

/etc/dahdi/system.conf

loadzone        = br
defaultzone     = br


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

bchan=1-15,17-31
mtp2=16

bchan=32-46,48-62
dchan=47

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,ccs,hdb3,crc4
bchan=1-15,17-31
mtp2=16


# 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 Configuração do chan_dahdi é onde vamos definir o modo de operação no caso sendo pri_cpe para o cliente e pri_net para o servidor (origem).

BOX-A

/etc/asterisk/chan_dahdi.conf

[trunkgroups]

[channels]
context=teste
signalling=ss7
ss7type=itu
linkset=1
pointcode=20
adjpointcode=25
defaultdpc=25
ss7_called_nai=dynamic
ss7_calling_nai=dynamic
networkindicator=international
group=0
cicbeginswith=1
channel=1-15
cicbeginswith=17
channel=17-31
sigchan=16



BOX-B

/etc/asterisk/chan_dahdi.conf

[trunkgroups]

[channels]
context=teste
signalling=ss7
ss7type=itu
linkset=1
pointcode=25
adjpointcode=20
defaultdpc=20
ss7_called_nai=dynamic
ss7_calling_nai=dynamic
networkindicator=international
cicbeginswith=1
group=0
channel=1-15
cicbeginswith=17
channel=17-31
sigchan=16


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

Realizando o teste

Execute a validação da configuração do dahdi (dahdi_cfg -vvv) e o restart no asterisk, depois execute uma chamada, no momento que a mesma for estabelecida, você poderá ver algumas váriaveis do SS7 no canal (core show channel DAHDI/1-1)

SS7_CALLING_PARTY_CATEGORY=10
SS7_CALLREF_PC=0
SS7_CALLREF_IDENT=0
SS7_GENERIC_DIGSCHEME=0
SS7_GENERIC_DIGTYPE=0


Para maiores informações consulte a documentação do Asterisk e da libss7 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