ANTECEDENTES DA INVENÇÃO
1. Campo da invenção
[001] A presente invenção refere-se a comunicagoes de dados e a metodos e aparelhos para interceptar comunicaQoes de dados, particularmente comunicaQoes de dados de voz via IP, em uma rede IP.
2. Descrição da Tecnica Relacionada
[002] O termo "interceptagao legitima" e utilizado para descrever um procedimento que permite que as agendas de imposigao de lei executem vigilancia eletronica das telecomunicagoes. A interceptaQao legitima de telecomunicagoes, particularmente, de chamadas de tele- fone, baseada na premissa de uma nogao de que a agenda de imposigao de lei identificou uma pessoa de interesse, obteve uma autoriza- gao legal para a vigilancia (por exemplo, um mandato judicial ou administrative), e entao, entrou em contato com o provedor de servigo de telecomunicagoes da pessoa, o qual sera obrigado a proporcionar para a agenda de imposigao de lei uma copia em tempo real das comunicagoes da pessoa. Esta copia em tempo real pode entao ser utilizada pela agenda de imposigao de lei para monitorar e gravar as comunicagoes da pessoa. Dentro da estrutura de redes de telecomunicagoes tradicionais, tal como, por exemplo, a Rede Comutada de Telefonia Publica (PSTN), ou as redes de celular, a interceptagao legitima geralmente apresenta um problema puramente econdmico para os pro- vedores de servigos, que tern que garantir que equipamento de inter-ceptagao suficiente e ligagdes dedicadas com as agendas de imposigao de lei tenham sido dispostos para satisfazer as exigencias de interceptagao legitima obrigadas pela lei. Entretanto, no context© das comunicagoes de Voz atraves do Protocolo Internet (VoIP), em adigao aos problemas economicos mencionados acima, a interceptagao legi- tima apresenta significativos desafios tecnologicos que frequentemen- te tornam compatibilidade com as exigencias de interceptagao legitima obrigadas por lei excessivamente dificeis.
[003] O problema se situa na natureza da tecnologia VoIP e das redes com Protocolo Internet (IP) (por exemplo, a Internet) que sao subjacentes a mesma.
[004] As redes de telecomunicagoes tradicionais sao "orientadas por conexao" ou "comutadas por circuito". As comunicagoes atraves de tais redes ocorrem via "circuitos" dedicados. Apesar das redes tipicamente compreenderem varies trajetos paralelos disponiveis, quando um circuito e estabelecido, somente um dos trajetos disponiveis e cap- tado. Em situagoes onde um circuito possui protegao contra falha, um trajeto redundante, tambem determinado na hora do estabelecimento do circuito, tambem pode ser reservado. Uma vez que o circuito e estabelecido, todas as comunicagoes percorrem de ponta a ponta.A interceptagao de tais comunicagoes e facil a medida que o provedor de servigo possa "grampear" o circuito em qualquer ponto na rede que esteja sob seu controle legitimo.
[005] Em contraste com as redes comutadas por circuito, as redes baseadas em IP sao "sem conexoes" por projeto. Uma rede IP sem conexoes essencialmente compreende varios dispositivos de rede (roteadores) interconectados que estabelecem varios trajetos a partir de qualquer ponto na rede para qualquer outro ponto. A informagao que precisa percorrer uma rede IP e dividida em pequenos "pacotes", cada um compreendendo um cabegalho IP contendo informagao de enderegamento de fonte e de destino, e indicadores de servigo; e uma carga util do usuario. O trajeto especlfico que cada pacote em uma comunicagao entre partes percorre atraves de uma rede IP nao e determinado antecipadamente, tai como em uma rede comutada por cir- cuito. O trajeto e definido em uma base de no por no (roteador por ro- teador), e em cada roteador que o pacote chega, ele examina os ende- reqos de fonte e de destino contidos no cabeQalho IP e aplica uma serie de variaveis de serviQo, tal como contagem de no (numero de rote- adores entre o roteador corrente e o destino), latencia e largura de banda de ligaQoes disponiveis, e consideraQoes administrativas, tal como acordos interprovedores, para determinar o proximo no para o qual o pacote sera enviado. Devido as variaveis do serviQo se altera- rem de forma dinamica, por exemplo, em resposta a uma falha de uma ligaQao na rede, os caminhos disponiveis podem alterar de forma sig- nificativa e e impossivel predizer de forma confiavel o caminho ou os caminhos que os pacotes que compreendem uma comunicaQao especifica irao percorrer. Adicionalmente, nao e mesmo possivel predizer a ordem na qual os pacotes irao chegar a seu destino, a medida que os diferentes trajetos escolhidos podem ter diferentes latencias. Enquanto os varios trajetos disponiveis e as chegadas fora de ordem nao apresentam problemas para as aplicapoes baseadas em IP que normalmente mantem um rastro da sequencia do pacote para novamente montar a comunicaQao, os mesmos fatores apresentam problemas formidaveis para a interceptaQao legitima de comunicaQao via redes IP, particularmente, a interceptaQao legitima de chamadas VoIP.
[006] O problema da interceptaQao legitima nos sistemas VoIP e adicionalmente exacerbado pelas tecnologias distribuidas frequente- mente utilizadas em tais sistemas. Enquanto um chamador VoIP tipi- camente se comunica com um controlador de chamada VoIP para faci- litar a conexao com o receptor VoIP, a comunicaQao real entre as partes tipicamente ocorre pelo estabelecimento de uma conexao IP direta entre as mesmas, utilizando o Protocolo de Datagrama do Usuario (UDP), para encapsular a informaQao de audio em pacotes IP. Estes pacotes podem percorrer qualquer trajeto disponivel atraves da rede IP como descrito acima. Mesmo se um provedor de servipo pudesse coIocar um dispositive de interceptapao em cada ponto na rede atraves do qual um pacote do assinante poderia percorrer, de modo a pro- porcionar uma copia util da comunicapao para a agenda de imposipao de lei, o provedor de servipo teria que remontar todos os pacotes inter- ceptados em um unico dispositivo e somente entao passar o resultado para a agenda de imposipao de lei. Em essencia, o provedor de servipo teria que espelhar as funpoes do telefone VoIP do receptor, exceto os pacotes que compreendem a comunicapao que teriam que ser coletados a partir de varios pontos na rede. Os desafios tecnologicos e os custos econdmicos associados com esta proposipao desse modo tern resultado na carencia de capacidades significativas de interceptapao legitima nos sistemas VoIP.
SUMARIO DA INVENÇÃO
[007] De acordo com um aspecto da invenpao, e proporcionado um metodo para interceptar comunicapoes em uma rede de Protocolo Internet (IP). O metodo envolve manter perfis de discagem para os respectivos assinantes da rede IP, cada perfil de discagem incluindo um nome de usuario associado com o assinante correspondente. O metodo tambem envolve associar informapao de interceptapao com o perfil de discagem de um assinante cujas comunicapoes sao para se- rem monitoradas, a informapao de interceptapao incluindo informapao de determinapao para determinar se intercepts uma comunicapao en- volvendo o assinante, e informapao de destino, identificando um dispositivo para o qual as comunicapoes interceptadas envolvendo o assinante sao para serem enviadas. O metodo adicionalmente envolve, quando a informapao de determinapao atende aos criterios de interceptapao, se comunicar com uma retransmissao de midia atraves da qual as comunicapoes envolvendo o assinante serao conduzidas ou estao sendo conduzidas para fazer com que o retransmissor de midia envie uma copia das comunicaQoes para um dispositivo de mediaQao especificado pela informagao de destino.
[008] Associar a informagao de interceptagao pode envoiver as- sociar a informagao de interceptagao com o perfil de discagem quando as comunicaQoes envolvendo o assinante nao estao em progresso.
[009] Associar a informaQao de interceptaQao pode envoiver associar a informaQao de interceptaQao quando comunicaQoes envolvendo o assinante estao em progresso.
[0010] Associar a informaQao de interceptaQao pode envoiver popular campos da informaQao de interceptaQao no perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas.
[0011] O metodo pode envoiver produzir uma mensagem de rote- amento para rotear comunicaQoes envolvendo o assinante atraves dos componentes da rede IP e determinar se a informaQao de determinaQao atende aos criterios de interceptaQao antes de produzir a mensagem de roteamento e incluindo pelo menos alguma parte da informaQao de interceptaQao na mensagem de roteamento quando a informa-Qao de determinaQao satisfaz os criterios de interceptaQao.
[0012] Determinar se a informaQao de determinaQao satisfaz os criterios de interceptaQao pode envoiver determinar se a data e a hora correntes estao dentro de uma faixa especificada pela informaQao de determinaQao.
[0013] O metodo pode envoiver identificar uma retransmissao de midia atraves da qual as comunicaQoes envolvendo o assinante serao conduzidas em resposta a mensagem de roteamento.
[0014] O metodo pode envoiver associar anteriormente pelo menos uma retransmissao de midia com o perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas e identificar a retransmissao de midia pode envoiver identificar a retransmissao de midia associada anteriormente com o assinante cujas comunicaQoes saopara serem monitoradas.
[0015] Associar anteriormente pode envoiver preencher campos da retransmissao de midia no perfil de discagem com uma identifica- gao da pelo menos uma retransmissao de midia.
[0016] A informagao de interceptaQao pode ser associada com o perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas, em resposta a recepgao de uma mensagem de requisi- gao de interceptaQao, e a mensagem de requisigao de interceptagao pode incluir a informaQao de interceptagao.
[0017] O metodo pode envoiver chamar um manipulador de mensagem de requisigao de interceptagao para encontrar um perfil de discagem associado com o assinante cujas comunicagoes sao para serem monitoradas, e executar a etapa de associar a informagao de interceptagao com o perfil de discagem, e determinar se os criterios de interceptagao sao satisfeitos, e identificar uma retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas.
[0018] O metodo pode envoiver manter registros de chamada ativa para comunicagoes em andamento, e os registros de chamada ativa podem incluir um identificador do nome do usuario e um identificador da retransmissao de midia identificando a retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas e identificar uma retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas, pode envoiver localizar um registro de chamada ativa associado com comunicagoes do assinante cujas comunicagoes sao para serem monitoradas para encontrar a retransmissao de midia associada com as comunicagoes.
[0019] O metodo pode envoiver manter registros de discagem dire- ta interna (DID) associando numeros de telefone PST com os nomes de usuarios que assinam a rede IP, e encontrar um perfil de discagem associado com o assinante cujas comunicagoes sao para serem moni- toradas, pode envoiver encontrar um nome de usuario e um registro de ID carregando o numero PSTN associado com o assinante cujas comunicagoes sao para serem monitoradas. O nome do usuario pode ser utilizado para localizar um perfil de discagem associado com o nome do usuario.
[0020] De acordo com outro aspecto da invenção, e proporcionado um aparelho para interceptar comunicagoes em uma rede de Protocolo Internet (IP). O aparelho inclui provisoes para manter perfis de discagem para os respectivos assinantes da rede IP, cada perfil de discagem incluindo um nome de usuario associado com o assinante corres- pondente. O aparelho tambem inclui provisoes para associar a informagao de interceptagao com o perfil de discagem de um assinante cujas comunicagoes sao para serem monitoradas, a informagao de interceptagao incluindo informagao de determinagao para determinar se e para ser feita a interceptagao de uma comunicagao envolvendo o assinante, e informagao de destino identificando um dispositivo para o qual as comunicagoes interceptadas envolvendo o assinante sao para serem enviadas. O aparelho adicionalmente inclui provisoes para a co-municagao com uma retransmissao de midia atraves da qual as comunicagoes envolvendo o assinante serao conduzidas ou estao sendo conduzidas, para fazer com que a retransmissao de midia envie uma copia das comunicagoes para um dispositivo de mediagao especifica- do pela informagao de destino, quando a informagao de determinagao atende aos criterios de interceptagao.
[0021] As provisoes para associar a informagao de interceptagao podem ser de forma operacional configuradas para associar a informagao de interceptagao com o perfil de discagem quando as comunicagoes envolvendo o assinante nao estao em andamento.
[0022] As provisoes para associar a informagao de interceptagao podem ser de forma operacional configuradas para associar a infor- maqao de interceptaQao quando as comunicaQoes envolvendo o assinante estao em andamento.
[0023] As provisoes para associar a informaQao de interceptaQao podem ser de forma operacional configuradas para preencher campos da informaQao de interceptaQao no perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas.
[0024] O aparelho adicionalmente pode incluir provisoes para produzir uma mensagem de roteamento para rotear comunicaQoes envolvendo o assinante atraves dos componentes da rede IP e provisoes para determinar se a informaQao de determinaQao atende aos criterios de interceptaQao antes de produzir a mensagem de roteamento e as provisoes para produzir a mensagem de roteamento podem ser configuradas de forma operacional para incluir pelo menos alguma parte da informaQao de interceptaQao na mensagem de roteamento, quando a informaQao de determinaQao atende aos criterios de interceptaQao.
[0025] As provisoes para determinar se a informaQao de determinaQao atende aos criterios de interceptaQao podem ser configuradas de forma operacional para determinar se uma data e hora corrente estao dentro de uma faixa especificada pela informaQao de determinaQao.
[0026] O aparelho adicionalmente pode incluir provisoes para identificar uma retransmissao de midia atraves da qual as comunicaQoes envolvendo o assinante serao conduzidas em resposta a mensagem de roteamento.
[0027] O aparelho adicionalmente pode incluir provisoes para associar anteriormente pelo menos uma retransmissao de midia com o perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas e as provisoes de roteamento podem ser configuradas de forma operacional para identificar a partir do perfil de discagem a retransmissao de midia associada anteriormente com o assinante cujascomunicaQoes sao para serem monitoradas.
[0028] As provisoes para associar anteriormente podem ser confi- guradas de forma operacional para preencher campos da retransmissao de midia no perfil de discagem com uma identificagao da pelo menos uma retransmissao de midia.
[0029] As provisoes para associar a informaQao de interceptaQao podem ser configuradas de forma operacional para associar a informaQao de interceptaQao associada com o perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas, e resposta a receptagao de uma mensagem de requisigao de interceptaQao, onde a mensagem de requisiQao de interceptaQao compreende a informaQao de interceptaQao.
[0030] O aparelho adicionalmente pode incluir provisoes para ma- nipular uma mensagem de requisiQao de interceptaQao.As provisoes para manipular uma mensagem de requisiQao de interceptaQao podem incluir provisoes para encontrar um perfil de discagem associado com o assinante cujas comunicaQoes sao para serem monitoradas. As provisoes para encontrar um perfil de discagem podem cooperar com as provisoes para associar a informaQao de interceptaQao com o perfil de discagem para fazer com que a informagao de interceptagao seja associada com o perfil de discagem. As provisoes para manipular uma mensagem de requisigao de interceptagao podem incluir provisoes para determinar se os criterios de interceptagao sao satisfeitos e provisoes para identificar uma retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas.
[0031] O aparelho adicionalmente pode incluir provisoes para manter registros de chamada ativa para comunicagoes em andamento, os registros de chamada ativa incluindo um identificador de nome de usuario e um identificador de retransmissao de midia identificando a retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas e as provisoes para identificar uma retransmissao de midia atraves da qual as comunicagoes estao sendo conduzidas podem ser configuradas de forma operavel para localizar um registro de chamada ativa associado com as comunicagoes do assinante cujas comunicagoes sao para serem monitoradas para encontrar a retransmissao de midia associada com as comunicagoes.
[0032] O aparelho pode adicionalmente incluir provisoes para manter registros de discagem direta interna (DID) associando numeros de telefone PST com os nomes de usuario de usuarios assinando a rede IP, e as provisoes para encontrar um perfil de discagem associado com o assinante cujas comunicagoes sao para serem monitoradas podem ser de forma operacional configuradas para encontrar um nome de usuario em um registro DID carregando um numero PSTN associado com o assinante cujas comunicagoes sao para serem monitoradas e utilizar o nome do usuario para localizar um perfil de discagem associado com o nome do usuario.
[0033] Por empregar uma media replay, todas as comunicagoes VoIP percorrem um ponto no sistema VoIP que esta sobre controle de um provedor e no qual as comunicagoes podem ser copiadas em tempo real para um dispositivo de mediagao que passa a comunicagao interceptada para uma agenda de imposigao de lei.
[0034] Por manter perfis de discagem para os respectivos assinan- tes e associar a informagao de interceptagao do tipo descrito, com os perfis de discagem de assinantes cujas comunicagoes sao para serem monitoradas, o perfil de discagem pode servir como uma fonte de informagao de determinagao para determinar se as comunicagoes envolvendo o assinante serao ou nao monitoradas e para proporcionar informagao de destino para especificar para onde a copia das comunicagoes e para ser enviada. O uso do perfil de discagem desta maneira facilmente facilita que um dado assinante e este repositorio possam ser enderegados se uma chamada estiver sendo iniciada ou estiver em andamento, desse modo simplificando os algoritmos de controle, por- que eles podem cooperar com uma fonte comum e com o formato de dados no perfil de discagem.
[0035] Outros aspectos e caracteristicas da presente invenção irao se tornar aparentes para os versados na tecnica quando da inspegao da Descrição seguinte de concretizagoes especificas da invenção em conjunto com as figuras acompanhantes.
BREVE DESCRIQAO DOS DESENHOS
[0036] Nos desenhos, os quais ilustram concretizaQoes da invenção:
[0037] A Figura 1 e um diagrama de blocos de um sistema de acordo com uma primeira concretizagao da invenção;
[0038] A Figura 2 e um diagrama de blocos de um telefone VoIP do chamador de acordo com uma primeira concretizagao da invenção;
[0039] A Figura 3 e uma representagao esquematica de uma mensagem de convite SIP transmitida entre o telefone do chamador e um controlador de chamada (CC) apresentado na Figura 1;
[0040] A Figura 4 e um diagrama de blocos do controlador de chamada apresentado na Figura 1;
[0041] A Figura 5 e um fluxograma de um processo executado pelo controlador de chamada apresentado na Figura 1;
[0042] A Figura 6 e uma representagao esquematica de uma mensagem de requisigao do controlador de roteamento (RC) produzida pelo controlador de chamada apresentado na Figura 1;
[0043] A Figura 7 e um diagrama de blocos de um circuito do pro- cessador do controlador de roteamento (RC) do sistema apresentado na Figura 1;
[0044] As Figuras 8A ate 8D sao fluxogramas de um manipulador de mensagem de Requisigao RC executados pelo circuito do proces-sador RC apresentado na Figura 7;
[0045] A Figura 9 e uma representapao tabular de um perfil de discagem armazenado em uma base de dados acessivel pelo RC apresentado na Figura 1;
[0046] A Figura 10 e uma representapao tabular de um perfil dediscagem para um assinante de Vancouver;
[0047] A Figura 11 e uma representapao tabular de um perfil de discagem para um assinante de Calgary;
[0048] A Figura 12 e uma representapao tabular de um perfil dedialogo para um assinante de Londres;
[0049] A Figura 13 e uma representapao tabular de um registro de tabela de banco de discagem direta interna (DID) armazenado na base de dados apresentada na Figura 1;
[0050] A Figura 14 e uma representapao tabular de um registro de tabela de banco de ID ilustrativo para o assinante de Londres, referen- ciado na Figura 12;
[0051] A Figura 15 e uma representapao tabular de uma mensagem de roteamento transmitida a partir do controlador de roteamento para o controlador de chamada apresentado na Figura 1;
[0052] A Figura 16 e uma representapao tabular de uma memoria temporaria de mensagem de roteamento mantendo uma mensagem de roteamento para rotear uma chamada para o receptor de Londres referenciado na Figura 12;
[0053] A Figura 16A e uma representapao tabular de uma memoria temporaria de mensagem de roteamento mantendo uma mensagem para rotear uma chamada para o receptor de Londres e para uma agenda de imposipao de lei para o proposito de interceptapao legitima;
[0054] A Figura 17 e uma representapao tabular de um prefixo para o registro de tabela de superno armazenado na base de dados apresentada na Figura 1;
[0055] A Figura 18 e uma representagao tabular de um prefix© para o registro de tabela de superno que seria utilizado para o receptor de Calgary, referenciado na Figura 11;
[0056] A Figura 19 e uma representaQao tabular de um registro de lista mestre armazenada em uma tabela de lista mestre na base de dados apresentada na Figura 1;
[0057] A Figura 20 e uma representagao tabular de um registro de lista mestre preenchido ilustrativo;
[0058] A Figura 21 e uma representagao tabular de um registro de lista de fornecedores armazenado na base de dados apresentada na Figura 1;
[0059] A Figura 22 e uma representagao tabular de um registro especifico da lista de fornecedores para um primeiro fornecedor;
[0060] A Figura 23 e uma representagao tabular de um registro especifico da lista de fornecedores para um segundo fornecedor;
[0061] A Figura 24 e uma representagao tabular de um registro especifico da lista de fornecedores para um terceiro fornecedor;
[0062] A Figura 25 e uma representagao tabular de uma mensagem de roteamento, mantida em uma memoria temporaria de mensagem de roteamento, identificando para o controlador de roteamento varies fornecedores possiveis que podem transporter a chamada;
[0063] A Figura 25A e uma representagao tabular de uma mensagem de roteamento mantida em uma memoria temporaria de mensagem de roteamento, com campos de interceptagao legftima anexos;
[0064] A Figura 26 e uma representagao tabular de um registro da tabela de bloco de chamada;
[0065] A Figura 27 e uma representagao tabular de um registro de tabela de bloco de chamada para o receptor de Calgary;
[0066] A Figura 28 e uma representagao tabular de um registro de tabela de envio de chamada;
[0067] A Figura 29 e uma representagao tabular de um registro ilustrativo da tabela de envio de chamada especlfico para o receptor de Calgary;
[0068] A Figura 30 e uma representaQao tabular de um registro da tabela de correio de voz especificando parametros de correio de voz para permitir ao chamador deixar uma mensagem de correio de voz para o receptor;
[0069] A Figura 31 e uma representagao tabular de um registro ilustrativo da tabela de correio de voz para o receptor de Calgary;
[0070] A Figura 32 e uma representagao tabular de uma mensagem de roteamento ilustrativa, mantida em uma memoria temporaria de mensagem de roteamento, indicando numeros de envio de chamada e um identificador de servidor de correio de voz;
[0071] A Figura 32A e uma representagao tabular de uma mensagem de roteamento ilustrativa, mantida em uma memoria de mensagem de roteamento, indicando numeros de envio de chamada e um identificador de servidor de correio de voz com campos de interceptagao legitima do chamador anexos;
[0072] A Figura 32B e uma representagao tabular de uma mensagem de roteamento ilustrativa, mantida em uma memoria de mensagem de roteamento, indicando numeros de envio de chamada e um identificador de servidor de correio de voz com campos de interceptagao legitima do chamador e do receptor, anexos;
[0073] A Figura 33 e um fluxograma de um processo do manipula- dor de mensagem de roteamento executado pelo controlador de chamada;
[0074] A Figura 34 e uma representagao esquematica de mensa- gens trocadas durante a execugao do processo para estabelecer ca- minhos de audio entre telefones e uma retransmissao de midia;
[0075] A Figura 35 e uma representagao tabular de um registro dechamada ativa mantido pelo controlador de chamada da Figura 1;
[0076] A Figura 36 e uma representagao tabular de um registro de chamada ativa mantido pelo controlador de roteamento da Figura 1;
[0077] A Figura 37 e uma representapao tabular de uma mensagem de Convite SIP transmitida a partir do controlador de chamada para o dispositivo de mediagao;
[0078] A Figura 38 e uma representagao tabular de uma mensagem SIP OK transmitida a partir do dispositivo de mediagao para o controlador de chamada;
[0079] A Figura 39 e uma representagao tabular de uma mensagem SIP Bye transmitida a partir de qualquer um dos telefones apre- sentados na Figura 1 para o controlador de chamada;
[0080] A Figura 40 e uma representagao tabular de uma mensagem SIP Bye enviada para o controlador de chamada a partir do receptor de Calgary;
[0081] A Figura 41 e um fluxograma de um processo executado pelo controlador de chamada para produzir uma mensagem de termino RC em resposta a recepgao de uma mensagem SIP Bye;
[0082] A Figura 42 e uma representagao tabular de uma mensagem ilustrativa de Termino de Chamada RC;
[0083] A Figura 43 e uma representagao tabular de uma mensagem ilustrativa de Termino de Chamada RC para o receptor de Calgary;
[0084] A Figura 44 e um fluxograma de um manipulador de mensagem de requisigao da Autoridade de Imposigao de Lei do controlador de roteamento executado pelo controlador de roteamento apresentado na Figura 1;
[0085] A Figura 45 e um fluxograma de um manipulador de mensagem de interceptagao dentro da chamada do controlador de chamada executado pelo controlador de chamada apresentado na Figura 1;
[0086] A Figura 46 e um fluxograma de uma rotina de termino de interceptagao dentro da chamada do controlador de roteamento execu- tada pelo controlador de roteamento apresentado na Figura 1;
[0087] A Figura 47 e um fluxograma de um roteamento de termino do manipulador de mensagem de interceptaQao do controlador de chamada, executado pelo controlador de chamada apresentado na Figura 1.
DESCRIQAO DETALHADA
[0088] Referindo-se a Figura 1, um sistema para fazer chamadas de telefone de voz via IP e geralmente apresentado como 10. O sistema inclui um primeira superno geralmente apresentado como 11 e um segundo superno geralmente apresentado como 21. O primeira superno 11 esta localizado em uma area geografica, tai como Vancouver BC, por exemplo, e o segundo superno 21 e localizado em Londres, Inglaterra, por exemplo. Diferentes supernos podem estar localizados em diferentes regioes geograficas em todo o mundo para proporcionar serviQos de telefone para assinantes nas respectivas regioes. Estes supernos podem estar em comunicaQao uns com os outros atraves de ligaQoes de alta velocidade I altas taxas de transmissao efetiva de dados, incluindo fibra otica, satelite, e/ou ligaQoes por cabo, por exemplo, formando uma estrutura principal de sistema. Estes supernos podem alternativamente ou em adiQao estar em comunicaQao uns com os outros atraves de serviQos de Internet convencionais. Na concreti- zaQao apresentada, a midia de comunicaQao de dados para proporcionar as comunicagoes de dados entre os primeira e segundo supernos 11 e 21, e apresentada geralmente por 23 e pode incluir ligaQoes de dados de altissima velocidade, por exemplo.
[0089] Na concretizaQao apresentada, o superno de Vancouver 11 proporciona serviQO de telefone para uma rede geografica compreen- dendo os clientes canadenses ocidentais a partir da ilha de Vancouver ate Ontario, e inclui um assinante de Vancouver e um assinante de Calgary. Outro superno (nao-apresentado) pode estar localizado no Canada Oriental, para proporcionar servigos para assinantes nesta area.
[0090] Outros supernos menores similares ao tipo apresentado tambem podem ser empregados dentro da area geografica servida por um superno, para proporcionar compartilhamento de carga de chamada, por exemplo, dentro de uma regiao da area geografica servida pelo superno.Entretanto, em geral, todos os supernos sao similares e pos- suem as propriedades descritas abaixo em conexao com o superno de Vancouver 11.
[0091] Nesta concretizagao, o superno de Vancouver inclui um controlador de chamada (CC) 14, um controlador de roteamento (RC) 16, uma base de dados 18 uma retransmissao de midia 17 e um ou mais dispositivos de mediagao (MD), somente um dos quais e apresentado em 31. Os assinantes, tai como o assinante de Vancouver e o assinante de Calgary se comunicam com o superno de Vancouver 11 utilizando seus proprios Provedores de Servigo Internet (ISPs) 13 e 19, que roteiam o trafego de Internet a partir destes assinantes atraves da Internet. Para estes assinantes, o superno de Vancouver 11 e acessi- vel em um enderego IP predeterminado ou em um nome de dominio totalmente qualificado (FQDN), de modo que ele pode ser acessado do modo usual atraves do ISP de um assinante. O assinante na cidade de Vancouver utiliza um telefone 12 que e capaz de se comunicar com o superno de Vancouver 1 utilizando mensagens do Protocolo de Inf- cio de Sessao (SIP) e o assinante de Calgary utiliza um telefone similar 15, para se comunicar com o superno de Vancouver a partir de Calgary, AB.
[0092] Deve ser observado que atraves da Descrição das concreti- zagoes desta invenção, os enderegos IP / UDP de todos os elementos, tal como os telefones do chamador e do receptor, o controlador de chamada, a retransmissao de midia, e quaisquer outros, serao assu- midos como sendo endereqos IP / UDP validos, diretamente acessf- veis via a Internet ou uma rede IP privada, por exemplo, dependendo da implementaqao especifica do sistema. Como tal, sera assumido, por exemplo, que os telefones do chamador e do receptor irao possuir endereqos IP I UDP diretamente acessiveis pelos controladores de chamada e pelas retransmissoes de midia em seus respectivos super- nos, e isto nao sera obscurecido pela Translaqao de Endereqo de Rede (NAT) ou mecanismos similares. Em outras palavras, a informaQao IP / UDP contida nas mensagens SIP (por exemplo, a mensagem de convite SIP ou a mensagem de requisiQao RC que serao descritas abaixo) ira corresponder aos endereqos IP / UDP dos pacotes IP transportando estas mensagens SIP.
[0093] Sera apreciado que em varias situaqoes, os endereQos IP designados para os varios elementos do sistema podem estar em um espaqo de endereQO IP privado, e assim, nao diretamente acessiveis a partir de outros elementos. Adicionalmente, tambem sera apreciado que a NAT e normalmente utilizada para compartilhar um endereQO IP "publico" entre multiplos dispositivos, por exemplo, entre PCs domesti- cos e telefones IP compartilhando uma unica conexao Internet. Por exemplo, pode ser designado para um PC domestico um endereQO IP tal como 192.168.0.101 e para um telefone de voz via IP pode ser designado um endereQO IP de 192.168.0.103. Estes endereqos estao localizados no assim chamado espaqo de endereqo "nao roteavel" e nao podem ser acessados diretamente a partir da Internet. De modo que estes dispositivos se comuniquem com outros computadores localizados na Internet, estes endereqos IP tern que ser convertidos para um endereqo IP "publico", por exemplo, 24.10.10.123, designado para o assinante pelo Provedor de Serviqo Internet, por um dispositivo execu- tando a NAT, tipicamente um roteador domestico. Em adigao a traduzir os enderegos IP, a NAT tipicamente tambem traduz os numeros de porta UDP, por exemplo, um caminho de audio se originando em um telefone IP e utilizando uma porta UDP 12378 em seu enderego IP pri- vado pode ser traduzido para uma porta UDP 23465 associada com o enderego IP publico do dispositivo NAT. Em outras palavras, quando um pacote se originando a partir do telefone IP acima chega em um superno baseado na Internet, o enderego IP / UDP da fonte contido no cabegalho do pacote IP sera 24.10.10.1:23465, ao passo que a informagao de enderego IP / UDP da fonte contida na mensagem SIP dentro deste pacote IP sera 192.168.0.103:12378. A nao correspondencia entre os enderegos IP / UDP pode causar um problema para sistemas baseados em SIP porque, por exemplo, um superno ira tentar enviar mensagens para um enderego privado de um telefone - as mensa- gens nunca chegarao la.
[0094] Sera apreciado que varios metodos estao disponiveis para superar este problema. Por exemplo, um modulo de software de fonte aberta SIP NATHelper pode funcionar no superno para correlacionar o enderego IP / UDP publico contido nos cabegalhos dos pacotes IP chegando a partir de dispositivos SIP com enderegos IP I UDP priva- dos nas mensagens SIP contidas nestes pacotes. Portanto, as concre- tizagoes da invenção descritas abaixo irao funcionar, estando ou nao os elementos dos sistemas localizados por tras de dispositivos NAT que obscurecem seus enderegos IP / UDP reais.
[0095] Referindo-se a Figura 1, em uma tentativa de fazer uma chamada pelo telefone de Vancouver 12 para o telefone de Calgary 15, por exemplo, o telefone de Vancouver envia uma mensagem de convite SIP para o superno de Vancouver 11 e em resposta, o controlador de chamada 14 envia uma mensagem de Requisigao RC para o controlador de roteamento 16, o qual faz varias consultas junto a base de dados 18 para produzir uma mensagem de roteamento que e envi- ada para o controlador de chamada 14. O controlador de chamada 14 entao causa que uma ligagao de comunicagoes incluindo caminhos de audio seja estabelecida atraves da retransmissao de midia 17, a qual pode incluir o mesmo superno de Vancouver 11, um superno diferente ou um dispositivo de interconexao de rede fornecedor de comunicaQoes, por exemplo, para transporter o trafego de voz para e a partir do recebedor ou receptor da chamada. Sujeito a certas condigoes serem satisfeitas, como sera descrito abaixo, quando a interceptagao legitima de dados e para ocorrer, os dados nos caminhos de audio sao copia- dos para o dispositivo de mediagao 31, o qual pode proporcionar escuta em tempo real dos dados de audio ou gravagao dos mesmos.
Telefone do Assinante
[0096] Referindo-se a Figura 2, nesta concretizagao, cada um dos telefones 12, 15, 22 e 25 inclui um circuito processador apresentado geralmente como 30, compreendendo um microprocessador 32, memoria de programa 34, uma interface de entrada / saida (E / S) 36, memoria de parametro 38 e memoria temporaria 40. A memoria de programa 34, a interface de E / S 36, a memoria de parametro 38 e a memoria temporaria 40 estao todas em comunicagao com o microprocessador 32. A interface de E / S 36 possui uma entrada de discagem 42 para receber um numero de telefone discado a partir de um teclado, por exemplo, ou a partir de uma unidade de reconhecimento de voz ou a partir de numeros de telefone pre-armazenados, armazenados na memoria de parametro 38, por exemplo. Por simplicidade, uma caixa rotulada fungoes de discagem 44 representa qualquer dispositivo ca- paz de informar para o microprocessador 32 um identificador do receptor, por exemplo, um numero de telefone do receptor.
[0097] O microprocessador 32 armazena o identificador do receptor em uma memoria temporaria de numero discado 41. No caso do assinante de Vancouver, por exemplo, o numero discado pode ser 2001 1050 2222, identificando o assinante de Calgary ou o numero discado pode ser um numero PSTN por exemplo. A interface de E / S 36 tambem possui uma interface de aparelho de telefone 46 para re- ceber e produzir sinais a partir e para um aparelho de telefone 45 que um usuario pode coIocar no seu ouvido. A interface 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 terminagao para um caminho de audio (nao-apresentado), o qual sera apreciado posteriormente.
[0098] A interface de E / S 36 tambem possui uma interface de rede 48 com uma rede IP que pode proporcionar conexao Internet de alta velocidade, por exemplo, e e operavel para conectar o telefone com um ISP. A interface de rede 48 tambem atua como uma parte do caminho de audio, como sera apreciado posteriormente.
[0099] A memoria de parametro 38 possui um campo de nome do usuario 50, um campo de senha 52, um campo de endereqo IP 53 e um campo de endereQO de Proxy SIP 54. O campo de nome do usuario 50 e operavel para manter um nome do usuario, o qual, para o assinante de Vancouver, e 2001 1050 8667. O nome do usuario e designado quando da assinatura ou registro no sistema e, nesta concretiza- Qao, inclui um numero com doze digitos, possuindo um codigo de con- tinente 61, um codigo de pais 63 e um codigo de concessionaria 70 e um codigo de numero unico 74. O codigo de continente 61 e compre- endido do primeiro digito ou digito mais a esquerda do nome do usuario nesta concretizaQao. O codigo do pais 63 e compreendido dos pro- ximos tres digitos. O codigo da concessionaria 70 e compreendido dos proximos quatro digitos e o codigo de numero unico 74 e compreendido dos ultimos quatro digitos. O campo de senha 52 mantem uma senha com ate 512 numeros caracteres, neste exemplo. O campo de en- derepo IP 53 armazena um enderepo IP e o numero de porta UDP do telefone 12, o qual, para esta explicapao, e 192.168.0.20:12345. O campo de enderepo de Proxy SIP 54 armazena um enderepo IP de um Proxy SIP que pode ser proporcionado para o telefone 12 atraves da interface de rede 48 como parte de um procedimento de registro.
[00100] A memoria de programa 34 armazena blocos de codigos para direcionar o microprocessador 38 para realizar as funpoes do telefone, um dos quais inclui um bloco de protepao 56 que proporciona funpoes de protepao para o telefone, para impedir acesso nao autori- zado atraves da conexao de rede ao microprocessador 32 e as memo- rias 34, 38 e 40. A memoria de programa 34 tambem armazena codigos ID de chamada 57 para estabelecer um ID de chamada. Os codigos de ID de chamada 57 direcionam o microprocessador 32 para produzir identificadores de chamada possuindo o formato de uma cadeia hexadecimal e um enderepo IP do telefone armazenado no campo de enderepo IP 53. Assim, um identificador de chamada ilustrativo para uma chamada pode ser FF10@192.168.0.20.
[00101] Geralmente, em resposta a ativar o aparelho de telefone 45 e utilizar a funpao 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.
[00102] Referindo-se a Figura 3, a mensagem de convite SIP inclui um campo de identificador do chamador 60, um campo de identificador do receptor 62, um campo de parametros de resumo 64, um campo de identificador de chamada 65, um campo de enderepo IP do chamador 67 e um campo de porta UDP do chamador 69. Nesta concretizapao, o campo de identificador do chamador 60 inclui o nome do usuario 2001 1050 8667, o qual e o nome do usuario armazenado no campo de nome do usuario 50 da memoria de parametro 38 no telefone de Vancouver 12 apresentado na Figura 2. Em adipao, como um exemplo, se referindo de volta a Figura 3, o campo de identificador do receptor 62 inclui o nome do usuario 2001 1050 2222 que e o numero discado do assinante de Calgary armazenado na memoria temporaria de numero discado 41 apresentada na Figura 2. O campo de parametros de resumo 64 inclui os parametros de resumo e o campo de identificador de chamada 65 inclui um codigo compreendendo um codigo de prefixo gerado (FF10) e um sufixo que e o enderego IP do telefone 12 armazenado no campo de enderego IP 53. O campo de enderego IP do chamador 67 mantem o enderego IP designado para o telefone, nesta concretizagao, 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 audio sao para serem enviados para a recep- gao pelo telefone do chamador.
Controlador de Chamada
[00103] Referindo-se a Figura 4, um circuito do controlador de chamada do controlador de chamada 14 (Figura 1) e apresentado em maiores detalhes em 100. O circuito do controlador de chamada 100 inclui um microprocessador 102, a memoria de programa 104, e uma interface de E / S 106. O circuito do controlador de chamada 100 pode incluir varios microprocessadores, varias memorias de programa e va- rias interfaces de E / S para estar apto a manipular um grande volume de chamadas. Entretanto, por simplicidade, o circuito do controlador de chamada 100 sera descrito como possuindo somente um microprocessador, a memoria de programa e a interface de E / S, sendo enten- dido que podem existir mais.
[00104] Geralmente, a interface de E / S 106 inclui uma entrada 108 para receber mensagens, tai como a mensagem de convite SIP apresentada na Figura 3, a partir do telefone apresentado na Figura 2. A interface de E / S 106 tambem possui uma saida de mensagem de Requisigao RC 110 para transmitir uma mensagem de Requisigao RC para o controlador de roteamento 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 saida de retransmissao de midia (MR) 114 para transmitir mensagens para a retransmissao de midia (Figura 1) para avisar a retransmissao de midia para estabelecer um caminho de audio, e uma entrada MR 116 para receber mensagens a partir da retransmissao de midia para a qual uma mensagem foi enviada para tentar estabelecer o caminho de audio. A interface de E / S 106 adicionalmente inclui uma saida SIP 118 para transmitir mensagens SIP para o telefone 12 (Figura 1) para avisar ao telefone sobre o endereqo IP da retransmissao de midia 17 (Figura 1) que ira estabelecer o caminho de audio. A interface de E / S 106 adicionalmente inclui a entrada do dispositivo de mediagao 119 e a saida 121 para a comunicaQao com o dispositivo de mediagao 31 (Figura 1).
[00105] Enquanto certas entradas e saidas foram apresentadas como separadas, sera apreciado que algumas podem ser associadas com um unico endereqo 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 endereqo IP unico e porta TCP ou UDP.
[00106] A memoria de programa 104 do circuito do controlador de chamada 100 inclui blocos de codigo para direcionar o microprocessa- dor 102 para realizar varias funqoes do controlador de chamada 14. Por exemplo, estes blocos de codigo incluem um primeiro bloco 120 para causar que o circuito controlador de chamada 100 execute um processo SIP de requisiQao de convite para RC para produzir uma mensagem de RequisiQao RC em resposta a uma mensagem de Convite SIP recebida. Em adiqao, existe um bloco Manipulador de Mensagem de Roteamento 122 que causa que o circuito controlador de chamada 100 empregue o dispositivo de mediaqao e/ou execute uma rotina de manipulapao de chamada para estabelecer caminhos de audio atraves de uma retransmissao de midia para estabelecer a chamada. A memoria de programa 104 adicionalmente inclui um manipulador de mensagem de interceptapao dentro da chamada 1450 para inter- ceptar uma chamada em andamento e um manipulador de termino de mensagem de interceptapao 1520 para paralisar a interceptapao de uma chamada em andamento.
[00107] Referindo-se a Figura 5, o processo SIP de Requisipao de Convite para RC e apresentado em maiores detalhes em 120. Ao re- ceber 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 usuario operando o telefone a partir do qual a mensagem de Convite SIP se originou. Isto pode ser feito, por exemplo, por solicitar ao usuario uma senha, por enviar uma mensagem de voltapara o telefone 12 que e interpretada no telefone como uma requisipao por uma entrada de senha ou a senha pode ser automaticamente enviada para o controlador de chamada 14 a partir do telefone, em resposta a mensagem. O controlador de chamada 14 pode entao fazer consultas em bases de dados junto as quais ele tern acesso, para determinar se a senha do usuario corresponde ou nao a uma senha armazenada na base de dados. Varias funpoes podem ser utilizadas para passar chaves de criptografia ou codigos de hash ida e volta, para garantir a transmissao segura de senhas.
[00108] Caso o processo de autenticapao falhe, o circuito do controlador de chamada 100 e direcionado para um bloco de manipulapao de erro 134 que causa que mensagens sejam exibidas no telefone 12 para indicar que existiu um erro de autenticapao. Se o processo de autenticapao tiver sucesso, o bloco 131 direciona o circuito do controlador de chamada 100 para determinar se o conteudo do campo de identificador de chamador 60 da mensagem de Convite SIP e ou nao um endereQO IP formatado de forma valida. Se ele for um endereQO IP valido, entao o bloco 133 direciona o circuito do controlador de chamada 100 para associar um codigo de tipo com a chamada, para indi- car que o tipo da chamada e um convite de terceira parte.
[00109] Se no bloco 131, o conteudo do campo de identificador do chamador 60 nao identificar um endereQO IP, entao, o bloco 135 direciona o circuito do controlador de chamada 100 para associar um codigo de tipo com a chamada, para indicar que o tipo da chamada e uma mensagem de convite SIP habitual. Entao, o bloco 136 direciona o circuito do controlador de chamada 100 para estabelecer um ID de chamada por designar o ID de chamada 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 controlador de chamada e direcionado para produzir uma mensagem de requisigao RC do tipo apresentado na Figura 6, que inclui este ID de chamada. Referindo-se novamente a Figura 5, o bloco 139 entao direciona o circuito do con-trolador de chamada 100 para enviar a mensagem de Requisipao RC para o controlador de roteamento 16.
[00110] Referindo-se a Figura 6, uma mensagem de RequisiQao RC e apresentada geralmente por 150 e inclui um campo de identificaQao de chamador 152, um campo de identificador de receptor 154, um campo de resumo 156, um campo de ID da chamada 158 e um campo de tipo 160. Os campos de identificador de chamador, receptor, de resumo e de chamada 152, 154, 156 e 158 contem copias dos campos de chamador, receptor, de parametros 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 contem o codigo de tipo estabelecido no bloco 133 ou no bloco 135 da Figura 5 para indicar se a chamada e a partir de uma terceira parte ou do assinante do sistema, respectiva- mente. O campo de identificador do receptor 154 pode incluir um nu-mero PSTN ou um nome do usuario do assinante do sistema, como apresentado, por exemplo.
Controlador de Roteamento
[00111] Referindo-se a Figura 7, o controlador de roteamento 16 e apresentado em maiores detalhes e inclui um circuito do processador do controlador de roteamento geralmente apresentado por 200. O circuito do sador RC 200 inclui um microprocessador 202, uma memoria de programa 204, uma memoria de tabela 206 e uma interface de E / S 208, todos em comunicaQao com o processador. Podem existir varies circuitos do processador (202), memorias (204), etc.
[00112] A interface de E / S 208 inclui uma porta de saida de base de dados 210 atraves da qual uma requisiQao 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 RequisiQao RC 214 para a recepQao da mensagem de RequisiQao RC, a partir do controlador de chamada 14 e inclui uma saida de mensa-gem de roteamento 216 para enviar uma mensagem de roteamento de volta para o controlador de chamada 14.
[00113] A memoria de programa 204 inclui blocos de codigos para direcionar o circuito do processador RC 200 para realizar varias fun- Qoes do controlador de roteamento 16. Um destes blocos implementa um processo manipulador de mensagem de RequisiQao RC 250 que direciona o RC para produzir uma mensagem de roteamento em resposta a uma mensagem de RequisiQao RC recebida, do tipo apresentado em 150 na Figura 6. Referindo-se de novo a Figura 7, a memoria de programa 204 adicionalmente inclui um manipulador de mensagem de requisiQao de Autoridade de ImposiQao de Lei (LEA) 1400 e uma rotina de termino de interceptaQao dentro da chamada 1500.
[00114] O processo manipulador de mensagem de RequisiQao RC250 e apresentado em maiores detalhes nas Figuras 8A ate 8D. Manipulador de
Mensagem de Requisicao RC
[00115] Referindo-se a Figura 8A, o processo manipulador de mensagem de Requisigao RC 250 comega com um primeiro bloco 252 que direciona o circuito do processador RC 200 (Figura 7) para armazenar o conteudo da mensagem de Requisigao RC 150 (Figura 6) em memo- rias temporarias. Entao, o bloco 254 direciona o circuito do processador RC 200 para utilizar o conteudo do campo de identificador do chamador 152 na mensagem de Requisigao RC apresentada na Figura 6, para localizar e recuperar um perfil de discagem para o chamador a partir da base de dados 18.
[00116] O controlador de roteamento mantem, na base de dados, um perfil de discagem para cada assinante do sistema. Referindo-se a Figura 9, um perfil de discagem ilustrativo e geralmente apresentado por 256 e inclui campos do sistema incluindo um campo de nome do usuario 258, um campo de dominio 260, um campo de digitos de discagem nacional (NDD) 262, um campo de IDDs (IDD) 264, um campo de codigo de pais 266, um campo de codigos de area local 267, um campo de comprimento local minimo do chamador 268, um campo de comprimento local maximo do chamador 270 e um campo de revende- dor 273.
[00117] O perfil de discagem ilustrativo adicionalmente inclui campos relacionados com a interceptagao legitima incluindo um campo indicador de interceptagao legitima (LI) 702, pelo menos um campo de dispositivo de mediagao 704, pelo menos um campo de ID de mandate 706, e os campos de data / hora de inicio e de parada do periodo de interceptagao 708 e 710. O campo de indicador LI 702, o campo de ID de mandate 706 e os campos de inicio / parada de LI 708 e 710 podem ser considerados como campos de informagao de determinagao, para determinar se intercepta uma comunicagao envolvendo o assi- nante e o campo de endereQO MD1 704 pode ser considerado como um campo de informaQao de destino para identificar um dispositivo para o qual as comunicaQoes interceptadas envolvendo o assinante sao para serem enviadas.
[00118] Para os campos do sistema (258, 260, 262, 264, 266, 267, 268, 270, 273) sao designados valores por um operador do sistema ou sao designados automaticamente de acordo com algoritmos predefini- dos (nao-apresentados) quando um usuario se registra com o sistema para se tornar um assinante. Para os campos de interceptagao legfti- ma (702, 704, 706, 708, 710) sao designados valores em resposta as comunicagoes com um ou mais dispositivos autorizados e podem ser preenchidos a qualquer tempo, independente de se as comunicagoes envolvendo o assinante estao ou nao em andamento.
[00119] Por exemplo, referindo-se de volta a Figura 1, o dispositivo de mediagao 31 pode ser considerado como um dispositivo autorizado operado por uma autoridade de imposigao de lei 293. Um canal de comunicagoes entre o controlador de chamada 14 e o dispositivo de mediagao 31 pode ser estabelecido para permitir que o dispositivo de mediagao 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 mandate para a interceptagao legitima foi obtido. Por exemplo, uma vez que um mandate identificando um usuario e permitindo a interceptagao legitima das comunicagoes do usuario tenha sido recebido pela autoridade de imposigao de lei 293, esta autoridade pode utilizar seus proprios computadores para se comunicar com o dispositivo de mediagao 31 para causar que o dispositivo de mediagao se comunique com o controlador 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 usuario especificado no mandato e carregar os campos de interceptagao legitima (702, 704, 706, 708, 710) com dados que estabelecem o campo de indicador de interceptagao legitima 702 para "ativo", estabelecer um enderego IP do dispositivo de mediapao 31 no campo de enderepo MD1 704, carregar o campo de ID de mandato 706 com um identificador do mandato e carregar os campos de inicio e parada 708 e 710 com datas e horas de inicio e de parada para especificar um periodo durante o qual a interceptapao legitima das comunicapoes do usuario identificado pode ocorrer de acordo com um mandato. Assim, a informagao de interceptagao e as- sociada com o perfil de discagem pelo controlador de roteamento, em resposta a informapao que ele recebe a partir do controlador de chamada.
[00120] Varios grupos de campos de interceptapao legitima do tipo apresentado podem ser adicionados, cada grupo sendo adicionado por um dispositivo autorizado diferente, por exemplo, se varias agendas de posipao de lei diferentes operando os mesmos ou dispositivos de mediapao diferentes possuirem mandatos para monitorar as comunicapoes de um usuario. Alternativamente, o dispositivo autorizado pode incluir uma interface de transferencia suave operavel para se comunicar com o controlador de chamada ou com o controlador de roteamento para acessar a base de dados para carregar os campos de interceptapao legitima associados com um assinante de interesse.
[00121] Um perfil de discagem ilustrativo para o assinante de Vancouver e geralmente apresentado por 276 na Figura 10 e indica que o campo de nome do usuario inclui o nome do usuario 2001 1050 8667, o qual e o mesmo que o conteudo do campo de nome do usuario 50 no telefone de Vancouver 12 apresentado na Figura 2.
[00122] Referindo-se de volta a Figura 10, o campo de dominio 260 inclui um nome de dominio como apresentado por 282, incluindo um identificador de tipo de superno 284, um identificador de codigo de lo- calizaQao 286, um identificador de provedor do sistema 288 e um identificador de dominio de nivel superior 290, identificando um dominio ou superno associado com o usuario identificado pelo conteudo do campo de nome do usuario 258.
[00123] Nesta concretizaQao, o identificador de tipo de superno 284 inclui o codigo "sp" identificando um superno e o identificador de codigo de localizaQao 286 identifica o superno como sendo em Vancouver (YVR). O identificador de provedor do sistema 288 identifica a compa- nhia fornecendo o serviQO e o identificador de dominio de nivel superior 290 identifica o dominio "com".
[00124] O campo de digito de discagem nacional (NDD) 262 nesta concretizaQao inclui o digito "1" e, em geral, inclui um digito especificado pela International Telecommunications Union - Telecommunications Standardization Sector (ITU-T) E.164 Recommendation que designa digitos de discagem nacional para certos paises. Aqui, as sequencias de numerapao de acordo com este padrao podem ser consi- deradas como numeros "E.164".
[00125] O campo de Digito de Discagem Internacional (IDD) 264 inclui o codigo 011 e em geral inclui um codigo designado pela ITU-T, de acordo com o pais ou com a localizaQao geografica do usuario.
[00126] O campo de codigo de pais 266 inclui o digito "1" e em geral inclui um numero designado pela ITU-T para representar o pais no qual o usuario esta localizado. O campo de codigos de area local 267 inclui os numeros 604 e 778, e geralmente inclui uma lista de codigos de area que foram designados pela ITU-T para a area geografica na qual o assinante esta localizado.
[00127] Os campos de comprimento minimo e maximo de numero local do chamador 268 e 270 mantem o numero 10 representando os comprimentos minimo e maximo do numero local permitido no codigo(codigos) de area especificado pelo conteudo do campo de codigos de area local 267. O campo de revendedor 273 mantem um codigo identi- ficando um varejista dos servigos de telefone, e na concretizagao apresentada, o varejista e "Klondike".
[00128] Inicialmente, os campos de interceptagao legitima apresen- tados na Figura 9 podem nao estar incluidos no perfil de discagem e podem ser adicionados como descrito acima, pelo dispositivo de mediagao 31, no caso de um mandato ser obtido para interceptar as cha- madas do usuario. Alternativamente, os campos de interceptagao legitima podem ser incluidos, mas preenchidos com valores nulos ate que modificados por um dispositivo de mediagao 31.
[00129] Um perfil de discagem do tipo apresentado em 256 na Figura 9 e produzido sempre que um usuario se registra no sistema ou concorda em se tornar um assinante do sistema. Assim, por exemplo, um usuario desejando assinar o sistema pode entrar em contato com um escritorio mantido por um operador do sistema e o pessoal no escritorio pode perguntar ao usuario certas questdes acerca de sua loca- lizagao e de preferencias de servigo, em consequencia do que tabelas podem ser utilizadas para proporcionar ao pessoal do escritorio infor- magoes apropriadas a serem informadas para os campos de nome do usuario, dommio, NDD, IDD, codigo de pais, codigos de area local e de comprimento minimo e maximo de codigo local do chamador 258, 260, 262, 264, 266, 267, 268, 270, para estabelecer um perfil de dis-cagem para o usuario.
[00130] Referindo-se as Figuras 11 e 12, os perfis de discagem para assinantes em Calgary e Londres, respectivamente, por exemplo, sao apresentados.
[00131] Em adigao a criar os perfis de discagem, opcionalmente quando um usuario se registra no sistema, um registro de discagem direta interna (DID) do tipo apresentado em 268, na Figura 13, e adici- onado para uma tabela de discagem direta interna na base de dados 18, para associar o nome do usuario com um nome do hospedeiro do superno com o qual o usuario esta associado e com um numero E.164 na rede PSTN.
[00132] Nesta concretizapao, os registros da tabela do banco DID incluem um campo de nome do usuario 281, um campo de dominio do usuario 272, e um campo DID 274, para manter o nome do usuario, o nome do hospedeiro do superno, e um numero E.164, respectivamente.
[00133] Um registro da tabela do banco DID para o assinante de Londres e geralmente apresentado por 291, na Figura 14.
[00134] Em adipao a criar os perfis de discagem e os registros DID quando um usuario 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 e adicionado para o sistema.
[00135] Referindo-se de volta a Figura 8A, apos ser direcionado no bloco 254 para recuperar um perfil de discagem para o chamador, um perfil de discagem, tai como apresentado em 276 na Figura 10, e re- cuperado e o circuito do processador RC 200 e direcionado para exe- cutar certas verificapoes em relapao ao identificador do receptor pro- porcionado pelo conteudo do campo de identificador do receptor 154 da mensagem de Requisipao RC apresentada na Figura 6. Estas verificapoes sao apresentadas em maiores detalhes na Figura 8B.
[00136] Referindo-se a Figura 8B, o circuito do processador RC 200 e direcionado para um primeiro bloco 257 que causa que o mesmo determine se um padrao de digito do identificador do receptor 154 pro- porcionado na mensagem de Requisipao RC inclui um padrao que cor- responda ao conteudo do campo IDD 264 no perfil de discagem do chamador 276 apresentado na Figura 10. Se corresponder, entao, o bloco 259 direciona o circuito do processador RC 200 para estabelecer um identificador de codigo de tipo de chamada (nao-apresentado) para indicar que a chamada e uma chamada de longa distancia, por exemplo, a partir do assinante de Vancouver para o assinante 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 concretizaQao, isto e feito pela remo?ao do padrao de digitos correspondendo ao conteudo do campo IDD 264 do perfil de discagem do chamador 276 para efetivamente encurtar o numero. Entao, o bloco 263 direciona o circuito do processador RC 200 para determinar se o identificador de receptor reformatado atende ou nao aos criterios estabelecendo o mesmo como um numero de acordo com a RecomendaQao E.164 es- tabelecida pela ITU-T e se o comprimento nao atender a estes criterios, o bloco 265 direciona o circuito do processador RC 200 para en- viar de volta para o controlador de chamada 14 uma mensagem indicando que o comprimento do identificador de chamada nao esta cor- reto. Entao, o processo 250 e terminado. No controlador de chamada 14, rotinas podem responder a mensagem de comprimento incorreto por transmitir uma mensagem de volta para o telefone 12 para indicar que o numero invalido foi discado.
[00137] Ainda se referindo a Figura 8B, se o comprimento do identificador de receptor reformatado atender aos criterios expostos no bloco 263, o bloco 269 direciona o circuito do processador RC 200 para determinar se o identificador do receptor reformatado esta ou nao associado com um registro da tabela de banco de discagem direta interna (DID), tal como apresentado em 268 na Figura 13.
[00138] Uma entrada de registro de tabela de banco DID ilustrativa para o receptor de Londres e apresentada geralmente por 291 na Figura 14. O campo de nome do usuario 281 e o campo de dominio do usuario 272 sao como especificados nos campos de nome do usuario e de dominio do usuario 258 e 260 do perfil de discagem 276 apresentado na Figura 12. O conteudo do campo DID 274 inclui um numero de telefone E.164 incluindo um codigo de pais 283, um codigo de area 285, um codigo de central telefonica 287 e um numero 289. Se o usuario possuir varios numeros de telefone, entao varios registros do tipo apresentado em 291 seriam incluidos na tabela de banco DID na base de dados 18, cada um possuindo o mesmo nome do usuario e dominio do usuario, mas o conteudo do campo DID 274 diferente, refletindo os numeros de telefones diferentes associados com este usuario.
[00139] Referindo-se de volta a Figura 8B, no bloco 269, se o circuito do processador RC 200 descobrir que o identificador do receptor reformatado produzido no bloco 261 e encontrado em um registro na tabela de banco DID, entao, o receptor e um assinante do sistema e o bloco 279 direciona o circuito processador RC 200 para copiar o conteudo do campo de nome de usuario correspondente 270 para uma memoria temporaria de ID de receptor (nao-apresentada). Assim, o circuito do processador RC 200 localiza um nome do usuario do assinante associado com o identificador do receptor reformatado. O processador e entao direcionado para o bloco 275 no ponto B na Figura 8A.
Chamadas de Assinante para Assinante Entre Nos Diferentes
[00140] Referindo-se de novo a Figura 8A, o bloco 275 entao direciona o circuito do processador RC 200 para determinar se o nome do usuario do assinante esta ou nao associado com o mesmo superno que o do chamador. Para fazer isto, o circuito do processador RC 200 determina se o codigo de continente (61) do nome de usuario armaze- nado na memoria temporaria de ID de receptor e ou nao o mesmo que o codigo de continente (61) do nome do usuario do chamador especifi- cado pelo campo de identificador do chamador 152 da mensagem de RequisiQao RC apresentada na Figura 6. Se eles nao forem os mes- mos, o bloco 277 direciona o circuito do processador RC 200 para es- tabelecer um indicador de tipo de chamada (nao-apresentado) para indicar que a chamada e uma chamada de dominio entre domfnios. Entao, o bloco 350 direciona o circuito do processador RC 200 para produzir uma mensagem de roteamento identificando o superno no sistema com o qual o receptor esta associado e para estabelecer um TTL para a chamada com o valor maximo de 99999. O superno no sistema, com o qual o receptor esta associado, e determinado pela utili- zaQao do nome de usuario de receptor armazenado na memoria temporaria de ID de receptor para endereQar uma tabela do superno pos- suindo registros do tipo como apresentado em 270 na Figura 17.
[00141] Referindo-se a Figura 17, cada prefixo para o registro da tabela de superno 370 possui um campo de prefixo 372 e um campo de enderepo de superno 374. O campo de prefixo 372 inclui os primei- ros n dfgitos do identificador de receptor. Neste caso, n = 1. O campo de endereQO de superno 374 mantem um codigo representando o endereQO IP ou um nome de dominio totalmente qualificado do superno associado com o codigo armazenado no campo de prefixo 372. Refe-rindo-se a Figura 18, por exemplo, se o prefixo for 4, o endereQO de superno associado com este prefixo e sp.lhr.digifonica.com, identificando o superno de Londres 21, por exemplo.
[00142] Referindo-se a Figura 15, uma mensagem de roteamento generica e apresentada geralmente por 352 e inclui um campo de prefixo de fornecedor 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 outros campos 364. O campo de prefixo de fornecedor 354 mantem um codigo para identificar o trafego do fornecedor. O campo de delimitador mantem um simbolo que delimita o codigo de prefixo de fornecedor a partir do campo de receptor 358 e nesta con- cretizapao, o simbolo e um sinal de numero (#). O campo de rota 360 mantem um nome de dominio ou um enderego IP de um dispositivo de conexao de rede ou do superno que e para transporter a chamada e o campo TTL 362 mantem um valor representando o numero de segundos durante os quais a chamada e permitida de estar ativa, baseado nos minutos disponiveis do assinante e em outros parametros de fatu- ramento, por exemplo.
[00143] Referindo-se a Figura 8A e a Figura 16, neste exemplo, a mensagem de roteamento produzida pelo circuito do processador RC 200 no bloco 350, e geralmente apresentada por 366 e inclui somente um campo de receptor 358, um campo de rota 360 e um campo TTL 362.
[00144] O campo de receptor 358 mantem o nome do usuario complete) do receptor e o campo de rota 360, apresentado na Figura 15, contem a identificapao do dominio com o qual o receptor esta associado, isto e, sp.lhr.digifonica.com.
[00145] Tendo produzido a mensagem de roteamento 366 como apresentado na Figura 16A, referindo-se de volta a Figura 8A, entao, o bloco 351 direciona o circuito do processador RC 200 para verificar o perfil de discagem do chamador (veja a Figura 9) para determinar se o mesmo contem ou nao campos de interceptagao legitima (702, 704, 706, 708, 710) e se contiver, para determinar se a informapao de determinapao contida nos mesmos atende ou nao aos criterios de interceptapao. Os criterios de interceptapao podem ser que o campo de indicador de interceptapao legitima 702 (Figura 9) contenha um indica- dor indicando que a interceptapao legitima esta habilitada, e se a data e a hora atuais estao dentro do periodo especificado pelo conteudo do campo de data / hora inicial de LI 708 e pelo conteudo do campo de data / hora de parada de LI 710, por exemplo. Se os criterios de interceptapao forem atendidos, o bloco 353 direciona o circuito do proces- sador RC 200 para anexar os conteudos dos campos de interceptagao legitima 702, 704, 706, 708, 710, para a mensagem de roteamento produzida no bloco 350 para produzir uma mensagem de roteamento como apresentada na Figura 16A. Geralmente, a determinagao de se a informagao de destino atende ou nao aos criterios de interceptagao e feita antes da produgao da mensagem de roteamento de modo que quando os criterios de interceptagao sao atendidos, pelo menos algu- ma parte da informagao de interceptagao, nesta concretizagao, toda ela, possa ser incluida na mensagem de roteamento.
[00146] Se, no bloco 351, na Figura 8A, for determinado que nao existem campos de interceptagao legitima associados com o perfil de discagem no chamador ou que os criterios de interceptagao nao sao atendidos, o processador nao anexa quaisquer campos de interceptagao legitima para a mensagem de roteamento produzida no bloco 350 na Figura 8A, e a mensagem de roteamento apresentada na Figura 16 e enviada para o controlador de chamada 14, como apresentado no bloco 380. Se os campos de interceptagao legitima tiverem sido ane- xados, 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).
[00147] Referindo-se de novo a Figura 8B, se no bloco 257, o identificador do receptor especificado pelo conteudo do campo de receptor 154 da mensagem de Requisigao RC apresentada na Figura 6 nao comegar com um IDD, o bloco 381 direciona o circuito do processador RC 200 para determinar se o identificador de receptor comega ou nao com o mesmo codigo de digito de discagem nacional que designado para o chamador. Para fazer isto, o processador e direcionado para se referir ao perfil de discagem do chamador apresentado na Figura 10. Na concretizagao apresentada, o codigo de NDD 262 e o digito 1. Assim, se o identificador do receptor comegar com o digito 1, o circuitodo processador RC 200 e direcionado para o bloco 382 na Figura 8B.
[00148] O bloco 382 direciona o circuito do processador RC 200 para examinar o identificador do receptor para determinar se os digitos seguindo ao codigo de NDD identificam ou nao um codigo de area que e o mesmo que qualquer um dos codigos de area identificados no campo de codigos de area local 267 do perfil de discagem do chamador 276 apresentado na Figura 10. Se nao, o bloco 384 direciona o circuito do processador RC 200 para estabelecer uma variavel de tipo de chamada (nao-apresentada) para um codigo indicando que a chamada e um codigo nacional. Se os digitos identificam um codigo de area que e o mesmo que um codigo de area local associado com o chamador, o bloco 386 direciona o circuito do processador RC 200 para estabelecer a variavel de tipo de chamada para indicar que o tipo de chamada e uma chamada local, estilo nacional. Apos executar os blocos 384 ou 386, o bloco 388 direciona o circuito do processador RC 200 para formatar o numero discado por remover o digito de discagem nacional (NDD) e acrescentando no comedo um codigo de pais do chamador identificado pelo campo de codigo de pais 266 do perfil de discagem do chamador apresentado na Figura 10. O circuito do pro-cessador RC 200 e entao direcionado para o bloco 263 para executar os processes descritos acima comegando no bloco 263.
[00149] Se no bloco 381, o identificador do receptor nao comegar com o codigo NDD, o bloco 390 direciona o circuito do processador RC 200 para determinar se o identificador do receptor comega com os digitos que identificam o mesmo codigo de area que o do chamador. Novamente, a referenda para isto e o perfil do chamador apresentado na Figura 10, e o circuito do processador RC 200 determina se os pri- meiros poucos digitos no identificador do receptor identificam ou nao um codigo de area identificado pelo campo de codigo de area local 267 do perfil do chamador. Se identificarem, entao, o bloco 392 direci- ona o circuito do processador RC 200 para estabelecer o tipo de chamada para um codigo indicando que a chamada e uma chamada local e o bloco 394 direciona o circuito do processador RC 200 para acres- centar no comedo o codigo de pais do chamador para o identificador do receptor, o codigo de pais do chamador sendo determinado a partir do campo de codigo de pais 266 no perfil do chamador apresentado na Figura 10. O circuito do processador RC 200 e entao direcionado para o bloco 263 para processar como descrito acima, comegando no bloco 263.
[00150] Se no bloco 390, o identificador do receptor nao possuir o mesmo codigo de area que o chamador, o bloco 396 direciona o circuito do processador RC 200 para determinar se o identificador do receptor possui o mesmo numero de digitos que o numero de digitos indicado no campo de comprimento minimo de numero local do chamador 268 ou no campo de comprimento maximo de numero local do chamador 270 do perfil do chamador apresentado na Figura 10. Se possuir, entao, o bloco 398 direciona o circuito do processador RC 200 para estabelecer o tipo de chamada para local e o bloco 400 direciona o processador para coIocar no inicio do identificador do receptor o codigo de pais do chamador, como indicado pelo campo de codigo de pais 266 do perfil do chamador apresentado na Figura 10 seguido pelo codigo de area do chamador, como indicado pelo campo de codigo de area local 267 do perfil do chamador apresentado na Figura 10. O circuito do processador RC 200 e entao direcionado para o bloco 263 para processamento adicional, como descrito acima, comegando no bloco 263.
[00151] Se no bloco 396, o identificador do receptor possuir um comprimento que nao corresponde ao comprimento especificado pelos conteudos do campo de comprimento minimo de numero local do chamador 268 ou pelo campo de comprimento maximo de numero Iocal do chamador 270, o bloco 402 direciona o circuito do processador RC para determinar se o identificador do receptor identifica ou nao um nome de usuario valido. Para fazer isto, o circuito do processador RC 200 pesquisa atraves de uma base de dados de perfis de discagem, para encontrar um perfil de discagem possuindo o conteudo do campo de nome de usuario 258 que corresponda ao identificador de receptor. Se nenhuma correspondencia 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 usuario 258 que corresponda ao identificador de receptor for encontrado, o bloco 406 direciona o circuito do processador RC 200 para estabelecer o tipo de chamada para um codigo indicando que a chamada e uma chamada de rede e o processador e direcionado para o bloco 275 da Figura 8A, para continuar o processamento do processo manipulador de mensagem RC 250.
[00152] A partir da Figura 8B, sera apreciado que existem certos grupos de blocos de codigos que direcionam o circuito do processador RC 200 para determinar se o identificador do receptor possui certos aspectos, tai como um codigo de IDD, um codigo de NDD, um codigo de area e um comprimento que atenda a certos criterios, e para reformatar o identificador do receptor a medida que necessario para um formato alvo predeterminado, incluindo somente um codigo de pais, o codigo de area, e um numero de telefone normal, por exemplo, para causar que o identificador do receptor seja compativel com o padrao do piano de numeros E.164, nesta concretiza?ao. Isto permite que o circuito do processador RC 200 direcionado pelo bloco 279 possua um formato consistente de identificadores de receptor para uso em pes- quisar atraves 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 Nao Assinante
[00153] Nem todas as chamadas serao chamadas de assinante para assinante, e isto sera detectado pelo circuito do processador RC 200 quando ele executa o bloco 269 da Figura 8B, e nao encontra um registro que esteja associado com o receptor na tabela de banco DID. Quando isto ocorre, o circuito do processador RC 200 e direcionado para o bloco 408, o qual causa que o mesmo estabele?a o identificador do receptor igual ao identificador do receptor reformatado, isto e, o numero compativel com o padrao E.164. Entao, o bloco 410 direciona o circuito do processador RC 200 para endereQar uma lista mestra possuindo registros do tipo apresentado na Figura 19.
[00154] Cada registro da lista mestra inclui um campo de ID da lista mestra 500, um campo de codigo de discagem 502, um campo de codigo de pais 504, um campo de numero de sinal nacional 506, um campo de comprimento minimo 508, um campo de comprimento ma- ximo 510, um campo NDD 512, um campo IDD 514 e um campo de taxa de memoria temporaria 516.
[00155] O campo de ID de lista mestra 500 mantem um codigo uni- co, tai como 1019, por exemplo, identificando uma identificaQao de rota (ID de rota). O campo de codigo de discagem 502 mantem um padrao de numero predeterminado que o circuito do processador RC 200 utili- za no bloco 410 na Figura 8B para encontrar o registro da lista mestra possuindo um codigo de discagem correspondendo aos primeiros poucos digitos do identificador de receptor reformatado. O campo de codigo de pais 504 mantem um numero representando o codigo de pais associado com o registro e o campo de numero de sinal nacional 506 mantem um numero representando o codigo de area associado com o registro (sera observado que o codigo de discagem e uma com- binaqao dos conteudos do campo de codigo de pais 504 e do campo de numero de sinal nacional 506). O campo de comprimento minimo 508 mantem um numero representando o numero minimo de digitos que pode ser associado com o registro e o campo de comprimento maximo 51 mantem um numero representando o numero maximo de digitos em um numero com o qual o registro pode ser comparado. O campo NDD 512 mantem um numero representando um codigo de acesso utilizado para fazer uma chamada dentro do pais especificado pelo conteudo do campo de codigo de pais 504 e o campo de IDD 514 mantem um numero representando o prefixo internacional necessario para fazer uma chamada a partir do pais indicado pelo codigo de pais.
[00156] Assim, por exemplo, um registro da lista mestra pode possuir um formato como o apresentado na Figura 20, com os conteudos de campo ilustrativos como apresentado.
[00157] Referindo-se de novo a Figura 8B, utilizar as partes do codigo de pais e do codigo de area do identificador de receptor reformatado que foi formatado para compatibilidade com o padrao 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 codigo de discagem que corresponda ao codigo de pais e ao codigo de area do identificador do receptor. Assim, neste exemplo, o circuito do processador RC 200 encontraria um registro da lista mestra possuindo um campo de ID com um numero 1019. Este numero tambem pode ser referido como um ID de rota. Assim, um numero de ID de rota e encontrado no registro da lista mestra associado com um padrao de numero predeterminado no identificador do receptor reformatado.
[00158] Apos a execupao do bloco 410 na Figura 8B, o processo 250 continua como apresentado na Figura 8D. Referindo-se a Figura 8D, o bloco 412 direciona o circuito do processador RC 200 para utilizar o numero de ID de rota para localizar pelo menos um registro de fornecedor identificando um fornecedor operavel para fornecer uma ligagao de comunicagoes para esta 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.
[00159] Referindo-se a Figura 21, os registros da lista de fornecedo- res 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 regravagao de NDD IIDD 548 e um campo de taxa 550. O campo de ID de fornecedor 540 mantem um codigo identificando o nome do fornecedor e o campo de ID de rota 542 mantem um codigo para associar o registro do fornecedor com uma rota, e por consequencia, com um registro da lista mestra. O campo de prefixo 544 mantem uma cadeia utilizada para identificar o trafego do fornecedor, e o campo de identificador de rota 546 mantem um enderego IP de um dispositivo de interconexao de rede operado pelo fornecedor indicado pelo campo de ID de fornecedor 540. O campo de regravagao de NDD / IDD 548 mantem um codigo e o campo de taxa 550 mantem um codigo indicando o custo por segundo para o operador do sistema utilizar a rota proporcionada pelo dispositivo de interconexao de rede especificado pelo conteudo do campo de identificador de rota 546. Registros de fornecedor ilustrativos sao apresentados nas Figuras 22, 23 e 24, para os fornecedores apresentados na Figura 1 que podem inclu- ir Telus, Shawe Sprint, respectivamente, por exemplo.
[00160] Referindo-se de volta a Figura 8D, no bloco 412, o circuito do processador RC 200 encontra todos os registros de fornecedor que identificam o ID de rota encontrado no bloco 410 da Figura 8B.
[00161] Referindo-se de novo a Figura 8D, o bloco 560 direciona o circuito do processador RC 200 para comegar a produzir mensagens de roteamento do tipo apresentado na Figura 16. Para fazer isto, o cir- cuito do processador RC 200 carrega uma memoria temporaria de mensagem de roteamento, como apresentado na Figura 25, com um prefixo de fornecedor do fornecedor menos oneroso onde o fornecedor menos oneroso e determinado a partir dos campos de taxa 550 dos registros associados com os respectivos fornecedores.
[00162] Referindo-se as Figuras 22 ate 24, na concretizagao apresentada, o fornecedor "Telus" possui o numero mais baixo no campo de taxa 550 e portanto, o prefixo 4973 associado com este fornecedor e carregado na memoria temporaria de mensagem de roteamento apresentada primeiro na Figura 25. O prefixo 4973 e entao delimitado pelo sinal de numero e o identificador de receptor reformatado e a se- guir carregado na memoria temporaria de mensagem de roteamento. Entao, o conteudo do campo de identificador de rota 546 do registro associado com o fornecedor Telus e adicionado para a mensagem apos um delimitador com o sinal @ e entao, o bloco 564 na Figura 8D, direciona um circuito do processador RC 200 para obter um valor TTL, o qual, nesta concretizagao, pode ser 3600 segundos, por exemplo. Entao, o bloco 566 direciona o circuito do processador RC 200 para carregar este valor TTL na memoria temporaria de mensagem de roteamento apresentada na Figura 25. Por consequencia, a primeira parte da mensagem de roteamento e apresentada geralmente por 570 na Figura 25.
[00163] Referindo-se volta a 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, ate que a memoria temporaria de mensagem de roteamento esteja carregada com a informagao pertencendo a cada fornecedor. Assim, a segunda parte da mensagem de roteamento e apresentada por 572 na Figura 25 e esta segunda parte se relaciona com o segundo fornecedor identificado pelo registro apresentado na Figura 23, e referindo-se de novo a Figura 25, a terceira parte da mensagem de roteamento e apresentada em 574 que esta associada com um terceiro fornecedor como indicado pelo registro de fornecedor apresentado na Figura 24. Por consequencia, referindo-se a Figura 25, a memoria temporaria de mensagem de roteamento mantem uma mensagem de roteamento identificando varios fornecedores diferentes aptos a pro- porcionar dispositivos de interconexao de rede para estabelecer uma ligaQao de comunicaQao para permitir que o chamador entre em contato com o receptor. Cada um dos fornecedores e identificado, em ordem ascendente, de acordo com as taxas contidas nos campos de taxa 550 dos registros da lista de fornecedores apresentados nas Figuras 22 ate 24, nesta concretizaQao. Outros criterios para determinar a ordem na qual os fornecedores sao listados na mensagem de rotea-mento podem incluir prioridades de fornecedor preferidas, que podem ser estabelecidas baseado nos acordos de serviQo, por exemplo. Neste caso, campos adicionais podem ser proporcionados nos respectivos registros de fornecedor para manter valores representando prioridades de fornecedor.
[00164] Apos a memoria temporaria de mensagem de roteamento ter sido carregada como apresentado na Figura 25, o bloco 567 direciona o circuito do processador RC 200 para verificar o perfil de discagem do chamador apresentado na Figura 10 para determinar se ele contem ou nao campos de interceptaQao legitima, como apresentados na Figura 9, e se contem, para determinar se os criterios de intercep-taQao sao ou nao satisfeitos pela verificaoao de se o campo de indicador de interceptaQao legitima 702 contem um indicador indicando que a interceptaQao legitima esta habilitada e verificando se a data e a hora correntes estao dentro do periodo especificado pelos conteudos do campo de data / hora de inicio de LI 708 e pelo conteudo do campo de data / hora de parada de LI 710. Se os criterios de interceptaQao forem satisfeitos, o bloco 569 direciona o circuito do processador RC 200 para anexar os conteudos dos campos de interceptagao legitima 702, 704, 706, 708, e 710, para a mensagem de roteamento armazenada na memoria temporaria de mensagem de roteamento, como apresentado na Figura 25A. Novamente, a determinagao de se a informagao de destino atende ou nao aos criterios de interceptagao e feita antes da produgao da mensagem de roteamento, de modo que quando os criterios de interceptagao sao satisfeitos, pelo menos alguma parte da informagao de interceptagao, nesta concretizagao, toda ela, pode ser incluida na mensagem de roteamento.
[00165] Se, no bloco 567, for determinado que nao existem campos de interceptagao legitima associados com o perfil de discagem do chamador apresentado na Figura 10 ou que os criterios de interceptagao nao foram satisfeitos, o circuito do processador RC nao anexa quaisquer campos de interceptagao legitima para a mensagem de roteamento armazenada na memoria temporaria de mensagem de roteamento apresentada na Figura 25.
[00166] Entao, o bloco 568 direciona o circuito do processador RC 200 para enviar o conteudo da memoria temporaria de mensagem de roteamento, isto e, 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 No
[00167] Referindo-se de novo a Figura 8A, se no bloco 275, o identificador do receptor armazenado na memoria temporaria de ID de receptor possuir um prefixo que identifica o mesmo superno que o do associado com o chamador, o bloco 600 direciona o circuito do processador RC 200 para utilizar o identificador do receptor e recuperar um perfil de discagem para o receptor identificado pelo identificador do receptor. O perfil de discagem e do tipo apresentado na Figura 9, e pode confer 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 nome do usuario 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 apresenta- dos nas Figuras 26, 28 e 30, por exemplo.
[00168] Referindo-se a Figura 26, os registros de bloco de chamada incluem um campo de nome de usuario 604 e um campo de padrao de bloco 606. O campo de nome de usuario mantem um nome de usuario correspondendo ao nome de usuario no campo de nome de usuario 258 no perfil de discagem associado com o receptor e o campo de padrao de bloco 606 mantem um ou mais numero ou nomes de usuario compativeis com a E.164 identificando numeros PSTN ou assinantes do sistema a partir dos quais o assinante identificado pelo conteudo do campo de nome de usuario 604 nao desejada receber chamadas.
[00169] Referindo-se de novo a Figura 8A e referindo-se a Figura 27, o bloco 608 direciona o circuito do processador RC 200 para determinar se o identificador do chamador corresponde ou nao a um padrao de bloco armazenado no campo de padrao de bloco 606 do registro de bloco de chamada associado com o receptor identificado pelo conteudo do campo de nome de usuario 604 na Figura 26. Se o identificador do chamador corresponder a um padrao de bloco armazenado no campo de padrao de bloco 606, o bloco 610 direciona o circuito do processador RC 200 para enviar uma mensagem de queda de chamada ou de nao conclusao para o controlador de chamada (14) e o processo e terminado. Se o identificador do chamador nao corresponder a um padrao de bloco associado com o receptor, o bloco 612 direciona o circuito do processador RC 200 para determinar se o envio de chamada e ou nao requerido.
[00170] Referindo-se a Figura 28, os registros na tabela de envio de chamada incluem um campo de nome de usuario 614, um campo de numero de destino 616, um campo de numero de destino 616 e um campo de numero de sequencia 618. O campo de nome de usuario 614 armazena um codigo representando um assinante com o qual o registro esta associado. O campo de numero de destino 616 mantem um nome de usuario ou numero representando um numero para o qual a chamada corrente deve ser enviada e o campo de numero de sequencia 618 mantem um numero inteiro indicado a ordem na qual o nome do usuario associado com o campo de numero de destino correspondents 616 deve ser tentado para envio de chamada. A tabela de envido de chamada pode possuir varios registros para um dado usuario. O circuito do processador RC 200 utiliza o conteudo do campo de numero de sequencia 618 para considerar os registros para um dado assinante em ordem. Como sera apreciado abaixo, isto permite que os numeros de envio de chamada sejam tentados em uma sequencia or- denada.
[00171] Referindo-se de volta a Figura 8A e referindo-se a Figura 28, se no bloco 612 na Figura 8A, o registro de envio de chamada para o receptor identificado pelo identificador de receptor nao tiver conteudo no campo de numero de destino 616 e por consequencia, nao tiver conteudo no campo de numero de sequencia 618, nao existem entra- das de envio de chamada e o circuito do processador RC 200 e direci-onado para carregar a memoria temporaria de mensagem de roteamento apresentada na Figura 32 com o nome de usuario do receptor e com o dominio, como apresentado em 650 na Figura 32. O processador entao e direcionado para o bloco 620 na Figura 8C.
[00172] Se existir conteudo no campo de numero de destino do registro de envio de chamada como apresentado na Figura 29, o bloco 622 apresentado na Figura 8A direciona o circuito do processador RC 200 para pesquisar a tabela de perfis de discagem para encontrar u, registro de perfil de discagem do tipo apresentado na Figura 9, para o usuario identificado no campo de numero de destino 616 no registro da tabela de envio de chamada da Figura 29 e para armazenar o conteudo do campo de numero de destino na memoria temporaria de mensagem de roteamento apresentada na Figura 32. O circuito do processador RC 200 e entao direcionado para carregar o conteudo do campo de dominio 260 apresentado na Figura 9 associado com o nome de usuario especificado pelo conteudo do campo de numero de destino 616 da Figura 29 na memoria temporaria de mensagem de roteamento como apresentada em 652 na Figura 32. Este processo e repetido para cada registro de envio de chamada associado com o receptor identificado pelo identificador de receptor para adicionar para a memoria temporaria de mensagem de roteamento todos os nomes de usuario e dominios de envio de chamada associados com o receptor.
[00173] Referindo-se a Figura 8C, no bloco 620, o processador e direcionado para determinar se o usuario identificado pelo identificador de receptor pagou ou nao pelo servigo de correio de voz e isto e feito por verificar se um indicador esta ou nao 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.
[00174] Referindo-se a Figura 30, os registros da tabela de correio de voz incluem um campo de nome de usuario 624, um campo de servidor de correio de voz 626, um campo de segundos para o correio de voz 628 e um campo habilitavel 630. O campo de nome de usuario 624 armazena o nome de usuario do assinante que comprou o servigo. O campo de servidor de correio de voz 626 mantem um codigo identi- ficando um enderego IP ou um nome de dominio totalmente qualifica- do (FQDN) de um servidor de correio de voz associado com o assinante identificado pelo campo de nome de usuario 624. O campo de se- gundos para o correio de voz 628 mantem um codigo identificando o tempo para aguardar antes de ativar o correio de voz e o campo habili- tavel 630 mantem um codigo representando se o correio de voz esta ou nao habilitado para o usuario identificado pelo conteudo do campo de nome de usuario 624. Portanto, referindo-se de novo a Figura 8C, no bloco 620, o processador de pesquisa por um registro de correio de voz como apresentado na Figura 31 possuindo o conteudo do campo de nome de usuario 624 correspondendo ao identificador de receptor e procura o conteudo do campo habilitado 630 para determinar se o correio de voz esta ou nao habilitado. Se o correio de voz estiver habilitado, entao, o bloco 640 na Figura 8C direciona o processador para ar- mazenar o conteudo do campo de servidor de correio de voz 626 da Figura 31 e o conteudo do campo de segundos para o correio de voz 628 da Figura 31 na memoria temporaria de mensagem de roteamento como apresentada em 654 na Figura 32. Referindo-se de novo a Figura 8C, o bloco 642 entao direciona o processador para obter os valores de tempo de vida (TTL) para cada rota especificada pela mensagem de roteamento de acordo com qualquer um dentre varios criterios, tai como, por exemplo, o custo de roteamento e o saldo da conte do usuario. Estes valores TTL sao entao anexados para as rotas correspon- dentes ja armazenadas na memoria temporaria de mensagem de roteamento.
[00175] O bloco 644 da Figura 8C entao direciona o circuito do processador RC 200 para armazenar o endereQO IP do superno corrente na memoria temporaria de mensagem de roteamento como apresentado em 656 na Figura 32. Uma mensagem de roteamento ilustrativa e apresentada na memoria temporaria de mensagem de roteamento apresentada na Figura 32.
[00176] O bloco 645 da Figura 8C entao direciona o processador para verificar o perfil de discagem do chamador apresentado na Figura 10 para determinar se ele contem ou nao campo de interceptaQao legitima do tipo apresentado na Figura 9, e se tiver, para determinar se os criterios de interceptagao sao ou nao atendidos. Nesta concretizagao, isto inclui determinar se o campo de indicador de interceptagao legiti-ma 702 contem um indicador indicando que a interceptagao legitima esta habilitada e verificar se a data e a hora corrente estao dentro do periodo especificado pelo conteudo do campo de data / hora de inicio de LI 708 e pelo conteudo do campo de data I hora de termino de LI 710. Se os criterios de interceptagao forem atendidos, o bloco 647 direciona o circuito do processador RC 200 para anexar os conteudos dos campos de interceptagao legitima 702, 704, 706, 708, 710 para a mensagem de roteamento apresentada na Figura 32A para produzir uma mensagem de roteamento com conteudos de campo de interceptagao legitima, como apresentado na Figura 32A. Novamente, a determinagao de que se a informagao de destino satisfaz ou nao os criterios de interceptagao e feita antes de produzir a mensagem de roteamento, de modo que quando os criterios de interceptagao sao satisfei- tos, pelo menos alguma parte da informagao de interceptagao, nesta concretizagao, toda ela, pode ser incluida na mensagem de roteamento.
[00177] Referindo-se de novo a Figura 8C, se no bloco 645 for determinado que nao existem campos de interceptagao legitima associa- dos com o perfil de discagem do chamador da Figura 10 ou que os criterios de interceptagao nao sao atendidos apos a produgao da mensagem de roteamento apresentada na Figura 32A, o processador e direcionado para o bloco 649 que causa que o processador verifique o perfil de discagem do receptor apresentado na Figura 11 para determinar se seu conteudo contem ou nao campos de interceptagao legitima do tipo apresentado na Figura 9 e se tiver, para determinar se os criterios de interceptagao sao ou nao satisfeitos por verificar se a data e a hora corrente estao dentro do periodo especificado pelo conteudo do campo de data / hora de inicio de LI 708 e pelo conteudo do campo de data / hora de termino de LI 710 do perfil de discagem do receptor. Se os criterios de interceptagao forem atendidos, o bloco 651 direciona o circuito do processador RC 200 para anexar os conteudos dos campos de interceptagao legitima 702, 704, 706, 708, 710 associados com o perfil de discagem do receptor para a mensagem de roteamento apresentada na Figura 32A para produzir uma mensagem de rotea-mento. Se, no bloco 649 da Figura 8C, for determinado que nao exis- tem campos de interceptagao legitima associados com o perfil de discagem do receptor ou que os criterios de interceptagao nao foram atendidos, nenhum campo de interceptagao legitima associado com o receptor e anexado para a mensagem de roteamento apresentada na Figura 32 ou 32A. Referindo-se de novo a Figura 8C, o bloco 646 entao direciona o circuito do processador RC 200 para enviar a mensagem de roteamento para o controlador de chamada 14.
Resposta para a Mensagem de Roteamento
[00178] Referindo-se de volta a Figura 1, a mensagem de roteamento, seja do tipo apresentado nas Figuras 16, 16A, 25, 25A, 32, 32A ou 32B, e recebida no controlador de chamada 14. Referindo-se a Figura 33, quando uma mensagem de roteamento e recebida no controlador de chamada, o manipulador de mensagem de roteamento 122 e ativado no controlador de chamada. O manipulador de mensagem de roteamento e apresentado em detalhes na Figura 33.
[00179] Referindo-se a Figura 33, o manipulador de mensagem de roteamento comega com um primeiro bloco 1200 que direciona o circuito do processador para determinar se a mensagem de roteamento inclui ou nao campos de interceptagao legitima. Se nao, o processador e direcionado para o bloco 1206 que causa que o mesmo ative a rotina de manipulagao de chamada apresentada na Figura 34. Referindo-se a Figura 34, como uma primeira etapa na rotina de manipulagao de chamada, uma mensagem 1100 e enviada a partir do controlador de chamada 14 para a retransmissao de midia 17, a mensagem incluindo o enderego IP do telefone do chamador e a porta UDP como determi- nados a partir do campo de enderego IP do chamador 67 e do campo de porta UDP do chamador 69 na mensagem de Convite SIP apresentada na Figura 3.
[00180] A retransmissao de midia 17 especifica para a qual a mensagem 1100 e enviada pode ser selecionada a partir de um grupo de retransmissoes de midia disponiveis e tais retransmissoes de midia podem estar em qualquer localizagao geografica. O proposito da mensagem 1100 e avisar a retransmissao de midia que e desejado que uma chamada seja configurada para se comunicar com o enderego IP e com o numero UDP do telefone do receptor;
[00181] Uma retransmissao de midia selecionada dentre as retransmissoes de midia localizadas em uma localizagao geografica que facilita a comunicagao em uma qualidade de servigo desejada entre a retransmissao de midia 17 e o telefone do chamador 12 e o telefone do receptor 15 pode proporcionar melhor servigo. Alternativamente, retransmissoes de midia podem ser pre-designadas ou pre-associadas com usuarios pela inclusao e preenchimento dos campos de retransmissao de midia dos perfis de discagem de usuario, tal como apresentado em 1150 na Figura 9, identificando uma ou mais retransmissoes de midia atraves das quais as chamadas associadas com o usuario associado sao para serem direcionadas. Neste caso, as identificagoes de retransmissoes de midia possiveis obtidas a partir dos campos de retransmissao de midia 1150 podem ser envidas para o controlador de chamada em campos adicionais na mensagem de roteamento. Estes campos de retransmissao de midia sao apresentados em 1152 nas Figuras 16, 16A, 25, 25A, 32, 32A e 32B. Em essencia, a retransmis- sao de midia atraves da qual as comunicaQoes envolvendo as comunicaQoes envolvendo o assinante serao conduzidas e identificada em resposta a mensagem de roteamento.
[00182] Referindo-se de volta a Figura 34, neste caso, a mensagem 1100 pode ser enviada em um modo de sondagem para todas as retransmissoes de midia identificadas pelos campos de retransmissao de midia 1150, ate que uma responda. Alternativamente, a mensagem 1100 pode ser enviada simultaneamente para todas as retransmissoes de midia.
[00183] Em resposta, no caso onde a retransmissao de midia e co- nhecida ou esta envolvida na sondagem como descrito acima, a retransmissao de midia 17 para a qual a mensagem 1100 e enviada en- via uma mensagem de condiQao da retransmissao de midia 1102 de volta para o controlador de chamada 14, a mensagem incluindo um endereQO IP da retransmissao de midia e o numero de porta UDP na qual a retransmissao de midia ira estabelecer uma conexao UDP com o telefone do receptor 15. Os dados de audio para / a partir do telefone 15 serao transmitidos atraves desta conexao. No caso onde a mensagem 1100 e enviada para varias retransmissoes de midia, a primeira a responder com a mensagem de condiQao de retransmissao de midia e a retransmissao de midia atraves da qual a chamada sera transporta- da. As mensagens de condiQao da retransmissao de midia a partir de retransmissoes de midia restantes podem ser ignoradas.
[00184] Apos a mensagem de condiQao da retransmissao de midia 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 conteudos dos campos de identificador de chamador e de receptor (60 e 62), do campo de identificador de chamada (65), do endereQO IP da retransmissao de midia e do numero de porta UDP da retransmissao de midia designados para a conexao de caminho de audio com o telefone do receptor 15, para convidar o telefone do receptor para estabelecer uma conexao com a retransmissao de midia 17.
[00185] O proposito da mensagem de Convite SIP 1104 e avisar ao telefone do receptor sobre o chamador e sobre o ID da chamada e sobre o enderego IP e o numero de porta UDP da retransmissao de midia atraves da qual o telefone do receptor deve enviar e receber dados de audio.
[00186] O telefone do receptor 15 armazena o enderego IP da retransmissao de midia e o numero de porta UDP designado na memoria temporaria de enderego IP de caminho de audio 47 apresentada na Figura 2e configura-se para criar um soquete entre o enderego IP I UDP da retransmissao de midia e o enderego IP do telefone do receptor e um numero de porta UDP que o telefone do receptor 15 deseja utilizar como um caminho de audio para o telefone do chamador. Ao inves de enviado ou recebido diretamente para ou a partir do telefone do chamador, o telefone do receptor 15 ira enviar e receber dados de audio a partir da retransmissao de midia. 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 enderego IP do receptor e o numero de porta UDP a partir de seu campo de enderego IP (53 na Figura 3) no qual o telefone do receptor 15 ira estabelecer uma conexao de caminho de audio com a retransmissoes de midia 17. O proposito desta mensagem SIP OK 1106 e avisar ao controlador de chamada sobre o enderego IP e sobre o numero de porta UDP atraves dos quais a retransmissao de midia deve enviar e receber dados de audio para e a partir do telefone do receptor.
[00187] O controlador de chamada 14 entao envia uma mensagem 1108 para a retransmissao de midia 17 incluindo o enderego IP e o numero de porta UDP que o telefone do receptor 15 ira utilizar para a conexao de caminho de audio com a retransmissao de midia. O proposito da mensagem 1108 e avisar a retransmissao de midia sobre o enderepo IP e o numero de porta UDP atraves dos quais ela deve en- viar e receber dados de audio para e a partir do telefone do receptor.
[00188] A retransmissao de midia 17 entao determina uma porta UDP atraves da qual ela ira transportar os dados de audio para e a partir do telefone do receptor 12 e envia uma mensagem 1110 para o controlador de chamada (14), a mensagem incluindo o enderego IP da retransmissao de midia e o numero de porta UDP da retransmissao de midia que a retransmissao de midia ira utilizar para transportar audio para e a partir do telefone do receptor 12. O proposito desta mensagem 1110 e avisar ao controlador de chamada 14 sobre o enderego IP e numero de porta UDP atraves dos quais e esperado transferir os dados de audio para e a partir do telefone do receptor.
[00189] O controlador de chamada 14 entao 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 usuario do chamador e do receptor, o ID de chamada e o enderego IP e o numero de porta UDP da retransmissao de midia 17 designados para a conexao de audio com o telefone do chamador 12. O proposito desta mensagem SIP OK 1112 e avisar ao telefone do chamador 12 sobre o enderego IP e o numero de porta UDP atraves dos quais ele deve trocar dados de audio com a retransmissao de midia 17.
[00190] Se a mensagem de roteamento for do tipo apresentado na Figura 25, onde existem varios fornecedores disponiveis, a rotina de manipulagao de chamada continua como descrito acima, com a exce- gao de que ao inves de se comunicar com o telefone do receptor dire- tamente, o controlador de chamada 14 se comunica com um dispositivo de interconexao de rede proporcionado por um fornecedor. Se uma mensagem SIP OK nao for recebida de volta a partir do primeira dis- positivo de interconexao de rede, o processador e direcionado para enviar a mensagem de Convite SIP 1104 para um dispositivo de interconexao de rede do proximo 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 esta ou nao apto a manipular a chamada. Se Telus nao enviar de volta uma mensagem SIP OK 1106 dentro de um tempo especificado ou enviar uma mensagem indicando que ele nao esta apto a manipular a chamada, o controlador de chamada continua a enviar uma mensagem de Convite SIP 1104 para o proximo fornecedor, neste caso Shaw. O processo e repetido ate que um dos fornecedores responda com uma mensagem SIP OK 1106 indicando que ele esta disponivel para transportar a chamada e o processo continua como apresentado em conexao com as mensagens 1108, 1110 e 1112. Por exemplo, o fornecedor "Telus" envia de volta uma mensagem SIP OK e assim proporciona um dispositivo de interconexao de rede para o PSTN no enderego IP 72.64.39.58 como proporcionado pela mensagem de roteamento a partir do conteudo do campo de identificador de rota 546 do registro de fornecedor correspondente apresentado na Figura 22.
[00191] Referindo-se de volta a Figura 1, se o controlador de chamada 14 receber uma mensagem do tipo apresentada na Figura 32, isto e, um tipo que possui um numero de envio de chamada e / ou um numero de correio de voz, o controlador de chamada tenta estabelecer uma chamada (utilizando a mensagem de Convite SIP 1104) com o telefone do receptor 15 e se nenhuma chamada for estabelecida (isto e, a mensagem 1106 nao e recebida) dentro de um tempo predetermi- nado, o controlador de chamada 14 tenta estabelecer uma chamada com o proximo usuario identificado na mensagem de roteamento de chamada, por enviar uma mensagem de Convite SIP igual a mensagem 1104 para o proximo usuario. Este processo e repetido ate quetodas as possibilidades de envio de chamada tenham sido esgotadas, caso em que um caminho de audio e 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 receppao da mensagem de Convite SIP 1104 e funciona como descrito acima em conexao com o telefone do receptor 15 para permitir uma mensagem de audio emitida pelo servidor de correio de voz possa ser ouvida pelo chamador para permitir que o chamador grave uma mensagem de audio no servidor do correio de voz.
[00192] Quando os caminhos de audio sao estabelecidos, um tem- porizador de chamada (nao-apresentado) mantido pelo controlador de chamada registra a data e a hora inicial da chamada e registra o ID da chamada e adiciona um registro de chamada ativa do tipo apresentado na Figura 35 para uma lista de chamadas ativas, mantida pelo controlador de chamada.
[00193] Nesta concretizapao, o registro de chamada ativa do controlador de chamada apresentada na Figura 35 inclui um campo de ID de chamada 1300, um campo de enderego IP do chamador 1302, um campo de porta do chamador 1304, um campo de enderepo IP do receptor 1306, um campo de porta do receptor 1312 e um campo de porta do receptor da retransmissao de midia 1314. O conteudo do campo de ID da chamada 1300 e estabelecido no bloco 136 na Figura 5. O conteudo do campo de enderepo IP do chamador 1302 e estabelecido a partir dos conteudos do campo de enderepo IP do chamador 67 da mensagem de convite SIP apresentada na Figura 3. O conteudo do campo de porta do chamador 1304 e estabelecido a partir do campo de porta UDP do chamador 69 da mensagem de convite SIP apresentada na Figura 3. O conteudo do campo de enderepo IP do receptor 1306 e do campo de porta do receptor 1308 sao estabelecidos a partir da mensagem SIP OK 1106 apresentada na Figura 34.
[00194] O campo de ID de retransmissao de midia 1310 e preen- chido com uma identificaQao da retransmissao de midia manipulando a chamada. No exemplo apresentado, a retransmissao de midia e o numero 42. O conteudo do campo de porta do receptor da retransmissao de midia e obtido a partir da mensagem 1110 apresentada na Figura 34 e o conteudo do campo de porta do receptor da retransmissao de midia 1314 e obtido a partir da mensagem de condiQao da retransmissao de midia 1102 apresentada na Figura 34. Cada vez que uma chamada e estabelecida, um registro de chamada ativa do tipo apresentado na Figura 35 e adicionado para um registro de ocorrencia de chamada ativa mantido pelo controlador de chamada.
[00195] O controlador de roteamento tambem mantem um registro de ocorrencia de chamada ativa contendo registros de chamada ativa, entretanto, os registros de chamada ativa mantidos pelo controlador de roteamento sao diferentes dos registros de chamada ativa mantidos pelo controlador de chamada. Por exemplo, referindo-se a Figura 36, um registro de chamada ativa mantido pelo controlador de roteamento inclui um campo de ID de chamada 1316, um campo de chamador 1318, um campo de receptor 1320 e um campo de ID de controlador de chamada 1322. A informaQao para preencher estes campos pode ser recebida em uma mensagem (nao-apresentada) transmitida a partir do controlador de chamada para o controlador de roteamento apos um registro de chamada ativa ter sido informado para o registro de ocorrencia de chamada ativa do controlador de chamada.
[00196] A mensagem a partir do controlador de chamada 14 para o controlador de roteamento 16, indicando que uma chamada ativa foi estabelecida, pode incluir o conteudo do campo de ID de chamada 1300 apresentado na Figura 35 e um numero de ID unico do controlador de chamada mantido pelo controlador de chamada. O controlador de roteamento 16 corresponde o ID da chamada com os nomes de usuario do chamador e do receptor contidos 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 1320 apresentados na Figura 36, respectivamente. Sera apreciado que varies controladores de chamada podem ser associados com um unico controlador de roteamento, caso em que o ID do controlador de chamada permite que o controlador de roteamento de forma unica identifi- que o controlador de chamada associado com o ID da chamada indicado pelo conteudo do campo de ID de chamada 1316. No exemplo apresentado, o controlador de chamada e o numero 61.
[00197] Os registros de chamada ativa facilitam a interceptaQao de uma chamada ja em andamento, como sera descrito abaixo.
[00198] Referindo-se de volta a Figura 33, se no bloco 1200 for determinado que a mensagem de roteamento possui campos de interceptaQao legitima, o bloco 1202 direciona o circuito do controlador de chamada 100 (Figura 4) para enviar uma mensagem de Convite SIP como apresentada na Figura 37 para um dispositivo de mediaQao identificado pelo endereQO IP de dispositivo de mediaQao na mensagem de roteamento como obtido a partir do campo de endereQO MD1 704 do perfil de discagem do usuario como apresentado em 256 na Figura 9. Referindo-se a Figura 37, a mensagem de 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 mandate 1026 e outros campos de informaQao relacionada com interceptaQao 1028, se dese- jado. Os conteudos dos campos de ID do chamador, do receptor e da chamada 1020, 1022 e 1024 sao obtidos a partir da mensagem de Convite SIP original apresentada na Figura 6. Os conteudos dos campos de ID do mandato 1026 e de campos de informaQao relacionada com a interceptaQao 1028 sao obtidos a partir da mensagem de rote- amento que seria do tipo apresentado nas Figuras 16A, 25A, 32A ou 32B.
[00199] Referindo-se de novo a Figura 33, o bloco 1204 entao direciona o controlador de chamada 14 para receber uma mensagem de resposta, como apresentada na Figura 38, a partir do dispositivo de mediagao 31. A mensagem de resposta e uma mensagem SIP OK que inclui os campos de ID do chamador, do receptor e da chamada 1040, 1042, 1044 como descritos acima e adicionalmente inclui um campo de enderego IP do dispositivo de mediagao 1046 e um campo de numero de porta UDP do chamador do dispositivo de mediagao 1048 e um campo de numero de porta UDP do receptor 1050 identificando as portas UDP no enderego IP do dispositivo de mediagao para as quais a retransmissao de midia e para enviar copias de fluxos de dados de audio recebidos a partir dos telefones do chamador e do receptor, res- pectivamente. O bloco 1206 entao direciona o controlador de chamada para executar a rotina de manipulagao de chamada apresentada na Figura 34 com a excegao de que a mensagem 1100 adicionalmente inclui os conteudos do campo de enderego IP do dispositivo de mediagao 1046, do campo de numero de porta UDP do chamador do dispositivo de mediagao 1048 e do campo de numero de porta UDP do receptor 1050 da mensagem SIP OK apresentada na Figura 38.
[00200] Todas as outras mensagens sao as mesmas que descritas acima em conexao com a rotina de manipulagao de chamada como apresentada na Figura 34, mas em resposta a receber a informagao adicional na mensagem 1100, a retransmissao de midia automaticamente configura-se para proporcionar a copia dos dados de audio recebidos a partir tanto do telefone do chamador como do telefone do receptor para o enderego IP do dispositivo de mediagao e para o numero de porta UDP do chamador e para o numero de porta UDP do receptor, respectivamente.
[00201] Referindo-se de volta a Figura 1, a medida que os dados de audio originarios do telefone do chamador 12 e do telefone do receptor 15 passam atraves da retransmissao de midia 17, estes dados sao copiados para a porta UDP do dispositivo de mediagao para o chamador e para a porta UDP do dispositivo de mediagao para o receptor, como indicado pela mensagem de convite SIP 1100. Isto permite que as agendas de imposigao de lei monitorem as comunicagoes de audio entre o chamador e o receptor e/ou gravem tais comunicagoes no dispositivo de mediagao.
[00202] Assim, quando a informagao de determinagao no perfil de discagem atende aos criterios de interceptagao, o controlador de chamada comunica-se com a retransmissao de midia atraves da qual as comunicagoes envolvendo o assinante cujas comunicagoes sao para serem monitoradas serao manipuladas para causar que a retransmissao de midia envie um copia de tais comunicagoes para um dispositivo de mediagao especificado pela informagao de destino incluida na in-formagao de interceptagao associada com o perfil de discagem associado com o assinante cujas comunicagoes sao para serem monitoradas.
Terminando a Chamada
[00203] No caso em que o chamador ou o receptor termina uma chamada, o telefone da parte que termina envia uma mensagem SIP Bye para o controlador de chamada 14. Uma mensagem SIP Bye ilustrativa e apresentada em 900 na Figura 39 e inclui um campo de chamador 902, um campo de receptor 904 e um campo de ID da chamada 906. O campo de chamador 902 mantem o nome de usuario do chamador, o campo de receptor 904 mantem um numero ou nome de usuario compativel com a PSTN, e o campo de ID da chamada 906 mantem um campo de identificador unico de chamada do tipo apresentado no campo de identificador de chamada 65 da mensagem de Con-vite SIP apresentada na Figura 3.
[00204] Assim, por exemplo, referindo-se a Figura 40, uma mensagem SIP Bye para o receptor de Calgary e apresentada geralmente por 908 e o campo de chamador 902 mantem um nome de usuario identificando o chamador de Vancouver, neste caso, 2001 1050 8667, o campo de receptor 904 mantem um nome de usuario identificando o receptor de Calgary, neste caso 2001 1050 222, e o campo de ID da chamada 906 mantem o codigo FA10@192.168.0.20, que e o ID da chamada para a chamada.
[00205] A mensagem SIP Bye apresentada na Figura 40 e recebida no controlador de chamada 14 e o controlador de chamada executa um processo como apresentado geralmente por 910 na Figura 41. O processo inclui um primeira bloco 912 que direciona o circuito do controlador de chamada (100) para copiar os conteudos 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 ter- mina para os campos correspondentes de uma memoria temporaria de mensagem de termino RC (nao-apresentada). O bloco 914 entao direciona o circuito do controlador de chamada 100 para copiar a hora ini- cial da chamada a partir do temporizador de chamada e para obter um tempo de Termino da Chamada a partir do temporizador de chamada. O bloco 916 entao direciona o controlador de chamada para calcular um tempo da sessao de comunicaQao por determinar a diferenpa no tempo entre a hora inicial da chamada e a hora de Parada da Chamada. Este tempo de sessao de comunicaQao e entao armazenado em um campo correspondente da memoria temporaria de mensagem de Termino de Chamada RC. Entao, o bloco 918 direciona o circuito do controlador de chamada 100 para preencher o campo de rota com o enderepo IP dao fornecedor do dispositivo de interconexao de rede, se houver. Uma mensagem de Termino de Chamada RC produzida como descrito acima e apresentada geralmente por 1000 na Figura 42. Uma mensagem de Termino de Chamada RC especificamente associada com a chamada feita para o receptor de Calgary e apresentada geralmente por 1021 naFigura 43.
[00206] Referindo-se a Figura 42, a mensagem de termino 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 1008, um campo de registro de hora de termino 1010, um campo de tempo de sessao de comunicagao 1012 e um campo de rota 1014. O campo de chamador 1002 mantem um nome de usuario, o campo de receptor 1004 mantem um numero compativel com a PSTN ou o numero do sistema, o campo de ID da chamada 1006 mantem um identificador unico de chamada recebido a partir da mensagem de convite SIP apresentada na Figura 3, o campo de registro de hora inicial 1008 mantem a data e a hora inicial da chamada, o campo de registro de hora de termino 1010 mantem a data e a hora que a chamada terminou, o campo de tempo de sessao de comunicagao 1012 mantem um valor representando a diferenga entre a hora inicial e a hora da termino, em segundos, e o campo de rota 1014 mantem o enderego IP para um dispositivo de interconexao de rede, se um dispositivo de interconexao de rede for utilizado para estabelecer a chamada.
[00207] Referindo-se a Figura 43, uma mensagem ilustrativa de termino de chamada RC para o receptor de Calgary e apresentada geralmente por 1021. Neste exemplo, o campo de chamador 1002 mantem o nome de usuario 2001 1050 8867 identificando o chamador de Vancouver e o campo de receptor 1004 mantem o nome de usuario 2001 1050 222 identificando o receptor de Calgary. O conteudo do campo de ID da chamada 1006 e FA10@192.168.0.20. O conteudo do campo de registro de hora inicial 1008 e 2006-12-30 12:12:12 e o con- teudo do campo de registro de hora de termino 1010 e 2006-12-30 12:12:14. O conteudo do campo de tempo de sessao de comunicagao 1012 e 2 para indicar a duragao de 2 segundos da chamada e o conteudo do campo rota esta em branco mas poderia ser 72.64.39.58 se o dispositivo de interconexao de rede "Telus" fosse utilizado, por exemplo.
[00208] Referindo-se de volta a Figura 41, apos ter produzido uma mensagem de Termino de Chamada RC, o bloco 920 direciona o circuito do controlador de chamada 100 para enviar a mensagem de termino RC contida na memoria temporaria de mensagem de Termino de Chamada RC para o controlador de roteamento (16).
[00209] O RC (16) recebe a mensagem de Termino de Chamada e um processo de mensagem de Termino de Chamada do controlador de roteamento (nao-apresentado) e ativado no controlador de roteamento para lidar com as tarifas e faturamento para a chamada.
[00210] O bloco 922 direciona o circuito do controlador de chamada 100 para enviar uma mensagem Bye para a parte que nao terminou a chamada, isto e, para a parte que nao esta terminando.
[00211] O bloco 924 entao direciona o circuito do controlador de chamada 100 para enviar uma mensagem SIP Bye do tipo apresentada na Figura 39 para a retransmissao de midia 17 para causar que a retransmissao de midia desconecte os soquetes de caminho de audio associados com o enderego IP / UDP do telefone do chamador e com o enderego IP / UDP do telefone do receptor. Ao desconectar estes soquetes de comunicagao, a retransmissao de midia 17 apaga as as- sociagbes entre o enderego IP I UDP do telefone do chamador e o enderego IP / UDP do chamador da retransmissao de midia e entre o enderego IP / UDP do telefone do chamador e o enderego IP / UDP do receptor da retransmissao de midia.
[00212] Se a retransmissao de midia 17 foi configurada para inter- ceptaqao legitima, o bloco 926 da Figura 1 entao direciona o circuito do controlador de chamada 100 para enviar uma mensagem SIP Bye do tipo apresentada na Figura 39 para o dispositivo de mediaQao 31 para informar para o dispositivo de mediaQao que a chamada terminou e para desconectar os soquetes de comunicaQao entre os endereqos de porta IP I UDP do chamador e do receptor da retransmissao de midia e o enderego de porta IP / UDP para o qual os dados de audio re- cebidos nos endereqos de pora IP / UDP do chamador e do receptor estavam sendo copiados.
[00213] Sera apreciado que na descriQao anterior, os componentes descritos cooperam para detectar um requerimento de interceptaQao na hora que uma chamada e configurada. Na descriQao seguinte, e proporcionada uma explicaqao para descrever como interceptar uma chamada enquanto a chamada esta em andamento.
Interceptando uma Chamada em Andamento
[00214] Referindo-se de volta a Figura 1, para interceptar uma chamada enquanto a chamada esta em andamento, a autoridade de imposiQao de lei 293 ode ser comunicar com um dispositivo de mediaQao, ou pode ser comunicar com o controlador de chamada ou pode comunicar-se com o controlador de roteamento ou pode comunicar-se com uma interface de transferencia que comunica-se com qualquer um dos componentes anteriores para causar que o controlador de rotea-mento receba uma mensagem de requisiQao da interceptaQao da autoridade de imposiQao de lei (LEA) incluindo a informaQao de interceptaQao, tai como esta que estaria associada com os campos 702 ate 710 na Figura 9, por exemplo.
[00215] Em resposta a recepqao de uma mensagem de requisiQao de interceptaQao LEA, o manipulador de mensagem de requisiQao LEA do controlador de roteamento em 1400 na Figura 44 e ativado.
[00216] O manipulador de mensagem de requisiQao LEA 1400 co- mepa com um primeiro bloco 1402 que direciona o circuito do processador do controlador de roteamento para se comunicar com a base de dados 18 na qual os registros de perfil de discagem do tipo apresentado na Figura 9 sao armazenados para encontrar um perfil de discagem associado com o usuario cujas chamadas sao para serem monitoradas.
[00217] Se o nome de usuario nao for conhecido, mas um numero DID (isto e, um numero PSTN) for conhecido, o controlador de roteamento pode causar uma pesquisa atraves dos registros da tabela de banco DID do tipo apresentado na Figura 13, por exemplo, para encontrar um nome de usuario associado com um numero DID, se o nome de usuario nao for conhecido, mas um nome e enderepo forem co- nhecidos, outros registros, tai como registros de faturamento (nao- apresentados) associando nomes e enderegos com nomes de usuario, podem ser pesquisados para encontrar um nome de usuario associado com um dado nome e / ou enderepo de uma pessoa cujas chamadas sao para serem interceptadas. Independente da informapao disponivel, para facilitar a interceptapao de chamada, qualquer modo de encontrar o perfil de discagem unico associado com o usuario cujas chamadas sao para serem interceptadas e uma primeira etapa para facilitar a interceptapao de chamada, nesta concretizapao.
[00218] Uma vez que o perfil de discagem seja encontrado, o bloco 1404 direciona o circuito do processador do controlador de chamada para associar a informapao de interceptapao com o perfil de discagem por anexar e / ou preencher os campos de interceptapao legitima do perfil de discagem com tais informapoes como proporcionadas pela mensagem de requisipao de interceptapao LEA.
[00219] O bloco 1406 entao direciona o circuito do processador do controlador de chamada para determinar se os criterios de interceptapao sao atendidos pela informapao de interceptapao agora incluida no perfil de discagem. Isto e feito pela determinagao de se o indicador LI (702) esta ativado, e se a data e a hora corrente estao dentro das faixas de data I hora de inicio / fim da LI. Se os criterios de interceptagao nao forem satisfeitos, o processo e terminado.Caso contrario, o pro-cessador e direcionado para o bloco 1408.
[00220] O bloco 1408 direciona o circuito do processador do controlador de roteamento para utilizar o nome de usuario do perfil de discagem encontrado 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 conteudos cor- respondendo ao nome de usuario associado com o perfil de discagem. Se nenhum registro for encontrado, o usuario nao esta atualmente en- volvido em uma chamada e o processo e terminado. Se o usuario estiver envolvido em uma chamada, o registro de chamada ativa do controlador de roteamento sera encontrado. O bloco 1410 entao 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 rote-amento apresentado na Figura 36.
[00221] O bloco 1412 entao direciona o circuito do processador do controlador de roteamento para transmitir uma mensagem de intercep- gao dentro da chamada para o controlador de chamada identificado pelo conteudo do campo de ID de controlador de chamada 1422 do registro de chamada ativa do controlador de roteamento. A mensagem de interceptagao dentro da chamada inclui o ID da chamada como de-terminado a partir do registro de chamada ativa do controlador de roteamento e o enderego IP do dispositivo de mediagao associado com a autoridade de imposigao de lei interessada em interceptar a chamada. O enderego IP do dispositivo de mediagao pode ser obtido a partir da mensagem de requisigao da autoridade de imposigao de lei, ou doperfil de discagem, por exemplo.
[00222] O bloco 1414 entao direciona o circuito do processador do controlador de roteamento para aguardar por um tempo especificado para receber a mensagem de condiQao de interceptaQao do controlador de chamada de volta a partir do controlador de chamada indicando se a funQao de interceptaQao foi ou nao ativada.
[00223] Referindo-se a Figura 45, ao receber a mensagem de interceptaQao dentro da chamada no controlador de chamada (14), o controlador de chamada executa um manipulador de mensagem de interceptaQao dentro da chamada apresentado geralmente por 1450. O manipulador de mensagem de interceptaQao dentro da chamada 1450 comeQa com um primeira bloco 1452 que direciona o circuito do pro-cessador do controlador de chamada para enviar uma mensagem de Convite SIP para o dispositivo de mediaQao associado com o endereQO IP do dispositivo de mediaQao, recebido na mensagem de interceptaQao dentro da chamada.
[00224] O bloco 1454 entao direciona o circuito do processador do controlador de chamada para receber um endereQO IP e os numeros de porta UDP do receptor e do chamador a partir do dispositivo de mediaQao, onde este endereQO IP e os numeros de porta UDP sao lo- calizaQoes na rede nas quais o dispositivo de mediaQao ira esperar receber fluxos de dados de audio a partir da retransmissao de midia atraves da qual a chamada e transportada.
[00225] O bloco 1456 entao direciona o circuito do processador do controlador de chamada para identificar uma retransmissao de midia atraves da qual as comunicaQoes a serem monitoradas estao sendo conduzidas por utilizar o nome de usuario do assinante cujas comunicaQoes sao para serem monitoradas para localizar um registro de chamada ativa na lista de chamadas ativas do controlador de chamada para localizar um identificador de retransmissao de midia, tai como o enderepo IP da retransmissao de midia, indicado pelo conteudo do campo de ID de retransmissao de midia 1310 do registro de chamada ativa do controlador de chamada, apresentado na Figura 35. O circuito do processador do controlador de chamada e entao direcionado para enviar uma mensagem de requisipao de interceptapao para a retransmissao de midia 17 que esta manipulando a chamada. A mensagem de requisipao de interceptapao inclui o enderepo IP do dispositivo de mediapao e os numeros de porta UDP do chamador e do receptor para identificar para a retransmissao de midia 17 o enderepo IP do dispositivo de mediapao e o numero (numeros) de porta UDP nos quais ele espera receber uma copia do fluxo de dados de audio a partir do chamador e do receptor, respectivamente.
[00226] Em resposta, a retransmissao de midia estabelece conexoes internas entre os enderepos IP do chamador e do receptor e as portas UDP e o enderepo IP e a porta IP do dispositivo de mediapao. Entao, a retransmissao de midia envia uma mensagem de condipao da retransmissao de midia de volta para o controlador de chamada indicando se as conexoes internas foram ou nao estabelecidas e que a interceptapao de chamada foi iniciada.
[00227] Como visto no bloco 1458, o circuito do processador do controlador de chamada e direcionado para receber a mensagem de condipao da retransmissao de midia e o bloco 1460 direciona o circuito do processador do controlador de chamada para enviar uma mensagem de condipao de interceptapao do controlador de chamada de volta para o controlador de roteamento para indicar que a funpao de interceptapao de chamada foi estabelecida. O controlador de roteamento pode comunicar sua condipao de volta para a autoridade de imposipao de lei que emitiu a mensagem de requisipao de autoridade de imposipao de lei. Neste meio tempo, as comunicapoes envolvendo o chamador ou o receptor cujas comunicapoes sao para serem monitoradas, as quais percorrem atraves da retransmissao de midia, sao copiadas e enviadas para o dispositivo de mediaQao.
[00228] Assim, apos associar a informaQao de interceptaQao com o perfil de discagem do assinante cujas comunicaQoes sao para serem monitoradas, quando a informaQao de determinaQao inclufda na informaQao de interceptaQao atende aos criterios de interceptaQao, o controlador de chamada comunica-se com a retransmissao de midia atraves da qual as comunicaQoes do assinante cujas comunicaQoes sao para serem monitoradas para causar que tai retransmissao de midia envie uma copia de tais comunicaQoes para um dispositivo de mediaQao especificado pela informaQao de destino incluida na informaQao de interceptaQao.
[00229] Quando a chamada e terminada, a chamada e encerrada do mesmo modo que descrito acima.
[00230] Caso a autoridade de imposiQao de lei deseje cessar a interceptaQao da chamada durante a chamada, uma mensagem de requisiQao LEA requisitando que a funQao de interceptaQao seja parali- sada e enviada para o controlador de roteamento a partir da autoridade de imposiQao de lei atraves de qualquer um dos caminhos descritos acima. Isto ativa o manipulador de mensagem de requisiQao LEA tai como apresentado na Figura 44 que causa que o circuito do processador do controlador de roteamento execute os blocos 1402, 1404. No bloco 1404, o circuito do processador do controlador de roteamento e direcionado para alterar o conteudo dos campos de interceptaQao legitima para pelo menos estabelecer o indicador de interceptaQao legitima (702 na Figura 9) para inativo.
[00231] Entao, no bloco 1406, os criterios de interceptaQao nao sao atendidos e o processador e direcionado para o bloco 1416, o qual causa que o circuito do processador do controlador de roteamento determine se uma funQao de interceptaQao esta ou nao em andamento.Isto pode ser determinado, por exemplo, por manter a evidencia da recepgao da mensagem de confirmagao a partir do controlador de chamada, recebida no bloco 1414 do manipulador de mensagem de requisigao LEA 1400.
[00232] Se uma interceptagao nao estiver em andamento, o manipulador de mensagem de requisigao LEA 1400 e terminado.
[00233] Se uma interceptagao estiver em andamento, o bloco 1418 direciona o circuito do processador do controlador de roteamento para executar uma rotina de encerramento de interceptagao dentro da chamada como apresentada por 1500 na Figura 46. A rotina de encerramento da interceptagao dentro da chamada comega com um primeiro bloco 1502 que direciona o circuito do processador do controlador de roteamento para localizar o registro de chamada ativa do controlador de roteamento possuindo os conteudos de campo de chamador e de receptor iguais ao nome de usuario indicado no perfil de discagem encontrado no bloco 1402 do manipulador de mensagem de requisigao LEA 1400 apresentado na Figura 44. Tendo encontrado o registro de chamada ativa, o bloco 1504 direciona o circuito do processador do controlador de roteamento para encontrar, no registro de chamada ativa do controlador de roteamento apresentado na Figura 36, o ID do controlador de chamada (1322) e o ID de chamada (1316) associados com a chamada. O bloco 1506 entao direciona o circuito do processador do controlador de roteamento para enviar uma mensagem de en- ceramento de interceptagao (nao-apresentada) para o controlador de chamada identificado pelo ID de controlador de chamada determinado no bloco 1504. Esta mensagem de encerramento de interceptagao in-clui o ID de chamada determinado no bloco 1504 e uma identificagao do dispositivo de mediagao, a identificagao sendo obtida a partir do campo de enderego MD1 (704 na Figura 9) do perfil de discagem para o usuario cujas chamadas estao atualmente sendo interceptadas. O bloco 1508 entao direciona o circuito do processador do controlador de roteamento para aguardar por um tempo especificado para receber uma mensagem de confirmagao a partir do controlador de chamada para indicar que a fungao de interceptagao foi encerrada.
[00234] Referindo-se a Figura 47, ao receber a mensagem de en- cerramento de interceptagao no controlador de chamada (14), o manipulador de mensagem de encerramento de interceptagao 1520 e ati- vado no controlador de chamada. O manipulador de mensagem de encerramento de interceptagao 1520 comega com um primeiro bloco 1522 que direciona o circuito do processador do controlador de chamada para enviar uma mensagem de termino SIP para o dispositivo de mediagao identificado na mensagem de encerramento de interceptagao recebida a partir do controlador de roteamento. Em resposta a mensagem de termino SIP, o dispositivo de mediagao para de receber dados de audio e envia uma mensagem de confirmagao de volta para o controlador de chamada.
[00235] O bloco 1524 direciona o circuito do processador do controlador de chamada para receber a mensagem de confirmagao de volta a partir do dispositivo de mediagao.
[00236] O bloco 1526 entao direciona o circuito do processador do controlador de chamada para enviar uma mensagem de termino de interceptagao para a retransmissao de midia 17 identificada pelo conteudo do campo de ID de retransmissao de midia 1310 do registro de chamada ativa apresentado na Figura 35. A mensagem de termino de interceptagao inclui os conteudos do campo de ID de porta do chamador da retransmissao de midia 1312 e do campo de porta do receptor da retransmissao de midia 1314 incluidos no registro de chamada ativa e identifica para a retransmissao de midia quais portas encerrar. Em resposta a mensagem de termino de interceptagao, a retransmissao de midia 17 desconecta as conexoes entre a porta do chamador da retransmissao de midia e a porta do dispositivo de mediagao que estava recebendo os dados de audio a partir do chamador e a cone-xao entre a porta do receptor da retransmissao de midia e a porta do dispositivo de mediaQao que estava recebendo os dados de audio a partir do receptor. Entao, a retransmissao de midia envia uma mensagem de condigao de termino MR para o controlador de chamada.
[00237] O bloco 1528 direciona o circuito do processador do controlador de chamada para receber a mensagem de condigao de termino MR e o bloco 1530 direciona o controlador de chamada para enviar uma mensagem de condigao de termino para o controlador de roteamento 16.
[00238] Em uma concretizagao alternativa, o controlador de roteamento nao mantem registros de chamada ativa, mas cada controlador de chamada mantem. Em tal concretizagao, os blocos 1408 e 1410 da Figura 44 sao substituidos por um unico bloco 1600 que direciona o circuito do processador do controlador de roteamento para sondar cada controlador de chamada para determinar se sua lista de chamadas ativas contem uma entrada possuindo os conteudos do campo de chamador e de receptor iguais ao nome de usuario determinado a partir do perfil de discagem localizado no bloco 1402.
[00239] Se qualquer um dos controladores de chamada sondados possuir tal registro, este controlador de chamada transmite uma mensagem de resposta de volta para o controlador de roteamento, a mensagem de resposta 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 conteudos de campo de chamador ou de receptor iguais ao nome de usuario de-terminado a partir do perfil do usuario. Este seria o caso em uma chamada de conferencia, por exemplo.
[00240] O circuito do processador do controlador de roteamento en- tao executa os blocos 1412 e 1414 como descrito acima ou o processo e terminado se nenhum dos controladores de chamada sondados con- tiver um registro de chamada com os conteudos de campo de chamador e de receptor correspondendo ao nome de usuario determinado a partir do perfil de discagem localizado no bloco 1402.
[00241] Portanto, na pratica, o bloco 1600 proporciona um meio alternative para encontrar controladores de chamada que estao atual- mente transportando uma chamada associada com o usuario de inte- resse.
[00242] Em outra concretizagao, uma interface com o controlador de roteamento e/ou com o controlador de chamada pode ser propor- cionada para permitir que as autoridades de imposiQao de lei possuam acesso direto ou uma copia da lista de chamadas ativas mantida pelo controladorde chamada e/ou pelo controladorde roteamento.
[00243] A partir do precedente, sera apreciado que indicaQoes de que se as comunicaQoes de um assinante com o sistema sao ou nao para serem monitoradas, sao proporcionadas pelas agendas de imposiQao de lei diretamente para um perfil de discagem do assinante apresentado na Figura 9. Este perfil de discagem e utilizado para dire- cionar uma chamada envolvendo o assinante e e verificado em relaQao aos requerimentos de interceptaQao legitima para determinar se a re-transmissao de midia deve ou nao copiar os dados de audio associa- dos com a chamada para um dispositivo de mediaQao para propositos de monitoramento e/ou gravaQao legitimos.
[00244] Enquanto o sistema foi descrito em conexao com o monitoramento de fluxos de audio, ele pode de forma similar ser utilizado para monitoramento de quaisquer outros fluxos de dados, tai como dados puros e/ou dados de video ou de multimidia, por exemplo, entre assi- nantes do sistema ou entre um assinante e um nao assinante do sistema.
[00245] Enquanto concretizapoes especificas da invenpao foram descritas e ilustradas, tais concretizapoes devem ser consideradas somente ilustrativas da invenpao e nao limitando a invenpao como construida de acordo com as reivindicapoes acompanhantes.