Relatório Descritivo da Patente de Invenção para ADAPTADOR DE PROTOCOLO DE INÍCIO DE SESSÃO.
Antecedentes
1. Campo da Técnica
[0001] O presente pedido refere-se ao campo da comunicação em rede, e, mais especificamente, à iniciação de uma sessão de comunicação entre participantes em redes separadas que implementam protocolos de iniciação de sessão diferentes.
2. Informações Antecedentes
[0002] Um protocolo de iniciação de sessão (SIP) é um protocolo de sinalização utilizado para iniciar uma sessão de comunicação entre dois ou mais participantes dentro de uma rede de protocolo da Internet (IP), como, por exemplo, uma rede de troca de mensagens. A sessão de comunicação pode ser uma chamada telefônica feita pela Internet, uma sessão de troca de mensagens instantâneas (IM), uma sessão de conferência multimídia, ou outro tipo de atividade de comunicação entre participantes. Os participantes (o iniciador e o convidado) podem fazer interface com a rede por meio de uma aplicação executada em um computador, tais como uma aplicação de cliente de sessão IM, ou um dispositivo, como, por exemplo, um telefone de protocolo IP, como exemplos. Por todo o presente relatório descritivo, a menos que indicado de outra forma, os termos iniciador e convidado se referem a uma aplicação de cliente, a um dispositivo, ou a uma outra extremidade de comunicação em rede, e não os participantes em si. O termo extremidade se refere a uma ou mais interfaces, tais como uma aplicação de cliente, um telefone de protocolo IP, ou qualquer programa (extremidade de software), conjunto de programas, dispositivo (extremidade de hardware), ou conjunto de dispositivos que possibilitam a comunicação de participantes, uns com os outros, dentro de ou entre redes.
Petição 870190095815, de 25/09/2019, pág. 7/41
2/26
[0003] Durante a fase de iniciação (também referida como sinalização) de uma sessão de comunicação, ocorre primeiramente uma troca de mensagens de protocolo SIP entre um iniciador e um servidor de protocolo SIP associado à rede do iniciador. A fim de iniciar a sessão de comunicação, o iniciador envia uma mensagem de convite de protocolo SIP para o servidor de protocolo SIP. A mensagem de convite de protocolo SIP tipicamente inclui o endereço do convidado, assim como uma descrição da sessão. Por exemplo, uma descrição de sessão pode indicar que a sessão prospectiva é uma sessão de telefone de Voz sobre Protocolo de Internet (VoIP), uma seção de videoconferência, ou outro tipo de sessão de mídia. O servidor de protocolo SIP em seguida comunica a mensagem de convite de protocolo SIP ao convidado. A mensagem de convite de protocolo SIP é seguida de outra troca de mensagens de protocolo SIP entre o iniciador e o convidado através do servidor de protocolo SIP. A troca de mensagens de protocolo SIP provê as informações que são utilizadas no sentido de preparar o iniciador e o convidado para a sessão de comunicação.
[0004] A troca de mensagens de protocolo SIP pode também assegurar se o endereço do convidado (por exemplo, o endereço de protocolo IP) está correto e se o convidado se encontra disponível. A troca de mensagens de protocolo SIP pode indicar que um determinado computador do convidado e/ou que determinados recursos de rede são necessários para a sessão de comunicação e devem ser reservados se a sessão de comunicação estiver para acontecer. Por exemplo, uma aplicação de vídeo pode precisar estar acessível e executável no computador do convidado quando a troca de mensagens de protocolo SIP indica que a sessão de comunicação é uma sessão de videoconferência. Além disso, a troca de mensagens de protocolo SIP pode indicar se os recursos de computador e/ou de
Petição 870190095815, de 25/09/2019, pág. 8/41
3/26 rede, tais como memória, terão de ser alocados para a sessão a fim de garantir uma troca de comunicação coesiva. Quando o convidado pode atender às exigências de comunicação, uma mensagem de protocolo SIP assim indicando é enviada pelo convidado para o servidor de protocolo SIP. O servidor de protocolo SIP em seguida informa o iniciador. Depois de uma sessão ter se iniciado, as extremidades trocam dados por meio de um protocolo orientado por dados, tal como o protocolo IP, sem mais invocar o protocolo SIP ou o servidor de protocolo SIP a menos que as definições da sessão sejam modificadas ou até que a sessão seja finalizada pelo iniciador ou pelo convidado.
[0005] Existem diferentes padrões de protocolo SIP. Por exemplo, a Força Tarefa de Engenharia da Internet (IETF) elege o RFC 3261 como um padrão de protocolo SIP. O padrão RFC 3261 é amplamente utilizado como um protocolo de sinalização para a tecnologia VoIP e tem evoluído e se expandido à medida que as tecnologias avançam. Existem outros padrões de protocolo SIP, tais como os personalizados para os servidores de protocolo SIP que suportam domínios de rede específicos. Por exemplo, a Microsoft ® utiliza um protocolo SIP personalizado a fim de suportar o cliente do popular Comunicador Office da Microsoft ® (MOC). Surge, então, um problema significativo, uma vez que os campos de protocolo SIP do programa MOC são diferentes dos campos de protocolo SIP do padrão RFC 3261. Sendo assim, uma mensagem de protocolo SIP de programa MOC não é discernível no domínio do padrão RFC 3261, e uma mensagem de protocolo SIP de padrão RFC 3261 não é discernível no domínio do programa MOC. Portanto, uma sessão de comunicação não pode ser estabelecida entre um participante no domínio do programa MOC e um participante no domínio do padrão RFC 3261.
[0006] Presentemente, existe a necessidade de se iniciar uma
Petição 870190095815, de 25/09/2019, pág. 9/41
4/26 sessão de comunicação entre um iniciador e um convidado em redes separadas que implementam diferentes protocolos de iniciação de sessão. Um adaptador de protocolo SIP soluciona o problema técnico da comunicação de informações de sessão entre extremidades em redes que utilizam diferentes padrões de protocolo SIP.
Breve Sumário da Invenção
[0007] É apresentado um adaptador de protocolo de iniciação de sessão (SIP). De acordo com uma modalidade, o adaptador de protocolo SIP compreende um servidor proxy configurado para modificar o conteúdo de campo de uma mensagem de protocolo SIP recebida de um primeiro servidor de protocolo SIP de modo que o mesmo fique compatível com o formato de troca de mensagens de um segundo servidor de protocolo SIP, e, portanto, discernível ao segundo servidor de protocolo SIP. Um protocolo de transformação pode ser implementado no sentido de modificar uma mensagem de protocolo SIP recebida do primeiro servidor de protocolo SIP de modo que a mesma se conforme ao domínio do segundo servidor de protocolo SIP que deverá receber a mensagem de protocolo SIP. Para este fim, o protocolo de transformação pode incluir o acesso a um repositório programado com informações sobre os servidores de protocolo SIP, incluindo a transformação e as regras de formato (de mensagem). As regras podem incluir a correspondência dos parâmetros de mensagem de protocolo SIP com formatos particulares, propriedades e/ou ações específicas a serem tomadas. Além disso, as regras podem determinar como a mensagem de protocolo SIP se mapeia ao formato da troca de mensagens do segundo servidor de protocolo SIP. As regras podem especificar ações a serem tomadas com relação a um ou mais parâmetros, tais como os parâmetros de exclusão, inserção, ou modificação. Uma ação pode, então, ser implementada no sentido de converter qualquer aspecto da mensagem de protocolo SIP ao formato
Petição 870190095815, de 25/09/2019, pág. 10/41
5/26 de mensagem do segundo servidor de protocolo SIP.
[0008] O protocolo de transformação pode remover parâmetros (por exemplo, tipos de mídia) da mensagem de protocolo SIP que não são reconhecíveis ao segundo servidor de protocolo SIP. De maneira alternativa, ou em adição, o protocolo de transformação pode modificar outros aspectos da mensagem de protocolo SIP de modo que a mensagem fique compatível com o formato de troca de mensagens do segundo servidor de protocolo SIP. Existem vários tipos de transformações que podem ser feitas para a modificação de uma mensagem de protocolo SIP. Em alguns casos, uma única transformação pode ser tudo que se faz necessário. Em outros casos, duas ou mais transformações podem ser implementadas. Os diversos tipos de possíveis transformações incluem a adição de campos de dados na mensagem de protocolo SIP e/ou a exclusão de campos de dados da mensagem de protocolo SIP. Os campos de dados podem ser convertidos, expandidos, e/ou truncados. Os campos de dados podem ser adicionados em torno de outros campos de dados, diminuídos ou aumentados. Um campo de dado pode corresponder a qualquer parte ou porção da mensagem de protocolo SIP. Uma transformação pode incluir ainda a alteração do formato de codificação da mensagem de protocolo SIP, a remoção da codificação, ou a execução de alguma outra ação.
[0009] Por conseguinte, é vantajosamente possível se iniciar uma sessão de comunicação entre um iniciador e um convidado particularmente em redes separadas por meio da implementação de diferentes protocolos de iniciação de sessão. O adaptador de protocolo SIP, desta maneira, aumenta significativamente a confiabilidade da comunicação entre diferentes servidores de protocolo SIP que operam em diferentes plataformas. Além disso, o tráfego de rede poderá também melhorar, assim como a confiabilidade, a velocidade e a
Petição 870190095815, de 25/09/2019, pág. 11/41
6/26 eficiência da rede. A comunicação pode ainda ser aperfeiçoada ao se evitar um tráfego particularmente desnecessário devido à incompatibilidade de exigências de sistema.
[00010] Em uma implementação de adaptador, o adaptador de protocolo SIP modifica o conteúdo de campo por meio da remoção de tipos de mídia da mensagem de protocolo SIP que não seriam reconhecidos pelo segundo servidor de protocolo SIP. Os tipos de mídia a serem removidos, assim como também qualquer outra modificação de mensagem de protocolo SIP, são configuráveis como um parâmetro do adaptador de protocolo SIP.
[00011] O servidor proxy pode ser um programa aplicativo, um computador, um sistema de computador, um agrupamento de computadores, ou outra entidade de processamento. Em uma versão preferida, o servidor proxy inclui uma interface de entrada, uma interface de saída, um núcleo, e um repositório. A interface de entrada se comunica com o primeiro servidor de protocolo SIP de acordo com o formato de troca de mensagens do primeiro servidor de protocolo SIP. A interface de saída se comunica com o segundo servidor de protocolo SIP de acordo com o formato da troca de mensagens do segundo servidor de protocolo SIP. O núcleo modifica as mensagens de protocolo SIP recebidas do primeiro servidor de protocolo SIP e/ou do segundo servidor de protocolo SIP de modo que cada mensagem se conforme ao formato do servidor de protocolo SIP que deverá receber a mensagem. O repositório armazena as informações para o mapeamento dos nomes de usuário e de domínio para a troca de mensagens de protocolo SIP e formatos de rede específicos, e para a identificação dos servidores de protocolo SIP associados a cada nome de domínio.
[00012] De acordo com uma implementação, um adaptador de protocolo SIP fica em comunicação com um primeiro servidor de
Petição 870190095815, de 25/09/2019, pág. 12/41
7/26 protocolo SIP tendo um primeiro formato de troca de mensagens de servidor de protocolo SIP, e com um segundo servidor de protocolo SIP tendo um segundo formato de troca de mensagens de servidor de protocolo SIP. O primeiro servidor de protocolo SIP é associado ao primeiro domínio de rede, e o segundo servidor de protocolo SIP é associado a um segundo domínio de rede. Uma mensagem de protocolo SIP enviada por um cliente (iniciador) no primeiro domínio é recebida pelo primeiro servidor de protocolo SIP. O primeiro servidor de protocolo SIP faz referência a um banco de dados a fim de determinar se o recipiente pretendido (convidado) tem um identificador de recurso uniforme (URI) registrado. O primeiro servidor de protocolo SIP pode executar uma consulta de banco de dados utilizando, por exemplo, parte do nome do usuário ou parte do domínio do identificador URI (por exemplo, username@domain.com). Se o convidado estiver dentro do domínio do primeiro servidor de protocolo SIP, a consulta retornará informações indicativas. As informações podem incluir informações adicionais de identificação pertencentes ao convidado a serem utilizadas para se comunicar com o convidado. Deste modo, quando o identificador URI se encontra registrado, o primeiro servidor de protocolo SIP assume a troca de mensagens de protocolo SIP entre o cliente e o recipiente.
[00013] Por conseguinte, é vantajosamente possível se determinar no primeiro servidor de protocolo SIP se o adaptador de protocolo SIP se faz necessário ou se um canal de comunicação pode ser estabelecido entre o iniciador e o convidado através do primeiro servidor de protocolo SIP.
[00014] Quando o identificador URI não se encontra registrado, o primeiro servidor de protocolo SIP roteia a mensagem de protocolo SIP para o adaptador de protocolo SIP. O adaptador de protocolo SIP modifica o conteúdo de campo de protocolo SIP de modo que a
Petição 870190095815, de 25/09/2019, pág. 13/41
8/26 mensagem de protocolo SIP se conforme ao formato de troca de mensagens do segundo servidor de protocolo SIP. O adaptador de protocolo SIP pode modificar a mensagem de protocolo SIP por meio da implementação de qualquer parte do ou de todo o protocolo de transformação acima apresentado, como um exemplo. O adaptador de protocolo SIP em seguida encaminha a mensagem de protocolo SIP modificada para o segundo servidor de protocolo SIP. O adaptador de protocolo SIP assume uma função de proxy nas demais trocas de mensagens de protocolo SIP entre o cliente no primeiro domínio (por meio do primeiro servidor de protocolo SIP) e o receptor no segundo domínio (por meio do segundo servidor de protocolo SIP).
[00015] Outros sistemas, métodos, e aspectos da presente invenção serão, ou se tornarão, aparentes a uma pessoa versada na técnica após um exame das figuras e descrição detalhada a seguir. Pretende-se que todos estes sistemas, métodos, aspectos, e vantagens sejam incluídos na presente descrição, estejam dentro do âmbito de aplicação da presente invenção, e sejam protegidos pelas reivindicações a seguir.
Breve Descrição dos Desenhos
[00016] A presente invenção poderá ser mais bem-entendida com referência aos desenhos e descrição a seguir. Os componentes nas figuras não se encontram necessariamente em escala, a ênfase, por outro lado, sendo colocada na ilustração dos princípios da presente invenção. Ademais, nas figuras, numerais de referência similares designam peças ou elementos correspondentes em todas as diversas vistas.
[00017] A figura 1 (técnica anterior) é uma ilustração mostrando múltiplos domínios de troca de mensagens que incluem pelo menos dois domínios de troca de mensagens que utilizam diferentes protocolos de iniciação de sessão (SIP).
Petição 870190095815, de 25/09/2019, pág. 14/41
9/26
[00018] A figura 2 é uma ilustração mostrando um adaptador de protocolo SIP em comunicação com dois domínios de protocolo SIP que implementam diferentes formatos de mensagens de protocolo SIP. [00019] A figura 3 é uma ilustração mostrando um adaptador de protocolo SIP em comunicação com os servidores de protocolo SIP da figura 1.
[00020] A figura 4 é uma ilustração mostrando aspectos de um adaptador de protocolo SIP em comunicação com dois domínios de protocolo SIP com formatos de mensagem de protocolo SIP diferentes. [00021] A figura 5 é um fluxograma mostrando uma versão de um processo de transformação de protocolo que pode ser feito por um adaptador de protocolo SIP no sentido de modificar campos em uma mensagem de protocolo SIP.
[00022] A figura 6 é uma ilustração de uma rede de servidores tendo um adaptador de protocolo SIP.
[00023] A figura 7 é uma ilustração da troca de mensagens de protocolo SIP através de um adaptador de protocolo SIP entre um iniciador e um convidado em diferentes domínios de protocolo SIP.
[00024] A figura 8 mostra atos que uma rede de servidor pode assumir no sentido de iniciar uma sessão de comunicação entre um iniciador e um convidado.
Descrição Detalhada dos Desenhos e das Modalidades Presentemente Preferidas
[00025] A figura 1 ilustra múltiplos domínios de troca de mensagens / rede 10 que incluem domínios de troca de mensagens / rede que utilizam diferentes protocolos de iniciação de sessão (SIP). Um primeiro servidor de protocolo SIP (SIPx) 14 comunica mensagens de protocolo SIP no domínio SIPx. Um segundo servidor de protocolo SIP (SIPy) 26 comunica mensagens de protocolo SIP no domínio SIPy. Na
Petição 870190095815, de 25/09/2019, pág. 15/41
10/26 ilustração, o formato das mensagens do domínio SIPx é diferente do formato das mensagens do domínio SIPy. Nota-se que, em todo o relatório descritivo, os domínios de troca de mensagens / rede se referem a aplicações de cliente e domínios de cliente, enquanto os domínios de protocolo SIP se referem aos formatos de troca de mensagens de protocolo SIP implementados pelos servidores de protocolo SIP e clientes. Sendo assim, um cliente (iniciador ou convidado) é tipicamente um membro de ambos o domínio de troca de mensagens / rede e do domínio de protocolo SIP. Em todo o relatório descritivo, um domínio de troca de mensagens / rede pode simplesmente se referir a um domínio de troca de mensagens.
[00026] O cliente A 16 e o cliente B 20 são as extremidades nos domínios de troca de mensagens 36 e 12, respectivamente. Os clientes 16 e 20 preparam troca de mensagens de protocolo SIP 18 e 22 dentro de cada domínio de troca de mensagens 36, 12 usando o protocolo específico ao domínio de SIPx. Deste modo, o servidor SIPx 14 pode com sucesso iniciar uma sessão de comunicação entre o cliente A 16 e o cliente B 20.
[00027] O telefone VoíPi 28 e o telefone VoiP2 32 são as extremidades nos domínios de troca de mensagens 24 e 38, respectivamente. Os telefones 28 e 32 preparam mensagens de protocolo SIP 30 e 34 dentro de cada domínio de troca de mensagens 24, 38 utilizando o protocolo específico ao domínio SIPy. Deste modo, o servidor SIPy 26 pode com sucesso iniciar uma sessão de comunicação entre o telefone VoiP1 28 e o telefone VoiP2 32. No entanto, uma vez que o formato das mensagens no domínio SIPx é diferente do formato das mensagens do domínio SIPy, nem o servidor SIPx 14 ou o servidor SIPy 26 poderá iniciar uma sessão de comunicação entre o cliente A 16 ou o cliente B 20 e o telefone VoiP1 28 ou o telefone VoiP2 32.
Petição 870190095815, de 25/09/2019, pág. 16/41
11/26
[00028] A figura 2 mostra um adaptador de protocolo SIP 102 que comunica mensagens de protocolo SIP 106, 110 para os e dos servidores de protocolo SIP em ambos os domínios SIPx 104 e SIPy 108. O adaptador de protocolo SIP 102 pode modificar o formato das mensagens de domínio SIPX de modo que as mesmas se tornem compatíveis com as do domínio SIPy 108. De maneira alternativa, ou em adição, o adaptador de protocolo SIP 102 pode modificar o formato das mensagens de domínio SIPY de modo que as mesmas possam se tornar compatíveis com as do domínio SIPx 104. O adaptador de protocolo SIP 102 modifica as mensagens e se comunica com os servidores de protocolo SIP nos domínios SIPx e SIPy 104, 108 de modo a iniciar uma sessão de comunicação entre as extremidades (não mostradas). Quando a sessão de comunicação se inicia, as extremidades podem se comunicar por meio do protocolo IP ou outro protocolo orientado por dados 112. O adaptador de protocolo SIP 102 pode ser um servidor proxy e/ou outro tipo de computador, circuito, lógica, ou qualquer combinação dos mesmos, configurados para modificar mensagens de protocolo SIP.
[00029] A figura 3 mostra um adaptador de protocolo SIP 200 em comunicação com os servidores de protocolo SIP 14 e 26 da figura 1. A figura 3 é idêntica à figura 1, com a adição do adaptador de protocolo SIP 200 estar em comunicação com o servidor SIPx 14 e com o servidor SIPy 26 entre o domínio SIPx 214 e o domínio SIPy 212. O adaptador de protocolo SIP 200 permite que o servidor SIPx 14 e o servidor SIPy 26 iniciem uma sessão de comunicação entre o cliente A 16 e o cliente B 20 e o telefone VoIPi 28 e o telefone VoIP2 32, ou entre quaisquer outras extremidades tanto no domínio de protocolo SIP 214 ou 212. À título de exemplo, o cliente B 20 pode iniciar uma sessão de telefone VoIP com o telefone VoIP1 28 ao enviar uma mensagem de convite de protocolo SIP 206 para o servidor SIPx
Petição 870190095815, de 25/09/2019, pág. 17/41
12/26
14. Conforme explicado a seguir, o servidor SIPx 14 determina se a mensagem de convite de protocolo SIP 206 é concebida para um convite no domínio SIPx. Neste exemplo, o servidor SIPx 14 determina que a mensagem não seja concebida para um convidado no domínio SIPx, e, portanto, o servidor SIPx 14 comunica a mensagem para o adaptador de protocolo SIP 200, usando uma mensagem de encaminhamento de protocolo SIP 202. O servidor SIPx 14 pode implementar um filtro 210 tendo uma biblioteca de regras de roteamento que identificam (usando, por exemplo, um endereço de Ethernet ou de protocolo IP) o adaptador de protocolo SIP que serve o convidado. A Tabela 1 abaixo mostra um exemplo de tabela de roteamento que o filtro 210 pode implementar:
|
Tabela 1
Tabela de roteamento de servidor de protocolo SIP |
|
Domínio do Convidado |
Adaptador de protocolo SIP |
|
.domain_abc |
Adaptador de protocolo SIP 1 |
|
.domain_bca |
Adaptador de protocolo SIP 2 |
|
.domain_cab |
Adaptador de protocolo SIP 1 |
[00030] Conforme explicado a seguir, o adaptador de protocolo
SIP 200 utiliza as informações de convidado a fim de determinar se a mensagem de convite de protocolo SIP é concebida para um convidado no domínio SIPy 212 ou em algum outro domínio de protocolo SIP. Neste exemplo, o adaptador de protocolo SIP 200 determina que a mensagem de convite de protocolo SIP é concebida para um convidado no domínio SIPy 212. O adaptador de protocolo SIP 200 modifica o formato da mensagem de modo que a mensagem modificada se torne discernível no domínio SIPy 212 e em seguida comunica a mensagem modificada 204 para o servidor SIPy 26. O servidor SIPy 26 em seguida comunica a mensagem modificada 208 para o convidado, o telefone VoIPi 28. O diálogo de protocolo SIP
Petição 870190095815, de 25/09/2019, pág. 18/41
13/26 pode continuar entre o cliente B 20 e o telefone V0IP1 28 por meio do servidor SIPx 14 do adaptador de protocolo SIP 200 e do servidor SIPy 26 a fim de iniciar a sessão de comunicação.
[00031] A figura 4 é uma ilustração de um adaptador de protocolo SIP 302 em comunicação com dois servidores de protocolo SIP, o servidor SIPx 324 e o servidor SIPy 326, que possuem diferentes formatos de mensagem de protocolo SIP (diferentes domínios de protocolo SIP). O servidor SIPx 324 serve os usuários da rede A 304 e o servidor SIPy 326 serve os usuários da rede B 306. Servidores de protocolo SIP adicionais (não mostrados) podem ser servidos pelo adaptador de protocolo SIP 302.
[00032] Uma interface de comunicação de entrada 308 inclui a lógica para receber e enviar mensagens de domínio SIPx. As mensagens de domínio SIPx podem ser comunicadas pela camada de transporte implementada de acordo com o modelo de referência de Protocolo de Internet, como um exemplo. Em uma versão, a lógica é configurada para receber e enviar mensagens de protocolo SIP utilizando o protocolo de controle de transmissão (TCP/IP) da camada de transporte. Como um exemplo, o Servidor de Comunicação ao Vivo (LCS) do programa Office da Microsoft® comunica mensagens da camada TCP/IP.
[00033] Uma interface de comunicação de entrada 310 inclui a lógica para receber e enviar mensagens de domínio SIPy. As mensagens de domínio SIPy podem também ser comunicadas pela camada de transporte implementada de acordo com o modelo de referência de Protocolo de Internet. Em uma versão, a lógica é configurada para receber e enviar mensagens de protocolo SIP usando o protocolo de datagrama de usuário (UDP). Como um exemplo, um servidor de telefone VoIP pode comunicar mensagens de protocolo SIP pela camada de protocolo UDP.
Petição 870190095815, de 25/09/2019, pág. 19/41
14/26
[00034] Um servidor de protocolo SIP de nível baixo 312 funciona como uma interface intermediária entre a interface de entrada 308, a interface de saída 310, e um núcleo 314. O servidor de protocolo SIP de nível baixo 312 decodifica as mensagens de protocolo SIP recebidas pela interface de entrada 308 e pela interface de saída 310, extrai as variáveis e os parâmetros carregados dentro das mensagens de protocolo SIP, e provê dados de protocolo SIP para o núcleo 314. O servidor de protocolo SIP de nível baixo 312 também recebe estruturas de dados de protocolo SIP modificadas do núcleo 314, codifica as mensagens de protocolo SIP, e envia as mensagens de protocolo SIP codificadas para a interface de entrada 308 e para a interface de saída 310. Em uma versão, o servidor de protocolo SIP de nível baixo 312 é um Servidor de protocolo SIP BEA WebLogic® desenvolvido de acordo com as especificações da Solicitação de Especificação de Java (JSR) 116.
[00035] O núcleo 314 modifica as mensagens de protocolo SIP do domínio SIPx para o domínio SIPy e/ou do domínio SIPy para o domínio SIPX. Em uma versão, o núcleo 314 implementa um protocolo de transformação a fim de modificar o formato de uma mensagem de protocolo SIP de modo a se conformar ao domínio do servidor de protocolo SIP que recebe a mensagem de protocolo SIP. O protocolo de transformação pode remover parâmetros (tais como, tipos de mídia) que não são reconhecíveis por um servidor de protocolo SIP ou pode modificar aspectos adicionais ou outros aspectos da mensagem de protocolo SIP de modo que a mensagem corresponda a um formato alvo de protocolo SIP. O processo de transformação pode transformar parâmetros de mensagens de protocolo SIP, tais como nomes de usuário, domínios, endereços de protocolo IP, tipos de mídia, dados de codificação, e parâmetros de inicialização de mídia. Os aspectos específicos que são modificados
Petição 870190095815, de 25/09/2019, pág. 20/41
15/26 entre quaisquer dois (ou mais) domínios de protocolo SIP podem ser definidos em um repositório 322 que armazena regras, tais como as regras de transformação e de formato, que governam como um formato de protocolo SIP original mapeia para um formato de protocolo SIP alvo (por exemplo, as regras de transformação que especificam a exclusão, a inserção ou a modificação de parâmetros a fim de converter de uma mensagem SIPX para uma mensagem SIPy).
[00036] De maneira alternativa, ou em adição a quaisquer dos aspectos acima, o protocolo de transformação pode modificar outros aspectos da mensagem de protocolo SIP de modo que a mensagem corresponda ao formato de troca de mensagens do segundo servidor de protocolo SIP. Existem vários tipos de transformações que podem ser realizadas para a modificação de uma mensagem de protocolo SIP. Em alguns casos, uma única transformação pode ser tudo que se faz necessário. Em outros casos, duas ou mais transformações poderão ser implementadas. Os diversos tipos de transformações incluem a adição de campos de dados (isto é, qualquer parte da mensagem de protocolo SIP) à mensagem de protocolo SIP e/presente invenção a exclusão de campos de dados da mensagem de protocolo SIP. Os campos de dados podem ser convertidos, expandidos, e/ou truncados. Os campos de dados podem ser adicionados em torno de outros campos de dados, encurtados, e/ou aumentados. Uma transformação pode incluir ainda a mudança do formato de codificação da mensagem de protocolo SIP, a remoção da codificação, ou a realização de alguma outra ação.
[00037] A figura 5 é um fluxograma mostrando uma versão de um processo de transformação de protocolo 350 que pode ser realizado pelo núcleo 314. O núcleo 314 obtém o primeiro parâmetro (352) a partir da mensagem de protocolo SIP e determina, com base nos
Petição 870190095815, de 25/09/2019, pág. 21/41
16/26 dados obtidos do repositório 322, se o parâmetro deve ser removido (354). Se o parâmetro tiver de ser removido 314, o núcleo 314 remove o parâmetro (356) e em seguida determina se há algum outro parâmetro (372). Se o primeiro parâmetro não tiver de ser removido, o núcleo 314 determina se o parâmetro tem de ser renomeado (358). Caso positivo, o parâmetro é renomeado (360) de acordo com o domínio do servidor de protocolo SIP que tiver de receber a mensagem de protocolo SIP.
[00038] O núcleo 314 também determina se um parâmetro deve ser modificado (362). Caso positivo, um novo valor de parâmetro é definido (364) e o núcleo 314 determina se há um parâmetro adicional (372). Se o parâmetro não tiver de ser modificado, o núcleo 314 determina se o parâmetro contém um identificador de recurso uniforme (URI) (366). Se o parâmetro não contiver um identificador URI, o núcleo 314 determina se há um parâmetro adicional (372). Quando o parâmetro contém um identificador URI, o núcleo 314 verifica e adapta o nome de usuário (368) e domínio (370) para o recebimento do servidor de protocolo SIP, conforme explicado abaixo. O núcleo 314 se repete (354 a 374) até que não haja nenhum parâmetro adicional (376).
[00039] O núcleo 314 pode incluir módulos dedicados ao gerenciamento de mensagens de protocolo SIP relacionadas a tipos específicos de chamadas, tais como um módulo de gerenciador de chamadas de voz 316, um módulo de gerenciador de chamadas de vídeo 318, e/ou outros módulos 320. Estes módulos dedicados aplicam modificações às mensagens de protocolo SIP a fim de habilitar um tipo específico de chamada. Por exemplo, uma chamada de voz iniciada pelo servidor SIPX 324 pode especificar um codec de áudio Cx que deve ser substituído por um codec de áudio Cy1 para o reconhecimento por parte do servidor SIPy 326 para uma chamada de
Petição 870190095815, de 25/09/2019, pág. 22/41
17/26 voz. No entanto, o mesmo codec de áudio Cx pode precisar ser substituído por um código de áudio Cy2 para o reconhecimento por parte do servidor SIPy 326 para uma chamada de vídeo. Neste exemplo, a primeira adaptação é gerenciada pelo módulo gerenciador de chamada de voz 316, enquanto a segunda é gerenciada pelo módulo gerenciador de chamada de vídeo 318.
[00040] O núcleo 314 pode ser um processador, como, por exemplo, um microprocessador, uma microcontroladora, um processador de sinal digital, um circuito integrado específico (ASIC), uma lógica discreta, ou uma combinação destes e/ou outros tipos de circuitos e lógicas.
[00041] Conforme mencionado acima, os aspectos específicos de uma mensagem de protocolo SIP que devem ser modificados podem ser armazenados em um repositório 322. O repositório 322 pode armazenar informações sobre clientes em cada um do ou em ambos os servidores de protocolo SIP SIPX 324 e SIPY 326, incluindo regras de formato de mensagem para cada cliente. Uma regra de formato de mensagem pode incluir os parâmetros usados para corresponder a uma mensagem que chega para uma lista de propriedade e ações a serem tomadas. As ações especificam se uma propriedade deve ser removida, modificada ou adicionada. O repositório 322 pode armazenar informações adicionais, como, por exemplo, informações para o mapeamento de cada cliente para um identificador de linha de chamada específico (CLI). Um identificador CLI pode incluir a identificação de usuário do cliente (na forma de um user@domain), por exemplo.
[00042] Em uma versão, o repositório 322 pode armazenar uma tabela que mapeia as identidades de usuário / cliente para servidores de protocolo SIP específicos. A Tabela 2 abaixo mostra um exemplo da tabela de mapeamento:
Petição 870190095815, de 25/09/2019, pág. 23/41
18/26
|
Tabela 2
Mapeamento da identidade de usuário / cliente para o servidor de protocolo SIP |
|
Identidade de usuário / cliente |
Servidor de protocolo SIP |
|
UserA@domain1 |
Servidor de protocolo SIP 1 |
|
UserB@domain1 |
Servidor de protocolo SIP 1 |
|
UserC@domain2 |
Servidor de protocolo SIP 2 |
|
UserD@domain3 |
Servidor de protocolo SIP 3 |
[00043] O adaptador de protocolo SIP 302 faz referência às identidades de usuário / cliente no repositório 322 a fim de localizar o servidor de protocolo SIP que deve receber a mensagem de protocolo SIP modificada.
[00044] O adaptador de protocolo SIP 302 pode opcionalmente incluir uma interface de navegação 328 a fim de gerenciar a integração com sistemas externos que provêm segurança, provisionamento, e informações de presença, como exemplos.
[00045] A figura 6 é uma ilustração de um cenário de rede 400 tendo uma rede de servidores 402 que inclui um adaptador de protocolo SIP 302, tal como descrito com referência à figura 4. O adaptador de protocolo SIP 302 pode ter configurações diferentes que as mostradas na figura 4.
[00046] O cenário de rede 400 inclui uma rede de usuários 404 tendo clientes servidos pelo servidor SIPx 324 e as redes de usuários 406 e 408 que têm clientes servidos pelo servidor SIPy 326. O servidor SIPx 324 e o servidor SIPy 326 comunicam mensagens de protocolo SIP 424(a) e 424(b) para as redes de usuários 404 e 408, respectivamente. Na versão ilustrada, o servidor SIPY 326 também comunica mensagens de usuário da Rede Digital de Serviço Integrado (ISDN) para a rede de usuários 406. A rede de usuários 404 pode ser uma aplicação de empresa integrada, como, por exemplo, o Comunicador do programa Office da Microsoft®, a rede de usuários 406 pode ser uma rede de telefonia pública comutada (PSTN), e a
Petição 870190095815, de 25/09/2019, pág. 24/41
19/26 rede de usuários 408 pode ser uma rede VoIP, como exemplos. [00047] Em uma versão, o servidor SIPy funciona como uma chave temporária, implementa as interfaces padrões de padrão RFC 3261, e inclui funcionalidades de controladora de gateway de mídia e de gateway de sinalização. As funcionalidades de controladora de gateway de mídia controlam os gateways de mídia e as chamadas de voz pela rede PSTN 406. Em uma versão, as funcionalidades de controladora de gateway de mídia implementam o protocolo de controle de gateway de mídia (MGCP) a fim de controlar as chamadas de voz da rede PSTN 406.
[00048] Na versão ilustrada, o servidor SIPy 326 se comunica com um roteador 410 que tem um gateway de mídia 412 para realizar o intertrabalho entre o circuito e as redes de pacote. O gateway de mídia 412 pode ser controlado por meio das funcionalidades de controladora de gateway de mídia do servidor SIPy 326 por meio do protocolo MGCP 414, do protocolo H.248, ou outro protocolo de sinalização.
[00049] O diretor de sessões (SD) 416 é um gateway que separa a rede VoIP 408 da rede de portadora 418. O diretor SD gerencia a tradução de endereços de rede (NATing) para a rede VoIP 408, realiza a tradução NAT transversal das mensagens de protocolo SIP, e implementa o protocolo de transferência em tempo real (RTP) 420 para pacotes de áudio e vídeo.
[00050] A figura 7 é uma ilustração da troca de mensagens de protocolo SIP 500 através do adaptador de protocolo SIP 302 da figura 4 entre um iniciador 502 e um convidado 504 nos diferentes domínios de protocolo SIP 506 e 508. Os domínios de protocolo SIP 506 e 508 são servidos pelos respectivos servidores de protocolo SIP. O domínio SIPx 506 é servido pelo servidor SIPx 324, e o domínio SIPy 508 é servido pelo servidor SIPy 326.
[00051] Para inicializar uma chamada entre o iniciador 502 e o
Petição 870190095815, de 25/09/2019, pág. 25/41
20/26 convidado 504, o iniciador 502 envia uma mensagem de iniciação de protocolo SIP (1) para o servidor SIPx 324. Uma mensagem de iniciação de protocolo SIP exemplar é mostrada abaixo na Tabela 3.
|
Tabela 3
Campos de Mensagens de Iniciação |
|
Campo de convite |
01122334455@SIPX.abc.com |
|
Campo de |
mjones@cbc.com |
|
Campo para |
01122334455@SIPX.cbc.com |
|
Campo de conteúdo |
Parâmetros de SDP |
[00052] O campo de convite contém o identificador URI do convidado para a identificação do convidado. O campo de contém o identificador URI do iniciador para a identificação do iniciador. O campo para contém o endereço de contato para o contato com o convidado. O endereço de contato pode ser diferente do identificador URI do convidado em alguns casos, tais como quando a identificação do convidado é diferente do endereço de contato do convidado e/ou quando o convidado tem mais de um endereço de contato. Em geral, o identificador URI como um identificador é um nome de usuário com ou sem um nome de domínio, ou um número de telefone (por exemplo, 01122334455).
[00053] O servidor SIPx 324 recebe a mensagem de iniciação (1) e faz referência a um banco de dados de registro 510. O banco de dados de registro 510 pode ser integrado dentro do servidor de protocolo SIP (conforme mostrado) ou externo ao mesmo. O banco de dados de registro 510 tem uma lista de usuários que são registrados na rede A 304 (ou dentro de quaisquer outras redes servidas pelo servidor SIPx 324). O banco de dados de registro 510 inclui ainda pelo menos um endereço de contato para cada usuário registrado.
[00054] O servidor SIPx 324 pode executar uma consulta de banco de dados usando, por exemplo, a parte de nome de usuário ou a parte
Petição 870190095815, de 25/09/2019, pág. 26/41
21/26 de domínio do identificador URI do convidado. Quando o convidado está dentro do domínio do servidor SIPx 324, a consulta retornará as informações que indicam esta condição. As informações podem incluir informações de identificação adicionais pertencentes ao convidado a serem usadas para serem comunicadas ao convidado. Sendo assim, quando o identificador URI é registrado, o servidor SIPX 324 assume uma troca de mensagens de protocolo SIP entre o iniciador e o convidado.
[00055] O campo de conteúdo contém os parâmetros de mídia necessários para iniciar a sessão de mídia. Por exemplo, um parâmetro de mídia pode indicar uma lista de codecs suportados pelo iniciador. Os codecs são algoritmos utilizados para compactar e transportar um fluxo de mídia (por exemplo, dados de voz ou de vídeo) pela rede de protocolo IP. Exemplos de codecs são os padrões G.711 e G.729 suportados pela União Internacional de Telecomunicações. Os codecs são incluídos nas mensagens de convite de modo que o iniciador 502 e o convidado 504 possam selecionar um codec mútuo para a sessão de mídia. O codec selecionado será um suportado tanto pelo iniciador 502 como pelo convidado 504.
[00056] Quando um usuário não é registrado e/ou não pertence à rede servida pelo servidor SIPx 324, o servidor SIPx 324 roteia a mensagem de iniciação de protocolo SIP (1) para o adaptador de protocolo SIP 302 para a manipulação do campo de protocolo SIP. A mensagem de protocolo SIP encaminhada (2) é tipicamente idêntica à mensagem de iniciação de protocolo SIP (1), mas não precisa ser. A Tabela 4 mostra um exemplo de campos de protocolo SIP em uma mensagem de protocolo SIP enviada para o adaptador de protocolo SIP 302. Neste exemplo, o nome de domínio no campo de convite é alterado de SIPX.abc.com para 192.156.0.60, com base nas informações recuperadas a partir do banco de dados de registro 510.
Petição 870190095815, de 25/09/2019, pág. 27/41
22/26
|
Tabela 4
Para os Campos de Mensagens de Adaptador de protocolo SIP |
|
Campo de convite |
01122334455@192.156.0.60 |
|
Campo de |
mjones@cbc.com |
|
Campo para |
01122334455@SIPX.cbc.com |
|
Campo de conteúdo |
Parâmetros de SDP |
[00057] O adaptador de protocolo SIP 302 modifica os identificadores URI específicos da mensagem de convite (os campos convite, de, e para) para os parâmetros que são reconhecíveis na rede do convidado (rede B 306) e no domínio SIPy 508. A Tabela 5 mostra um exemplo de campos que foram modificados pelo adaptador de protocolo SIP 302.
|
Tabela 5
Dos Campos de Mensagens de Adaptador de protocolo SIP |
|
Campo de convite |
01122334455@131.132.186.4 |
|
Campo de |
01122334777@192.156.0.60 |
|
Campo para |
01122334455@131.132.186.4 |
|
Campo de conteúdo |
Parâmetros de SDP modificados |
[00058] Neste exemplo, tanto o campo de nome de usuário como o campo de domínio foram modificados para um formato reconhecível na rede B 306, substituindo os endereços e os nomes lógicos válidos na rede A 304. Os endereços de domínio pertencem às redes e, em função disto, são modificados de modo a corresponder às respectivas exigências de rede. Neste exemplo, o endereço de domínio é modificado de modo a corresponder às exigências da rede B 306. Os nomes de usuário, por outro lado, pertencem ao domínio de protocolo SIP, e, deste modo, os mesmos são modificados de modo a corresponder o domínio SIPY 508. A Tabela 5 mostra ainda um exemplo de modificação do identificador de usuário no campo de, de um nome lógico, que é válido somente dentro do domínio SIPX 506,
Petição 870190095815, de 25/09/2019, pág. 28/41
23/26 para um número de telefone, que é válido no domínio SIPy 508. O repositório 322 armazena as regras para a modificação do identificador URI da mensagem de convite entre a rede A 304 e a rede B 306. Em termos ideais, o repositório 322 será programado com todas as regras necessárias para suportar a transformação das mensagens de protocolo SIP entre as duas redes. Os identificadores URI são, portanto, modificados pelo adaptador de protocolo SIP 302 de modo a permitir o correto roteamento da mensagem de convite na rede B 306. Um identificador URI e/ou parâmetro não serão modificados se o repositório 322 não contiver uma regra de modificação correspondente.
[00059] O adaptador de protocolo SIP 302 pode modificar também o conteúdo de plataforma SDP da mensagem de protocolo SIP de modo a prover uma mensagem de protocolo SIP modificada compatível com o formato de plataforma SDP aceito pelo servidor SIPy 326. Alguns tipos de mídia podem ser removidos da parte de plataforma SDP da mensagem de protocolo SIP e/ou outras alterações podem ser feitas conforme apresentado acima com referência à figura
5. Depois da mensagem de protocolo SIP ser modificada, o adaptador de protocolo SIP 302 roteia a mensagem de convite (3) para o servidor SIPy 326. O servidor SIPy 326 encaminha a mensagem de protocolo SIP modificada (que o servidor SIPy 326 entende em função da adaptação do adaptador de protocolo SIP 302) para o convidado 504 em (4) com base em uma tabela interna de roteamento.
[00060] A figura 8 mostra o fluxo de processamento 600 que uma rede de servidores pode implementar a fim de iniciar uma sessão de comunicação entre um iniciador e um convidado. Um servidor de protocolo SIP recebe uma mensagem de protocolo SIP de um cliente (602). A mensagem de protocolo SIP é enviada de modo a estabelecer uma sessão de comunicação com um convidado. O servidor de
Petição 870190095815, de 25/09/2019, pág. 29/41
24/26 protocolo SIP faz referência ao convidado sobre o identificador URI de protocolo SIP especificado nos campos convite e para a fim de determinar se o convidado está registrado (604), isto é, se o convidado está correntemente presente e apto a receber chamadas de protocolo SIP dentro do seu domínio. Se o convencional se encontra registrado, o servidor de protocolo SIP comunica a mensagem de protocolo SIP para o convidado (606).
[00061] Se o convidado não está registrado, o servidor de protocolo SIP roteia a mensagem de protocolo SIP para um adaptador de protocolo SIP (608). O adaptador de protocolo SIP recebe a mensagem de protocolo SIP e, com base no domínio do convidado, faz referência a um repositório para as regras de formato de mensagem (610). O adaptador de protocolo SIP modifica a mensagem de protocolo SIP com base nas regras de formato de mensagem de modo que a mensagem de protocolo SIP fique discernível por parte do servidor de protocolo SIP para o domínio do convidado (612). Um exemplo de um processo de modificação é mostrado na figura 5. O adaptador de protocolo SIP comunica a mensagem de protocolo SIP modificada ao servidor de protocolo SIP para o convidado, e o servidor de protocolo SIP comunica a mensagem de protocolo SIP modificada para o convidado (614). A troca de mensagens de protocolo SIP pode continuar, com o adaptador de protocolo SIP modificando as mensagens de protocolo SIP entre o servidor de protocolo SIP do iniciador e o servidor de protocolo SIP do convidado, até que a sessão de comunicação possa ser estabelecida (616). Quando uma sessão de comunicação é estabelecida, o iniciador e o convidado comunicam diretamente dados de mídia usando o protocolo IP ou outro protocolo (618).
[00062] A apresentação acima, como um todo, independentemente da implementação que está sendo particularmente descrita, é
Petição 870190095815, de 25/09/2019, pág. 30/41
25/26 exemplar por natureza, ao contrário de ser limitante. Por exemplo, embora aspectos, recursos, ou componentes selecionados sejam ilustrados como sendo implementados em um servidor, todos ou partes dos sistemas e métodos consistentes a um adaptador de protocolo SIP poderão ser armazenados em, distribuídos através de, ou lidos a partir de outros meios legíveis em máquina, por exemplo, os dispositivos de armazenamento secundários, tais como discos rígidos, discos flexíveis, e CD-ROM; um sinal recebido a partir de uma rede; ou outras formas de memória ROM ou de memória RAM correntemente conhecidas ou a serem desenvolvidas posteriormente.
[00063] A lógica descrita acima pode residir nos mesmos encadeamentos ou em encadeamentos diferentes, fibras, ou outras formas de se organizar códigos e dados dentro de um processo. Além disso, embora uma determinada lógica possa interagir através de um mecanismo de chamada de função, outros métodos de comunicação são igualmente possíveis, incluindo os sistemas de passagem de mensagens, os sistemas mutex ou os baseados em semáforos, ou por meio de outras técnicas de comunicação.
[00064] Os componentes específicos do sistema podem incluir componentes adicionais ou diferentes. Um servidor pode ser implementado como um microprocessador, uma microcontroladora, um processador DSP, um circuito integrado específico (ASIC), uma lógica discreta, ou uma combinação de outros tipos de circuitos ou lógica. De maneira similar, as memórias podem ser uma memória DRAM, SRAM, Flash ou qualquer outro tipo de membro. A capacidade de processamento do sistema pode ser distribuída entre múltiplos componentes de sistema, tais como entre múltiplos processadores e memórias, opcionalmente incluindo múltiplos sistemas de processamento distribuídos. Parâmetros, bancos de dados, e outras estruturas de dados podem ser separadamente armazenados e
Petição 870190095815, de 25/09/2019, pág. 31/41
26/26 gerenciados, podem ser incorporados em uma única memória ou banco de dados, podem ser lógica ou fisicamente organizados de muitas maneiras diferentes, e podem ser implementados de várias maneiras, incluindo estruturas de dados, tais como listas vinculadas, tabelas de sinais numéricos, ou mecanismos implícitos de armazenamento. Os programas ou conjuntos de regras podem fazer parte de um programa ou conjunto de regras único, de programas ou conjuntos de regras separados, ou distribuídos entre diversas memórias e processadores.
[00065] Portanto, pretende-se que a descrição acima detalhada seja considerada como ilustrativa ao invés de limitante, acrescentando-se ainda que as reivindicações a seguir, incluindo todos os seus equivalentes, pretendem definir o espírito e o âmbito de aplicação da presente invenção.