Os endereçamentos IPs do exemplo serão:
CUCM: 172.16.10.10
CME: 192.168.20.10 (loopback 0)
GK: 172.16.10.230
1. CUCM
No CUCM precisaremos primeiramente declarar um Gatekeeper em Device > Gatekeeper. Utilizaremos o IP 172.16.10.230.
Feito isso, criaremos um Inter-Cluster Trunk (Gatekeeper Controlled) chamado gk-trunk (esse é o nome que vai aparecer no gatekeeper identificando o CUCM). Configuramos o Significant Digits em 4, e definimos a CSS apropriada para que as chamadas entrem corretamente. Amarramos o Gatekeeper criado acima, usando como Zone o nome CUCM, e tech-prefix 1#. Para este exemplo, não mexeremos muito com os tech-prefix... isso fica para assunto num próximo post.
Bom, agora é só criarmos uma Route Pattern 2XXX apontando para o gk-trunk.
2. CME
No CME precisaremos configurar a interface para que ela se registre no Gatekeeper. Então vamos aplicar os comandos abaixo:
interface loopback 0
ip address 192.168.20.10 255.255.255.0
h323-gateway voip interface
h323-gateway voip id CME ipaddr 172.16.10.230 1719
h323-gateway voip h323-id CME
h323-gateway voip tech-prefix 1#ip address 192.168.20.10 255.255.255.0
h323-gateway voip interface
h323-gateway voip id CME ipaddr 172.16.10.230 1719
h323-gateway voip h323-id CME
Pronto, agora que o CME está configurado para se registrar no GK, temos que criar as dial-peers. Bem, precisamos de uma dial-peer de entrada (para as chamadas que chegam do GK) e uma de saída (para as chamadas que vão para o CUCM através do GK). Poderíamos criar 2 dial-peers separadas, para por exemplo, manipular os codecs diferentemente em uma situação e outra. Aqui no exemplo vamos usar tudo G.711 para evitar o uso de transcodes, portanto vou criar tudo em uma única dial-peer:
dial-peer voice 1 voip
incoming called-number . ! -- Entrada
destination-pattern 1... ! -- Saída
session target ras ! -- Aponta a saída para o GK
codec g711ulaw ! -- Lembre-se que o default é G.729
no vad ! -- "vad is bad"
3. CUBE/Gatekeeper
E agora o mais importante: o GK. Primeiramente vamos configurar a interface FastEthernet dele para que o CUBE se registre no Gatekeeper. Sim, ele vai se registrar nele mesmo, mas lembre-se de que devemos encarar os dois como entidades separadas.
interface FastEthernet1/0
ip address 172.16.10.230 255.255.255.0
h323-gateway voip interface
h323-gateway voip id CUBE ipaddr 172.16.10.230 1719
h323-gateway voip h323-id CUBE
Feito isso, vamos configurar o gatekeeper em si:
gatekeeper
zone local CUBE ngk.com
zone local CME ngk.com outvia CUBE ! -- Depois explico o
zone local CUCM ngk.com outvia CUBE ! -- invia e outvia
zone prefix CUCM 1...
zone prefix CME 2...
gw-type-prefix 1#* default-technology
no shutdown
Agora as dial-peers de entrada e saída, que mais uma vez juntei em uma só. Obs: Se você não criar a dial-peer, o CUBE não registra.
dial-peer voice 1 voip
destination-pattern [12]...
session target ras
incoming called-number .
codec g711ulaw
Bom, agora é só dar comando gateway que você vai ver tudo registrado no gatekeeper:
CUBE#sh gatekeeper endpoints
GATEKEEPER ENDPOINT REGISTRATION
================================
CallSignalAddr Port RASSignalAddr Port Zone Name Type Flags
--------------- ----- --------------- ----- --------- ---- -----
172.16.10.10 1720 172.16.10.10 32793 CUCM VOIP-GW
H323-ID: gk-trunk_1
Voice Capacity Max.= Avail.= Current.= 0
192.168.20.10 1720 192.168.20.10 61476 CME H323-GW
H323-ID: CME
Voice Capacity Max.= Avail.= Current.= 0
172.16.10.230 1720 172.16.10.230 57128 CUBE H323-GW
H323-ID: CUBE
Voice Capacity Max.= Avail.= Current.= 0
Total number of active registrations = 3
GATEKEEPER ENDPOINT REGISTRATION
================================
CallSignalAddr Port RASSignalAddr Port Zone Name Type Flags
--------------- ----- --------------- ----- --------- ---- -----
172.16.10.10 1720 172.16.10.10 32793 CUCM VOIP-GW
H323-ID: gk-trunk_1
Voice Capacity Max.= Avail.= Current.= 0
192.168.20.10 1720 192.168.20.10 61476 CME H323-GW
H323-ID: CME
Voice Capacity Max.= Avail.= Current.= 0
172.16.10.230 1720 172.16.10.230 57128 CUBE H323-GW
H323-ID: CUBE
Voice Capacity Max.= Avail.= Current.= 0
Total number of active registrations = 3
Antes de fazermos os testes, recomendo colocarmos esses comandos no CME e no GK:
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
O h323 to h323 é fundamental! Os demais é só se você tiver algum telefone SIP registrado.
Agora sim, hora de testar!
Do jeito que configuramos, tanto no sentido CUCM >> CME quanto no sentido CME >> CUCM, o CUBE será utilizado. Isso por causa daqueles comandos outvia que colocamos ao declarar as Zones. Daqui a pouco vou explicar melhor sobre esse comando. Mas veja que quando fizermos uma chamada do CUCM para o CME, o seguinte output será mostrado:
CUBE#sh gatekeeper calls
Total number of active calls = 2.
GATEKEEPER CALL INFO
====================
LocalCallID Age(secs) BW
33-44 10 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: gk-trunk_1 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.10 1720 172.16.10.10 32793
Endpt(s): Alias E.164Addr
dst EP: CUBE 2002
CallSignalAddr Port RASSignalAddr Port
172.16.10.230 1720 172.16.10.230 57128
LocalCallID Age(secs) BW
34-44 10 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: CUBE 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.230 1720 172.16.10.230 57128
Endpt(s): Alias E.164Addr
dst EP: CME 2002
CallSignalAddr Port RASSignalAddr Port
192.168.20.10 1720 192.168.20.10 61476
Total number of active calls = 2.
GATEKEEPER CALL INFO
====================
LocalCallID Age(secs) BW
33-44 10 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: gk-trunk_1 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.10 1720 172.16.10.10 32793
Endpt(s): Alias E.164Addr
dst EP: CUBE 2002
CallSignalAddr Port RASSignalAddr Port
172.16.10.230 1720 172.16.10.230 57128
LocalCallID Age(secs) BW
34-44 10 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: CUBE 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.230 1720 172.16.10.230 57128
Endpt(s): Alias E.164Addr
dst EP: CME 2002
CallSignalAddr Port RASSignalAddr Port
192.168.20.10 1720 192.168.20.10 61476
Repare que essa é apenas 1 chamada, porém o CUBE exibe como se fosse duas! Uma do CUCM (gk-trunk) para o CUBE e outra do CUBE para o CME. Se fizessemos a chamada do CME para o CUCM, o output seria similar.
Legal, mas por que isso? É que quando declaramos as zones, colocamos o comando outvia CUBE na frente. O que esse comando faz é instruir o GK a enviar a chamada para a zone CUBE quando ela sair do GK. Existe duas formas de configurarmos isso, uma é dessa forma com o comando outvia e outra é com o comando invia.
O outvia, como eu disse, é quando a chamada sai do GK. E o invia, por sua vez, é quando a chamada entra no GK. Poderiamos ter sido orientados a utilizar o CUBE apenas nas chamadas do CUCM para o CME, por exemplo. Nesse caso, o fluxo seria assim: CUCM >> GK >> CME, certo? Então, poderíamos configurar isso aplicando o invia CUBE na zone CUCM ou aplicando o outvia CUBE na zone CME. Funcionaria das duas formas... só que o invia CUBE no CUCM forçaria o uso do CUBE para tooodas as chamadas que chegassem no GK pela zone CUCM, assim como o comando outvia CUBE na zone CME aplicaria o CUBE para tooodas as chamadas que saíssem para o CME.
Se aplicassemos uma dessas configurações, o nosso gatekeeper ficaria assim, por exemplo:
gatekeeper
zone local CUBE ngk.com
zone local CME ngk.com
zone local CUCM ngk.com invia CUBE
zone prefix CUCM 1...
zone prefix CME 2...
gw-type-prefix 1#* default-technology
no shutdown
Portanto nessa situação, o CUBE seria utilizado apenas nas chamadas que entrassem no GK pelo CUCM. Logo, apenas nas chamadas CUCM >> GK >> CME. Se tivessemos uma outra zone CME2, por exemplo, as chamadas para ela também utilizariam o CUBE. O output do show gatekeeper calls seria o mesmo que o mostrado acima.
Agora, nessa situação, quando fizermos uma chamada do CME para o CUCM, o CUBE não será chamado, e a ligação vai passar direto, veja:
CUBE#sh gatekeeper calls
Total number of active calls = 1.
GATEKEEPER CALL INFO
====================
LocalCallID Age(secs) BW
37-46133 4 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: CME 2002
CallSignalAddr Port RASSignalAddr Port
192.168.20.10 1720 192.168.20.10 61476
Endpt(s): Alias E.164Addr
dst EP: gk-trunk_1 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.10 1720 172.16.10.10 32793
GATEKEEPER CALL INFO
====================
LocalCallID Age(secs) BW
37-46133 4 128(Kbps)
Endpt(s): Alias E.164Addr
src EP: CME 2002
CallSignalAddr Port RASSignalAddr Port
192.168.20.10 1720 192.168.20.10 61476
Endpt(s): Alias E.164Addr
dst EP: gk-trunk_1 1001
CallSignalAddr Port RASSignalAddr Port
172.16.10.10 1720 172.16.10.10 32793
E com isso termino a explicação sobre CUBE. Recomendo fortemente que faça isso em um lab, que o entendimento fica bem mais fácil! :)
E recomendo também esse artigo! O cara é foda... e explica só um pouquinho melhor que eu! hauhauhua!
Nenhum comentário:
Postar um comentário