Relatório Descritivo da Patente de Invenção para "INTERCEP- TANDO COMUNICAÇÕES DE VOZ VIA IP E OUTRAS COMUNICAÇÕES DE DADOS".
ANTECEDENTES DA INVENÇÃO 1. Campo da Invenção
A presente invenção refere-se a comunicações de dados e a métodos e aparelhos para interceptar comunicações de dados, particular- mente comunicações de dados de voz via IP, em uma rede IP.
2. Descrição da Técnica Relacionada O termo "interceptação legítima" é utilizado para descrever um
procedimento que permite que as agências de imposição de Iei executem vigilância eletrônica das telecomunicações. A interceptação legítima de tele- comunicações, particularmente, de chamadas de telefone, baseada na pre- missa de uma noção de que a agência de imposição de Iei identificou uma 15 pessoa de interesse, obteve uma autorização legal para a vigilância (por e- xemplo, um mandato judicial ou administrativo), e então, entrou em contato com o provedor de serviço de telecomunicações da pessoa, o qual será o- brigado a proporcionar para a agência de imposição de Iei uma cópia em tempo real das comunicações da pessoa. Esta cópia em tempo real pode 20 então ser utilizada pela agência de imposição de Iei para monitorar e gravar as comunicações da pessoa. Dentro da estrutura de redes de telecomunica- ções tradicionais, tal como, por exemplo, a Rede Comutada de Telefonia Pública (PSTN), ou as redes de celular, a interceptação legítima geralmente apresenta um problema puramente econômico para os provedores de servi- 25 ços, que têm que garantir que equipamento de interceptação suficiente e ligações dedicadas com as agências de imposição de Iei tenham sido dis- postos para satisfazer as exigências de interceptação legítima obrigadas pela lei. Entretanto, no contexto das comunicações de Voz através do Proto- colo Internet (VolP), em adição aos problemas econômicos mencionados »
acima, a interceptação legítima apresenta significativos desafios tecnológi- cos que frequentemente tornam compatibilidade com as exigências de inter- ceptação legítima obrigadas por Iei excessivamente difíceis.
O problema se situa na natureza da tecnologia VoIP e das redes 5 com Protocolo Internet (IP) (por exemplo, a Internet) que são subjacentes à mesma.
As redes de telecomunicações tradicionais são "orientadas por conexão" ou "comutadas por circuito". As comunicações através de tais re- des ocorrem via "circuitos" dedicados. Apesar das redes tipicamente com- 10 preenderem vários trajetos paralelos disponíveis, quando um circuito é esta- belecido, somente um dos trajetos disponíveis é captado. Em situações onde um circuito possui proteção contra falha, um trajeto redundante, também de- terminado na hora do estabelecimento do circuito, também pode ser reser- vado. Uma vez que o circuito é estabelecido, todas as comunicações percor- 15 rem de ponta a ponta. A interceptação de tais comunicações é fácil à medida que o provedor de serviço possa "grampear" o circuito em qualquer ponto na rede que esteja sob seu controle legítimo.
Em contraste com as redes comutadas por circuito, as redes ba- seadas em IP são "sem conexões" por projeto. Uma rede IP sem conexões essencialmente compreende vários dispositivos de rede (roteadores) inter- conectados que estabelecem vários trajetos a partir de qualquer ponto na rede para qualquer outro ponto. A informação que precisa percorrer uma rede IP é dividida em pequenos "pacotes", cada um compreendendo um ca- beçalho IP contendo informação de endereçamento de fonte e de destino, e indicadores de serviço; e uma carga útil do usuário. O trajeto específico que cada pacote em uma comunicação entre partes percorre através de uma rede IP não é determinado antecipadamente, tal como em uma rede comu- tada por circuito. O trajeto é definido em uma base de nó por nó (roteador por roteador), e em cada roteador que o pacote chega, ele examina os ende- reços de fonte e de destino contidos no cabeçalho IP e aplica uma série de variáveis de serviço, tal como contagem de nó (número de roteadores entre o roteador corrente e o destino), latência e largura de banda de ligações dis- poníveis, e considerações administrativas, tal como acordos interprovedores, para determinar o próximo nó para o qual o pacote será enviado. Devido às variáveis do serviço se alterarem de forma dinâmica, por exemplo, em res- posta a uma falha de uma ligação na rede, os caminhos disponíveis podem alterar de forma significativa e é impossível predizer de forma confiável o caminho ou os caminhos que os pacotes que compreendem uma comunica- ção específica irão percorrer. Adicionalmente, não é mesmo possível predi- zer a ordem na qual os pacotes irão chegar a seu destino, à medida que os diferentes trajetos escolhidos podem ter diferentes latências. Enquanto os vários trajetos disponíveis e as chegadas fora de ordem não apresentam problemas para as aplicações baseadas em IP que normalmente mantêm um rastro da seqüência do pacote para novamente montar a comunicação, os mesmos fatores apresentam problemas formidáveis para a interceptação legítima de comunicação via redes IP, particularmente, a interceptação legí- tima de chamadas VoIP.
O problema da interceptação legítima nos sistemas VoIP é adi- cionalmente exacerbado pelas tecnologias distribuídas frequentemente utili- zadas em tais sistemas. Enquanto um chamador VoIP tipicamente se comu- nica com um controlador de chamada VoIP para facilitar a conexão com o 20 receptor VolP, a comunicação real entre as partes tipicamente ocorre pelo estabelecimento de uma conexão IP direta entre as mesmas, utilizando o Protocolo de Datagrama do Usuário (UDP), para encapsular a informação de áudio em pacotes IP. Estes pacotes podem percorrer qualquer trajeto dispo- nível através da rede IP como descrito acima. Mesmo se um provedor de 25 serviço pudesse colocar um dispositivo de interceptação em cada ponto na rede através do qual um pacote do assinante poderia percorrer, de modo a proporcionar uma cópia útil da comunicação para a agência de imposição de lei, o provedor de serviço teria que remontar todos os pacotes interceptados em um único dispositivo e somente então passar o resultado para a agência 30 de imposição de lei. Em essência, o provedor de serviço teria que espelhar as funções do telefone VoIP do receptor, exceto os pacotes que compreen- dem a comunicação que teriam que ser coletados a partir de vários pontos *
na rede. Os desafios tecnológicos e os custos econômicos associados com esta proposição desse modo tem resultado na carência de capacidades sig- nificativas de interceptação legítima nos sistemas VoIP.
SUMÁRIO DA INVENÇÃO 5 De acordo com um aspecto da invenção, é proporcionado um
método para interceptar comunicações em uma rede de Protocolo Internet (IP). O método envolve manter perfis de discagem para os respectivos assi- nantes da rede IP, cada perfil de discagem incluindo um nome de usuário associado com o assinante correspondente. O método também envolve as- 10 sociar informação de interceptação com o perfil de discagem de um assinan- te cujas comunicações são para serem monitoradas, a informação de inter- ceptação incluindo informação de determinação para determinar se intercep- ta uma comunicação envolvendo o assinante, e informação de destino, iden- tificando um dispositivo para o qual as comunicações interceptadas envol- 15 vendo o assinante são para serem enviadas. O método adicionalmente en- volve, quando a informação de determinação atende aos critérios de inter- ceptação, se comunicar com uma retransmissão de mídia através da qual as comunicações envolvendo o assinante serão conduzidas ou estão sendo conduzidas para fazer com que o retransmissor de mídia envie uma cópia 20 das comunicações para um dispositivo de mediação especificado pela infor- mação de destino.
Associar a informação de interceptação pode envolver associar a informação de interceptação com o perfil de discagem quando as comuni- cações envolvendo o assinante não estão em progresso.
Associar a informação de interceptação pode envolver associar
a informação de interceptação quando comunicações envolvendo o assinan- te estão em progresso.
Associar a informação de interceptação pode envolver popular campos da informação de interceptação no perfil de discagem do assinante cujas comunicações são para serem monitoradas.
O método pode envolver produzir uma mensagem de roteamen- to para rotear comunicações envolvendo o assinante através dos componen- tes da rede IP e determinar se a informação de determinação atende aos critérios de interceptação antes de produzir a mensagem de roteamento e incluindo pelo menos alguma parte da informação de interceptação na men- sagem de roteamento quando a informação de determinação satisfaz os cri- térios de interceptação.
Determinar se a informação de determinação satisfaz os critérios de interceptação pode envolver determinar se a data e a hora correntes es- tão dentro de uma faixa especificada pela informação de determinação.
O método pode envolver identificar uma retransmissão de mídia através da qual as comunicações envolvendo o assinante serão conduzidas em resposta à mensagem de roteamento.
O método pode envolver associar anteriormente pelo menos uma retransmissão de mídia com o perfil de discagem do assinante cujas comunicações são para serem monitoradas e identificar a retransmissão de mídia pode envolver identificar a retransmissão de mídia associada anteri- ormente com o assinante cujas comunicações são para serem monitoradas.
Associar anteriormente pode envolver preencher campos da re- transmissão de mídia no perfil de discagem com uma identificação da pelo menos uma retransmissão de mídia.
A informação de interceptação pode ser associada com o perfil
de discagem do assinante cujas comunicações são para serem monitoradas, em resposta à recepção de uma mensagem de requisição de interceptação, e a mensagem de requisição de interceptação pode incluir a informação de interceptação.
O método pode envolver chamar um manipulador de mensagem
de requisição de interceptação para encontrar um perfil de discagem associ- ado com o assinante cujas comunicações são para serem monitoradas, e executar a etapa de associar a informação de interceptação com o perfil de discagem, e determinar se os critérios de interceptação são satisfeitos, e 30 identificar uma retransmissão de mídia através da qual as comunicações estão sendo conduzidas.
O método pode envolver manter registros de chamada ativa para *
comunicações em andamento, e os registros de chamada ativa podem inclu- ir um identificador do nome do usuário e um identificador da retransmissão de mídia identificando a retransmissão de mídia através da qual as comuni- cações estão sendo conduzidas e identificar uma retransmissão de mídia 5 através da qual as comunicações estão sendo conduzidas, pode envolver localizar um registro de chamada ativa associado com comunicações do as- sinante cujas comunicações são para serem monitoradas para encontrar a retransmissão de mídia associada com as comunicações.
O método pode envolver manter registros de discagem direta 10 interna (DID) associando números de telefone PST com os nomes de usuá- rios que assinam a rede IP, e encontrar um perfil de discagem associado com o assinante cujas comunicações são para serem monitoradas, pode envolver encontrar um nome de usuário e um registro de ID carregando o número PSTN associado com o assinante cujas comunicações são para se- 15 rem monitoradas. O nome do usuário pode ser utilizado para localizar um perfil de discagem associado com o nome do usuário.
De acordo com outro aspecto da invenção, é proporcionado um aparelho para interceptar comunicações em uma rede de Protocolo Internet (IP). O aparelho inclui provisões para manter perfis de discagem para os 20 respectivos assinantes da rede IP, cada perfil de discagem incluindo um no- me de usuário associado com o assinante correspondente. O aparelho tam- bém inclui provisões para associar a informação de interceptação com o per- fil de discagem de um assinante cujas comunicações são para serem moni- toradas, a informação de interceptação incluindo informação de determina- 25 ção para determinar se é para ser feita a interceptação de uma comunicação envolvendo o assinante, e informação de destino identificando um dispositivo para o qual as comunicações interceptadas envolvendo o assinante são para serem enviadas. O aparelho adicionalmente inclui provisões para a comuni- cação com uma retransmissão de mídia através da qual as comunicações 30 envolvendo o assinante serão conduzidas ou estão sendo conduzidas, para fazer com que a retransmissão de mídia envie uma cópia das comunicações para um dispositivo de mediação especificado pela informação de destino, quando a informação de determinação atende aos critérios de interceptação.
As provisões para associar a informação de interceptação po- dem ser de forma operacional configuradas para associar a informação de interceptação com o perfil de discagem quando as comunicações envolven- do o assinante não estão em andamento.
As provisões para associar a informação de interceptação po- dem ser de forma operacional configuradas para associar a informação de interceptação quando as comunicações envolvendo o assinante estão em andamento.
As provisões para associar a informação de interceptação po-
dem ser de forma operacional configuradas para preencher campos da in- formação de interceptação no perfil de discagem do assinante cujas comuni- cações são para serem monitoradas.
O aparelho adicionalmente pode incluir provisões para produzir 15 uma mensagem de roteamento para rotear comunicações envolvendo o as- sinante através dos componentes da rede IP e provisões para determinar se a informação de determinação atende aos critérios de interceptação antes de produzir a mensagem de roteamento e as provisões para produzir a men- sagem de roteamento podem ser configuradas de forma operacional para 20 incluir pelo menos alguma parte da informação de interceptação na mensa- gem de roteamento, quando a informação de determinação atende aos crité- rios de interceptação.
As provisões para determinar se a informação de determinação atende aos critérios de interceptação podem ser configuradas de forma ope- racional para determinar se uma data e hora corrente estão dentro de uma faixa especificada pela informação de determinação.
O aparelho adicionalmente pode incluir provisões para identificar uma retransmissão de mídia através da qual as comunicações envolvendo o assinante serão conduzidas em resposta à mensagem de roteamento.
O aparelho adicionalmente pode incluir provisões para associar
anteriormente pelo menos uma retransmissão de mídia com o perfil de dis- cagem do assinante cujas comunicações são para serem monitoradas e as H
provisões de roteamento podem ser configuradas de forma operacional para identificar a partir do perfil de discagem a retransmissão de mídia associada anteriormente com o assinante cujas comunicações são para serem monito- radas.
5 As provisões para associar anteriormente podem ser configura-
das de forma operacional para preencher campos da retransmissão de mídia no perfil de discagem com uma identificação da pelo menos uma retransmis- são de mídia.
As provisões para associar a informação de interceptação po- 10 dem ser configuradas de forma operacional para associar a informação de interceptação associada com o perfil de discagem do assinante cujas comu- nicações são para serem monitoradas, e resposta à receptação de uma mensagem de requisição de interceptação, onde a mensagem de requisição de interceptação compreende a informação de interceptação.
O aparelho adicionalmente pode incluir provisões para manipular
uma mensagem de requisição de interceptação. As provisões para manipu- lar uma mensagem de requisição de interceptação podem incluir provisões para encontrar.um perfil de discagem associado com o assinante cujas co- municações são para serem monitoradas. As provisões para encontrar um 20 perfil de discagem podem cooperar com as provisões para associar a infor- mação de interceptação com o perfil de discagem para fazer com que a in- formação de interceptação seja associada com o perfil de discagem. As pro- visões para manipular uma mensagem de requisição de interceptação po- dem incluir provisões para determinar se os critérios de interceptação são 25 satisfeitos e provisões para identificar uma retransmissão de mídia através da qual as comunicações estão sendo conduzidas.
O aparelho adicionalmente pode incluir provisões para manter registros de chamada ativa para comunicações em andamento, os registros de chamada ativa incluindo um identificador de nome de usuário e um identi- 30 ficador de retransmissão de mídia identificando a retransmissão de mídia através da qual as comunicações estão sendo conduzidas e as provisões para identificar uma retransmissão de mídia através da qual as comunica- ções estão sendo conduzidas podem ser configuradas de forma operável para localizar um registro de chamada ativa associado com as comunica- ções do assinante cujas comunicações são para serem monitoradas para encontrar a retransmissão de mídia associada com as comunicações.
5 O aparelho pode adicionalmente incluir provisões para manter
registros de discagem direta interna (DID) associando números de telefone PST com os nomes de usuário de usuários assinando a rede IP, e as provi- sões para encontrar um perfil de discagem associado com o assinante cujas comunicações são para serem monitoradas podem ser de forma operacional 10 configuradas para encontrar um nome de usuário em um registro DID carre- gando um número PSTN associado com o assinante cujas comunicações são para serem monitoradas e utilizar o nome do usuário para localizar um perfil de discagem associado com o nome do usuário.
Por empregar uma media replay, todas as comunicações VoIP percorrem um ponto no sistema VoIP que está sobre controle de um prove- dor e no qual as comunicações podem ser copiadas em tempo real para um dispositivo de mediação que passa a comunicação interceptada para uma agência de imposição de lei.
Por manter perfis de discagem para os respectivos assinantes e associar a informação de interceptação do tipo descrito, com os perfis de discagem de assinantes cujas comunicações são para serem monitoradas, o perfil de discagem pode servir como uma fonte de informação de determina- ção para determinar se as comunicações envolvendo o assinante serão ou não monitoradas e para proporcionar informação de destino para especificar para onde a cópia das comunicações é para ser enviada. O uso do perfil de discagem desta maneira facilmente facilita que um dado assinante e este repositório possam ser endereçados se uma chamada estiver sendo iniciada ou estiver em andamento, desse modo simplificando os algoritmos de con- trole, porque eles podem cooperar com uma fonte comum e com o formato de dados no perfil de discagem.
Outros aspectos e características da presente invenção irão se tornar aparentes para os versados na técnica quando da inspeção da descri- ção seguinte de concretizações específicas da invenção em conjunto com as figuras acompanhantes.
BREVE DESCRICÃO DOS DESENHOS
Nos desenhos, os quais ilustram concretizações da invenção:
A Figura 1 é um diagrama de blocos de um sistema de acordo
com uma primeira concretização da invenção;
A Figura 2 é um diagrama de blocos de um telefone VoIP do chamador de acordo com uma primeira concretização da invenção;
A Figura 3 é uma representação esquemática de uma mensa- gem de convite SIP transmitida entre o telefone do chamador e um controla- dor de chamada (CC) apresentado na Figura 1;
A Figura 4 é um diagrama de blocos do controlador de chamada apresentado na Figura 1;
A Figura 5 é um fluxograma de um processo executado pelo controlador de chamada apresentado na Figura 1;
A Figura 6 é uma representação esquemática de uma mensa- gem de requisição do controlador de roteamento (RC) produzida pelo contro- lador de chamada apresentado na Figura 1;
A Figura 7 é um diagrama de blocos de um circuito do processa- dor do controlador de roteamento (RC) do sistema apresentado na Figura 1;
As Figuras 8A até 8D são fluxogramas de um manipulador de mensagem de Requisição RC executados pelo circuito do processador RC apresentado na Figura 7;
A Figura 9 é uma representação tabular de um perfil de disca- gem armazenado em uma base de dados acessível pelo RC apresentado na Figura 1;
A Figura 10 é uma representação tabular de um perfil de disca- gem para um assinante de Vancouver;
A Figura 11 é uma representação tabular de um perfil de disca- gem para um assinante de Calgary;
A Figura 12 é uma representação tabular de um perfil de diálogo para um assinante de Londres; A Figura 13 é uma representação tabular de um registro de tabe- la de banco de discagem direta interna (DID) armazenado na base de dados apresentada na Figura 1;
A Figura 14 é uma representação tabular de um registro de tabe- Ia de banco de ID ilustrativo para o assinante de Londres, referenciado na Figura 12;
A Figura 15 é uma representação tabular de uma mensagem de roteamento transmitida a partir do controlador de roteamento para o contro- lador de chamada apresentado na Figura 1;
A Figura 16 é uma representação tabular de uma memória tem-
porária de mensagem de roteamento mantendo uma mensagem de rotea- mento para rotear uma chamada para o receptor de Londres referenciado na Figura 12;
A Figura 16A é uma representação tabular de uma memória temporária de mensagem de roteamento mantendo uma mensagem para rotear uma chamada para o receptor de Londres e para uma agência de im- posição de Iei para o propósito de interceptação legítima;
A Figura 17 é uma representação tabular de um prefixo para o registro de tabela de supernó armazenado na base de dados apresentada na Figurai;
A Figura 18 é uma representação tabular de um prefixo para o registro de tabela de supernó que seria utilizado para o receptor de Calgary, referenciado na Figura 11;
A Figura 19 é uma representação tabular de um registro de lista mestre armazenada em uma tabela de lista mestre na base de dados apre- sentada na Figura 1;
A Figura 20 é uma representação tabular de um registro de lista mestre preenchido ilustrativo;
A Figura 21 é uma representação tabular de um registro de lista de fornecedores armazenado na base de dados apresentada na Figura 1;
A Figura 22 é uma representação tabular de um registro especí- fico da lista de fornecedores para um primeiro fornecedor; A Figura 23 é uma representação tabular de um registro especí- fico da lista de fornecedores para um segundo fornecedor;
A Figura 24 é uma representação tabular de um registro especí- fico da lista de fornecedores para um terceiro fornecedor;
A Figura 25 é uma representação tabular de uma mensagem de
roteamento, mantida em uma memória temporária de mensagem de rotea- mento, identificando para o controlador de roteamento vários fornecedores possíveis que podem transportar a chamada;
A Figura 25A é uma representação tabular de uma mensagem de roteamento mantida em uma memória temporária de mensagem de rote- amento, com campos de interceptação legítima anexos;
A Figura 26 é uma representação tabular de um registro da tabe- la de bloco de chamada;
A Figura 27 é uma representação tabular de um registro de tabe- Ia de bloco de chamada para o receptor de Calgary;
A Figura 28 é uma representação tabular de um registro de tabe- la de envio de chamada;
A Figura 29 é uma representação tabular de um registro ilustrati- vo da tabela de envio de chamada específico para o receptor de Calgary;
A Figura 30 é uma representação tabular de um registro da tabe-
la de correio de voz especificando parâmetros de correio de voz para permi- tir ao chamador deixar uma mensagem de correio de voz para o receptor;
A Figura 31 é uma representação tabular de um registro ilustrati- vo da tabela de correio de voz para o receptor de Calgary;
A Figura 32 é uma representação tabular de uma mensagem de
roteamento ilustrativa, mantida em uma memória temporária de mensagem de roteamento, indicando números de envio de chamada e um identificador de servidor de correio de voz;
A Figura 32A é uma representação tabular de uma mensagem de roteamento ilustrativa, mantida em uma memória de mensagem de rote- amento, indicando números de envio de chamada e um identificador de ser- vidor de correio de voz com campos de interceptação legítima do chamador anexos;
A Figura 32B é uma representação tabular de uma mensagem de roteamento ilustrativa, mantida em uma memória de mensagem de rote- amento, indicando números de envio de chamada e um identificador de ser- vidor de correio de voz com campos de interceptação legítima do chamador e do receptor, anexos;
A Figura 33 é um fluxograma de um processo do manipulador de mensagem de roteamento executado pelo controlador de chamada;
A Figura 34 é uma representação esquemática de mensagens trocadas durante a execução do processo para estabelecer caminhos de áudio entre telefones e uma retransmissão de mídia;
A Figura 35 é uma representação tabular de um registro de chamada ativa mantido pelo controlador de chamada da Figura 1;
A Figura 36 é uma representação tabular de um registro de chamada ativa mantido pelo controlador de roteamento da Figura 1;
A Figura 37 é uma representação tabular de uma mensagem de Convite SIP transmitida a partir do controlador de chamada para o dispositi- vo de mediação;
A Figura 38 é uma representação tabular de uma mensagem SIP OK transmitida a partir do dispositivo de mediação para o controlador de chamada;
A Figura 39 é uma representação tabular de uma mensagem SIP Bye transmitida a partir de qualquer um dos telefones apresentados na Figura 1 para o controlador de chamada;
A Figura 40 é uma representação tabular de uma mensagem
SIP Bye enviada para o controlador de chamada a partir do receptor de Cal- gary;
A Figura 41 é um fluxograma de um processo executado pelo controlador de chamada para produzir uma mensagem de término RC em resposta à recepção de uma mensagem SIP Bye;
A Figura 42 é uma representação tabular de uma mensagem ilustrativa de Término de Chamada RC; A Figura 43 é uma representação tabular de uma mensagem ilustrativa de Término de Chamada RC para o receptor de Calgary;
A Figura 44 é um fluxograma de um manipulador de mensagem de requisição da Autoridade de Imposição de Lei do controlador de rotea- 5 mento executado pelo controlador de roteamento apresentado na Figura 1;
A Figura 45 é um fluxograma de um manipulador de mensagem de interceptação dentro da chamada do controlador de chamada executado pelo controlador de chamada apresentado na Figura 1;
A Figura 46 é um fluxograma de uma rotina de término de inter- ceptação dentro da chamada do controlador de roteamento executada pelo controlador de roteamento apresentado na Figura 1;
A Figura 47 é um fluxograma de um roteamento de término do manipulador de mensagem de interceptação do controlador de chamada, executado pelo controlador de chamada apresentado na Figura 1.
DESCRIÇÃO DETALHADA
Referindo-se à Figura 1, um sistema para fazer chamadas de telefone de voz via IP é geralmente apresentado como 10. O sistema inclui um primeiro supernó geralmente apresentado como 11 e um segundo su- pernó geralmente apresentado como 21. O primeiro supernó 11 está Iocali- 20 zado em uma área geográfica, tal como Vancouver BC, por exemplo, e o segundo supernó 21 é localizado em Londres, Inglaterra, por exemplo. Dife- rentes supernós podem estar localizados em diferentes regiões geográficas em todo o mundo para proporcionar serviços de telefone para assinantes nas respectivas regiões. Estes supernós podem estar em comunicação uns 25 com os outros através de ligações de alta velocidade / altas taxas de trans- missão efetiva de dados, incluindo fibra ótica, satélite, e / ou ligações por cabo, por exemplo, formando uma estrutura principal de sistema. Estes su- pernós podem alternativamente ou em adição estar em comunicação uns com os outros através de serviços de Internet convencionais. Na concretiza- 30 ção apresentada, a mídia de comunicação de dados para proporcionar as comunicações de dados entre os primeiro e segundo supernós 11 e 21, é apresentada geralmente por 23 e pode incluir ligações de dados de altíssima velocidade, por exemplo.
Na concretização apresentada, o supernó de Vancouver 11 pro- porciona serviço de telefone para uma rede geográfica compreendendo os clientes canadenses ocidentais a partir da ilha de Vancouver até Ontário, e 5 inclui um assinante de Vancouver e um assinante de Calgary. Outro supernó (não-apresentado) pode estar localizado no Canadá Oriental, para propor- cionar serviços para assinantes nesta área.
Outros supernós menores similares ao tipo apresentado também podem ser empregados dentro da área geográfica servida por um supernó, 10 para proporcionar compartilhamento de carga de chamada, por exemplo, dentro de uma região da área geográfica servida pelo supernó. Entretanto, em geral, todos os supernós são similares e possuem as propriedades des- critas abaixo em conexão com o supernó de Vancouver 11.
Nesta concretização, o supernó de Vancouver inclui um contro- Iador de chamada (CC) 14, um controlador de roteamento (RC) 16, uma ba- se de dados 18 uma retransmissão de mídia 17 e um ou mais dispositivos de mediação (MD), somente um dos quais é apresentado em 31. Os assinan- tes, tal como o assinante de Vancouver e o assinante de Calgary se comuni- cam com o supernó de Vancouver 11 utilizando seus próprios Provedores de Serviço Internet (ISPs) 13 e 19, que roteiam o tráfego de Internet a partir destes assinantes através da Internet. Para estes assinantes, o supernó de Vancouver 11 é acessível em um endereço IP predeterminado ou em um nome de domínio totalmente qualificado (FQDN), de modo que ele pode ser acessado do modo usual através do ISP de um assinante. O assinante na cidade de Vancouver utiliza um telefone 12 que é capaz de se comunicar com o supernó de Vancouver 1 utilizando mensagens do Protocolo de Início de Sessão (SIP) e o assinante de Calgary utiliza um telefone similar 15, para se comunicar com o supernó de Vancouver a partir de Calgary, AB.
Deve ser observado que através da descrição das concretiza- ções desta invenção, os endereços IP / UDP de todos os elementos, tal co- mo os telefones do chamador e do receptor, o controlador de chamada, a retransmissão de mídia, e quaisquer outros, serão assumidos como sendo *
endereços IP / UDP válidos, diretamente acessíveis via a Internet ou uma rede IP privada, por exemplo, dependendo da implementação específica do sistema. Como tal, será assumido, por exemplo, que os telefones do chama- dor e do receptor irão possuir endereços IP / UDP diretamente acessíveis 5 pelos controladores de chamada e pelas retransmissões de mídia em seus respectivos supernós, e isto não será obscurecido pela Translação de Ende- reço de Rede (NAT) ou mecanismos similares. Em outras palavras, a infor- mação IP / UDP contida nas mensagens SIP (por exemplo, a mensagem de convite SIP ou a mensagem de requisição RC que serão descritas abaixo) 10 irá corresponder aos endereços IP / UDP dos pacotes IP transportando es- tas mensagens SIP.
Será apreciado que em várias situações, os endereços IP desig- nados para os vários elementos do sistema podem estar em um espaço de endereço IP privado, e assim, não diretamente acessíveis a partir de outros 15 elementos. Adicionalmente, também será apreciado que a NAT é normal- mente utilizada para compartilhar um endereço IP "público" entre múltiplos dispositivos, por exemplo, entre PCs domésticos e telefones IP comparti- lhando uma única conexão Internet. Por exemplo, pode ser designado para um PC doméstico um endereço IP tal como 192.168.0.101 e para um telefo- 20 ne de voz via IP pode ser designado um endereço IP de 192.168.0.103. Es- tes endereços estão localizados no assim chamado espaço de endereço "não roteável" e não podem ser acessados diretamente a partir da Internet. De modo que estes dispositivos se comuniquem com outros computadores localizados na Internet, estes endereços IP têm que ser convertidos para um 25 endereço IP "público", por exemplo, 24.10.10.123, designado para o assi- nante pelo Provedor de Serviço Internet, por um dispositivo executando a NAT, tipicamente um roteador doméstico. Em adição a traduzir os endereços IP, a NAT tipicamente também traduz os números de porta UDP, por exem- plo, um caminho de áudio se originando em um telefone IP e utilizando uma 30 porta UDP 12378 em seu endereço IP privado pode ser traduzido para uma porta UDP 23465 associada com o endereço IP público do dispositivo NAT. Em outras palavras, quando um pacote se originando a partir do telefone IP acima chega em um supernó baseado na Internet, o endereço IP / UDP da fonte contido no cabeçalho do pacote IP será 24.10.10.1:23465, ao passo que a informação de endereço IP / UDP da fonte contida na mensagem SIP dentro deste pacote IP será 192.168.0.103:12378. A não correspondência 5 entre os endereços IP / UDP pode causar um problema para sistemas base- ados em SIP porque, por exemplo, um supernó irá tentar enviar mensagens para um endereço privado de um telefone - as mensagens nunca chegarão lá.
Será apreciado que vários métodos estão disponíveis para supe- 10 rar este problema. Por exemplo, um módulo de software de fonte aberta SIP NATHeIper pode funcionar no supernó para correlacionar o endereço IP / UDP público contido nos cabeçalhos dos pacotes IP chegando a partir de dispositivos SIP com endereços IP / UDP privados nas mensagens SIP con- tidas nestes pacotes. Portanto, as concretizações da invenção descritas a- 15 baixo irão funcionar, estando ou não os elementos dos sistemas localizados por trás de dispositivos NAT que obscurecem seus endereços IP / UDP re- ais.
Referindo-se à Figura 1, em uma tentativa de fazer uma chama- da pelo telefone de Vancouver 12 para o telefone de Calgary 15, por exem- pio, o telefone de Vancouver envia uma mensagem de convite SIP para o supernó de Vancouver 11 e em resposta, o controlador de chamada 14 en- via uma mensagem de Requisição RC para o controlador de roteamento 16, o qual faz várias consultas junto à base de dados 18 para produzir uma mensagem de roteamento que é enviada para o controlador de chamada 14. O controlador de chamada 14 então causa que uma ligação de comunica- ções incluindo caminhos de áudio seja estabelecida através da retransmis- são de mídia 17, a qual pode incluir o mesmo supernó de Vancouver 11, um supernó diferente ou um dispositivo de interconexão de rede fornecedor de comunicações, por exemplo, para transportar o tráfego de voz para e a partir do reeebedor ou receptor da chamada. Sujeito a certas condições serem satisfeitas, como será descrito abaixo, quando a interceptação legítima de dados é para ocorrer, os dados nos caminhos de áudio são copiados para o ϊ
dispositivo de mediação 31, o qual pode proporcionar escuta em tempo real dos dados de áudio ou gravação dos mesmos.
Telefone do Assinante
Referindo-se à Figura 2, nesta concretização, cada um dos tele- fones 12, 15, 22 e 25 inclui um circuito processador apresentado geralmente como 30, compreendendo um microprocessador 32, memória de programa 34, uma interface de entrada / saída (E / S) 36, memória de parâmetro 38 e memória temporária 40. A memória de programa 34, a interface de E / S 36, a memória de parâmetro 38 e a memória temporária 40 estão todas em co- municação com o microprocessador 32. A interface de E / S 36 possui uma entrada de discagem 42 para receber um número de telefone discado a par- tir de um teclado, por exemplo, ou a partir de uma unidade de reconhecimen- to de voz ou a partir de números de telefone pré-armazenados, armazena- dos na memória de parâmetro 38, por exemplo. Por simplicidade, uma caixa rotulada funções de discagem 44 representa qualquer dispositivo capaz de informar para o microprocessador 32 um identificador do receptor, por e- xemplo, um número de telefone do receptor.
O microprocessador 32 armazena o identificador do receptor em uma memória temporária de número discado 41. No caso do assinante de 20 Vancouver, por exemplo, o número discado pode ser 2001 1050 2222, iden- tificando o assinante de Calgary ou o número discado pode ser um número PSTN por exemplo. A interface de E / S 36 também possui uma interface de aparelho de telefone 46 para receber e produzir sinais a partir e para um a- parelho de telefone 45 que um usuário pode colocar no seu ouvido. A inter- 25 face do aparelho de telefone 46 pode incluir uma interface sem uso de fios BLUETOOTH®, uma interface com o uso de fios ou viva voz, por exemplo. O aparelho de telefone 45 atua como um ponto de terminação para um cami- nho de áudio (não-apresentado), o qual será apreciado posteriormente.
A interface de E / S 36 também possui uma interface de rede 48 com uma rede IP que pode proporcionar conexão Internet de alta velocida- de, por exemplo, e é operável para conectar o telefone com um ISP. A inter- face de rede 48 também atua como uma parte do caminho de áudio, como *
será apreciado posteriormente.
A memória de parâmetro 38 possui um campo de nome do usuá- rio 50, um campo de senha 52, um campo de endereço IP 53 e um campo de endereço de Proxy SIP 54. O campo de nome do usuário 50 é operável para manter um nome do usuário, o qual, para o assinante de Vancouver, é 2001 1050 8667. O nome do usuário é designado quando da assinatura ou registro no sistema e, nesta concretização, inclui um número com doze dígi- tos, possuindo um código de continente 61, um código de país 63 e um có- digo de concessionária 70 e um código de número único 74. O código de continente 61 é compreendido do primeiro dígito ou dígito mais à esquerda do nome do usuário nesta concretização. O código do país 63 é compreen- dido dos próximos três dígitos. O código da concessionária 70 é compreen- dido dos próximos quatro dígitos e o código de número único 74 é compre- endido dos últimos quatro dígitos. O campo de senha 52 mantém uma senha com até 512 números caracteres, neste exemplo. O campo de endereço IP 53 armazena um endereço IP e o número de porta UDP do telefone 12, o qual, para esta explicação, é 192.168.0.20:12345. O campo de endereço de Proxy SIP 54 armazena um endereço IP de um Proxy SIP que pode ser pro- porcionado para o telefone 12 através da interface de rede 48 como parte de um procedimento de registro.
A memória de programa 34 armazena blocos de códigos para direcionar o microprocessador 38 para realizar as funções do telefone, um dos quais inclui um bloco de proteção 56 que proporciona funções de prote- ção para o telefone, para impedir acesso não autorizado através da conexão 25 de rede ao microprocessador 32 e às memórias 34, 38 e 40. A memória de programa 34 também armazena códigos ID de chamada 57 para estabelecer um ID de chamada. Os códigos de ID de chamada 57 direcionam o micro- processador 32 para produzir identificadores de chamada possuindo o for- mato de uma cadeia hexadecimal e um endereço IP do telefone armazenado 30 no campo de endereço IP 53. Assim, um identificador de chamada ilustrativo para uma chamada pode ser FF10@192.168.0.20.
Geralmente, em resposta a ativar o aparelho de telefone 45 e utilizar a função de discagem 44, o microprocessador 32 produz e envia uma mensagem de convite SIP como apresentado na Figura 3, para o controlador de chamada 14 apresentado na Figura 1.
Referindo-se à Figura 3, a mensagem de convite SIP inclui um campo de identificador do chamador 60, um campo de identificador do re- ceptor 62, um campo de parâmetros de resumo 64, um campo de identifica- dor de chamada 65, um campo de endereço IP do chamador 67 e um campo de porta UDP do chamador 69. Nesta concretização, o campo de identifica- dor do chamador 60 inclui o nome do usuário 2001 1050 8667, o qual é o nome do usuário armazenado no campo de nome do usuário 50 da memória de parâmetro 38 no telefone de Vancouver 12 apresentado na Figura 2. Em adição, como um exemplo, se referindo de volta à Figura 3, o campo de i- dentificador do receptor 62 inclui o nome do usuário 2001 1050 2222 que é o número discado do assinante de Calgary armazenado na memória temporá- ria de número discado 41 apresentada na Figura 2. O campo de parâmetros de resumo 64 inclui os parâmetros de resumo e o campo de identificador de chamada 65 inclui um código compreendendo um código de prefixo gerado (FF10) e um sufixo que é o endereço IP do telefone 12 armazenado no cam- po de endereço IP 53. O campo de endereço IP do chamador 67 mantém o endereço IP designado para o telefone, nesta concretização, 192.168.0.20, e o campo de porta UDP do chamador 69 inclui um identificador de porta UDP identificando uma porta UDP para a qual os dados de áudio são para serem enviados para a recepção pelo telefone do chamador.
Controlador de Chamada Referindo-se à Figura 4, um circuito do controlador de chamada
do controlador de chamada 14 (Figura 1) é apresentado em maiores deta- lhes em 100. O circuito do controlador de chamada 100 inclui um micropro- cessador 102, a memória de programa 104, e uma interface de E / S 106. O circuito do controlador de chamada 100 pode incluir vários microprocessado- 30 res, várias memórias de programa e várias interfaces de E / S para estar apto a manipular um grande volume de chamadas. Entretanto, por simplici- dade, o circuito do controlador de chamada 100 será descrito como possuin- ι
do somente um microprocessador, a memória de programa e a interface de E / S, sendo entendido que podem existir mais.
Geralmente, a interface de E / S 106 inclui uma entrada 108 para receber mensagens, tal como a mensagem de convite SIP apresentada na Figura 3, a partir do telefone apresentado na Figura 2. A interface de E / S 106 também possui uma saída de mensagem de Requisição RC 110 para transmitir uma mensagem de Requisição RC para o controlador de rotea- mento 16 da Figura 1, uma entrada de mensagem RC 112 para receber mensagens de roteamento a partir do controlador de roteamento 16 (Figura 1), uma saída de retransmissão de mídia (MR) 114 para transmitir mensa- gens para a retransmissão de mídia (Figura 1) para avisar a retransmissão de mídia para estabelecer um caminho de áudio, e uma entrada MR 116 pa- ra receber mensagens a partir da retransmissão de mídia para a qual uma mensagem foi enviada para tentar estabelecer o caminho de áudio. A inter- face de E / S 106 adicionalmente inclui uma saída SIP 118 para transmitir mensagens SIP para o telefone 12 (Figura 1) para avisar ao telefone sobre o endereço IP da retransmissão de mídia 17 (Figura 1) que irá estabelecer o caminho de áudio. A interface de E / S 106 adicionalmente inclui a entrada do dispositivo de mediação 119 e a saída 121 para a comunicação com o dispositivo de mediação 31 (Figura 1).
Enquanto certas entradas e saídas foram apresentadas como separadas, será apreciado que algumas podem ser associadas com um úni- co endereço IP e porta TCP ou UDP. Por exemplo, as mensagens enviadas e recebidas a partir do controlador de roteamento 16 podem ser transmitidas e recebidas no mesmo endereço IP único e porta TCP ou UDP.
A memória de programa 104 do circuito do controlador de cha- mada 100 inclui blocos de código para direcionar o microprocessador 102 para realizar várias funções do controlador de chamada 14. Por exemplo, estes blocos de código incluem um primeiro bloco 120 para causar que o 30 circuito controlador de chamada 100 execute um processo SIP de requisição de convite para RC para produzir uma mensagem de Requisição RC em resposta a uma mensagem de Convite SIP recebida. Em adição, existe um bloco Manipulador de Mensagem de Roteamento 122 que causa que o cir- cuito controlador de chamada 100 empregue o dispositivo de mediação e / ou execute uma rotina de manipulação de chamada para estabelecer cami- nhos de áudio através de uma retransmissão de mídia para estabelecer a 5 chamada. A memória de programa 104 adicionalmente inclui um manipula- dor de mensagem de interceptação dentro da chamada 1450 para intercep- tar uma chamada em andamento e um manipulador de término de mensa- gem de interceptação 1520 para paralisar a interceptação de uma chamada em andamento.
Referindo-se à Figura 5, o processo SIP de Requisição de Con-
vite para RC é apresentado em maiores detalhes em 120. Ao receber uma mensagem de convite SIP do tipo apresentado na Figura 3, o bloco 132 da Figura 5 direciona o circuito do controlador de chamada da Figura 4 para autenticar o usuário operando o telefone a partir do qual a mensagem de 15 Convite SIP se originou. Isto pode ser feito, por exemplo, por solicitar ao u- suário uma senha, por enviar uma mensagem de volta para o telefone 12 que é interpretada no telefone como uma requisição por uma entrada de se- nha ou a senha pode ser automaticamente enviada para o controlador de chamada 14 a partir do telefone, em resposta à mensagem. O controlador de 20 chamada 14 pode então fazer consultas em bases de dados junto as quais ele tem acesso, para determinar se a senha do usuário corresponde ou não a uma senha armazenada na base de dados. Várias funções podem ser uti- lizadas para passar chaves de criptografia ou códigos de hash ida e volta, para garantir a transmissão segura de senhas.
Caso o processo de autenticação falhe, o circuito do controlador
de chamada 100 é direcionado para um bloco de manipulação de erro 134 que causa que mensagens sejam exibidas no telefone 12 para indicar que existiu um erro de autenticação. Se o processo de autenticação tiver suces- so, o bloco 131 direciona o circuito do controlador de chamada 100 para de- 30 terminar se o conteúdo do campo de identificador de chamador 60 da men- sagem de Convite SIP é ou não um endereço IP formatado de forma válida. Se ele for um endereço IP válido, então o bloco 133 direciona o circuito do *
controlador de chamada 100 para associar um código de tipo com a chama- da, para indicar que o tipo da chamada é um convite de terceira parte.
Se no bloco 131, o conteúdo do campo de identificador do cha- mador 60 não identificar um endereço IP, então, o bloco 135 direciona o cir- cuito do controlador de chamada 100 para associar um código de tipo com a chamada, para indicar que o tipo da chamada é uma mensagem de convite SIP habitual. Então, o bloco 136 direciona o circuito do controlador de cha- mada 100 para estabelecer um ID de chamada por designar o ID de chama- da proporcionado no campo de identificador de chamada 65 da mensagem de Convite SIP a partir do telefone 12, e no bloco 138, o circuito do controla- dor de chamada é direcionado para produzir uma mensagem de requisição RC do tipo apresentado na Figura 6, que inclui este ID de chamada. Referin- do-se novamente à Figura 5, o bloco 139 então direciona o circuito do con- trolador de chamada 100 para enviar a mensagem de Requisição RC para o controlador de roteamento 16.
Referindo-se à Figura 6, uma mensagem de Requisição RC é apresentada geralmente por 150 e inclui um campo de identificação de cha- mador 152, um campo de identificador de receptor 154, um campo de resu- mo 156, um campo de ID da chamada 158 e um campo de tipo 160. Os 20 campos de identificador de chamador, receptor, de resumo e de chamada 152, 154, 156 e 158 contêm cópias dos campos de chamador, receptor, de parâmetros de resumo e de ID de chamada 60, 62, 64 e 65, da mensagem de Convite SIP 59 apresentada na Figura 3. O campo de tipo 160 contém o código de tipo estabelecido no bloco 133 ou no bloco 135 da Figura 5 para 25 indicar se a chamada é a partir de uma terceira parte ou do assinante do sistema, respectivamente. O campo de identificador do receptor 154 pode incluir um número PSTN ou um nome do usuário do assinante do sistema, como apresentado, por exemplo.
Controlador de Roteamento Referindo-se à Figura 7, o controlador de roteamento 16 é apre-
sentado em maiores detalhes e inclui um circuito do processador do contro- lador de roteamento geralmente apresentado por 200. O circuito do proces- sador RC 200 inclui um microprocessador 202, uma memória de programa 204, uma memória de tabela 206 e uma interface de E / S 208, todos em comunicação com o processador. Podem existir vários circuitos do proces- sador (202), memórias (204), etc.
A interface de E / S 208 inclui uma porta de saída de base de
dados 210 através da qual uma requisição para a base de dados 18 (Figura 1) pode ser feita e inclui uma porta de resposta da base de dados 212 para receber uma resposta a partir da base de dados. A interface de E / S 208 adicionalmente inclui uma entrada de mensagem de Requisição RC 214 pa- 10 ra a recepção da mensagem de Requisição RC1 a partir do controlador de chamada 14 e inclui uma saída de mensagem de roteamento 216 para envi- ar uma mensagem de roteamento de volta para o controlador de chamada 14.
A memória de programa 204 inclui blocos de códigos para dire- 15 cionar o circuito do processador RC 200 para realizar várias funções do con- trolador de roteamento 16. Um destes blocos implementa um processo ma- nipulador de mensagem de Requisição RC 250 que direciona o RC para produzir uma mensagem de roteamento em resposta a uma mensagem de Requisição RC recebida, do tipo apresentado em 150 na Figura 6. Referin- 20 do-se de novo à Figura 7, a memória de programa 204 adicionalmente inclui um manipulador de mensagem de requisição de Autoridade de Imposição de Lei (LEA) 1400 e uma rotina de término de interceptação dentro da chamada 1500.
O processo manipulador de mensagem de Requisição RC 250 é apresentado em maiores detalhes nas Figuras 8A até 8D.
Manipulador de Mensagem de Requisição RC
Referindo-se à Figura 8A, o processo manipulador de mensa- gem de Requisição RC 250 começa com um primeiro bloco 252 que direcio- na o circuito do processador RC 200 (Figura 7) para armazenar o conteúdo 30 da mensagem de Requisição RC 150 (Figura 6) em memórias temporárias. Então, o bloco 254 direciona o circuito do processador RC 200 para utilizar o conteúdo do campo de identificador do chamador 152 na mensagem de Re- *
quisição RC apresentada na Figura 6, para localizar e recuperar um perfil de discagem para o chamador a partir da base de dados 18.
O controlador de roteamento mantém, na base de dados, um perfil de discagem para cada assinante do sistema. Referindo-se à Figura 9, 5 um perfil de discagem ilustrativo é geralmente apresentado por 256 e inclui campos do sistema incluindo um campo de nome do usuário 258, um campo de domínio 260, um campo de dígitos de discagem nacional (NDD) 262, um campo de IDDs (IDD) 264, um campo de código de país 266, um campo de códigos de área local 267, um campo de comprimento local mínimo do cha- 10 mador 268, um campo de comprimento local máximo do chamador 270 e um campo de revendedor 273.
O perfil de discagem ilustrativo adicionalmente inclui campos relacionados com a interceptação legítima incluindo um campo indicador de interceptação legítima (LI) 702, pelo menos um campo de dispositivo de me- 15 diação 704, pelo menos um campo de ID de mandato 706, e os campos de data / hora de início e de parada do período de interceptação 708 e 710. O campo de indicador LI 702, o campo de ID de mandato 706 e os campos de início / parada de LI 708 e 710 podem ser considerados como campos de informação de determinação, para determinar se intercepta uma comunica- 20 ção envolvendo o assinante e o campo de endereço MD1 704 pode ser con- siderado como um campo de informação de destino para identificar um dis- positivo para o qual as comunicações interceptadas envolvendo o assinante são para serem enviadas.
Para os campos do sistema (258, 260, 262, 264, 266, 267, 268, 25 270, 273) são designados valores por um operador do sistema ou são de- signados automaticamente de acordo com algoritmos predefinidos (não- apresentados) quando um usuário se registra com o sistema para se tornar um assinante. Para os campos de interceptação legítima (702, 704, 706, 708, 710) são designados valores em resposta às comunicações com um ou 30 mais dispositivos autorizados e podem ser preenchidos a qualquer tempo, independente de se as comunicações envolvendo o assinante estão ou não em andamento. Por exemplo, referindo-se de volta à Figura 1, o dispositivo de mediação 31 pode ser considerado como um dispositivo autorizado operado por uma autoridade de imposição de Iei 293. Um canal de comunicações entre o controlador de chamada 14 e o dispositivo de mediação 31 pode ser 5 estabelecido para permitir que o dispositivo de mediação se comunique com o controlador de chamada, para causar que o controlador de chamada se comunique com o controlador de roteamento 16, para encontrar um registro do assinante na base de dados 18 que esteja associado com um assinante para o qual um mandato para a interceptação legítima foi obtido. Por exem- 10 pio, uma vez que um mandato identificando um usuário e permitindo a inter- ceptação legítima das comunicações do usuário tenha sido recebido pela autoridade de imposição de Iei 293, esta autoridade pode utilizar seus pró- prios computadores para se comunicar com o dispositivo de mediação 31 para causar que o dispositivo de mediação se comunique com o controlador 15 de chamada 14 para causar que o controlador de chamada interaja com o controlador de roteamento 16 para acessar um perfil de discagem (Figura 9) para o usuário especificado no mandato e carregar os campos de intercep- tação legítima (702, 704, 706, 708, 710) com dados que estabelecem o campo de indicador de interceptação legítima 702 para "ativo", estabelecer 20 um endereço IP do dispositivo de mediação 31 no campo de endereço MD1 704, carregar o campo de ID de mandato 706 com um identificador do man- dato e carregar os campos de início e parada 708 e 710 com datas e horas de início e de parada para especificar um período durante o qual a intercep- tação legítima das comunicações do usuário identificado pode ocorrer de 25 acordo com um mandato. Assim, a informação de interceptação é associada com o perfil de discagem pelo controlador de roteamento, em resposta à in- formação que ele recebe a partir do controlador de chamada.
Vários grupos de campos de interceptação legítima do tipo apre- sentado podem ser adicionados, cada grupo sendo adicionado por um dis- positivo autorizado diferente, por exemplo, se várias agências de posição de Iei diferentes operando os mesmos ou dispositivos de mediação diferentes possuírem mandatos para monitorar as comunicações de um usuário. Alter- nativamente, o dispositivo autorizado pode incluir uma interface de transfe- rência suave operável para se comunicar com o controlador de chamada ou com o controlador de roteamento para acessar a base de dados para carre- gar os campos de interceptação legítima associados com um assinante de interesse.
Um perfil de discagem ilustrativo para o assinante de Vancouver é geralmente apresentado por 276 na Figura 10 e indica que o campo de nome do usuário inclui o nome do usuário 2001 1050 8667, o qual é o mes- mo que o conteúdo do campo de nome do usuário 50 no telefone de Van- couver 12 apresentado na Figura 2.
Referindo-se de volta à Figura 10, o campo de domínio 260 in- clui um nome de domínio como apresentado por 282, incluindo um identifi- cador de tipo de supernó 284, um identificador de código de localização 286, um identificador de provedor do sistema 288 e um identificador de domínio 15 de nível superior 290, identificando um domínio ou supernó associado com o usuário identificado pelo conteúdo do campo de nome do usuário 258.
Nesta concretização, o identificador de tipo de supernó 284 inclui o código "sp" identificando um supernó e o identificador de código de locali- zação 286 identifica o supernó como sendo em Vancouver (YVR). O identifi- cador de provedor do sistema 288 identifica a companhia fornecendo o ser- viço e o identificador de domínio de nível superior 290 identifica o domínio
com
O campo de dígito de discagem nacional (NDD) 262 nesta con- cretização inclui o dígito "1" e, em geral, inclui um dígito especificado pela 25 International Telecommunications Union - Telecommunications Standardiza- tion Sector (ITU-T) E.164 Recommendation que designa dígitos de discagem nacional para certos países. Aqui, as seqüências de numeração de acordo com este padrão podem ser consideradas como números "E. 164".
O campo de Dígito de Discagem Internacional (IDD) 264 inclui o código 011 e em geral inclui um código designado pela ITU-T, de acordo com o país ou com a localização geográfica do usuário.
O campo de código de país 266 inclui o dígito "1" e em geral in- clui um número designado pela ITU-T para representar o país no qual o usu- ário está localizado.
O campo de códigos de área local 267 inclui os números 604 e 778, e geralmente inclui uma lista de códigos de área que foram designados 5 pela ITU-T para a área geográfica na qual o assinante está localizado.
Os campos de comprimento mínimo e máximo de número local do chamador 268 e 270 mantêm o número 10 representando os comprimen- tos mínimo e máximo do número local permitido no código (códigos) de área especificado pelo conteúdo do campo de códigos de área local 267. O cam- 10 po de revendedor 273 mantém um código identificando um varejista dos ser- viços de telefone, e na concretização apresentada, o varejista é "Klondike".
Inicialmente, os campos de interceptação legítima apresentados na Figura 9 podem não estar incluídos no perfil de discagem e podem ser adicionados como descrito acima, pelo dispositivo de mediação 31, no caso 15 de um mandato ser obtido para interceptar as chamadas do usuário. Alterna- tivamente, os campos de interceptação legítima podem ser incluídos, mas preenchidos com valores nulos até que modificados por um dispositivo de mediação 31.
Um perfil de discagem do tipo apresentado em 256 na Figura 9 é produzido sempre que um usuário se registra no sistema ou concorda em se tornar um assinante do sistema. Assim, por exemplo, um usuário desejando assinar o sistema pode entrar em contato com um escritório mantido por um operador do sistema e o pessoal no escritório pode perguntar ao usuário certas questões acerca de sua localização e de preferências de serviço, em conseqüência do que tabelas podem ser utilizadas para proporcionar ao pessoal do escritório informações apropriadas a serem informadas para os campos de nome do usuário, domínio, NDD, IDD, código de país, códigos de área local e de comprimento mínimo e máximo de código local do chamador 258, 260, 262, 264, 266, 267, 268, 270, para estabelecer um perfil de disca- gem para o usuário.
Referindo-se às Figuras 11 e 12, os perfis de discagem para as- sinantes em Calgary e Londres, respectivamente, por exemplo, são apresen- tados.
Em adição a criar os perfis de discagem, opcionalmente quando um usuário se registra no sistema, um registro de discagem direta interna (DID) do tipo apresentado em 268, na Figura 13, é adicionado para uma ta- 5 bela de discagem direta interna na base de dados 18, para associar o nome do usuário com um nome do hospedeiro do supernó com o qual o usuário está associado e com um número E. 164 na rede PSTN.
Nesta concretização, os registros da tabela do banco DID inclu- em um campo de nome do usuário 281, um campo de domínio do usuário 272, e um campo DID 274, para manter o nome do usuário, o nome do hos- pedeiro do supernó, e um número E. 164, respectivamente.
Um registro da tabela do banco DID para o assinante de Londres é geralmente apresentado por 291, na Figura 14.
Em adição a criar os perfis de discagem e os registros DID 15 quando um usuário se registra no sistema, registros de bloqueio de chamada do tipo apresentado na Figura 26, registros de envio de chamada do tipo apresentado na Figura 28 e registros de correio de voz do tipo apresentado na Figura 30, podem ser armazenados na base de dados 18, quando o novo assinante é adicionado para o sistema.
Referindo-se de volta a Figura 8A, após ser direcionado no bloco
254 para recuperar um perfil de discagem para o chamador, um perfil de dis- cagem, tal como apresentado em 276 na Figura 10, é recuperado e o circuito do processador RC 200 é direcionado para executar certas verificações em relação ao identificador do receptor proporcionado pelo conteúdo do campo 25 de identificador do receptor 154 da mensagem de Requisição RC apresen- tada na Figura 6. Estas verificações são apresentadas em maiores detalhes na Figura 8B.
Referindo-se à Figura 8B, o circuito do processador RC 200 é direcionado para um primeiro bloco 257 que causa que o mesmo determine se um padrão de dígito do identificador do receptor 154 proporcionado na mensagem de Requisição RC inclui um padrão que corresponda ao conteú- do do campo IDD 264 no perfil de discagem do chamador 276 apresentado na Figura 10. Se corresponder, então, o bloco 259 direciona o circuito do processador RC 200 para estabelecer um identificador de código de tipo de chamada (não-apresentado) para indicar que a chamada é uma chamada de longa distância, por exemplo, a partir do assinante de Vancouver para o as- sinante de Londres, e o bloco 261 direciona o circuito do processador RC 200 para produzir um identificador de receptor reformatado por reformatar o identificador do receptor para um formato alvo predeterminado. Nesta con- cretização, isto é feito pela remoção do padrão de dígitos correspondendo ao conteúdo do campo IDD 264 do perfil de discagem do chamador 276 para efetivamente encurtar o número. Então, o bloco 263 direciona o circuito do processador RC 200 para determinar se o identificador de receptor reforma- tado atende ou não aos critérios estabelecendo o mesmo como um número de acordo com a Recomendação E. 164 estabelecida pela ITU-T e se o com- primento não atender a estes critérios, o bloco 265 direciona o circuito do processador RC 200 para enviar de volta para o controlador de chamada 14 uma mensagem indicando que o comprimento do identificador de chamada não está correto. Então, o processo 250 é terminado. No controlador de chamada 14, rotinas podem responder à mensagem de comprimento incor- reto por transmitir uma mensagem de volta para o telefone 12 para indicar que o número inválido foi discado.
Ainda se referindo à Figura 8B, se o comprimento do identifica- dor de receptor reformatado atender aos critérios expostos no bloco 263, o bloco 269 direciona o circuito do processador RC 200 para determinar se o identificador do receptor reformatado está ou não associado com um registro 25 da tabela de banco de discagem direta interna (DID), tal como apresentado em 268 na Figura 13.
Uma entrada de registro de tabela de banco DID ilustrativa para o receptor de Londres é apresentada geralmente por 291 na Figura 14. O campo de nome do usuário 281 e o campo de domínio do usuário 272 são 30 como especificados nos campos de nome do usuário e de domínio do usuá- rio 258 e 260 do perfil de discagem 276 apresentado na Figura 12. O conte- údo do campo DID 274 inclui um número de telefone E. 164 incluindo um có- *
digo de país 283, um código de área 285, um código de central telefônica 287 e um número 289. Se o usuário possuir vários números de telefone, en- tão vários registros do tipo apresentado em 291 seriam incluídos na tabela de banco DID na base de dados 18, cada um possuindo o mesmo nome do 5 usuário e domínio do usuário, mas o conteúdo do campo DID 274 diferente, refletindo os números de telefones diferentes associados com este usuário.
Referindo-se de volta à Figura 8B, no bloco 269, se o circuito do processador RC 200 descobrir que o identificador do receptor reformatado produzido no bloco 261 é encontrado em um registro na tabela de banco 10 DID, então, o receptor é um assinante do sistema e o bloco 279 direciona o circuito processador RC 200 para copiar o conteúdo do campo de nome de usuário correspondente 270 para uma memória temporária de ID de receptor (não-apresentada). Assim, o circuito do processador RC 200 localiza um nome do usuário do assinante associado com o identificador do receptor re- 15 formatado. O processador é então direcionado para o bloco 275 no ponto B na Figura 8A.
Chamadas de Assinante para Assinante Entre Nós Diferentes
Referindo-se de novo à Figura 8A, o bloco 275 então direciona o circuito do processador RC 200 para determinar se o nome do usuário do assinante está ou não associado com o mesmo supernó que o do chamador. Para fazer isto, o circuito do processador RC 200 determina se o código de continente (61) do nome de usuário armazenado na memória temporária de ID de receptor é ou não o mesmo que o código de continente (61) do nome do usuário do chamador especificado pelo campo de identificador do cha- mador 152 da mensagem de Requisição RC apresentada na Figura 6. Se eles não forem os mesmos, o bloco 277 direciona o circuito do processador RC 200 para estabelecer um indicador de tipo de chamada (não- apresentado) para indicar que a chamada é uma chamada de domínio entre domínios. Então, o bloco 350 direciona o circuito do processador RC 200 para produzir uma mensagem de roteamento identificando o supernó no sis- tema com o qual o receptor está associado e para estabelecer um TTL para a chamada com o valor máximo de 99999. O supernó no sistema, com o qual o receptor está associado, é determinado pela utilização do nome de usuário de receptor armazenado na memória temporária de ID de receptor para endereçar uma tabela do supernó possuindo registros do tipo como apresentado em 270 na Figura 17.
5 Referindo-se à Figura 17, cada prefixo para o registro da tabela
de supernó 370 possui um campo de prefixo 372 e um campo de endereço de supernó 374. O campo de prefixo 372 inclui os primeiros n dígitos do i- dentificador de receptor. Neste caso, n = 1. O campo de endereço de super- nó 374 mantém um código representando o endereço IP ou um nome de 10 domínio totalmente qualificado do supernó associado com o código armaze- nado no campo de prefixo 372. Referindo-se à Figura 18, por exemplo, se o prefixo for 4, o endereço de supernó associado com este prefixo é sp.lhr.digifonica.com, identificando o supernó de Londres 21, por exemplo.
Referindo-se à Figura 15, uma mensagem de roteamento gené- rica é apresentada geralmente por 352 e inclui um campo de prefixo de for- necedor 354, um campo de delimitador 356, um campo de receptor 358, pelo menos um campo de rota 360, um campo de tempo de vida (TTL) 362 e ou- tros campos 364. O campo de prefixo de fornecedor 354 mantém um código para identificar o tráfego do fornecedor. O campo de delimitador mantém um símbolo que delimita o código de prefixo de fornecedor a partir do campo de receptor 358 e nesta concretização, o símbolo é um sinal de número (#). O campo de rota 360 mantém um nome de domínio ou um endereço IP de um dispositivo de conexão de rede ou do supernó que é para transportar a cha- mada e o campo TTL 362 mantém um valor representando o número de se- gundos durante os quais a chamada é permitida de estar ativa, baseado nos minutos disponíveis do assinante e em outros parâmetros de faturamento, por exemplo.
Referindo-se à Figura 8A e à Figura 16, neste exemplo, a men- sagem de roteamento produzida pelo circuito do processador RC 200 no bloco 350, é geralmente apresentada por 366 e inclui somente um campo de receptor 358, um campo de rota 360 e um campo TTL 362.
O campo de receptor 358 mantém o nome do usuário completo *
do receptor e o campo de rota 360, apresentado na Figura 15, contém a i- dentificação do domínio com o qual o receptor está associado, isto é, sp.lhr.digifonica.com.
Tendo produzido a mensagem de roteamento 366 como apre- sentado na Figura 16A, referindo-se de volta à Figura 8A, então, o bloco 351 direciona o circuito do processador RC 200 para verificar o perfil de disca- gem do chamador (veja a Figura 9) para determinar se o mesmo contém ou não campos de interceptação legítima (702, 704, 706, 708, 710) e se conti- ver, para determinar se a informação de determinação contida nos mesmos atende ou não aos critérios de interceptação. Os critérios de interceptação podem ser que o campo de indicador de interceptação legítima 702 (Figura 9) contenha um indicador indicando que a interceptação legítima está habili- tada, e se a data e a hora atuais estão dentro do período especificado pelo conteúdo do campo de data / hora inicial de LI 708 e pelo conteúdo do cam- po de data / hora de parada de LI 710, por exemplo. Se os critérios de inter- ceptação forem atendidos, o bloco 353 direciona o circuito do processador RC 200 para anexar os conteúdos dos campos de interceptação legítima 702, 704, 706, 708, 710, para a mensagem de roteamento produzida no blo- co 350 para produzir uma mensagem de roteamento como apresentada na Figura 16A. Geralmente, a determinação de se a informação de destino a- tende ou não aos critérios de interceptação é feita antes da produção da mensagem de roteamento de modo que quando os critérios de interceptação são atendidos, pelo menos alguma parte da informação de interceptação, nesta concretização, toda ela, possa ser incluída na mensagem de rotea- mento.
Se, no bloco 351, na Figura 8A, for determinado que não exis- tem campos de interceptação legítima associados com o perfil de discagem no chamador ou que os critérios de interceptação não são atendidos, o pro- cessador não anexa quaisquer campos de interceptação legítima para a 30 mensagem de roteamento produzida no bloco 350 na Figura 8A, e a mensa- gem de roteamento apresentada na Figura 16 é enviada para o controlador de chamada 14, como apresentado no bloco 380. Se os campos de intercep- tação legítima tiverem sido anexados, o bloco 380 direciona o circuito do processador RC 200 para enviar a mensagem de roteamento apresentada na Figura 16A para o controlador de chamada 14 (Figura 1).
Referindo-se de novo à Figura 8B, se no bloco 257, o identifica- 5 dor do receptor especificado pelo conteúdo do campo de receptor 154 da mensagem de Requisição RC apresentada na Figura 6 não começar com um IDD, o bloco 381 direciona o circuito do processador RC 200 para deter- minar se o identificador de receptor começa ou não com o mesmo código de dígito de discagem nacional que designado para o chamador. Para fazer 10 isto, o processador é direcionado para se referir ao perfil de discagem do chamador apresentado na Figura 10. Na concretização apresentada, o códi- go de NDD 262 é o dígito 1. Assim, se o identificador do receptor começar com o dígito 1, o circuito do processador RC 200 é direcionado para o bloco 382 na Figura 8B.
O bloco 382 direciona o circuito do processador RC 200 para
examinar o identificador do receptor para determinar se os dígitos seguindo ao código de NDD identificam ou não um código de área que é o mesmo que qualquer um dos códigos de área identificados no campo de códigos de área local 267 do perfil de discagem do chamador 276 apresentado na Figura 10. 20 Se não, o bloco 384 direciona o circuito do processador RC 200 para estabe- lecer uma variável de tipo de chamada (não-apresentada) para um código indicando que a chamada é um código nacional. Se os dígitos identificam um código de área que é o mesmo que um código de área local associado com o chamador, o bloco 386 direciona o circuito do processador RC 200 para 25 estabelecer a variável de tipo de chamada para indicar que o tipo de chama- da é uma chamada local, estilo nacional. Após executar os blocos 384 ou 386, o bloco 388 direciona o circuito do processador RC 200 para formatar o número discado por remover o dígito de discagem nacional (NDD) e acres- centando no começo um código de país do chamador identificado pelo cam- 30 po de código de país 266 do perfil de discagem do chamador apresentado na Figura 10. O circuito do processador RC 200 é então direcionado para o bloco 263 para executar os processos descritos acima começando no bloco 263.
Se no bloco 381, o identificador do receptor n>ão começar com o código NDD1 o bloco 390 direciona o circuito do processador RC 200 para determinar se o identificador do receptor começa com os dígitos que identifi- 5 cam o mesmo código de área que o do chamador. Novamente, a referência para isto é o perfil do chamador apresentado na Figura 1Ό, e o circuito do processador RC 200 determina se os primeiros poucos dígitos no identifica- dor do receptor identificam ou não um código de área identificado pelo cam- po de código de área local 267 do perfil do chamador. Se (identificarem, en- 10 tão, o bloco 392 direciona o circuito do processador RC 200 para estabele- cer o tipo de chamada para um código indicando que a chamada é uma chamada local e o bloco 394 direciona o circuito do processador RC 200 pa- ra acrescentar no começo o código de país do chamador para o identificador do receptor, o código de país do chamador sendo determinado a partir do 15 campo de código de país 266 no perfil do chamador apresentado na Figura 10. O circuito do processador RC 200 é então direcionado para o bloco 263 para processar como descrito acima, começando no bloco 263.
Se no bloco 390, o identificador do receptor râo possuir o mes- mo código de área que o chamador, o bloco 396 direciona o circuito do pro- cessador RC 200 para determinar se o identificador do receptor possui o mesmo número de dígitos que o número de dígitos indicado no campo de comprimento mínimo de número local do chamador 268 o»u no campo de comprimento máximo de número local do chamador 270 do [perfil do chama- dor apresentado na Figura 10. Se possuir, então, o blocc» 398 direciona o circuito do processador RC 200 para estabelecer o tipo de chamada para local e o bloco 400 direciona o processador para colocar no início do identifi- cador do receptor o código de país do chamador, como indíitcado pelo campo de código de país 266 do perfil do chamador apresentado na Figura 10 se- guido pelo código de área do chamador, como indicado pelo campo de códi- go de área local 267 do perfil do chamador apresentado na Figura 10. O cir- cuito do processador RC 200 é então direcionado para o t>bc:o 263 para pro- cessamento adicional, como descrito acima, começando mo b'loco 263. Se no bloco 396, o identificador do receptor possuir um compri- mento que não corresponde ao comprimento especificado pelos conteúdos do campo de comprimento mínimo de número local do chamador 268 ou pelo campo de comprimento máximo de número local do chamador 270, o 5 bloco 402 direciona o circuito do processador RC para determinar se o iden- tificador do receptor identifica ou não um nome de usuário válido. Para fazer isto, o circuito do processador RC 200 pesquisa através de uma base de dados de perfis de discagem, para encontrar um perfil de discagem possuin- do o conteúdo do campo de nome de usuário 258 que corresponda ao identi- 10 ficador de receptor. Se nenhuma correspondência for encontrada, o bloco 404 direciona o circuito do processador RC 200 para enviar uma mensagem de erro de volta para o controlador de chamada (14). Se no bloco 402, um perfil de discagem possuindo um campo de nome de usuário 258 que cor- responda ao identificador de receptor for encontrado, o bloco 406 direciona o 15 circuito do processador RC 200 para estabelecer o tipo de chamada para um código indicando que a chamada é uma chamada de rede e o processador é direcionado para o bloco 275 da Figura 8A, para continuar o processamento do processo manipulador de mensagem RC 250.
A partir da Figura 8B, será apreciado que existem certos grupos de blocos de códigos que direcionam o circuito do processador RC 200 para determinar se o identificador do receptor possui certos aspectos, tal como um código de IDD, um código de NDD, um código de área e um comprimen- to que atenda a certos critérios, e para reformatar o identificador do receptor à medida que necessário para um formato alvo predeterminado, incluindo somente um código de país, o código de área, e um número de telefone normal, por exemplo, para causar que o identificador do receptor seja com- patível com o padrão do plano de números E. 164, nesta concretização. Isto permite que o circuito do processador RC 200 direcionado pelo bloco 279 possua um formato consistente de identificadores de receptor para uso em pesquisar através dos registros da tabela de banco DID do tipo apresentado na Figura 13 para determinar como rotear as chamadas para o assinante para as chamadas de assinante no mesmo sistema. *
Chamadas de Assinante para Não Assinante
Nem todas as chamadas serão chamadas de assinante para assinante, e isto será detectado pelo circuito do processador RC 200 quando ele executa o bloco 269 da Figura 8B, e não encontra um registro que esteja 5 associado com o receptor na tabela de banco DID. Quando isto ocorre, o circuito do processador RC 200 é direcionado para o bloco 408, o qual causa que o mesmo estabeleça o identificador do receptor igual ao identificador do receptor reformatado, isto é, o número compatível com o padrão E. 164. En- tão, o bloco 410 direciona o circuito do processador RC 200 para endereçar 10 uma lista mestra possuindo registros do tipo apresentado na Figura 19.
Cada registro da lista mestra inclui um campo de ID da lista mes- tra 500, um campo de código de discagem 502, um campo de código de país 504, um campo de número de sinal nacional 506, um campo de comprimen- to mínimo 508, um campo de comprimento máximo 510, um campo NDD 512, um campo IDD 514 e um campo de taxa de memória temporária 516.
O campo de ID de lista mestra 500 mantém um código único, tal como 1019, por exemplo, identificando uma identificação de rota (ID de rota). O campo de código de discagem 502 mantém um padrão de número prede- terminado que o circuito do processador RC 200 utiliza no bloco 410 na Fi- 20 gura 8B para encontrar o registro da lista mestra possuindo um código de discagem correspondendo aos primeiros poucos dígitos do identificador de receptor reformatado. O campo de código de país 504 mantém um número representando o código de país associado com o registro e o campo de nú- mero de sinal nacional 506 mantém um número representando o código de 25 área associado com o registro (será observado que o código de discagem é uma combinação dos conteúdos do campo de código de país 504 e do cam- po de número de sinal nacional 506). O campo de comprimento mínimo 508 mantém um número representando o número mínimo de dígitos que pode ser associado com o registro e o campo de comprimento máximo 51 mantém 30 um número representando o número máximo de dígitos em um número com o qual o registro pode ser comparado. O campo NDD 512 mantém um nú- mero representando um código de acesso utilizado para fazer uma chamada dentro do país especificado pelo conteúdo do campo de código de país 504 e o campo de IDD 514 mantém um número representando o prefixo interna- cional necessário para fazer uma chamada a partir do país indicado pelo código de país.
5 Assim, por exemplo, um registro da lista mestra pode possuir um
formato como o apresentado na Figura 20, com os conteúdos de campo ilus- trativos como apresentado.
Referindo-se de novo à Figura 8B, utilizar as partes do código de país e do código de área do identificador de receptor reformatado que foi 10 formatado para compatibilidade com o padrão E. 164, o bloco 410 direciona o circuito do processador RC 200 para encontrar um registro da lista mestra, tal como o registro apresentado na Figura 20 possuindo um código de disca- gem que corresponda ao código de país e ao código de área do identificador do receptor. Assim, neste exemplo, o circuito do processador RC 200 encon- 15 traria um registro da lista mestra possuindo um campo de ID com um núme- ro 1019. Este número também pode ser referido como um ID de rota. Assim, um número de ID de rota é encontrado no registro da lista mestra associado com um padrão de número predeterminado no identificador do receptor re- formatado.
Após a execução do bloco 410 na Figura 8B, o processo 250
continua como apresentado na Figura 8D. Referindo-se à Figura 8D, o bloco 412 direciona o circuito do processador RC 200 para utilizar o número de ID de rota para localizar pelo menos um registro de fornecedor identificando um fornecedor operável para fornecer uma ligação de comunicações para esta 25 rota. Para fazer isto, o bloco 412 direciona o circuito do processador RC 200 para pesquisar uma tabela de IDs de fornecedor possuindo registros do tipo apresentado na Figura 21.
Referindo-se à Figura 21, os registros da lista de fornecedores inclui um campo de ID de fornecedor 540, um campo de ID de rota 542, um campo de prefixo opcional 544, um campo de identificador de rota 546, um campo de regravação de NDD / IDD 548 e um campo de taxa 550. O campo de ID de fornecedor 540 mantém um código identificando o nome do fome- cedor e o campo de ID de rota 542 mantém um código para associar o regis- tro do fornecedor com uma rota, e por conseqüência, com um registro da lista mestra. O campo de prefixo 544 mantém uma cadeia utilizada para i- dentificar o tráfego do fornecedor, e o campo de identificador de rota 546 5 mantém um endereço IP de um dispositivo de interconexão de rede operado pelo fornecedor indicado pelo campo de ID de fornecedor 540. O campo de regravação de NDD / IDD 548 mantém um código e o campo de taxa 550 mantém um código indicando o custo por segundo para o operador do sis- tema utilizar a rota proporcionada pelo dispositivo de interconexão de rede 10 especificado pelo conteúdo do campo de identificador de rota 546. Registros de fornecedor ilustrativos são apresentados nas Figuras 22, 23 e 24, para os fornecedores apresentados na Figura 1 que podem incluir Telus, Shaw e Sprint, respectivamente, por exemplo.
Referindo-se de volta à Figura 8D, no bloco 412, o circuito do processador RC 200 encontra todos os registros de fornecedor que identifi- cam o ID de rota encontrado no bloco 410 da Figura 8B.
Referindo-se de novo à Figura 8D, o bloco 560 direciona o circui- to do processador RC 200 para começar a produzir mensagens de rotea- mento do tipo apresentado na Figura 16. Para fazer isto, o circuito do pro- 20 cessador RC 200 carrega uma memória temporária de mensagem de rotea- mento, como apresentado na Figura 25, com um prefixo de fornecedor do fornecedor menos oneroso onde o fornecedor menos oneroso é determinado a partir dos campos de taxa 550 dos registros associados com os respecti- vos fornecedores.
Referindo-se às Figuras 22 até 24, na concretização apresenta-
da, o fornecedor "Telus" possui o número mais baixo no campo de taxa 550 e portanto, o prefixo 4973 associado com este fornecedor é carregado na memória temporária de mensagem de roteamento apresentada primeiro na Figura 25. O prefixo 4973 é então delimitado pelo sinal de número e o identi- 30 ficador de receptor reformatado é a seguir carregado na memória temporária de mensagem de roteamento. Então, o conteúdo do campo de identificador de rota 546 do registro associado com o fornecedor Telus é adicionado para a mensagem após um delimitador com o sinal @ e então, o bloco 564 na Figura 8D, direciona um circuito do processador RC 200 para obter um valor TTL, o qual, nesta concretização, pode ser 3600 segundos, por exemplo. Então, o bloco 566 direciona o circuito do processador RC 200 para carregar 5 este valor TTL na memória temporária de mensagem de roteamento apre- sentada na Figura 25. Por conseqüência, a primeira parte da mensagem de roteamento é apresentada geralmente por 570 na Figura 25.
Referindo-se volta à Figura 8D, o bloco 568 direciona o circuito do processador RC 200 de volta para o bloco 560, e causa que o mesmo repita os blocos 560, 562, 564, e 566, para cada fornecedor sucessivo, até que a memória temporária de mensagem de roteamento esteja carregada com a informação pertencendo a cada fornecedor. Assim, a segunda parte da mensagem de roteamento é apresentada por 572 na Figura 25 e esta segunda parte se relaciona com o segundo fornecedor identificado pelo re- gistro apresentado na Figura 23, e referindo-se de novo à Figura 25, a tercei- ra parte da mensagem de roteamento é apresentada em 574 que está asso- ciada com um terceiro fornecedor como indicado pelo registro de fornecedor apresentado na Figura 24. Por conseqüência, referindo-se à Figura 25, a memória temporária de mensagem de roteamento mantém uma mensagem de roteamento identificando vários fornecedores diferentes aptos a propor- cionar dispositivos de interconexão de rede para estabelecer uma ligação de comunicação para permitir que o chamador entre em contato com o recep- tor. Cada um dos fornecedores é identificado, em ordem ascendente, de a- cordo com as taxas contidas nos campos de taxa 550 dos registros da lista de fornecedores apresentados nas Figuras 22 até 24, nesta concretização. Outros critérios para determinar a ordem na qual os fornecedores são lista- dos na mensagem de roteamento podem incluir prioridades de fornecedor preferidas, que podem ser estabelecidas baseado nos acordos de serviço, por exemplo. Neste caso, campos adicionais podem ser proporcionados nos respectivos registros de fornecedor para manter valores representando prio- ridades de fornecedor.
Após a memória temporária de mensagem de roteamento ter *
sido carregada como apresentado na Figura 25, o bloco 567 direciona o cir- cuito do processador RC 200 para verificar o perfil de discagem do chama- dor apresentado na Figura 10 para determinar se ele contém ou não campos de interceptação legítima, como apresentados na Figura 9, e se contém, pa- 5 ra determinar se os critérios de interceptação são ou não satisfeitos pela ve- rificação de se o campo de indicador de interceptação legítima 702 contém um indicador indicando que a interceptação legítima está habilitada e verifi- cando se a data e a hora correntes estão dentro do período especificado pelos conteúdos do campo de data / hora de início de LI 708 e pelo conteúdo 10 do campo de data / hora de parada de LI 710. Se os critérios de intercepta- ção forem satisfeitos, o bloco 569 direciona o circuito do processador RC 200 para anexar os conteúdos dos campos de interceptação legítima 702, 704, 706, 708, e 710, para a mensagem de roteamento armazenada na me- mória temporária de mensagem de roteamento, como apresentado na Figura 15 25A. Novamente, a determinação de se a informação de destino atende ou não aos critérios de interceptação é feita antes da produção da mensagem de roteamento, de modo que quando os critérios de interceptação são satis- feitos, pelo menos alguma parte da informação de interceptação, nesta con- cretização, toda ela, pode ser incluída na mensagem de roteamento.
Se, no bloco 567, for determinado que não existem campos de
interceptação legítima associados com o perfil de discagem do chamador apresentado na Figura 10 ou que os critérios de interceptação não foram satisfeitos, o circuito do processador RC não anexa quaisquer campos de interceptação legítima para a mensagem de roteamento armazenada na 25 memória temporária de mensagem de roteamento apresentada na Figura 25.
Então, o bloco 568 direciona o circuito do processador RC 200 para enviar o conteúdo da memória temporária de mensagem de roteamen- to, isto é, a mensagem de roteamento apresentada na Figura 25 ou 25A, para o controlador de chamada 14 na Figura 1.
Chamadas de Assinante para Assinante dentro do Mesmo Nó
Referindo-se de novo à Figura 8A, se no bloco 275, o identifica- dor do receptor armazenado na memória temporária de ID de receptor pos- suir um prefixo que identifica o mesmo supernó que o do associado com o chamador, o bloco 600 direciona o circuito do processador RC 200 para utili- zar o identificador do receptor e recuperar um perfil de discagem para o re- 5 ceptor identificado pelo identificador do receptor. O perfil de discagem é do tipo apresentado na Figura 9, e pode conter dados como apresentados na Figura 11, por exemplo. O bloco 602 da Figura 8A direciona o circuito do processador RC 200 para obter as tabelas de bloco de chamada, de envio de chamada e de correio de voz a partir da base de dados 18 baseado no 10 nome do usuário identificado no perfil do receptor recuperado pelo circuito do processador RC no bloco 600. As tabelas de bloco de chamada, de envio de chamada e de correio de voz possuem registros como apresentados nas Figuras 26, 28 e 30, por exemplo.
Referindo-se à Figura 26, os registros de bloco de chamada in- 15 cluem um campo de nome de usuário 604 e um campo de padrão de bloco 606. O campo de nome de usuário mantém um nome de usuário correspon- dendo ao nome de usuário no campo de nome de usuário 258 no perfil de discagem associado com o receptor e o campo de padrão de bloco 606 mantém um ou mais número ou nomes de usuário compatíveis com a E. 164 20 identificando números PSTN ou assinantes do sistema a partir dos quais o assinante identificado pelo conteúdo do campo de nome de usuário 604 não desejada receber chamadas.
Referindo-se de novo à Figura 8A e referindo-se à Figura 27, o bloco 608 direciona o circuito do processador RC 200 para determinar se o 25 identificador do chamador corresponde ou não a um padrão de bloco arma- zenado no campo de padrão de bloco 606 do registro de bloco de chamada associado com o receptor identificado pelo conteúdo do campo de nome de usuário 604 na Figura 26. Se o identificador do chamador corresponder a um padrão de bloco armazenado no campo de padrão de bloco 606, o bloco 610 30 direciona o circuito do processador RC 200 para enviar uma mensagem de queda de chamada ou de não conclusão para o controlador de chamada (14) e o processo é terminado. Se o identificador do chamador não corres- *
ponder a um padrão de bloco associado com o receptor, o bloco 612 dire- ciona o circuito do processador RC 200 para determinar se o envio de cha- mada é ou não requerido.
Referindo-se à Figura 28, os registros na tabela de envio de chamada incluem um campo de nome de usuário 614, um campo de número de destino 616, um campo de número de destino 616 e um campo de núme- ro de seqüência 618. O campo de nome de usuário 614 armazena um códi- go representando um assinante com o qual o registro está associado. O campo de número de destino 616 mantém um nome de usuário ou número representando um número para o qual a chamada corrente deve ser enviada e o campo de número de seqüência 618 mantém um número inteiro indicado a ordem na qual o nome do usuário associado com o campo de número de destino correspondente 616 deve ser tentado para envio de chamada. A ta- bela de envido de chamada pode possuir vários registros para um dado usu- ário. O circuito do processador RC 200 utiliza o conteúdo do campo de nú- mero de seqüência 618 para considerar os registros para um dado assinante em ordem. Como será apreciado abaixo, isto permite que os números de envio de chamada sejam tentados em uma seqüência ordenada.
Referindo-se de volta à Figura 8A e referindo-se à Figura 28, se 20 no bloco 612 na Figura 8A, o registro de envio de chamada para o receptor identificado pelo identificador de receptor não tiver conteúdo no campo de número de destino 616 e por conseqüência, não tiver conteúdo no campo de número de seqüência 618, não existem entradas de envio de chamada e o circuito do processador RC 200 é direcionado para carregar a memória tem- 25 porária de mensagem de roteamento apresentada na Figura 32 com o nome de usuário do receptor e com o domínio, como apresentado em 650 na Figu- ra 32. O processador então é direcionado para o bloco 620 na Figura 8C.
Se existir conteúdo no campo de número de destino do registro de envio de chamada como apresentado na Figura 29, o bloco 622 apresen- tado na Figura 8A direciona o circuito do processador RC 200 para pesqui- sar a tabela de perfis de discagem para encontrar u, registro de perfil de dis- cagem do tipo apresentado na Figura 9, para o usuário identificado no cam- po de número de destino 616 no registro da tabela de envio de chamada da Figura 29 e para armazenar o conteúdo do campo de número de destino na memória temporária de mensagem de roteamento apresentada na Figura 32. O circuito do processador RC 200 é então direcionado para carregar o 5 conteúdo do campo de domínio 260 apresentado na Figura 9 associado com o nome de usuário especificado pelo conteúdo do campo de número de des- tino 616 da Figura 29 na memória temporária de mensagem de roteamento como apresentada em 652 na Figura 32. Este processo é repetido para cada registro de envio de chamada associado com o receptor identificado pelo 10 identificador de receptor para adicionar para a memória temporária de men- sagem de roteamento todos os nomes de usuário e domínios de envio de chamada associados com o receptor.
Referindo-se à Figura 8C, no bloco 620, o processador é dire- cionado para determinar se o usuário identificado pelo identificador de recep- 15 tor pagou ou não pelo serviço de correio de voz e isto é feito por verificar se um indicador está ou não estabelecido em um registro de correio de voz do tipo apresentado na Figura 30 em uma tabela de correio de voz armazenada na base de dados 18 na Figura 1.
Referindo-se à Figura 30, os registros da tabela de correio de voz incluem um campo de nome de usuário 624, um campo de servidor de correio de voz 626, um campo de segundos para o correio de voz 628 e um campo habilitável 630. O campo de nome de usuário 624 armazena o nome de usuário do assinante que comprou o serviço. O campo de servidor de correio de voz 626 mantém um código identificando um endereço IP ou um nome de domínio totalmente qualificado (FQDN) de um servidor de correio de voz associado com o assinante identificado pelo campo de nome de usu- ário 624. O campo de segundos para o correio de voz 628 mantém um códi- go identificando o tempo para aguardar antes de ativar o correio de voz e o campo habilitável 630 mantém um código representando se o correio de voz está ou não habilitado para o usuário identificado pelo conteúdo do campo de nome de usuário 624. Portanto, referindo-se de novo à Figura 8C, no blo- co 620, o processador de pesquisa por um registro de correio de voz como *
apresentado na Figura 31 possuindo o conteúdo do campo de nome de usu- ário 624 correspondendo ao identificador de receptor e procura o conteúdo do campo habilitado 630 para determinar se o correio de voz está ou não habilitado. Se o correio de voz estiver habilitado, então, o bloco 640 na Figu- 5 ra 8C direciona o processador para armazenar o conteúdo do campo de ser- vidor de correio de voz 626 da Figura 31 e o conteúdo do campo de segun- dos para o correio de voz 628 da Figura 31 na memória temporária de men- sagem de roteamento como apresentada em 654 na Figura 32. Referindo-se de novo à Figura 8C, o bloco 642 então direciona o processador para obter 10 os valores de tempo de vida (TTL) para cada rota especificada pela mensa- gem de roteamento de acordo com qualquer um dentre vários critérios, tal como, por exemplo, o custo de roteamento e o saldo da conte do usuário. Estes valores TTL são então anexados para as rotas correspondentes já armazenadas na memória temporária de mensagem de roteamento.
O bloco 644 da Figura 8C então direciona o circuito do proces-
sador RC 200 para armazenar o endereço IP do supernó corrente na memó- ria temporária de mensagem de roteamento como apresentado em 656 na Figura 32. Uma mensagem de roteamento ilustrativa é apresentada na me- mória temporária de mensagem de roteamento apresentada na Figura 32.
O bloco 645 da Figura 8C então direciona o processador para
verificar o perfil de discagem do chamador apresentado na Figura 10 para determinar se ele contém ou não campo de interceptação legítima do tipo apresentado na Figura 9, e se tiver, para determinar se os critérios de inter- ceptação são ou não atendidos. Nesta concretização, isto inclui determinar 25 se o campo de indicador de interceptação legítima 702 contém um indicador indicando que a interceptação legítima está habilitada e verificar se a data e a hora corrente estão dentro do período especificado pelo conteúdo do cam- po de data / hora de início de LI 708 e pelo conteúdo do campo de data / hora de término de LI 710. Se os critérios de interceptação forem atendidos, 30 o bloco 647 direciona o circuito do processador RC 200 para anexar os con- teúdos dos campos de interceptação legítima 702, 704, 706, 708, 710 para a mensagem de roteamento apresentada na Figura 32A para produzir uma mensagem de roteamento com conteúdos de campo de interceptação legí- tima, como apresentado na Figura 32A. Novamente, a determinação de que se a informação de destino satisfaz ou não os critérios de interceptação é feita antes de produzir a mensagem de roteamento, de modo que quando os 5 critérios de interceptação são satisfeitos, pelo menos alguma parte da infor- mação de interceptação, nesta concretização, toda ela, pode ser incluída na mensagem de roteamento.
Referindo-se de novo à Figura 8C, se no bloco 645 for determi- nado que não existem campos de interceptação legítima associados com o perfil de discagem do chamador da Figura 10 ou que os critérios de intercep- tação não são atendidos após a produção da mensagem de roteamento a- presentada na Figura 32A, o processador é direcionado para o bloco 649 que causa que o processador verifique o perfil de discagem do receptor a- presentado na Figura 11 para determinar se seu conteúdo contém ou não campos de interceptação legítima do tipo apresentado na Figura 9 e se tiver, para determinar se os critérios de interceptação são ou não satisfeitos por verificar se a data e a hora corrente estão dentro do período especificado pelo conteúdo do campo de data / hora de início de LI 708 e pelo conteúdo do campo de data / hora de término de LI 710 do perfil de discagem do re- ceptor. Se os critérios de interceptação forem atendidos, o, bloco 651 dire- ciona o circuito do processador RC 200 para anexar os conteúdos dos cam- pos de interceptação legítima 702, 704, 706, 708, 710 associados com o per- fil de discagem do receptor para a mensagem de roteamento apresentada na Figura 32A para produzir uma mensagem de roteamento. Se, no bloco 649 da Figura 8C, for determinado que não existem campos de intercepta- ção legítima associados com o perfil de discagem do receptor ou que os cri- térios de interceptação não foram atendidos, nenhum campo de intercepta- ção legítima associado com o receptor é anexado para a mensagem de ro- teamento apresentada na Figura 32 ou 32A. Referindo-se de novo à Figura 8C, o bloco 646 então direciona o circuito do processador RC 200 para envi- ar a mensagem de roteamento para o controlador de chamada 14.
Resposta para a Mensagem de Roteamento Referindo-se de volta à Figura 1, a mensagem de roteamento, seja do tipo apresentado nas Figuras 16, 16A, 25, 25A, 32, 32A ou 32B, é recebida no controlador de chamada 14. Referindo-se à Figura 33, quando uma mensagem de roteamento é recebida no controlador de chamada, o 5 manipulador de mensagem de roteamento 122 é ativado no controlador de chamada. O manipulador de mensagem de roteamento é apresentado em detalhes na Figura 33.
Referindo-se à Figura 33, o manipulador de mensagem de rote- amento começa com um primeiro bloco 1200 que direciona o circuito do pro- 10 cessador para determinar se a mensagem de roteamento inclui ou não cam- pos de interceptação legítima. Se não, o processador é direcionado para o bloco 1206 que causa que o mesmo ative a rotina de manipulação de cha- mada apresentada na Figura 34. Referindo-se à Figura 34, como uma pri- meira etapa na rotina de manipulação de chamada, uma mensagem 1100 é 15 enviada a partir do controlador de chamada 14 para a retransmissão de mí- dia 17, a mensagem incluindo o endereço IP do telefone do chamador e a porta UDP como determinados a partir do campo de endereço IP do chama- dor 67 e do campo de porta UDP do chamador 69 na mensagem de Convite SIP apresentada na Figura 3.
A retransmissão de mídia 17 específica para a qual a mensagem
1100 é enviada pode ser selecionada a partir de um grupo de retransmis- sões de mídia disponíveis e tais retransmissões de mídia podem estar em qualquer localização geográfica. O propósito da mensagem 1100 é avisar à retransmissão de mídia que é desejado que uma chamada seja configurada 25 para se comunicar com o endereço IP e com o número UDP do telefone do receptor;
Uma retransmissão de mídia selecionada dentre as retransmis- sões de mídia localizadas em uma localização geográfica que facilita a co- municação em uma qualidade de serviço desejada entre a retransmissão de 30 mídia 17 e o telefone do chamador 12 e o telefone do receptor 15 pode pro- porcionar melhor serviço. Alternativamente, retransmissões de mídia podem ser pré-designadas ou pré-associadas com usuários pela inclusão e preen- chimento dos campos de retransmissão de mídia dos perfis de discagem de usuário, tal como apresentado em 1150 na Figura 9, identificando uma ou mais retransmissões de mídia através das quais as chamadas associadas com o usuário associado são para serem direcionadas. Neste caso, as iden- 5 tificações de retransmissões de mídia possíveis obtidas a partir dos campos de retransmissão de mídia 1150 podem ser envidas para o controlador de chamada em campos adicionais na mensagem de roteamento. Estes cam- pos de retransmissão de mídia são apresentados em 1152 nas Figuras 16, 16A, 25, 25A, 32, 32A e 32B. Em essência, a retransmissão de mídia atra- 10 vés da qual as comunicações envolvendo as comunicações envolvendo o assinante serão conduzidas é identificada em resposta à mensagem de ro- teamento.
Referindo-se de volta à Figura 34, neste caso, a mensagem 1100 pode ser enviada em um modo de sondagem para todas as retrans- missões de mídia identificadas pelos campos de retransmissão de mídia 1150, até que uma responda. Alternativamente, a mensagem 1100 pode ser enviada simultaneamente para todas as retransmissões de mídia.
Em resposta, no caso onde a retransmissão de mídia é conheci- da ou está envolvida na sondagem como descrito acima, a retransmissão de mídia 17 para a qual a mensagem 1100 é enviada envia uma mensagem de condição da retransmissão de mídia 1102 de volta para o controlador de chamada 14, a mensagem incluindo um endereço IP da retransmissão de mídia e o número de porta UDP na qual a retransmissão de mídia irá estabe- lecer uma conexão UDP com o telefone do receptor 15. Os dados de áudio para / a partir do telefone 15 serão transmitidos através desta conexão. No caso onde a mensagem 1100 é enviada para várias retransmissões de mí- dia, a primeira a responder com a mensagem de condição de retransmissão de mídia é a retransmissão de mídia através da qual a chamada será trans- portada. As mensagens de condição da retransmissão de mídia a partir de retransmissões de mídia restantes podem ser ignoradas.
Após a mensagem de condição da retransmissão de mídia 1102 ser recebida no controlador de chamada, o controlador de chamada 14 envia *
um mensagem de Convite SIP 1104 do tipo apresentado na Figura 3 para o telefone do receptor 15, incluindo os conteúdos dos campos de identificador de chamador e de receptor (60 e 62), do campo de identificador de chamada (65), do endereço IP da retransmissão de mídia e do número de porta UDP 5 da retransmissão de mídia designados para a conexão de caminho de áudio com o telefone do receptor 15, para convidar o telefone do receptor para es- tabelecer uma conexão com a retransmissão de mídia 17.
O propósito da mensagem de Convite SIP 1104 é avisar ao tele- fone do receptor sobre o chamador e sobre o ID da chamada e sobre o en- dereço IP e o número de porta UDP da retransmissão de mídia através da qual o telefone do receptor deve enviar e receber dados de áudio.
O telefone do receptor 15 armazena o endereço IP da retrans- missão de mídia e o número de porta UDP designado na memória temporá- ria de endereço IP de caminho de áudio 47 apresentada na Figura 2e confi- 15 gura-se para criar um soquete entre o endereço IP / UDP da retransmissão de mídia e o endereço IP do telefone do receptor e um número de porta UDP que o telefone do receptor 15 deseja utilizar como um caminho de áudio pa- ra o telefone do chamador. Ao invés de enviado ou recebido diretamente para ou a partir do telefone do chamador, o telefone do receptor 15 irá enviar 20 e receber dados de áudio a partir da retransmissão de mídia. Para indicar isto, o telefone do chamador 15 envia uma mensagem SIP OK 1106 de volta para o controlador de chamada 14, a mensagem incluindo o endereço IP do receptor e o número de porta UDP a partir de seu campo de endereço IP (53 na Figura 3) no qual o telefone do receptor 15 irá estabelecer uma conexão 25 de caminho de áudio com a retransmissões de mídia 17. O propósito desta mensagem SIP OK 1106 é avisar ao controlador de chamada sobre o ende- reço IP e sobre o número de porta UDP através dos quais a retransmissão de mídia deve enviar e receber dados de áudio para e a partir do telefone do receptor.
O controlador de chamada 14 então envia uma mensagem 1108
para a retransmissão de mídia 17 incluindo o endereço IP e o número de porta UDP que o telefone do receptor 15 irá utilizar para a conexão de cami- nho de áudio com a retransmissão de mídia. O propósito da mensagem 1108 é avisar à retransmissão de mídia sobre o endereço IP e o número de porta UDP através dos quais ela deve enviar e receber dados de áudio para e a partir do telefone do receptor.
5 A retransmissão de mídia 17 então determina uma porta UDP
através da qual ela irá transportar os dados de áudio para e a partir do tele- fone do receptor 12 e envia uma mensagem 1110 para o controlador de chamada (14), a mensagem incluindo o endereço IP da retransmissão de mídia e o número de porta UDP da retransmissão de mídia que a retrans- 10 missão de mídia irá utilizar para transportar áudio para e a partir do telefone do receptor 12. O propósito desta mensagem 1110 é avisar ao controlador de chamada 14 sobre o endereço IP e número de porta UDP através dos quais é esperado transferir os dados de áudio para e a partir do telefone do receptor.
O controlador de chamada 14 então envia uma mensagem SIP
OK 1112 para o telefone do chamador 12 para indicar que a chamada pode agora continuar. A mensagem SIP OK inclui os nomes de usuário do cha- mador e do receptor, o ID de chamada e o endereço IP e o número de porta UDP da retransmissão de mídia 17 designados para a conexão de áudio 20 com o telefone do chamador 12. O propósito desta mensagem SIP OK 1112 é avisar ao telefone do chamador 12 sobre o endereço IP e o número de porta UDP através dos quais ele deve trocar dados de áudio com a retrans- missão de mídia 17.
Se a mensagem de roteamento for do tipo apresentado na Figu- 25 ra 25, onde existem vários fornecedores disponíveis, a rotina de manipula- ção de chamada continua como descrito acima, com a exceção de que ao invés de se comunicar com o telefone do receptor diretamente, o controlador de chamada 14 se comunica com um dispositivo de interconexão de rede proporcionado por um fornecedor. Se uma mensagem SIP OK não for rece- 30 bida de volta a partir do primeiro dispositivo de interconexão de rede, o pro- cessador é direcionado para enviar a mensagem de Convite SIP 1104 para um dispositivo de interconexão de rede do próximo fornecedor indicado. Por *
exemplo, o controlador de chamada 14 envia a mensagem de Convite SIP 1104 para o primeiro fornecedor, neste caso, Telus, para determinar se o Telus está ou não apto a manipular a chamada. Se Telus não enviar de volta uma mensagem SIP OK 1106 dentro de um tempo especificado ou enviar uma mensagem indicando que ele não está apto a manipular a chamada, o controlador de chamada continua a enviar uma mensagem de Convite SIP 1104 para o próximo fornecedor, neste caso Shaw. O processo é repetido até que um dos fornecedores responda com uma mensagem SIP OK 1106 indicando que ele está disponível para transportar a chamada e o processo continua como apresentado em conexão com as mensagem 1108, 1110 e 1112. Por exemplo, o fornecedor "Telus" envia de volta uma mensagem SIP OK e assim proporciona um dispositivo de interconexão de rede para o PSTN no endereço IP 72.64.39.58 como proporcionado pela mensagem de roteamento a partir do conteúdo do campo de identificador de rota 546 do registro de fornecedor correspondente apresentado na Figura 22.
Referindo-se de volta à Figura 1, se o controlador de chamada
14 receber uma mensagem do tipo apresentada na Figura 32, isto é, um tipo que possui um número de envio de chamada e / ou um número de correio de voz, o controlador de chamada tenta estabelecer uma chamada (utilizando a 20 mensagem de Convite SIP 1104) com o telefone do receptor 15 e se ne- nhuma chamada for estabelecida (isto é, a mensagem 1106 não é recebida) dentro de um tempo predeterminado, o controlador de chamada 14 tenta estabelecer uma chamada com o próximo usuário identificado na mensagem de roteamento de chamada, por enviar um mensagem de Convite SIP igual 25 a mensagem 1104 para o próximo usuário. Este processo é repetido até que todas as possibilidades de envio de chamada tenham sido esgotadas, caso em que um caminho de áudio é estabelecido com o servidor de correio de voz 19 identificado na mensagem de roteamento. O servidor de correio de voz 19 envia a mensagem SIP OK 1106 em resposta a recepção da mensa- 30 gem de Convite SIP 1104 e funciona como descrito acima em conexão com o telefone do receptor 15 para permitir uma mensagem de áudio emitida pelo servidor de correio de voz possa ser ouvida pelo chamador para permitir que o chamador grave uma mensagem de áudio no servidor do correio de voz.
Quando os caminhos de áudio são estabelecidos, um tempori- zador de chamada (não-apresentado) mantido pelo controlador de chamada registra a data e a hora inicial da chamada e registra o ID da chamada e adi- 5 ciona um registro de chamada ativa do tipo apresentado na Figura 35 para uma lista de chamadas ativas, mantida pelo controlador de chamada.
Nesta concretização, o registro de chamada ativa do controlador de chamada apresentada na Figura 35 inclui um campo de ID de chamada 1300, um campo de endereço IP do chamador 1302, um campo de porta do chamador 1304, um campo de endereço IP do receptor 1306, um campo de porta do receptor 1312 e um campo de porta do receptor da retransmissão de mídia 1314. O conteúdo do campo de ID da chamada 1300 é estabeleci- do no bloco 136 na Figura 5. O conteúdo do campo de endereço IP do cha- mador 1302 é estabelecido a partir dos conteúdos do campo de endereço IP do chamador 67 da mensagem de convite SIP apresentada na Figura 3. O conteúdo do campo de porta do chamador 1304 é estabelecido a partir do campo de porta UDP do chamador 69 da mensagem de convite SIP apre- sentada na Figura 3. O conteúdo do campo de endereço IP do receptor 1306 e do campo de porta do receptor 1308 são estabelecidos a partir da mensa- gem SIP OK 1106 apresentada na Figura 34.
O campo de ID de retransmissão de mídia 1310 é preenchido com uma identificação da retransmissão de mídia manipulando a chamada. No exemplo apresentado, a retransmissão de mídia é o número 42. O con- teúdo do campo de porta do receptor da retransmissão de mídia é obtido a 25 partir da mensagem 1110 apresentada na Figura 34 e o conteúdo do campo de porta do receptor da retransmissão de mídia 1314 é obtido a partir da mensagem de condição da retransmissão de mídia 1102 apresentada na Figura 34. Cada vez que uma chamada é estabelecida, um registro de cha- mada ativa do tipo apresentado na Figura 35 é adicionado para um registro 30 de ocorrência de chamada ativa mantido pelo controlador de chamada.
O controlador de roteamento também mantém um registro de ocorrência de chamada ativa contendo registros de chamada ativa, entretan- κ
to, os registros de chamada ativa mantidos pelo controlador de roteamento são diferentes dos registros de chamada ativa mantidos pelo controlador de chamada. Por exemplo, referindo-se à Figura 36, um registro de chamada ativa mantido pelo controlador de roteamento inclui um campo de ID de 5 chamada 1316, um campo de chamador 1318, um campo de receptor 1320 e um campo de ID de controlador de chamada 1322. A informação para pre- encher estes campos pode ser recebida em uma mensagem (não- apresentada) transmitida a partir do controlador de chamada para o contro- lador de roteamento após um registro de chamada ativa ter sido informado 10 para o registro de ocorrência de chamada ativa do controlador de chamada.
A mensagem a partir do controlador de chamada 14 para o con- trolador de roteamento 16, indicando que uma chamada ativa foi estabeleci- da, pode incluir o conteúdo do campo de ID de chamada 1300 apresentado na Figura 35 e um número de ID único do controlador de chamada mantido 15 pelo controlador de chamada. O controlador de roteamento 16 corresponde o ID da chamada com os nomes de usuário do chamador e do receptor con- tidos na mensagem de roteamento de chamada original (Figura 16, 16A, 25, 25A, 32, 32A, 32B) que causou que o controlador de chamada direcionasse a chamada, para preencher os campos de chamador e de receptor 1318 e 20 1320 apresentados na Figura 36, respectivamente. Será apreciado que vá- rios controladores de chamada podem ser associados com um único contro- lador de roteamento, caso em que o ID do controlador de chamada permite que o controlador de roteamento de forma única identifique o controlador de chamada associado com o ID da chamada indicado pelo conteúdo do campo 25 de ID de chamada 1316. No exemplo apresentado, o controlador de chama- da é o número 61.
Os registros de chamada ativa facilitam a interceptação de uma chamada já em andamento, como será descrito abaixo.
Referindo-se de volta à Figura 33, se no bloco 1200 for determi- nado que a mensagem de roteamento possui campos de interceptação legí- tima, o bloco 1202 direciona o circuito do controlador de chamada 100 (Figu- ra 4) para enviar uma mensagem de Convite SIP como apresentada na Figu- ra 37 para um dispositivo de mediação identificado pelo endereço IP de dis- positivo de mediação na mensagem de roteamento como obtido a partir do campo de endereço MD1 704 do perfil de discagem do usuário como apre- sentado em 256 na Figura 9. Referindo-se à Figura 37, a mensagem de 5 Convite SIP inclui os campos de identificador de chamador e de receptor 1020, 1022, um campo de ID de chamada 1024, um campo de ID de manda- to 1026 e outros campos de informação relacionada com interceptação 1028, se desejado. Os conteúdos dos campos de ID do chamador, do recep- tor e da chamada 1020, 1022 e 1024 são obtidos a partir da mensagem de 10 Convite SIP original apresentada na Figura 6. Os conteúdos do campos de ID do mandato 1026 e de campos de informação relacionada com a inter- ceptação 1028 são obtidos a partir da mensagem de roteamento que seria do tipo apresentado nas Figuras 16A, 25A, 32A ou 32B.
Referindo-se de novo à Figura 33, o bloco 1204 então direciona o controlador de chamada 14 para receber uma mensagem de resposta, como apresentada na Figura 38, a partir do dispositivo de mediação 31. A mensagem de resposta é uma mensagem SIP OK que inclui os campos de ID do chamador, do receptor e da chamada 1040, 1042, 1044 como descri- tos acima e adicionalmente inclui um campo de endereço IP do dispositivo de mediação 1046 e um campo de número de porta UDP do chamador do dispositivo de mediação 1048 e um campo de número de porta UDP do re- ceptor 1050 identificando as portas UDP no endereço IP do dispositivo de mediação para as quais a retransmissão de mídia é para enviar cópias de fluxos de dados de áudio recebidos a partir dos telefones do chamador e do receptor, respectivamente. O bloco 1206 então direciona o controlador de chamada para executar a rotina de manipulação de chamada apresentada na Figura 34 com a exceção de que a mensagem 1100 adicionalmente inclui os conteúdos do campo de endereço IP do dispositivo de mediação 1046, do campo de número de porta UDP do chamador do dispositivo de mediação 1048 e do campo de número de porta UDP do receptor 1050 da mensagem SIP OK apresentada na Figura 38.
Todas as outras mensagens são as mesmas que descritas aci- ma em conexão com a rotina de manipulação de chamada como apresenta- da na Figura 34, mas em resposta a receber a informação adicional na men- sagem 1100, a retransmissão de mídia automaticamente configura-se para proporcionar a cópia dos dados de áudio recebidos a partir tanto do telefone 5 do chamador como do telefone do receptor para o endereço IP do dispositivo de mediação e para o número de porta UDP do chamador e para o número de porta UDP do receptor, respectivamente.
Referindo-se de volta á Figura 1, à medida que os dados de áu- dio originários do telefone do chamador 12 e do telefone do receptor 15 pas- 10 sam através da retransmissão de mídia 17, estes dados são copiados para a porta UDP do dispositivo de mediação para o chamador e para a porta UDP do dispositivo de mediação para o receptor, como indicado pela mensagem de convite SIP 1100. Isto permite que as agências de imposição de Iei moni- torem as comunicações de áudio entre o chamador e o receptor e / ou gra- 15 vem tais comunicações no dispositivo de mediação.
Assim, quando a informação de determinação no perfil de disca- gem atende aos critérios de interceptação, o controlador de chamada comu- nica-se com a retransmissão de mídia através da qual as comunicações en- volvendo o assinante cujas comunicações são para serem monitoradas se- 20 rão manipuladas para causar que a retransmissão de mídia envie um cópia de tais comunicações para um dispositivo de mediação especificado pela informação de destino incluída na informação de interceptação associada com o perfil de discagem associado com o assinante cujas comunicações são para serem monitoradas.
Terminando a Chamada
No caso em que o chamador ou o receptor termina uma chama- da, o telefone da parte que termina envia uma mensagem SIP Bye para o controlador de chamada 14. Uma mensagem SIP Bye ilustrativa é apresen- tada em 900 na Figura 39 e inclui um campo de chamador 902, um campo 30 de receptor 904 e um campo de ID da chamada 906. O campo de chamador 902 mantém o nome de usuário do chamador, o campo de receptor 904 mantém um número ou nome de usuário compatível com a PSTN1 e o cam- po de ID da chamada 906 mantém um campo de identificador único de cha- mada do tipo apresentado no campo de identificador de chamada 65 da mensagem de Convite SIP apresentada na Figura 3.
Assim, por exemplo, referindo-se à Figura 40, uma mensagem 5 SIP Bye para o receptor de Calgary é apresentada geralmente por 908 e o campo de chamador 902 mantém um nome de usuário identificando o cha- mador de Vancouver, neste caso, 2001 1050 8667, o campo de receptor 904 mantém um nome de usuário identificando o receptor de Calgary, neste caso 2001 1050 222, e o campo de ID da chamada 906 mantém o código 10 FA10@192.168.0.20. que é o ID da chamada para a chamada.
A mensagem SIP Bye apresentada na Figura 40 é recebida no controlador de chamada 14 e o controlador de chamada executa um proces- so como apresentado geralmente por 910 na Figura 41. O processo inclui um primeiro bloco 912 que direciona o circuito do controlador de chamada 15 (100) para copiar os conteúdos dos campos de chamador, de receptor e de ID da chamada a partir da mensagem SIP Bye 900 apresentada na Figura 39 recebida a partir da parte que termina para os campos correspondentes de uma memória temporária de mensagem de término RC (não- apresentada). O bloco 914 então direciona o circuito do controlador de cha- 20 mada 100 para copiar a hora inicial da chamada a partir do temporizador de chamada e para obter um tempo de Término da Chamada a partir do tempo- rizador de chamada. O bloco 916 então direciona o controlador de chamada para calcular um tempo da sessão de comunicação por determinar a dife- rença no tempo entre a hora inicial da chamada e a hora de Parada da 25 Chamada. Este tempo de sessão de comunicação é então armazenado em um campo correspondente da memória temporária de mensagem de Térmi- no de Chamada RC. Então, o bloco 918 direciona o circuito do controlador de chamada 100 para preencher o campo de rota com o endereço IP dão fornecedor do dispositivo de interconexão de rede, se houver. Uma mensa- 30 gem de Término de Chamada RC produzida como descrito acima é apresen- tada geralmente por 1000 na Figura 42. Uma mensagem de Término de Chamada RC especificamente associada com a chamada feita para o recep- *
tor de Calgary é apresentada geralmente por 1021 na Figura 43.
Referindo-se à Figura 42, a mensagem de término de chamada RC 1000 inclui um campo de chamador 1002, um campo de receptor 1004, um campo de ID da chamada 1006, um campo de registro de hora inicial 5 1008, um campo de registro de hora de término 1010, um campo de tempo de sessão de comunicação 1012 e um campo de rota 1014. O campo de chamador 1002 mantém um nome de usuário, o campo de receptor 1004 mantém um número compatível com a PSTN ou o número do sistema, o campo de ID da chamada 1006 mantém um identificador único de chamada 10 recebido a partir da mensagem de convite SIP apresentada na Figura 3, o campo de registro de hora inicial 1008 mantém a data e a hora inicial da chamada, o campo de registro de hora de término 1010 mantém a data e a hora que a chamada terminou, o campo de tempo de sessão de comunica- ção 1012 mantém um valor representando a diferença entre a hora inicial e a 15 hora da término, em segundos, e o campo de rota 1014 mantém o endereço IP para um dispositivo de interconexão de rede, se um dispositivo de inter- conexão de rede for utilizado para estabelecer a chamada.
Referindo-se à Figura 43, uma mensagem ilustrativa de término de chamada RC para o receptor de Calgary é apresentada geralmente por 1021. Neste exemplo, o campo de chamador 1002 mantém o nome de usuá- rio 2001 1050 8867 identificando o chamador de Vancouver e o campo de receptor 1004 mantém o nome de usuário 2001 1050 222 identificando o receptor de Calgary. O conteúdo do campo de ID da chamada 1006 é FA10@192.168.0.20. O conteúdo do campo de registro de hora inicial 1008 é 2006-12-30 12:12:12 e o conteúdo do campo de registro de hora de térmi- no 1010 é 2006-12-30 12:12:14. O conteúdo do campo de tempo de sessão de comunicação 1012 é 2 para indicar a duração de 2 segundos da chama- da e o conteúdo do campo rota está em branco mas poderia ser 72.64.39.58 se o dispositivo de interconexão de rede "Telus" fosse utilizado, por exem- pio.
Referindo-se de volta à Figura 41, após ter produzido uma men- sagem de Término de Chamada RC, o bloco 920 direciona o circuito do con- trolador de chamada 100 para enviar a mensagem de término RC contida na memória temporária de mensagem de Término de Chamada RC para o con- trolador de roteamento (16).
O RC (16) recebe a mensagem de Término de Chamada e um processo de mensagem de Término de Chamada do controlador de rotea- mento (não-apresentado) é ativado no controlador de roteamento para lidar com as tarifas e faturamento para a chamada.
O bloco 922 direciona o circuito do controlador de chamada 100 para enviar uma mensagem Bye para a parte que não terminou a chamada, isto é, para a parte que não está terminando.
O bloco 924 então direciona o circuito do controlador de chama- da 100 para enviar uma mensagem SIP Bye do tipo apresentada na Figura 39 para a retransmissão de mídia 17 para causar que a retransmissão de mídia desconecte os soquetes de caminho de áudio associados com o ende- 15 reço IP / UDP do telefone do chamador e com o endereço IP / UDP do tele- fone do receptor. Ao desconectar estes soquetes de comunicação, a re- transmissão de mídia 17 apaga as associações entre o endereço IP / UDP do telefone do chamador e o endereço IP / UDP do chamador da retrans- missão de mídia e entre o endereço IP / UDP do telefone do chamador e o 20 endereço IP / UDP do receptor da retransmissão de mídia.
Se a retransmissão de mídia (17) foi configurada para intercep- tação legítima, o bloco 926 da Figura 1 então direciona o circuito do contro- lador de chamada 100 para enviar uma mensagem SIP Bye do tipo apresen- tada na Figura 39 para o dispositivo de mediação 31 para informar para o 25 dispositivo de mediação que a chamada terminou e para desconectar os so- quetes de comunicação entre os endereços de porta IP / UDP do chamador e do receptor da retransmissão de mídia e o endereço de porta IP / UDP pa- ra o qual os dados de áudio recebidos nos endereços de porá IP / UDP do chamador e do receptor estavam sendo copiados.
Será apreciado que na descrição anterior, os componentes des-
critos cooperam para detectar um requerimento de interceptação na hora que uma chamada é configurada. Na descrição seguinte, é proporcionada uma explicação para descrever como interceptar uma chamada enquanto a chamada está em andamento.
Interceptando uma Chamada em Andamento
Referindo-se de volta à Figura 1, para interceptar uma chamada 5 enquanto a chamada está em andamento, a autoridade de imposição de Iei 293 ode ser comunicar com um dispositivo de mediação, ou pode ser comu- nicar com o controlador de chamada ou pode comunicar-se com o controla- dor de roteamento ou pode comunicar-se com uma interface de transferên- cia que comunica-se com qualquer um dos componentes anteriores para 10 causar que o controlador de roteamento receba uma mensagem de requisi- ção da interceptação da autoridade de imposição de Iei (LEA) incluindo a informação de interceptação, tal como esta que estaria associada com os campos 702 até 710 na Figura 9, por exemplo.
Em resposta à recepção de uma mensagem de requisição de interceptação LEA, o manipulador de mensagem de requisição LEA do con- trolador de roteamento em 1400 na Figura 44 é ativado.
O manipulador de mensagem de requisição LEA 1400 começa com um primeiro bloco 1402 que direciona o circuito do processador do con- trolador de roteamento para se comunicar com a base de dados 18 na qual 20 os registros de perfil de discagem do tipo apresentado na Figura 9 são ar- mazenados para encontrar um perfil de discagem associado com o usuário cujas chamadas são para serem monitoradas.
Se o nome de usuário não for conhecido, mas um número DID (isto é, um número PSTN) for conhecido, o controlador de roteamento pode 25 causar uma pesquisa através dos registros da tabela de banco DlD do tipo apresentado na Figura 13, por exemplo, para encontrar um nome de usuário associado com um número DID, se o nome de usuário não for conhecido, mas um nome e endereço forem conhecidos, outros registros, tal como re- gistros de faturamento (não-apresentados) associando nomes e endereços 30 com nomes de usuário, podem ser pesquisados para encontrar um nome de usuário associado com um dado nome e / ou endereço de uma pessoa cujas chamadas são para serem interceptadas. Independente da informação dis- ponível, para facilitar a interceptação de chamada, qualquer modo de encon- trar o perfil de discagem único associado com o usuário cujas chamadas são para serem interceptadas é uma primeira etapa para facilitar a interceptação de chamada, nesta concretização.
5 Uma vez que o perfil de discagem seja encontrado, o bloco 1404
direciona o circuito do processador do controlador de chamada para associar a informação de interceptação com o perfil de discagem por anexar e / ou preencher os campos de interceptação legítima do perfil de discagem com tais informações como proporcionadas pela mensagem de requisição de in- terceptação LEA.
O bloco 1406 então direciona o circuito do processador do con- trolador de chamada para determinar se os critérios de interceptação são atendidos pela informação de interceptação agora incluída no perfil de dis- cagem. Isto é feito pela determinação de se o indicador LI (702) está ativado, 15 e se a data e a hora corrente estão dentro das faixas de data / hora de início / fim da LI. Se os critérios de interceptação não forem satisfeitos, o processo é terminado. Caso contrário, o processador é direcionado para o bloco 1408.
O bloco 1408 direciona o circuito do processador do controlador de roteamento para utilizar o nome de usuário do perfil de discagem encon- trado no bloco 1402 para pesquisar os campos de chamador e de receptor dos registros de chamada ativa do controlador de roteamento apresentados na Figura 36 que possuem conteúdos correspondendo ao nome de usuário associado com o perfil de discagem. Se nenhum registro for encontrado, o usuário não está atualmente envolvido em uma chamada e o processo é terminado. Se o usuário estiver envolvido em uma chamada, o registro de chamada ativa do controlador de roteamento será encontrado. O bloco 1410 então direciona o circuito do processador do controlador de roteamento para encontrar o ID do controlador de chamada e o ID da chamada da chamada associada, a partir do registro de chamada ativa do controlador de roteamen- to apresentado na Figura 36.
O bloco 1412 então direciona o circuito do processador do con- trolador de roteamento para transmitir uma mensagem de intercepção dentro *
da chamada para o controlador de chamada identificado pelo conteúdo do campo de ID de controlador de chamada 1422 do registro de chamada ativa do controlador de roteamento. A mensagem de interceptação dentro da chamada inclui o ID da chamada como determinado a partir do registro de 5 chamada ativa do controlador de roteamento e o endereço IP do dispositivo de mediação associado com a autoridade de imposição de Iei interessada em interceptar a chamada. O endereço IP do dispositivo de mediação pode ser obtido a partir da mensagem de requisição da autoridade de imposição de Iei1 ou do perfil de discagem, por exemplo.
O bloco 1414 então direciona o circuito do processador do con-
trolador de roteamento para aguardar por um tempo especificado para rece- ber a mensagem de condição de interceptação do controlador de chamada de volta a partir do controlador de chamada indicando se a função de inter- ceptação foi ou não ativada.
Referindo-se à Figura 45, ao receber a mensagem de intercep-
tação dentro da chamada no controlador de chamada (14), o controlador de chamada executa um manipulador de mensagem de interceptação dentro da chamada apresentado geralmente por 1450. O manipulador de mensagem de interceptação dentro da chamada 1450 começa com um primeiro bloco 20 1452 que direciona o circuito do processador do controlador de chamada para enviar uma mensagem de Convite SIP para o dispositivo de mediação associado com o endereço IP do dispositivo de mediação, recebido na men- sagem de interceptação dentro da chamada.
O bloco 1454 então direciona o circuito do processador do con- 25 trolador de chamada para receber um endereço IP e os números de porta UDP do receptor e do chamador a partir do dispositivo de mediação, onde este endereço IP e os números de porta UDP são localizações na rede nas quais o dispositivo de mediação irá esperar receber fluxos de dados de áu- dio a partir da retransmissão de mídia através da qual a chamada é transpor- 30 tada.
O bloco 1456 então direciona o circuito do processador do con- trolador de chamada para identificar uma retransmissão de mídia através da qual as comunicações a serem monitoradas estão sendo conduzidas por utilizar o nome de usuário do assinante cujas comunicações são para serem monitoradas para localizar um registro de chamada ativa na lista de chama- das ativas do controlador de chamada para localizar um identificador de re- 5 transmissão de mídia, tal como o endereço IP da retransmissão de mídia, indicado pelo conteúdo do campo de ID de retransmissão de mídia 1310 do registro de chamada ativa do controlador de chamada, apresentado na Figu- ra 35. O circuito do processador do controlador de chamada é então direcio- nado para enviar uma mensagem de requisição de interceptação para a re- 10 transmissão de mídia (17) que está manipulando a chamada. A mensagem de requisição de interceptação inclui o endereço IP do dispositivo de media- ção e os números de porta UDP do chamador e do receptor para identificar para a retransmissão de mídia (17) o endereço IP do dispositivo de media- ção e o número (números) de porta UDP nos quais ele espera receber uma
cópia do fluxo de dados de áudio a partir do chamador e do receptor, respec- tivamente.
Em resposta, a retransmissão de mídia estabelece conexões internas entre os endereços IP do chamador e do receptor e as portas UDP e o endereço IP e a porta IP do dispositivo de mediação. Então, a retrans- 20 missão de mídia envia uma mensagem de condição da retransmissão de mídia de volta para o controlador de chamada indicando se as conexões in- ternas foram ou não estabelecidas e que a interceptação de chamada foi iniciada.
Como visto no bloco 1458, o circuito do processador do contro- 25 Iador de chamada é direcionado para receber a mensagem de condição da retransmissão de mídia e o bloco 1460 direciona o circuito do processador do controlador de chamada para enviar uma mensagem de condição de in- terceptação do controlador de chamada de volta para o controlador de rote- amento para indicar que a função de interceptação de chamada foi estabele- 30 cida. O controlador de roteamento pode comunicar sua condição de volta para a autoridade de imposição de Iei que emitiu a mensagem de requisição de autoridade de imposição de lei. Neste meio tempo, as comunicações en- volvendo o chamador ou o receptor cujas comunicações são para serem monitoradas, as quais percorrem através da retransmissão de mídia, são copiadas e enviadas para o dispositivo de mediação.
Assim, após associar a informação de interceptação com o perfil de discagem do assinante cujas comunicações são para serem monitoradas, quando a informação de determinação incluída na informação de intercepta- ção atende aos critérios de interceptação, o controlador de chamada comu- nica-se com a retransmissão de mídia através da qual as comunicações do assinante cujas comunicações são para serem monitoradas para causar que tal retransmissão de mídia envie uma cópia de tais comunicações para um dispositivo de mediação especificado pela informação de destino incluída na informação de interceptação.
Quando a chamada é terminada, a chamada é encerrada do mesmo modo que descrito acima. Caso a autoridade de imposição de lei deseje cessar a intercep-
tação da chamada durante a chamada, um mensagem de requisição LEA requisitando que a função de interceptação seja paralisada é enviada para o controlador de roteamento a partir da autoridade de imposição de lei através de qualquer um dos caminhos descritos acima. Isto ativa o manipulador de mensagem de requisição LEA tal como apresentado na Figura 44 que causa que o circuito do processador do controlador de roteamento execute os blo- cos 1402, 1404. No bloco 1404, o circuito do processador do controlador de roteamento é direcionado para alterar o conteúdo dos campos de intercepta- ção legítima para pelo menos estabelecer o indicador de interceptação legí- tima (702 na Figura 9) para inativo.
Então, no bloco 1406, os critérios de interceptação não são a- tendidos e o processador é direcionado para o bloco 1416, o qual causa que o circuito do processador do controlador de roteamento determine se uma função de interceptação está ou não em andamento. Isto pode ser determi- nado, por exemplo, por manter a evidência da recepção da mensagem de confirmação a partir do controlador de chamada, recebida no bloco 1414 do manipulador de mensagem de requisição LEA 1400. Se uma interceptação não estiver em andamento, o manipulador de mensagem de requisição LEA 1400 é terminado.
Se uma interceptação estiver em andamento, o bloco 1418 dire- ciona o circuito do processador do controlador de roteamento para executar uma rotina de encerramento de interceptação dentro da chamada como a- presentada por 1500 na Figura 46. A rotina de encerramento da intercepta- ção dentro da chamada começa com um primeiro bloco 1502 que direciona o circuito do processador do controlador de roteamento para localizar o re- gistro de chamada ativa do controlador de roteamento possuindo os conteú- dos de campo de chamador e de receptor iguais ao nome de usuário indica- do no perfil de discagem encontrado no bloco 1402 do manipulador de men- sagem de requisição LEA 1400 apresentado na Figura 44. Tendo encontra- do o registro de chamada ativa, o bloco 1504 direciona o circuito do proces- sador do controlador de roteamento para encontrar, no registro de chamada ativa do controlador de roteamento apresentado na Figura 36, o ID do con- trolador de chamada (1322) e o ID de chamada (1316) associados com a chamada. O bloco 1506 então direciona o circuito do processador do contro- lador de roteamento para enviar uma mensagem de enceramento de inter- ceptação (não-apresentada) para o controlador de chamada identificado pelo ID de controlador de chamada determinado no bloco 1504. Esta mensagem de encerramento de interceptação inclui o ID de chamada determinado no bloco 1504 e uma identificação do dispositivo de mediação, a identificação sendo obtida a partir do campo de endereço MD1 (704 na Figura 9) do perfil de discagem para o usuário cujas chamadas estão atualmente sendo inter- ceptadas. O bloco 1508 então direciona o circuito do processador do contro- lador de roteamento para aguardar por um tempo especificado para receber uma mensagem de confirmação a partir do controlador de chamada para indicar que a função de interceptação foi encerrada.
Referindo-se à Figura 47, ao receber a mensagem de encerra- mento de interceptação no controlador de chamada (14), o manipulador de mensagem de encerramento de interceptação 1520 é ativado no controlador de chamada. O manipulador de mensagem de encerramento de intercepta- ção 1520 começa com um primeiro bloco 1522 que direciona o circuito do processador do controlador de chamada para enviar uma mensagem de término SIP para o dispositivo de mediação identificado na mensagem de encerramento de interceptação recebida a partir do controlador de roteamen- to. Em resposta à mensagem de término SIP, o dispositivo de mediação pa- ra de receber dados de áudio e envia uma mensagem de confirmação de volta para o controlador de chamada.
O bloco 1524 direciona o circuito do processador do controlador de chamada para receber a mensagem de confirmação de volta a partir do dispositivo de mediação.
O bloco 1526 então direciona o circuito do processador do con- trolador de chamada para enviar uma mensagem de término de intercepta- ção para a retransmissão de mídia 17 identificada pelo conteúdo do campo de ID de retransmissão de mídia 1310 do registro de chamada ativa apre- sentado na Figura 35. A mensagem de término de interceptação inclui os conteúdos do campo de ID de porta do chamador da retransmissão de mídia 1312 e do campo de porta do receptor da retransmissão de mídia 1314 inclu- ídos no registro de chamada ativa e identifica para a retransmissão de mídia quais portas encerrar. Em resposta à mensagem de término de intercepta- ção, a retransmissão de mídia 17 desconecta as conexões entre a porta do chamador da retransmissão de mídia e a porta do dispositivo de mediação que estava recebendo os dados de áudio a partir do chamador e a conexão entre a porta do receptor da retransmissão de mídia e a porta do dispositivo de mediação que estava recebendo os dados de áudio a partir do receptor. Então, a retransmissão de mídia envia uma mensagem de condição de tér- mino MR para o controlador de chamada.
O bloco 1528 direciona o circuito do processador do controlador de chamada para receber a mensagem de condição de término MR e o blo- co 1530 direciona o controlador de chamada para enviar uma mensagem de condição de término para o controlador de roteamento 16.
Em uma concretização alternativa, o controlador de roteamento não mantém registros de chamada ativa, mas cada controlador de chamada mantém. Em tal concretização, os blocos 1408 e 1410 da Figura 44 são substituídos por um único bloco 1600 que direciona o circuito do processa- dor do controlador de roteamento para sondar cada controlador de chamada para determinar se sua lista de chamadas ativas contém uma entrada possu- indo os conteúdos do campo de chamador e de receptor iguais ao nome de usuário determinado a partir do perfil de discagem localizado no bloco 1402.
Se qualquer um dos controladores de chamada sondados pos- suir tal registro, este controlador de chamada transmite uma mensagem de resposta de volta para o controlador de roteamento, a mensagem de respos- ta incluindo um ID do controlador de chamada identificando este controlador de chamada. Mais do que um controlador de chamada pode ter um registro de chamada ativa possuindo conteúdos de campo de chamador ou de re- ceptor iguais ao nome de usuário determinado a partir do perfil do usuário. Este seria o caso em uma chamada de conferência, por exemplo. O circuito do processador do controlador de roteamento então
executa os blocos 1412 e 1414 como descrito acima ou o processo é termi- nado se nenhum dos controladores de chamada sondados contiver um re- gistro de chamada com os conteúdos de campo de chamador e de receptor correspondendo ao nome de usuário determinado a partir do perfil de disca- gem localizado no bloco 1402.
Portanto, na prática, o bloco 1600 proporciona um meio alterna- tivo para encontrar controladores de chamada que estão atualmente trans- portando uma chamada associada com o usuário de interesse.
Em outra concretização, uma interface com o controlador de ro- teamento e / ou com o controlador de chamada pode ser proporcionada para permitir que as autoridades de imposição de lei possuam acesso direto ou uma cópia da lista de chamadas ativas mantida pelo controlador de chama- da e / ou pelo controlador de roteamento.
A partir do precedente, será apreciado que indicações de que se as comunicações de um assinante com o sistema são ou não para serem monitoradas, são proporcionadas pelas agências de imposição de lei direta- mente para um perfil de discagem do assinante apresentado na Figura 9. Este perfil de discagem é utilizado para direcionar uma chamada envolvendo o assinante e é verificado em relação aos requerimentos de interceptação legítima para determinar se a retransmissão de mídia deve ou não copiar os dados de áudio associados com a chamada para um dispositivo de media- ção para propósitos de monitoramento e / ou gravação legítimos.
Enquanto o sistema foi descrito em conexão com o monitora- mento de fluxos de áudio, ele pode de forma similar ser utilizado para moni- toramento de quaisquer outros fluxos de dados, tal como dados puros e / ou dados de vídeo ou de multimídia, por exemplo, entre assinantes do sistema ou entre um assinante e um não assinante do sistema.
Enquanto concretizações específicas da invenção foram descri- tas e ilustradas, tais concretizações devem ser consideradas somente ilus- trativas da invenção e não limitando a invenção como construída de acordo com as reivindicações acompanhantes.