O Cisco Unified Border Element (CUBE) facilita o mapeamento de números chamados E.164 para URIs (Uniform Resource Identifiers — Identificadores de Recursos Uniformes) do SIP (Session Initiation Protocol). A tecnologia SIP ENUM permite que a parte de telefonia tradicional da rede (usando a numeração E.164 para endereçar os destinos) funcione com a parte de telefonia SIP da rede, geralmente usando URIs SIP.
Na rede PSTN (Public Switched Telephone Network), se um usuário final discar para uma parte chamada E.164, o número poderá ser convertido por um gateway ENUM na URI SIP correspondente. Esse URI SIP é usado para pesquisar o Domain Name System (DNS) Naming Authority Pointer (NAPTR) Resource Records (RR). O NAPTR RR (conforme definido no RFC 2915) descreve como a chamada deve ser encaminhada ou encerrada e registra informações, como endereços de e-mail, um número de fax, um site pessoal, um número de voz sobre IP (VoIP), números de telefone celular, sistemas de correio de voz, endereços de telefonia IP e páginas da Web.
Como alternativa, quando a parte chamadora é um endpoint VoIP e disca um número E.164, o agente de usuário SIP (UA) da origem o converte em um URI SIP para ser usado para pesquisar o DNS do gateway ENUM e buscar o RR NAPTR.
Certifique-se de atender a estes requisitos antes de tentar esta configuração:
Conhecimento básico de como configurar e usar o Cisco IOS® Voice
Conhecimento básico de como configurar e usar o Cisco Unified Border Element (CUBE)
As informações neste documento são baseadas no Cisco Unified Border Element release em um ISR que usa o Cisco IOS versão 12.4T.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
O exemplo a seguir mostra um RR NAPTR típico e detalhes do campo.
Campo Domínio.
Campo de classe: "IN" = Internet.
Tipo de RR (registro do recurso): NAPTR = 35.
Pedido: quanto menor o valor, maior a precedência.
Preferência de NAPTR RR com pedido igual.
Campo Sinalizador: Um flag "U" significa que a próxima etapa não é uma pesquisa de DNS, mas que a saída do campo Regexp é um URI. Um sinalizador "A" significa que a próxima etapa é uma pesquisa de endereço. Um sinalizador "S" significa que a próxima etapa é uma pesquisa de registro SRV.
Campo de serviço: esse campo indica qual protocolo e serviço são usados. A sintaxe "sip+E2U" significa que o protocolo é SIP e E2U significa E.164 para mapeamento URI (conforme RFC 2916). Os gateways do Cisco IOS não suportam "E2U+sip" (Tipo de serviço RFC 3761).
Campo Regexp: esse campo consiste em informações de correspondência e substituição.
A descrição detalhada (por RFC 2916) dos campos-chave no RR NAPTR é descrita aqui:
Campo 4—O campo do pedido especifica a ordem na qual os registros DEVEM ser processados quando vários registros NAPTR forem retornados em resposta a uma única consulta.
Campo 5—O campo de preferência especifica a ordem na qual os registros DEVEM ser processados quando vários registros NAPTR tiverem o mesmo valor de "pedido".
Campo 6—O campo flag contém modificadores que afetam o que acontece na próxima pesquisa de DNS, normalmente para otimizar o processo.
Campo 7— O campo de serviço especifica o protocolo de resolução e os serviços de resolução que estarão disponíveis se a regexp ou os campos de substituição forem aplicados.
Campo 8—O campo regexp é um dos dois campos usados para as regras de regravação e é o conceito central do registro NAPTR.
Campo 8—O campo de substituição é o outro campo que pode ser usado para a regra de regravação.
Nesta seção, você encontrará informações para configurar os recursos descritos neste documento.
Nota: Use a Command Lookup Tool (somente clientes registrados) para obter mais informações sobre os comandos usados nesta seção.
Esta imagem mostra uma sequência ENUM típica em um CUBE configurado para um serviço SIP-SIP:
Este diagrama mostra a sequência de eventos que ocorrem na configuração ENUM descrita neste documento.
O usuário disca 901189.
A chamada corresponde ao peer de discagem de saída 300, que aponta para a tabela ENUM 3. ENUM tabela 3 regra 3 preferência 2 substitui 9011 por +1408; a string final resultante ENUM é +140889. Caracteres diferentes do número são removidos e a string resultante é 140889. Os dígitos são invertidos, os pontos são adicionados e a string é anexada com o nome da zona; a string resultante é 9.8.8.0.4.1.e164.arpa, que é um nome de domínio totalmente qualificado (FQDN).
O CUBE entra em contato com o servidor DNS para resolver o FQDN.
O servidor DNS deve ter o registro NAPTR configurado para suportar esse recurso e retorna o SIP URI sip:2000@9.13.8.100.
O CUBE faz uma chamada de saída para 2000@9.13.8.100.
O CUBE exige a configuração descrita nesta seção para processar a resolução de URI baseada em ENUM.
Este exemplo mostra como habilitar a funcionalidade do CUBE para encerrar as chamadas VoIP recebidas e reoriginá-las usando um peer de discagem VoIP de saída.
voice service voip allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip allow-connections h323 to h323
Este exemplo mostra como configurar a tabela ENUM no CUBE:
voice enum-match-table 3 rule 3 2 /^9011\(.*\)//+1408\1/e164.arpa
Este exemplo mostra como configurar os correspondentes de discagem de entrada e saída com o protocolo relevante, o tipo de DTMF e as informações de codec.
!-- Incoming dial peer dial-peer voice 1 voip incoming called-number 901189 session protocol sipv2 dtmf-relay rtp-nte codec g711ulaw ! !-- Outgoing dial peer ! dial-peer voice 2 voip destination-pattern 901189 session protocol sipv2 session target enum:3 !-- 3 denotes ENUM table number dtmf-relay rtp-nte codec g711ulaw
Este exemplo mostra como configurar o servidor DNS para retornar a URI SIP para o FQDN invertido.
$ORIGIN 9.8.8.0.4.1.e164.arpa. IN NAPTR 100 10 "u" "sip+E2U" "!^.*$!sip:2000@9.13.8.100!" .
Aqui está um exemplo de configuração que mostra como suportar ENUM no CUBE.
Configuração de exemplo |
---|
! ip name-server 9.13.8.100 !-- DNS Server having NAPTR RR ! ! ! voice service voip allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to sip supplementary-service h450.12 h323 call start slow sip no call service stop ! ! voice enum-match-table 3 !-- ENUM table to digit stripping !-- and conversion into FQDN rule 3 2 /^9011\(.*\)/ /+1408\1/ e164.arpa ! ! dial-peer voice 300 voip destination-pattern 901189 session protocol sipv2 session target enum:3 !-- Session target Pointing to an ENUM table codec g711ulaw ! dial-peer voice 400 voip destination-pattern 4000 session protocol sipv2 session target ipv4:9.13.8.88 incoming called-number 901189 codec g711ulaw |
Verifique a configuração conforme mostrado nesta seção.
IPIP-2801-5#show voice enum detail IPIP-2801-5#enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service sip+E2U flag u regexp !^.*$!sip:2000@9.13.8.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service sip+E2U flags u regexp !^.*$!sip:2000@9.13.8.100! replacement decode_naptr_record : re_string ^.*$ decode_naptr_record : re_substitution_string sip:2000@9.13.8.100 decode_naptr_record : re_flags_string U_FLAG case, stopping query new_e164_user sip:2000@9.13.8.100 contact_list : sip:2000@9.13.8.100 enum_resolve_domain: contact_list 64D79698 IPIP-2801-5>en IPIP-2801-5#show voip rtp conn VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP 1 25 26 16836 20844 9.13.8.25 9.13.8.200 2 26 25 16720 49186 9.13.8.25 9.13.8.100 Found 2 active RTP connections IPIP-2801-5#show call active voice | inc Sess SessionProtocol=sipv2 SessionTarget=9.13.8.200 SessionProtocol=sipv2 SessionTarget=3 IPIP-2801-5#
Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.
show voice enum —Para exibir as regras de uma tabela de correspondência ENUM, use o comando enum-match-table [table-num] no modo EXEC privilegiado.
debug voip enum detail — Para exibir informações do VoIP ENUM, use o comando debug voip enum no modo EXEC privilegiado.
Este exemplo de saída mostra as informações que você recebe ao executar os comandos de solução de problemas:
IPIP-2801-5#debug voip enum detail enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service sip+E2U flag u regexp !^.*$!sip:2000@9.13.8.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service sip+E2U !-- Per RFC2916 flags u regexp !^.*$!sip:2000@9.13.8.100! replacement decode_naptr_record : re_string ^.*$ decode_naptr_record : re_substitution_string sip:2000@9.13.8.100 decode_naptr_record : re_flags_string U_FLAG case, stopping query new_e164_user sip:2000@9.13.8.100 contact_list : sip:2000@9.13.8.100 enum_resolve_domain: contact_list 64D79698 TB1-IPIPGW1-3#enum_resolve_domain: match_num 901189 table_indx 3 enum_resolve_domain: rule 3 result string +140889 generate_enum_search_string : search string 9.8.8.0.4.1.e164.arpa enum_dns_query: name = 9.8.8.0.4.1.e164.arpa type = 35, ns_server = 0 order 100 pref 10 service E2U+sip flag u regexp !^.*$!sip:521000@10.1.1.100! replacement num_elem = 1 NAPTR Record : order 100 pref 10 service E2U+sip !-- Per RFC2916 flags u regexp !^.*$!sip:521000@10.1.1.100! replacement validate_service_field: NAPTR Record format Error, non-supported "service protocol" field find_enum_contact_list_i: NAPTR Record format Error, invalid "service" field TB1-IPIPGW1-3#show voice enum voice enum_match_table 3 rule 3 2 /^9011\(.*\)/ /+1408\1/ e164.arpa
Nota:Consulte Informações Importantes sobre Comandos de Depuração antes de usar comandos debug.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
02-Jul-2009 |
Versão inicial |