Producing routing messages for voice over ip communications
Abstract
This record has no abstract on file.
Term
1.1 yearsto projected expiry
Projected expiry 1 November 2027, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
48 claims: 15 independent, 33 dependent
- 1REIVINDICAÇÕES 1. Processo para operar um controlador de encaminhamento de chamada para facilitar a comunicação entre os chamadores e os receptores (12,15) num sistema compreendendo uma pluralidade de nós com os quais os chamadores e os receptores (12,15) são associados, o processo compreendendo:em resposta à iniciação de uma chamada por um assinante chamador, o receção de um identificador do chamador e um identificador de receptors;a utilização dos critérios de classificação de chamada associados com o identificador do chamador para classificar a chamada como uma chamada de rede pública ou uma chamada de rede privada ao: pesquisar uma base de dados (18) para localizar um registo identificando atributos de chamada associados a um chamador identificado pelo dito identificador de receptor;comparar pelo menos um atributo de chamada associado a um perfil de marcação de chamada com aspectos do dito identificador de receptor;e classificar a chamada com base na referida comparação como uma chamada de rede pública quando os critérios de classificação de rede pública são atendidos e classificar a chamada com base na referida comparação como ΡΕ2084868 uma chamada de rede privada quando os critérios de classificação de rede privada são atendidos;produzir uma mensagem de encaminhamento identificando um endereço IP de um elemento de rede, numa rede privada, associada ao recetor quando a chamada é classificada como uma chamada de rede privada;e produzir uma mensagem de encaminhamento identificando um endereço IP de um gateway para uma rede pública quando a chamada é classificada como uma chamada de rede pública.
- 2Processo, de acordo com a reivindicação 1, compreendendo adicionalmente receber uma solicitação para estabelecer uma chamada, de um controlador de chamada em comunicação com um chamador identificado pelo dito identificador de receptor.
- 3Processo, de acordo com a reivindicação 1 ou 2, em que a localização de um registo compreende a localização de um perfil de marcação de chamador compreendendo um nome de utilizador associado ao referido chamador, um dominio associado ao chamador, e pelo menos um atributo de chamada.
- 40 processo de reclamação 1 ou 2 em que a comparação compreende pelo menos um de:determinar se o referido identificador do ΡΕ2084868 receptor inclui uma parte que corresponde a um digito de marcação internacional (IDD) associado ao referido perfil de marcação de chamada;determinar se o dito identificador de receptor inclui uma parte que corresponde a um código de área associado ao referido perfil de marcação de chamada;e determinar se o referido identificador de receptor tem um comprimento dentro de um intervalo especificado no referido perfil de marcação de chamada.
- 5Processo, de acordo com a reivindicação 1 ou 2, adicionalmente compreendendo a formatação o referido identificador do receptor num formato predefinido de digitos para produzir um identificador do receptor reformatado.
- 6Processo da a reivindicação 5, em que a formatação compreende pelo menos um de:remoção de um digito de marcação internacional a partir do identificador do receptor, quando o referido identificador do receptor começa com um digito combinando um digito de marcação internacional especificado pelo perfil de marcação do chamador associado com o referido chamador;ΡΕ2084868 remoção de um digito de marcação nacional a partir do identificador de receptor e pendendo previamente um código de área de pais ao referido identificador do receptor quando o identificador do receptor começa com um digito de marcação nacional;pender previamente um código de pais do referido identificador do receptor quando o identificador do receptor começa com digitos identificando um código de área especificado pelo referido perfil de marcação do chamador;e pender previamente um código de pais do chamador e código de área ao referido identificador do receptor quando o referido identificador do receptor possuir um comprimento que combina com um formato de número de marcação do chamador especificado pelo perfil de marcação do chamador e apenas um código de área é especificado como sendo associado com o chamador no referido perfil de marcação do chamador.
- 7Processo da reivindicação 5 ou 6, adicionalmente compreendendo a classificação da referida chamada como uma chamada de rede privada quando o referido identificador do receptor reformatado identifica um assinante para a rede privada.
- 8Processo de qualquer uma das reivindicações 1, 2 ou 3, compreendendo determinar se o identificador de ΡΕ2084868 receptor está em conformidade com um formato de nome de utilizador predefinido e se for esse o caso classificar a chamada como uma chamada de rede privada, sendo o referido adicionalmente compreendendo a pesquisa numa base de dados por registos para localizar um registo de tabela de base de dados de marcação direta (DID) associando um número de telefone público com o referido identificador do receptor reformatado e se o registo de tabela de base de dados DID for encontrado classificando a chamada como uma chamada de rede privada e se um registo de tabela da base de dados DID não for encontrado classificar a chamada como uma chamada de rede pública.
- 910. Processo da reivindicação 9 em que a produção da referida mensagem de encaminhamento identificando um nó na rede privada compreende a configuração de um identificador do receptor num tampão de armazenamento de identificador de receptor em resposta a um nome de utilizador associado com o registo de tabela de base de dados DID.
- 1011. Processo da reivindicação 8 ou 10, em que a produção de uma mensagem de encaminhamento identificando uma morada de IP numa rede privada compreende determinar se um nó associado com o referido identificador do receptor ΡΕ2084868 reformatado é igual a um nó associado com o identificador do receptor.
- 1112. Processo da reivindicação 11, em que determinar se um nó associado com o referido identificador do receptor reformatado é igual a um nó associado com o referido receptor compreende a determinação de se um prefixo do identificador retido no referido tampão de armazenamento do receptor de chamada combina com um prefixo correspondente de um nome de utilizador associado com o perfil de marcação do chamador.
- 1213. Processo da reivindicação 12 em que quando o referido nó associado ao referido chamador não é o mesmo que o nó associado ao receptor, fazendo com que a referida mensagem de encaminhamento inclua o referido identificador do chamador, o referido identificador retido no referido tampão de armazenamento e uma identificação de um nó de rede privada associado com o referido chamada, e comunicando a referida mensagem de encaminhamento a um controlador de chamadas.
- 1314. Processo da reivindicação 11, em que quando o nó associado com o chamador é igual ao nó associado com o referido receptor, determinar se se realiza pelo menos um de entre os seguintes:envio da referida chamada para outra parte, bloqueio da chamada e encaminhamento do chamador para um servidor de correio de voz associado com o chamador. ΡΕ2084868
- 1415. Processo da reivindicação 14, em que a produção da mensagem de encaminhamento identificando uma morada IP numa rede privada compreende a produção de uma mensagem de encaminhamento possuindo uma identificação de se pelo menos um de entre o identificador do receptor, uma identificação de uma parte para a qual a chamada deve ser enviada e uma identificação de um servidor de correio de voz associado com o receptor.
- 1516. Processo da reivindicação 15, adicionalmente compreendendo a comunicação da referida mensagem de encaminhamento identificando uma morada IP numa rede privada para um controlador de chamadas.
- 1617. Processo da reivindicação 5 ou 6, em que a produção de uma mensagem de encaminhamento identificando uma morada de IP de circuito de acesso para a rede pública compreende a pesquisa de uma base de dados dos registos de encaminhamento associando os identificadores de encaminhamento com os códigos de marcação para encontrar um registo de encaminhamento possuindo um código de marcação possuindo um padrão de número combinando pelo menos uma parte do referido identificador do receptor reformatado.
- 1718. Processo da reivindicação 17, adicionalmente compreendendo a pesquisa de uma base de dados dos registos do fornecedor associando os identificadores do fornecedor com referido fornecedores de encaminhamento para ΡΕ2084868 localizar pelo menos um registo de fornecedor associado com o identificador de encaminhamento associado com o referido registo de encaminhamento possuindo um código de marcação possuindo um padrão de número combinando pelo menos uma parte do identificador de receptor reformatado.
- 1819. Processo da reivindicação 18, adicionalmente compreendendo o carregamento de um tampão de armazenamento de mensagem de encaminhamento com o identificador do receptor reformatado e uma identificação das rotas especificas associadas com os respectivos registos de fornecedor associados com o referido registo de encaminhamento e o carregar o referido tampão de armazenamento de mensagem de encaminhamento com um valor de tempo e um valor de limite de tempo.
- 1920. Processo da reivindicação 19 adicionalmente compreendendo a comunicação de uma mensagem de encaminhamento compreendendo o conteúdo do referido tampão de armazenamento de mensagem de encaminhamento para um controlador de chamada.
- 2021. Processo da reivindicação 1 ou 2, compreendendo adicionalmente fazer com que o referido perfil de marcação inclua um valor de chamada simultânea máximo e um valor de contagem de chamada simultânea e fazendo com que o referido valor de contagem de chamada simultânea seja incrementado quando o utilizador associado com o perfil de marcação inicia uma chamada e fazendo com ΡΕ2084868 que o valor de contagem de chamada simultânea seja reduzido quando uma chamada com o referido utilizador associado com o perfil de marcação é encerrada.
- 2122. Meio legivel por computador, codificado com códigos para direcionar um processador para executar o método como definido em qualquer uma das reivindicações de 1-21.
- 2223. Aparelho para o encaminhamento de chamada (10) para facilitar as comunicações entre os chamadores e os receptores (12,15) num sistema compreendendo uma pluralidade de nós (11,21) com os quais os chamadores e os assinante de chamada; meios de classificação (16) para classificar a chamada como uma chamada de rede privada ou uma chamada de rede pública de acordo com os critérios de classificação de chamada associados com o identificador do chamador; em que os meios de classificação compreendem:meios de pesquisa para pesquisar uma base de dados (18) compreendendo registos que associam atributos de chamada com assinantes à referida rede privada para localizar um registo que identifica pelo menos um atributo de chamada associado a um identificador do chamador pelo ΡΕ2084868 referido identificador do receptor;comparar meios para comparar o referido pelo menos um atributo de chamada associado a um perfil de marcação de chamada com aspectos do referido identificador do receptor;e meios para classificar a chamada com base nas referidas médias de comparação como uma chamada de rede pública quando os critérios de classificação de rede pública são cumpridos e para classificar a chamada com base nas referidas médias de comparação como uma chamada de rede privada quando são satisfeitos os critérios de classificação de rede privada;meios (16) para produzir uma mensagem de encaminhamento identificando um endereço IP de um elemento de rede, numa rede privada, associada ao receptor quando a chamada é classificada como uma chamada de rede privada;e meios (16) para produzir uma mensagem de encaminhamento identificando um endereço IP de um circuito de acesso para uma rede pública se a chamada for classificada como uma chamada de rede pública.
- 2324. Aparelho da reivindicação 23, em que os referidos meios de receção são configurados de forma operacional para receber uma solicitação para estabelecer uma chamada, a partir de um controlador de chamada em comunicação com um chamador identificado pelo identificador do receptor. ΡΕ2084868 referido assinante, e uma identificação de pelo menos um atributo de chamada associada com o referido assinante.
- 2426. Aparelho da reivindicação 23 ou 24, em que os referidos meios de classificação estão operacionalmente configurados para comparar os atributos de chamada associados com o referido perfil de marcação do chamador com aspetos do referidos identificador do receptor, em que os atributos de chamada incluem pelo menos um de:um digito de marcação internacional e em que os meios de classificação de são configurados de forma operacional para determinar se o identificador de receptor inclui uma parte que combina com um IDD associado com o perfil de marcação do chamador;um digito de marcação nacional e em que os meios de classificação de chamada são configurados de forma operacional para determinar se o identificador do receptor inclui uma parte que corresponde a um NDD associado com o perfil de marcação do chamador;um código de área e em que os referidos meios de classificação estão operacionalmente configurados para determinar se o identificador do receptor inclui uma parte ΡΕ2084868 que corresponde a um código de área associado com o referido perfil de marcação do chamador, e
- 2527. Aparelho da reivindicação 23 ou 24, adicionalmente compreendendo meios de formatação para formatar o referido identificador do receptor num formato de dígito predefinido para produzir um identificador do receptor reformatado.
- 2628. Aparelho da reivindicação 27, em que o referido meio de formatação é configurado de forma operacional para remover pelo menos um:um dígito de marcação internacional do referido identificador do receptor, quando o referido identificador do receptor começa com um dígito que combina com um dígito de marcação internacional especificado pelo perfil de marcação do chamador associado com o chamador;e um dígito de marcação nacional do identificador de receptor e pender previdamente um código de país do chamador ao identificador do receptor quando o referido identificador do receptor começar com um dígito de marcação nacional.
- 2729. Aparelho da reivindicação 27 ou 28, em que os meios de formatação são configurados operacionalmente para pender previdamente pelo menos um:ΡΕ2084868 um código de país do chamador ao referido identificador do receptor quando o referido identificador do receptor começa com dígitos identificando um código de área especificado pelo perfil de marcação do chamador;e um código de país de chamador e código de área ao referido identificador do receptor quando o identificador do receptor possui um comprimento que combina um formato de número de marcação de chamador especificado pelo perfil de marcação do chamador e apenas um código de área é especificado como sendo associado com o chamador no perfil de marcação do chamador.
- 2830. Aparelho da reivindicação 27 ou 28 em que os meios de classificação são configurados de forma operacional para classificar a referida chamada como uma chamada de rede privada quando o referido identificador do receptor reformatado identifica um assinante da reder privada.
- 2931. Aparelho de qualquer uma das reivindicações 23, 24 ou 25 em que os meios de classificação estão configurados operacionalmente para classificar a chamada como uma chamada da rede privada em que o identficador do receptor cumpre com o formato de utilizador pré-definido.
- 3032. Aparelho da reivindicação 27, adicionalmente compreendendo meios de pesquisa para pesquisar uma base de dados de registos para localizar um registo de tabela de ΡΕ2084868 base de dados de marcação direta (DID) associando um número de telefone público com o referido identificador do receptor reformatado e onde os referidos meios de classificação são configurados de forma operacional para classificar a chamada como uma chamada de rede privada quando o registo de tabela de base de dados DID é encontrado e para classificar a chamada como uma chamada de rede pública quando um registo de tabela de base de dados DID não é encontrado.
- 3133. Aparelho da reivindicação 32, em que os meios de produção da mensagem de encaminhamento de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para produzir uma mensagem de encaminhamento possuindo um identificador do receptor configurado de acordo com um nome de utilizador associado ao referido registo de tabela de base de dados DID.
- 3234. Aparelho da reivindicação 33 em que os referidos meios de produção da mensagem de encaminhamento de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para determinar se um nó associado com o identificador do receptor formatado é o mesmo como o nó associado com o identificador do chamador.
- 3335. Aparelho da reivindicação 34 em que os referidos meios de produção da mensagem de encaminhamento ΡΕ2084868 de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para determinar se um prefixo do referido identificador do receptor reformatado combina com um prefixo correspondente de um nome de utilizador associado com o referido perfil de marcação do chamador.
- 3436. Aparelho da reivindicação 35, em que os referidos meios de produção da mensagem de encaminhamento de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para produzir uma mensagem de encaminhamento incluindo o referido identificador do receptor, o referido identificador do receptor reformatado, e uma identificação de um nó de rede privada associados com o referido receptor e comunicando a referida mensagem de encaminhamento para um controlador de chamada.
- 3537. Aparelho da reivindicação 34, em que os referidos meios de produção da mensagem de encaminhamento de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para realizar pelo menos um dos seguintes:envio da referida chamada para outra parte, bloqueio da chamada e encaminhamento do chamador para um servidor de correio de voz associado com o receptor, quando o nó associado com o chamador for igual ao nó associado com o receptor. ΡΕ2084868
- 3638. Aparelho da reivindicação 37 em que os referidos meios de produção da mensagem de encaminhamento de uma morada IP de um elemento de rede, numa rede privada, associados com o receptor são configurados de forma operacional para rproduzir uma mensagem de encaminhamento possuindo uma identificação de pelo menos um de entre o identificador do receptor, uma identificação de uma parte para quem a chamada deve ser enviada e uma identificação de um servidor de correio de voz associado com o receptor.
- 3739. Aparelho da reivindicação 38, adicionalmente compreendendo meios para comunicação da referida mensagem de encaminhamento identificando uma morada de IP de um elemento de rede, numa rede privada, associada com o receptor para para um controlador de chamada.
- 3840. Aparelho de reivindicação 27, em que os meios de produção de uma mensagem de encaminhamento de rede pública identificando um circuito de acesso à rede pública compreendem meios para pesquisar uma base de dados dos registo de encaminhamento associando os identificadores de rota com os códigos de marcação para encontrar um registo de encaminhamento possuindo um código de marcação possuindo um padrão de número combinando com pelo menos uma parte do referido identificador do receptor reformatado.
- 3941. Aparelho da reivindicação 23 ou 24, adicionalmente compreendendo meios para fazer com que o perfil de marcação inclua um valor de chamada simultânea ΡΕ2084868 máximo e um valor de contagem de chamada simultânea e para fazer com que o referido valor de contagem de chamada simultânea seja incrementado quando o utilizador associado com o referido perfil de marcação inicia uma chamada e para fazer com que o valor de contagem de chamada simultânea seja reduzido quando uma chamada com o referido utilizador associado com o referido perfil de marcação é encerrada.
- 4042. 0 processo de qualquer uma das reivindicações 1 para 21 em que a pluralidade de nós no sistema compreende chamador (12) sendo associado ao primeiro nó (11), e em que a mensagem de encaminhamento identifica um circuito de acesso (20) ou nó (11, 21) que é para transportar a chamada.
- 4143. O processo de qualquer uma das reivindicações 1-21 ou 42, compreendendo ainda:determinar se o identificador de receptor identifica um assinante para a rede privada;e classificar a chamada como uma chamada de rede privada quando o identificador de receptor identifica um assinante para a rede privada. ΡΕ2084868
- 4244. Processo de qualquer uma das reivindicações 1-21 ou 42-43 compreendendo ainda um de:pesquisar a base de dados (18) para determinar se o identificador de receptor identifica um nome de utilizador de assinante válido e se o identificador de receptor identifica um nome de utilizador de assinante válido, classificando a chamada como uma chamada de rede privada;pesquisar a base de dados (18), com base no identificador de receptor, para determinar se pelo menos um registo DID de marcação direta representando um número de telefone público associado ao receptor é encontrado e se nenhum registo DID de marcação direta representando um número de telefone público associado com o receptor for encontrado, classificar a chamada como uma chamada de rede pública;e tentar estabelecer a chamada através de, está disponível para realizar a chamada.
- 4345. Processo de qualquer uma das reivindicações 1-21 ou 42-44 compreendendo ainda:pesquisar a base de dados (18), com base no identificador de receptor, para um perfil de marcação ΡΕ2084868 associado ao receptor;em resposta à localização de um perfil de marcação associado ao receptor, recuperando da base de dados (18) pelo menos um registo de bloqueio de chamada associado ao receptor, pelo menos um registo de bloqueio de chamada identificando pelo menos uma parte de quem o receptor não deseja receber chamadas;e determinar se um registo de bloqueio de chamada identificando o chamador é encontrado na base de dados (18), e produzir a mensagem de encaminhamento se o registo de bloqueio de chamada não identifica o chamador.
- 4446. 0 processo de qualquer uma das reivindicações 1-21 ou 42-44 compreendendo ainda:pesquisar a base de dados (18), com base no identificador de receptor, para um perfil de discagem associado ao receptor;em resposta à localização de um perfil de marcação associado ao receptor, recuperando da base de dados (18) pelo menos um registo de encaminhamento de chamadas associado ao receptor;e tentar estabelecer a chamada, com base no pelo menos um registo de reencaminhamento de chamadas, para pelo menos um de uma pluralidade de destinos de ΡΕ2084868 reencaminhamento de chamadas.
- 4547. O processo de qualquer uma das reivindicações 45 ou 46 compreendendo ainda pelo menos um de:determinar um nome de domínio de um nó associado ao receptor com base no perfil de marcação associado ao receptor e armazenar nome de domínio do nó associado ao receptor na mensagem de encaminhamento;e determinar um nome de domínio de um nó associado ao chamador com base no perfil de marcação do chamador.
- 4648. Processo de qualquer uma das reivindicações 1-21 ou 42-47 compreendendo ainda:enviar, ao chamador, uma identificação de uma morada IP associada a um relé de média com o qual o chamador se deve comunicar;e fazer com que uma ligação de comunicação seja estabelecida do chamador, através do retransmissor de média para o receptor.
- 4749. O aparelho de qualquer uma das reivindicações 23 para 41, em que a pluralidade de nós (11, 21) no sistema compreende pelo menos um primeiro nó (11) e um segundo nó (21) em comunicação um com o outro, em que cada nó é operacionalmente configurado ΡΕ2084868 para fornecer serviço a um respectivo conjunto de assinantes associado a esse nó, sendo o chamador (12) associado ao primeiro nó (11), e em que a mensagem de encaminhamento identifica um circuito de acesso (20) ou nó (11, 21) que é para realizar a chamada, compreendendo pelo menos um relé de média para estabelecer uma ligação de comunicação para a chamada entre o chamador e o receptor.
- 4850 . Aparelho de qualquer uma das reivindicações 23-41 ou 49 compreendendo ainda meios de bloqueio de chamadas para recuperar, da base de dados, registos de bloqueio de chamadas identificando padrões de bloqueio de chamadas bloqueando a chamada quando um padrão de bloqueio de chamadas associado ao receptor que corresponde ao identificador de receptors for encontrado.
Independent claims48
484 paragraphs in 3 sections, as filed
DESCRIPTION
Forwarding Message Production for Voice Communications Through IP.
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to voice communications over IP and methods and apparatus for routing and billing.
Description of Related Art
Internet Protocol (IP) phones are typically personal computers (PC) based on phones connected within an IP network, such as the public Internet or a private network of a large organization. These IP phones have voice over IP (VoIP) software that allows them to make and receive voice calls and send and receive information in data and video formats.
IP telephony switches installed within the IP network allow voice calls to be made within or between IP networks, and between an IP network and a circuit-switched network (SCN), such as the public switched telephone network (PSTN) . If the IP switch supports Signaling System 7 (SS7) protocol, the IP telephone
842084868 can also access the PSTN databases.
The PSTN network typically includes complex network nodes that contain all information about a local calling service area including user authentication and call routing. The PSTN network typically aggregates all information and traffic at a single site or node, processes it locally, and then passes it to other network nodes as needed by maintaining route tables on the node. PSTN nodes are redundant in design and thus provide reliable service, but if a node fails due to an earthquake or other natural disaster, significant if not complete service outages can occur without any other node being able to. take charge.
Existing VoIP systems do not allow for high availability and resiliency in Voice over IP distribution based on the Session Initiation Protocol (SIP) protocol service across a geographically dispersed area such as a city, region or continent . More resilience comes from providing IP-based telephony services to one location or a small number of locations such as a single office or branch office network.
US 7,046,658 discloses a VoIP system in which callers are wired to PSTN switches. US 6,597,686 discloses a system for routing
ΡΕ2084868 automatically a telephone call over a telephone network.
SUMMARY OF THE INVENTION
According to one aspect of the invention, a process is provided for operating a call routing controller as claimed in claim 1.
This process may involve receiving a request to establish a call from a call controller in communication with a caller identified by the receiver identifier.
Use of call classification criteria may involve searching a database to locate a record identifying call attributes associated with a caller identified by the caller ID.
Locating a record may involve locating a call dialing profile comprising a username associated with the caller, a domain associated with the caller, and at least one call attribute.
The use of all classification criteria may involve comparing the call attributes associated with the caller's dial profile with receiver identifier aspects.
842084868
Comparison may involve determining whether the receiver identifier includes a part that matches an IDD associated with the caller's dial profile.
Comparison may involve determining whether the receiver identifier includes a part that matches an NDD associated with the caller's dial profile.
Comparison may involve determining whether the receiver identifier includes a part that matches an area code associated with the caller's dial profile.
Comparison may involve determining whether the receiver identifier has a length within a range specified in the caller's dial profile.
This process may involve formatting the receiver identifier in a digit format.
<td>default reformatted.</td><td>to product</td><td>one</td><td>identifier</td><td>in</td><td>receptor</td>
<td>THE</td><td>formatting can</td><td colspan="2">involve removal</td><td>in</td><td>one digit</td>
<td>marking</td><td>International</td><td>of</td><td>identifier</td><td>in</td><td>receptor,</td>
when the receiver identifier begins with a digit that matches an international dial digit specified by the caller dial profile associated with the caller.
842084868
Formatting may involve removing a national dialing digit from the receiver identifier and appending a caller's country code to the receiver identifier when the receiver identifier begins with a national dialing digit.
Formatting may involve appending a caller's country code to the receiver identifier when the receiver identifier begins with digits that identify an area code specified by the caller's dial profile.
Formatting may involve appending a caller's country code and area code to the receiver identifier when the receiver identifier has a length that matches a caller dial number format specified by the caller's dial profile and only An area code is specified as being associated with the caller in the caller's dial profile.
This process may involve classifying the call as a private network call when the reformatted receiver identifier identifies a subscriber to the private network.
This may involve determining whether the receiver identifier conforms to a predefined username format and if so
In this case, classify the call as a private network call.
This process may involve causing the records database to be searched for a direct dial database table (DID) record by associating a public telephone number with the reformatted receiver identifier, and whether the database table record DID is found, classifying the call as a private network call, and if a DID database table record is not found, classifies the call as a public network call.
Production of the routing message identifying a node in the private network may involve configuring a receiver identifier in response to a username associated with the DID database table record.
The routing message production may involve determining whether a node associated with the reformatted receiver identifier is equal to a node associated with the caller identifier.
Determining whether a node associated with the reformatted receiver identifier is the same as a node associated with the caller identifier may involve determining whether a reformatted receiver identifier prefix matches a corresponding prefix of one.
ΡΕ2084868 username associated with the caller dial profile.
When the node associated with the caller is not the same as the node associated with the call, the process involves producing a forwarding message including the caller ID, the reformatted receiver identifier, and an ID of a private network node associated with the caller. called and communicating the forwarding message to a call controller.
When the node associated with the caller is the same as the node associated with the receiver, the process involves determining at least one of the following: call forwarding, call blocking, and forwarding the caller to a call server. voicemail associated with the receiver.
The production of the routing message may involve the production of a routing message having an identification of at least one of the receiver identifier, an identification of a party to whom the call is to be sent, and an identification of a voice mail server. associated with the calling.
This process may involve communicating the routing message to a call controller.
842084868
Producing a routing message identifying a public network access circuit may involve searching for a route record database by associating the route identifiers with the dial codes to find a route record having a dial code having a number pattern that combines at least a portion of the reformatted receiver identifier.
This process may involve searching a provider record database by associating provider identifiers with route identifiers to locate at least one provider record associated with the route identifier associated with the route record having a dialing code having a number pattern that matches at least part of the reformatted receiver identifier.
This process may involve loading a routing message store with the reformatted receiver identifier and identifying the specific routes associated with its provider records associated with the route record and loading the routing message store with a value of. time and a timeout value.
This process may involve communicating a forwarding message involving the contents of the forwarding message store to a
842084868 call controller.
This process may involve causing a dialing profile to include a maximum concurrent call value and a simultaneous call count value and causing the simultaneous call count value to be incremented when the user associated with the dialing profile initiates a call. and causing the simultaneous call count value to be reduced when a user call associated with the dialing profile is terminated.
According to another aspect of the invention, there is provided a call routing apparatus as claimed in claim 23.
Reception may be operably configured to receive a call setup request from a call controller communicating with a caller identified by the receiver identifier.
The apparatus may further include searching a database including records associating call attributes with private network subscribers to locate a record identifying call attributes associated with a caller identified by the caller ID.
842084868
Registrations may include dialing profiles, each including a username associated with the subscriber, an identification of a domain associated with the subscriber, and an identification of at least one call attribute associated with the subscriber.
Call classification can be operationally configured to compare call attributes associated with the caller dial profile with the receiver identifier aspects.
Call attributes may include an international dial digit and call classification may be operatively configured to determine if the receiver identifier includes a part that matches an IDD associated with the caller's dial profile.
Call attributes may include a national dialing digit and call classification may be operatively configured to determine if the receiver identifier includes a part that matches an NDD associated with the caller's dial profile.
Call attributes can include an area code and call classification can be operatively configured to determine if the receiver identifier includes a part that matches an area code associated with the caller's dial profile.
The call attribute can include a number length range and the call classification can be operatively configured to determine if the receiver identifier has a length contained within a number length range specified in the caller's dial profile.
The apparatus may further include formatting the receiver identifier in a predefined digit format to produce a reformatted receiver identifier.
Formatting provisions can be operationally configured to remove an international dial digit from the receiver identifier, when the receiver identifier begins with a digit that matches a international dial digit specified by the caller's dial profile associated with the caller. .
Formatting provisions can be operationally configured to remove a national dial digit from the receiver identifier and append a caller's country code to the receiver identifier when the receiver identifier begins with a national dial digit.
Formatting provisions can be operationally configured to append a country code from the
842084868 caller to receiver identifier when the receiver identifier begins with digits that identify an area code specified by the caller dial profile.
Formatting provisions can be operatively configured to append a caller's country code and area code to the receiver identifier when the receiver identifier has a length that matches a caller dial number format specified by the caller profile. caller dialing and only one area code is specified as being associated with the caller in the caller dialing profile.
Sorting can be operatively configured to classify the call as a private network call when the reformatted receiver identifier identifies a subscriber to the private network.
Sorting can be operatively configured to classify the call as a private network call when the receiver identifier conforms to the default username format.
The apparatus may additionally include searching a records database to locate a direct dial bank table (DID) record by associating a payphone number with the receiver identifier
842084868 is reformatted and sorting can be operatively configured to classify the call as a private network call when DID database table registration is found and to classify the call as a public network call when DID database table registration is found. DID database is not found.
Private network routing message production may be operably configured to produce a routing message having a receiver identifier configured according to a username associated with the DID database table record.
Private network routing message production can be operatively configured to determine if a node associated with the reformatted receiver identifier is equal to a node associated with the caller identifier.
Private network routing may include determining whether a reformatted receiver identifier prefix matches a corresponding prefix of a username associated with the caller's dialing profile.
Private network routing message production can be operatively configured to produce a routing message including the
842084868 caller identifier, the reformatted receiver identifier and an identification of a private network node associated with the caller and for communicating the forwarding message to a call controller.
Private network routing message production may be operably configured to perform at least one of the following: sending the call to another party, blocking the call, and forwarding the caller to a voicemail server associated with the call, when the node associated with the caller is the same as the node associated with the caller.
Private network routing message production may be operably configured to produce a routing message having an identification of at least one of the receiver identifier, an identification of a party to whom the call is to be sent, and an identification of a voice mail server associated with the call.
The apparatus further includes communication of the forwarding message to a call controller.
Producing a public network routing message identifying a public network access circuit may include searching a route record database by associating the route identifiers with dial codes to find a route record
842084868 having a dialing code having a number pattern that combines at least a portion of the reformatted receiver identifier.
The apparatus further includes searching a provider record database by associating provider identifiers with route identifiers to locate at least one provider record associated with the route identifier associated with the route record having a dialing code having a number pattern matching at least a portion of the reformatted receiver identifier.
apparatus further includes a routing message store and the loading of the routing message store with the reformatted receiver identifier and an identification of the specific routes associated with the respective provider records associated with the route register and the message store loading with a time value and a timeout value.
<td> 0</td><td colspan="2">handset includes</td><td colspan="2">in addition to</td><td>Communication</td><td>in</td>
<td colspan="2">a message from</td><td colspan="2">referral</td><td>including</td><td>the content</td><td>of</td>
<td>storehouse</td><td>in</td><td>message</td><td>in</td><td colspan="2">referral to</td><td>one</td>
call controller.
The apparatus further includes providing communication of a forwarding message including
ΡΕ2084868 The contents of the forwarding message store to a call controller.
The apparatus further includes means for causing said dialing profile to include a maximum simultaneous call value and a simultaneous call count value and for causing said simultaneous call count value to be incremented when the user associated with said one. dialing profile initiates a call and to cause said simultaneous call count value to be reduced when a call with said user associated with said dialing profile is closed.
Other aspects and features of the present invention will become apparent to those skilled in the art upon review of the following description of the specific embodiments of the invention in conjunction with the accompanying figures.
Brief Description of the Drawings
In the drawings illustrating embodiments of the invention,
Figure 1 is a block diagram of a system according to a first embodiment of the invention.
<td></td><td>THE</td><td>figure 2</td><td>Hey</td><td>jm</td><td>block diagram</td><td>from a phone</td>
<td>caller</td><td>in</td><td>wake up</td><td>with</td><td>The</td><td>first form of</td><td>realization of</td>
<td>invention.</td><td></td><td></td><td></td><td></td><td></td><td></td>
Figure 3 is a schematic representation of a
842084868 SIP invitation message transmitted between the calling telephone and a controller illustrated in figure 1.
Fig. 4 is a block diagram of a call controller illustrated in Fig. 1.
Figure 5 is a flow chart of a process performed by the call controller illustrated in Figure 1.
Figure 6 is a schematic representation of a routing, billing, and rating request (RC) message produced by the call controller illustrated in Figure 1.
Figure 7 is a block diagram of a processor circuit of a routing, billing and classification element of the system illustrated in Figure 1.
Figures 8A-8D are flowcharts of the RC request message handler performed by the RC processor circuit shown in Figure 7.
Figure 9 is a tabular representation of a markup profile stored in a database accessible by the RC illustrated in Figure 1.
Figure 10 is a tabular representation of a dialing profile for a caller using the caller telephone illustrated in Figure 1.
Figure 11 is a tabular representation of the ticket profile for a ticket located in Calgary.
Figure 12 is a tabular representation of a ticket profile for a ticket located in London.
Figure 13 is a tabular representation of a DID database table record stored in the database.
842084868 data shown in figure 1.
Fig. 14 is a tabular representation of a DID database table record for the Calgary call referred to in Fig. 11.
Fig. 15 is a tabular representation of a routing message transmitted from the RC to the call controller illustrated in Fig. 1.
Fig. 16 is a schematic representation of a routing message store holding a routing message to direct a call to the Calgary call referred to in Fig. 11.
Figure 17 is a tabular representation of a prefix for the superno table record stored in the database shown in Figure 1.
Figure 18 is a tabular representation of a superno table register prefix that would be used for the Calgary call referred to in Figure 11.
Figure 19 is a tabular representation of a master list record stored in a master list table in the database illustrated in Figure 1.
Figure 20 is a tabular representation of a populated master list record.
Fig. 21 is a tabular representation of a supplier list record stored in the database illustrated in Fig. 1.
Fig. 22 is a tabular representation of a vendor list record specific to a first vendor.
Figure 23 is a tabular representation of a
ΡΕ2084868 Vendor list entry specifies for a second vendor.
Fig. 24 is a tabular representation of a vendor list record specific to a third vendor.
Fig. 25 is a schematic representation of a routing message held in a routing message store identifying to the controller a plurality of possible providers that may carry the call.
<td></td><td>THE</td><td>figure</td><td> 26</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">block</td><td>Call</td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 27</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">block</td><td colspan="3">call to call</td><td>in</td>
<td>Calgary;</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 28</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">Shipping</td><td>call.</td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 29</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">: shipping <</td><td colspan="2">specific call</td><td>for</td><td>O</td>
<td>called</td><td>from C</td><td>! algary.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 30</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td colspan="4">table</td><td colspan="4">voicemail specifying</td><td>the</td>
<td colspan="4">mail parameters</td><td>in</td><td>voice</td><td>to allow</td><td colspan="3">that the caller</td>
<td colspan="3">leave a message</td><td>in</td><td colspan="2">post office</td><td>voice to the</td><td>called.</td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 31</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
voice mail table record specific to Calgary calling.
Fig. 32 is a schematic representation of an illustrative routing message held in a
842084868 forwarding message store, indicating call forwarding numbers and a voicemail server identifier.
Figures 33A and 33B are respective parts of a flowchart of a process performed by the RC processor.
<td colspan="3">to determine a</td><td colspan="2">time</td><td rowspan="2">for an</td><td colspan="2">the duration value at</td><td colspan="2">alive.</td>
<td></td><td>THE</td><td>figure</td><td> 34</td><td>is</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">beam</td><td>subscriber.</td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 35</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td></td><td colspan="2">beam</td><td>in</td><td colspan="2">subscriber to</td><td colspan="2">the caller</td><td>in</td>
Vancouver
<td></td><td>THE</td><td>figure</td><td> 36</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="3">beam elimination.</td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 37</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td colspan="4">of elimination</td><td>in</td><td colspan="2">beam to an ID of</td><td colspan="2">list</td>
<td>main</td><td colspan="3">located.</td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 38</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">account of</td><td>subscriber.</td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 39</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td></td><td colspan="2">of account</td><td>in</td><td colspan="2">subscriber to</td><td colspan="2">the caller</td><td>in</td>
<td>Vancouver</td><td> •</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 40</td><td colspan="3">is a flowchart is a</td><td>process</td><td>for</td><td>The</td>
producing a second time value executed by the RC processor circuit shown in figure 7.
Fig. 41 is a flowchart for calculating a call cost per unit time.
Fig. 42 is a tabular representation of a system operator special rate table record.
842084868
Fig. 43 is a tabular representation of a system operator special rate table record for a dealer named Klondike.
Fig. 44 is a tabular representation of a system operator dial table record.
<td></td><td>THE</td><td>figure</td><td> 45</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">marking</td><td>of operator</td><td colspan="3">system to</td>
<td colspan="2">the dealer</td><td colspan="2">Klondike.</td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 46</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td colspan="4">table</td><td colspan="3">operator marking of:</td><td colspan="2">system</td>
<td>standard.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 47</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">destinations</td><td colspan="3">dealer specials.</td><td></td>
<td></td><td>THE</td><td>figure</td><td> 48</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">destinations</td><td>specials</td><td colspan="3">dealer for</td>
<td colspan="2">the dealer</td><td colspan="2">Klondike.</td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 49</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">marking</td><td colspan="2">global dealer.</td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 50</td><td>is</td><td>an</td><td>representation</td><td>tabular</td><td>in</td><td>one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td colspan="2">marking</td><td colspan="2">global dealer</td><td>for</td><td>O</td>
Klondike dealer.
<td></td><td>THE</td><td>figure</td><td> 51</td><td>is</td><td>a representation</td><td>tabular</td><td>in</td><td>an</td>
<td>message</td><td>in</td><td>goodbye</td><td colspan="2">SIP</td><td colspan="2">transmitted from</td><td>one</td><td>of</td>
<td>phones</td><td colspan="3">illustrated</td><td>at</td><td>figure 1 for the</td><td colspan="2">controller</td><td>in</td>
<td>call.</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td> 52</td><td>is</td><td>a representation</td><td>tabular</td><td>in</td><td>an</td>
Goodbye SIP message sent to controller from Calgary call.
Fig. 53 is a flowchart of a process.
842084868 executed by the call controller to produce a
<td>message</td><td>in</td><td>interruption</td><td>RC in response</td><td>to</td><td>reception</td><td>in</td><td>an</td>
<td>message</td><td>in</td><td>goodbye SIP.</td><td></td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure 54 is</td><td colspan="2">a representation</td><td>tabular</td><td>in</td><td>an</td>
<td>message</td><td>in</td><td colspan="2">RC call interruption.</td><td></td><td></td><td></td><td></td>
<td></td><td>THE</td><td>figure 55 is</td><td colspan="2">a representation</td><td>tabular</td><td>in</td><td>an</td>
<td>message</td><td>in</td><td>interruption</td><td>RC call</td><td colspan="3">to the called</td><td>in</td>
Calgary
Figures 56A and 56B are respective parts of a flowchart of an RC call interrupt message handling the routine performed by the RC illustrated in figure 1.
<td>THE</td><td>figure</td><td> 57</td><td>is</td><td>representation</td><td>tabular</td><td>on one</td>
<td>registration of</td><td>table</td><td>in</td><td>accounts</td><td>from dealer.</td><td></td><td></td>
<td>THE</td><td>figure</td><td> 58</td><td>is</td><td>representation</td><td>tabular</td><td>on one</td>
reseller account table registration for the Klondike dealer.
<td></td><td>THE</td><td>figure</td><td> 59</td><td>is</td><td>representation</td><td>tabular</td><td>on one</td>
<td>registration</td><td>in</td><td>table</td><td>in</td><td>accounts</td><td>operator</td><td>system.</td><td></td>
<td></td><td>THE</td><td>figure</td><td> 60</td><td>is</td><td>representation</td><td>tabular</td><td>on one</td>
<td>registration</td><td>in</td><td>accounts</td><td>in</td><td colspan="2">system operator</td><td colspan="2">for the operator</td>
of system described here.
Detailed Description
Referring to Figure 1, a system for making IP telephone voice / videophone calls is generally illustrated by 10. The system includes a first supernum generally illustrated by 11 and a second supernum generally illustrated by 21. first
ΡΕ2084868 superno 11 is located in the geographical area, such as Vancouver, BC, Canada, for example, and the second superno 21 is located in London, England, for example. Different supernames may be located in different geographic regions around the world to provide telephone / videophone service to subscribers in their respective regions. These supernos can be in communication with each other via high speed / high data links including fiber optics, satellite and / or cable links, forming a structure for the system. These supernos may alternatively or additionally be in communication with one another through conventional Internet services.
In the illustrated embodiment, the Vancouver Superno 11 provides telephone / videophone service to western Canadian customers from Vancouver Island to Ontario. Another node (not shown) can be located in Canada east side to provide subscriber services in this area.
Other nodes of the type illustrated may also be employed within the geographic area served by a superno to provide call load sharing, for example within a region of the geographic area served by the superno. However, in general, all nodes are similar and have the properties described below with respect to the Vancouver superno 11.
In this embodiment, the Vancouver superno includes a call controller (C) 14, a
2084868 (RC) 16, a database 18 and a voice mail server 19 and a media relay 9. Each can be implemented as separate modules in a common computer system or by separate computers, for example. . Voicemail server 19 need not be included on the node and may be provided by an outgoing service provider.
Subscribers such as a subscriber in Vancouver and a subscriber in Calgary communicate with the Vancouver superno using their own Internet service providers that route their subscribers' routed Internet traffic through the Internet generally illustrated by 13 in Figure 1. For these subscribers the Vancouver superno is accessible on a predetermined Internet Protocol (IP) address or a fully qualified domain name that can normally be accessed through a subscriber Internet service provider. 0 The Vancouver subscriber uses a telephone 12 that is able to communicate with the Vancouver superno 11 using Session Initiation Protocol (SIP) messages and the Calgary subscriber uses a similar telephone 15 in Calgary AB.
It should be noted that throughout the description of embodiments of this invention, the IP / UDP addresses of all elements such as the caller's and receiver's phones, the call controller, the media relay and any others will be considered IP / UDP addresses
842084868 valid directly accessible over the Internet or a private IP network, for example, depending on the specific system implementation. As such, it will be considered, for example, that caller and caller phones will have IP / UDP addresses directly accessible by call controllers and media relays in their respective supernames, and these addresses will not be obscured by Network Address Translation (NAT) or similar mechanisms. In other words, the IP / UDP information contained in the SIP messages (for example, the SIP Invitation message or RC Request message that will be described below) that will match the IP / UDP addresses of the IP packets carrying those SIP messages.
It will be appreciated that in many situations, the IP addresses assigned to the various system elements may be in a private IP address space, and thus not directly accessible from other elements. Additionally, it will also be appreciated that NAT is commonly used to share a public IP address between multiple devices, for example between home PCs and IP phones sharing a single Internet connection. For example, a home PC may receive an IP address such as 192.168.0.101 and a VoIP phone may receive an IP address equal to 192.168.0.103. These addresses are located in an address space called a non-routable (IP) address and cannot be accessed directly from the Internet. In order for these devices to communicate with others
In the case of computers located on the Internet, these IP addresses need to be converted to a public IP address, for example, 24.10.10.123 assigned by the Internet Service Provider to the subscriber, by a device performing NAT, typically a home router. In addition to IP address translation, NAT typically also translates UDP port numbers, for example, an audio path originating from a VoIP phone and using a UDP port 12378 in its private IP address may have been translated to a UDP port 23465. associated with the public IP address of the NAT device. In other words, when a packet originating from the above VoIP phone reaches an Internet-based superno, the source IP / UDP address contained in the IP packet header will be 24.10.10.1:23465, while the IP / UDP address information. The source contained in the SIP message within this IP packet will be 192.168.0.103:12378. Mismatched IP / UDP addresses can cause a problem for SIP-based VoIP systems as, for example, a superno will try to send messages to a private address on a telephone, but messages will never get there.
Referring to Figure 1, in an attempt to make a Vancouver 12 telephone / videophone call to a Calgary 15 telephone / videophone, the Vancouver telephone / videophone sends a SIP invitation message to the Vancouver superno 11 and in response. , call controller 14 sends an RC request message to RC 16 which performs multiple searches on the
842084868 data 18 to produce a forwarding message that is sent back to call controller 14. 0 call controller 14 then communicates with media relay 9 to cause a communications link including an audio path and a videophone (if a video path call) to be established via the media relay to the same node, a node different or to a communications provider access circuit as generally illustrated at 20 to carry audio, and where applicable, video traffic to the called or called recipient.
Generally, RC 16 performs a process to facilitate communication between callers and receivers. The process involves, in response to initiating a call by a calling subscriber, receiving a calling subscriber's receiver identifier, using the call rating criteria associated with the calling subscriber to classify the call as a public network call or a private network call and producing a forwarding message that identifies an address on the private network, associated with the call when the call is classified as a private network call and producing a forwarding message identifying an access circuit for the public network when the call is classified as a public network call.
Subscriber Phone
In more detail, with reference to figure 2,
In this embodiment, the telephone / videophone 12 includes a processor circuit generally illustrated by 30 comprising a microprocessor 32, a program memory 34, an input / output (I / O) port 36, a parameter memory 38 and a buffer 40. Program memory 34, I / O port 36, parameter memory 38 and buffer 40 are all in communication with microprocessor 32. I / O port 36 has a dial-in entry 42 for receiving a dialed telephone / videophone number from a keypad, for example, or from a voice recognition unit or pre-stored telephone / videophone numbers stored in memory. of parameter 38, for example. For simplicity, in Figure 2 a box labeled dialing functions 44 represents any device capable of informing microprocessor 32 about a receiver identifier, for example, a receiver telephone / videophone number.
Processor 32 stores the receiver identifier in a dialed number store 45. In this case, the dialed number is considered to be 2001 1050 2222 and that is a number associated with the Calgary subscriber. I / O port 36 also has an apparatus interface 46 for receiving and producing signals to and from an apparatus that the user may place on his or her ear. This interface 46 may include a BLUETOOTH ™ wireless interface, a wired interface, or a headset, for example. The device acts as an end point for an audio path (not shown) that will be appreciated later. The door
842084868
1/0 36 also has an Internet connection 48 which is preferably a high speed Internet connection and is operable to connect the telephone / videophone to an Internet service provider. Internet connection 48 also acts as a part of the voice path, as will be appreciated later. It will be appreciated that where the subscriber device is a videophone, a separate video path is established in the same way as an audio path is established. For simplicity, the following description refers to a telephone call, but it should be understood that a videophone call is handled similarly, with the call controller making the media relay facilitate an audio path and a video path rather than just an audio path.
Parameter memory 38 has a username field 50, a password field 52, an IP address field 53, and a SIP Proxy address field 54, for example. The username field 50 operates to maintain a username, which in that case is 2001 1050 8667. The username is designated by signature or registration in the system and in that embodiment includes a twelve digit number having a continent code 61, a country code 63, a vendor code 70 and a singular number code 74 The continent code 61 is comprised of the first or leftmost digit of the username in that embodiment. O
842084868 country code 63 consists of the next three digits. Vendor code 70 is made up of the next four digits and singular number code 74 is made up of the last four digits. Password field 52 holds a password of up to 512 characters in this example. The IP address field 53 stores an IP address of the phone, which explains it is 192.168.0.20. The SIP proxy address field 54 maintains an IP protocol compatible with the proxy address that can be provided to the phone via Internet connection 48 as part of a registration procedure.
Program memory 34 stores the code blocks for routing processor 32 to perform telephone functions, one of which includes a firewall block 56 that provides firewall functions for the telephone to prevent access by unauthorized persons. microprocessor 32 and memories 34, 38 and 40 via internet connection 48. Program memory 34 also stores codes 57 for establishing a caller ID. Caller ID codes 57 direct processor 32 to produce a receiver identifier having a format comprising a hexadecimal string at an IP address, the IP address being the IP address of the telephone. Thus, an illustrative receiver identifier may be FF10@192.168.0.20.
Generally, in response to picking up the device interface
6th and activate a dialing function
842084868
44, microprocessor 32 produces and sends a SIP invitation message as illustrated in FIG. 3 to the routing controller 16 illustrated in FIG. 1. That SIP invitation message essentially serves to initiate a call by a calling subscriber.
Referring to Figure 3, the SIP invitation message includes a caller ID field 60, a receiver identifier field 62, a compiler parameter field 64, a caller ID field 65, an IP address field 67 and a caller UDP port field 69. In this embodiment, caller ID field 60 includes username 2001 1050 8667 which is the Vancouver user name stored in the username field 50 of parameter memory 38 on telephone12 shown in Figure 2. Additionally, again referring to Fig. 3, receiver identifier field 62 includes a receiver identifier which in that embodiment is user name 2001 1050 2222 which is the Calgary subscriber dialed number stored in dialed number store 45 illustrated in figure 2. The
<td colspan="4">compiler parameter field 64</td><td colspan="2">includes parameters</td><td>in</td>
<td>compiler and</td><td>the ID field</td><td>in</td><td>call</td><td>65 includes one</td><td colspan="2">code</td>
<td>understanding</td><td>a code</td><td>in</td><td>prefix</td><td>generated (FF10)</td><td>and</td><td>one</td>
<td>suffix that is</td><td>the address</td><td>in</td><td>Protocol</td><td>Internet</td><td>(IP)</td><td>of</td>
<td>telephone 12</td><td>stored</td><td>at the</td><td>field of</td><td>IP adress</td><td> 53</td><td>of</td>
<td colspan="4">telephone. 0 IP address field 67</td><td colspan="2">keep the address</td><td>IP</td>
assigned to the telephone in this embodiment 192.168.0.20, and caller 69's UDP port field includes a UDP port identifier identifying a UDP port
842084868 where the audio path will be terminated on the caller's phone.
Call controller
Referring to Fig. 4, a call controller circuit of call controller 14 (Fig. 1) is illustrated in more detail in 100. Call controller circuit 100 includes a microprocessor 102, program memory 104, and an I / O port. 106. Circuit 100 may include a plurality of microprocessors, a plurality of program memories, and a plurality of I / O ports to be able to handle a large volume of calls. However, for simplicity, call controller circuit 100 will be described as having only one microprocessor 102, program memory 104, and one I / O port 106, with the understanding that there may be more.
Generally, I / O port 106 includes an input 108 for receiving messages such as the SIP invitation message illustrated in FIG. 3 of the telephone illustrated in FIG. 2. I / O port 106 also has a request message output RO 110 for transmitting a request message; RO to RO 16 in FIG. 1, an RO 112 message input for receiving RO 16 routing messages, an access circuit output 114 for transmitting messages to one of the access circuits 20 shown in FIG. 1 to advise the user. access circuit to establish an audio path, for example, and a
842084868 access loop input 116 for receiving access loop messages. Port 1/0 106 further includes a SIP output 118 for transmitting messages to telephone 12 to advise the telephone of the IP addresses of the access circuits that will establish the audio path. I / O port 106 additionally includes a voice mail server input and output 117, 119 respectively for communicating with voice mail server 19 illustrated in Figure 1.
While certain entries and outlets have been illustrated as separate, it will be appreciated that some may be a single IP address and an IP port. For example, messages sent to RC 16 and received from RC 16 can be transmitted and received on the same single IP port.
Program memory 104 includes code blocks for routing microprocessor 102 for performing various functions of call controller 14. For example, such code blocks include a first block 120 for causing call controller circuit 100 to perform a converts SIP to the RC request process to produce an RC request message in response to a received SIP invitation message. Additionally, there is a routing message for the access circuit message block 122 which causes the call controller circuit 100 to produce an access circuit scan message in response to
842084868 A forwarding message received from RC 16.
Referring to FIG. 5, the SIP invitation to the RC request process is illustrated in more detail at 120. Upon receipt of a SIP invitation message of the type illustrated in FIG. 3, block 122 of FIG. 5 directs the control controller. call 100 of FIG. 4 to authenticate the user. This can be done, for example, by requesting a user password, sending a message back to telephone 12 which is interpreted on the telephone as a password registration request or the password can be automatically sent to call controller 14 from from the phone in response to the message. Call controller 14 can then perform searches on the databases to which it has access to determine whether or not the user's password matches a password stored in the database. Various functions can be used to pass encryption keys or hash codes back and forth to ensure that password transmission is secure.
In the event that the authentication process fails, call controller circuit 100 is directed to an error handling routine 124 which causes messages to be displayed on telephone 12 to indicate that there was an authentication problem. If the authentication procedure is successful, block 121 directs call controller circuit 100 to determine whether or not the contents of caller ID field 60 of
ΡΕ2084868 SIP invitation received from the phone is an IP address. If it is an IP address, then block 123 directs call controller circuit 100 to configure the contents of a variable type field held by microprocessor 102 to a code representing that the call type is a third party invitation. If in block 121 the contents of the caller ID field do not identify an IP address, then block 125 directs the microprocessor to set the type field contents to a code indicating that the call is being made by a system subscriber. Block 126 then directs the call controller circuit to read the receiver identifier 65 provided in the SIP invitation message from telephone 12, and in block 128 the processor is directed to produce an RC request message that includes this caller ID. call. Block 129 then directs call controller circuit 100 to send the RC request to RC 16.
Referring to Figure 6, a message is requested; The RC is generally illustrated by 150 and includes a caller field 152, a caller field 154, a compiler field 156, a caller ID field 158, and a type 160 field. Compiler and Caller ID 152, 154, 156 and 158 contain copies of the caller, caller, compiler, parameter, and caller ID fields 60, 62, 64, and 65 of the SIP invitation message illustrated in Figure 3. Type field 160 contains the type code established in blocks 123 and 125
842084868 of Figure 5 to indicate whether the call is from a third party or a system subscriber, respectively. The caller identifier field may include a PSTN number or a system subscriber username as illustrated, for example.
Routing Controller (RC)
Referring to Figure 7, RC 16 is illustrated in more detail and includes an RC processor circuit generally illustrated by 200. RC processor circuit 200 includes a processor 202, a program memory 204, a table memory 206, a memory of 207 and an I / O port 208, all in communication with processor 202.
(As indicated above, there may be a plurality of processor circuits (202), memories (204), etc.).
Store memory 207 includes a caller ID store 209 and a caller ID store 211
I / O port 208 includes a database request port 210 through which a database request (18 shown in Figure 1) can be performed and includes a database response port 212 for receiving a response. 18. I / O port 208 additionally includes an RC request message entry 214 for receiving the call controller RC request message (14 illustrated in
842084868 figure 1) and includes a routing message output 216 to send a routing message back to the call controller 14. Port 1/0 208 thus acts to receive the caller ID and a receiver identifier contained in the call controller RC request message, the RC request message being received in response to the initiation of a call by a calling subscriber.
Program memory 204 includes code blocks for directing processor 202 to perform the various functions of RC (16). One such block includes an RC request message handler 250 that directs the RC to produce a forwarding message in response to an incoming RC request message. The RC request message handling process is illustrated in more detail in 250 in Figures 8A to 8D.
RC Request Message Handler
Referring to FIG. 8A, the RC request message handler begins with a first block 252 that directs the RC processor circuit 200 to store the contents of the RC request message 150 in the storerooms in storage memory 207 of FIG. 7. , one of which includes caller ID store 209 of FIG. 7 for storing separately from the call field 154 contents of the RC request message. Block 254 then directs the RC processor circuit to utilize the contents of caller field 152 in the call message.
The RC request illustrated in FIG. 6 is for locating and retrieving from database 18 a record associating the call attributes with the calling subscriber. The localized record may be referred to as a dialing profile for the caller. The retrieved marking profile can then be stored in storage memory 207, for example.
Referring to Figure 9, an illustrative data structure for a dial profile is generally illustrated at 253 and includes a username field 258, a domain field 260, and call attributes comprising a national dial digit field. (NDD) 262, an international dialing digit (IDD) field 264, a country code field 267, a local area code field 267, a minimum local caller field 268, a maximum local caller length field 270, a dealer field 273, a maximum number of simultaneous call field 275, and a current number of simultaneous call field 277. Indeed, the dialing profile is a record identifying the attributes of caller call identified by the caller ID. More generally, dialing profiles represent call attributes of their subscribers.
<td></td><td></td><td>A profile of</td><td>caller</td><td>illustrative</td><td>for</td><td>O</td>
<td colspan="2">subscriber</td><td>from Vancouver is</td><td>illustrated</td><td>usually in</td><td> 276</td><td>at</td>
<td>figure</td><td> 10</td><td>and indicates that the</td><td colspan="3">username field</td><td> 258</td>
<td>includes</td><td>O</td><td colspan="2">username (2001</td><td> 1050 8667)</td><td>what</td><td>was</td>
842084868 is assigned to the subscriber and is stored in the username field 50 on the telephone as illustrated in figure 2
Referring again to Fig. 10, domain field 260 includes a domain name as illustrated in 282, including a node type identifier 284, a location code identifier 286, a system provider identifier 288, and a portion of domain 290. Domain field 260 effectively identifies a domain or node associated with the user identified by the contents of username field 258.
In this embodiment, node type identifier 284 includes the sp code identifying a superno and location identifier 286 identifies the superno as being in Vancouver (YVR). System provider identifier 288 identifies the company providing the service and domain part 290 identifies the domain with.
National dialed field 262 in this embodiment includes digit 1 and generally includes a number specified by the Telecommunications Standardization Sector (ITU-T) Recommendation of the International Telecommunication Union (ITU) 164 which designates the digits national marking for countries.
International dialing field 264 includes a code also designated according to ITU-T of
ΡΕ2084868 according to the country or location of the user.
Country code field 266 also includes the digit 1 and generally includes a number designated in accordance with ITU-T to represent the country in which the user is located.
Local area code field 267 includes a list of area codes that have been assigned by ITU-T for the geographic area in which the subscriber is located. The caller's maximum and minimum local number length fields 268 and 270 hold the numbers representing the minimum and maximum local number lengths allowed in the area codes specified by the contents of the local area code field 267. Reseller field 273 is optional and maintains a code identifying a retailer of services in this Klondike embodiment. The maximum number of concurrent call field 275 maintains a code identifying the maximum number of simultaneous calls the user can make simultaneously. This allows more than one call to occur simultaneously while all calls to the user are charged to the same account. The current concurrent call field number 277 is initially equal to 0 and is increased each time a concurrent call associated with the user is initiated and is reduced when a concurrent call is ended.
842084868
Area codes associated with the user are codes associated with the location code identifier 286 of the domain field content 260.
A dialing profile of the type illustrated in Figure 9 is produced each time a user registers with the system or agrees to become a subscriber of the system. Thus, for example, a user who wishes to subscribe to the system may contact an office maintained by a system operator and office staff to ask the user certain questions about their location and service preferences, where the tables can be used to provide office staff with appropriate information to be registered in the username 258, domain 260, NDD 262, IDD 264, country code 266, local area codes 267, minimum and maximum local length of caller 268 and 270, dealer field 273 and concurrent call fields 275 and 277 to establish a dial profile for the user.
Referring to Figures 11 and 12, user call marking profiles in Calgary and London, respectively, for example, are illustrated.
In addition to creating markup profiles when a user registers with the system, a DID record of the type illustrated in 278 in Figure 13 is added to a database direct dialing database table (18 in Figure 1). to associate the username and a
ΡΕ2084868 supernn hostname with which the user is associated, with an E.164 number associated with the user in the PSTN network.
An illustrative DID table record for Calgary calling is generally illustrated by 300 in Fig. 14. Username field 281 and username field 272 are analogous to profile username and domain fields 258 and 260 The dialing code of the caller illustrated in Figure 10. The contents of DID field 274 include an E.164 public telephone number including a country code 283, an area code 285, an exchange code 287, and a number 289. If the user has multiple telephone numbers, then multiple records of the type illustrated in 300 will be included in the DID database table, each having the same user number and user domain, but different DID field contents 274 reflecting the same. different telephone numbers associated with that user.
In addition to the creation of dialing profiles, as illustrated in Figure 9, and DID registers, as illustrated in Figure 13, when a user registers with the system call blocking registers of the type illustrated in Figure 26, the sending registers of the type illustrated in Fig. 28 and voice mail registers of the type illustrated in Fig. 30 can be added to database 18 when a new subscriber is added to the system.
Referring again to Figure 8A, after the
When retrieving a dialing profile for the caller, as illustrated by 276 in Figure 10, the RC processor circuit 200 is directed to block 256 that directs the processor circuit 200 to determine if the contents of concurrent call field 277 is lower than the contents of the maximum simultaneous call field 275 of the dialing profile for the caller and, if applicable, block 271 directs the processor circuit to increment the contents of concurrent call field 277. If the contents of concurrent call field 277 are equal to or greater than the contents of maximum concurrent call field 275, block 259 directs processor circuit 200 to send an error message back to call controller (14) to make The call controller notifies the caller that the maximum number of simultaneous calls has been reached and no additional calls can exist simultaneously, including the currently requested call.
Assuming that block 256 allows the call to proceed, the RC 200 processor circuit is directed to perform certain checks on the receiver identifier provided by the field contents of the call 154 in Figure 6 of the RC 150 request message. These checks are illustrated in more detail in figure 8B.
Referring to Fig. 8B, processor 202 in Fig. 7 is directed to a first block 257 which causes it to determine whether a digit pattern of the
842084868 receiver identifier (154) provided in RC request message (150) includes a pattern that combines the contents of the international dialing digit (IDD) field 264 in the caller profile illustrated in figure 10. If so, then block 259 directs processor 202 to configure a call type code identifier variable held by the processor to indicate that the call is an international call, and block 261 directs the processor to produce a call. receiver identifier reformatted by reformatting the receiver identifier into a predefined digit format. In this embodiment, this is done by removing the digit pattern by combining the IDD field content 264 of the caller's dial profile to effectively shorten the receiver identifier. Block 263 then directs processor 202 to determine whether or not the receiver identifier has a length that meets the criteria by establishing it as a number conforming to ITU Standard E.164. If the length does not match this criterion, block 265 directs processor 202 to send back to the call controller (14) a message indicating that the length is not correct. The process is then terminated. In call controller 14, the routines (not shown) stored in program memory 104 may direct the processor (102 of FIG. 4) to respond to the incorrect length message by transmitting a message back to the telephone (12 illustrated in FIG. 1) to indicate that an invalid number has been dialed.
842084868
Still referring to Fig. 8B, if the length of the amended receiver identifier meets the criteria set out in block 263, block 269 directs the processor (202 of figure 7) to perform a database request to determine whether or not the identifier receiver number was found in a record in the DID database table. Referring again to Figure 8B in block 269, if processor 202 receives a response from the database indicating that the reformatted receiver identifier produced in block 261 has been found in a record in the DID database table, then the call is a system subscriber and the call is classified as a private network call by routing the processor to block 279 directing the processor to copy the contents of the corresponding username field (281 in figure 14) from from the caller DID database table register (300 in figure 14) to the caller ID store (211 in figure 7). Thus, processor 202 locates a subscriber username associated with the reformatted receiver identifier. Processor 202 is then directed to point B in Fig. 8A.
Subscriber to Subscriber Calls Between Us
Many different
Referring to FIG. 8A, block 280 directs the processor (202 of FIG. 7) to perform a process.
ΡΕ2084868 to determine whether or not the node associated with the reformatted receiver identifier is the same node as that associated with the caller identifier. To do this, processor 202 determines whether or not a prefix (e.g., continent code 61) of the caller name held in the caller ID store (211 in figure 7) is equal to the corresponding prefix of the caller name held in the username field 258 of the caller dial profile shown in figure 10. If the corresponding prefixes are not the same, block 302 in FIG. 8A directs the processor (202 in FIG. 7) to configure a call type indicator in the store memory (207 in FIG. 7) to indicate that the call is a CALL. cross domain. The block 350 of Fig. 8A then directs the processor (202 in Fig. 7) to produce a routing message identifying an address on the private network with which the receiving party identified by the caller ID store contents is associated and to configure a maximum call time of 99999, for example.
Thus, the routing message includes a caller identifier, a receiver identifier configured according to a username associated with the DID database table record, and includes an identifier of a node in the private network with which the party receptor is associated.
The node in the system with which the call is associated is determined by using the receiver identifier to address a supernode table having records of the type as illustrated by 370 in Figure 17. Each register 370 has a prefix field 372 and a field of superno address 374. Prefix field 372 includes the first n digits of the receiver identifier. In this embodiment n = 2. The superno address field 374 holds a code representing the node's IP address or fully qualified domain name associated with the code stored in the receiver identifier prefix field 372. Referring to Figure 18, for example, if the prefix is 20, the superno address associated with this prefix is sp.yvr.digifonica.com.
Referring to Fig. 15, a generic routing message is generally illustrated by 352 and includes an optional provider prefix field 354, and optional delimiter field 356, a so-called username field 358, at least one routing field. 360, one field for live time 362, and other fields 364. Optional provider prefix field 354 maintains a code to identify provider traffic. Optional delimiter field 356 maintains a symbol delimiting the provider prefix code from the calling username field 358. In this embodiment, the symbol is a number sign (#). Routing field 360 maintains a domain name or IP address of an access circuit or node that
842084868 must make the call, and live time field 362 maintains a value representing the number of seconds the call can be active based on the subscriber's available minutes and other billing parameters.
Referring to Figure 8A and Figure 16, an example of a routing message produced by the processor in block 350 for a caller associated with a different caller node is generally illustrated by 366 and includes only a calling field 359, a calling field. route 361 and a live time field 362.
Referring to Fig. 8A, having produced a routing message as shown in Fig. 16, block 381 directs the processor (202 of Fig. 7) to send the routing message illustrated in Fig. 16 to the call controller 14 illustrated in Fig. 1. .
Referring again to Fig. 8B, if in block 257, the receiver identifier stored in the receiver part ID store (211 of Fig. 7) does not start with an international dial digit, block 380 directs processor (202) to determine whether or not the receiver identifier starts with the same national dialing digit code as that assigned to the caller. To do this, processor 202 is directed to refer to the recalled caller dial profile as shown in Figure 10. In Figure
842084868
10, the national dialing digit code 262 is the number
1. Thus, if the receiver identifier begins with number 1, then processor 202 is directed to block 382 in FIG. 8B.
Block 382 directs processor 202 of FIG. 7 to examine identifying the call to determine whether or not the digits following the NDD digit identify an area code that is equal to any of the area codes identified in the field code field. local area 267 of caller dialing profile 276 shown in figure 10. If not, block 384 of figure 8B directs processor 202 to configure the call type indicator to indicate that the call is a national call. If the digits following the NDD digit identify an area code that is the same as the local area code associated with the caller as indicated by the caller's dial profile, block 386 directs processor 202 to configure the call type indicator to indicate It's a local call, national stadium. After execution of blocks 384 and 386, block 388 directs processor 202 to format the receiver identifier in a predefined digit format to produce a reformatted receiver identifier by removing the national dialed digit and appending an identified caller country code. by the country code field 266 of the caller dial profile shown in Figure 10. Processor 202 is then directed to block 263 of Fig. 8B to perform further processing as already described above.
842084868
If in block 380 the receiver identifier does not start with a national dialed digit, block 390 directs processor 202 to determine if the receiver identifier begins with digits identifying the same area code as the caller. Again, the reference for this is the recalled caller dial profile shown in Figure 10. Processor 202 determines whether or not the first few digits of the receiver identifier identify an area code corresponding to the local area code field 267 of the retrieved caller dial profile. If so, then block 392 directs processor 202 to configure the call type indicator to indicate that the call is a local call and block 394 directs processor 202 to format the receiver identifier
<td>on a</td><td colspan="2">Format</td><td colspan="2">digit</td><td>default to</td><td>to produce</td><td>one</td>
<td colspan="3">identifier</td><td>in</td><td>receptor</td><td>reformatted by</td><td>annexation</td><td>of</td>
<td>code</td><td>in</td><td>parents</td><td>in</td><td>caller</td><td>to the identifier of</td><td>receptor,</td><td>O</td>
<td>code</td><td>in</td><td>parents</td><td>in</td><td>caller</td><td>being determined</td><td>starting</td><td>of</td>
<td>field</td><td>in</td><td colspan="2">code</td><td>of country</td><td>266's profile</td><td>marking</td><td>of</td>
recovered caller illustrated in Fig. 10. Processor 202 is then directed to block 263 for further processing as described above.
Referring again to FIG. 8B, at block 390, the receiver identifier does not start with the same area code as the caller, block 396 directs the processor (202 from FIG. 7) to determine if the number
842084868 digit in receiver identifier, that is, receiver identifier length, is within the range of digits indicated by caller minimum local number length field 68 and caller maximum local number length field 270 recalled caller dial profile shown in figure 10. If so, then block 398 directs processor 202 to configure the call type indicator to indicate a local call and block 400 directs processor 202 to format the receiver identifier in a predefined digit format to produce a receiver identifier reformatted by appending the caller's country code to the receiver identifier (as indicated by the country code field 266 of the recalled caller dial profile shown in Figure 10) followed by the caller area code (as indicated by the local area code field 267 of the caller profile shown in Figure 10). Processor 202 is then directed to block 263 of Fig. 8B for further processing as described above.
Referring again to figure 8B, if in block 396, the receiver identifier is of a length that is not within the range specified by the caller's minimum local number length field (268 in figure 10) and the number length field maximum caller location (270 in figure 10), block 402 directs processor 202 of figure 7 to determine whether or not the receiver identifier identifies a username
Valid ΡΕ2084868. To do this, processor 202 searches through database (18 of FIG. 10) of tagging profiles to find a tagging profile having the contents of the username field (258 in FIG. 10) that matches the identifier. receiver If no match is found, block 404 directs processor (202) to send an error message back to call controller (14). If at block 402, a dialing profile having a username field 258 matching the receiver identifier is found, block 406 directs processor 202 to configure the call type indicator to indicate that the call is a call private network and then the processor is directed to block 280 of FIG. 8A. Thus, the call is classified as a private network call when the receiver identifier identifies a subscriber to the private network.
From Figure 8B, it will be appreciated that certain groups of code blocks direct the processor 202 in Figure 7 to determine if the receiver identifier contains certain characteristics such as an international dial digit, a national dial digit, a code length and length that match certain criteria, and cause processor 202 to reformat the receiver identifier stored in the caller ID store 211, as required in a predetermined target format including only a country code, a
842084868 area code, and a normal telephone number, for example, to make the receiver identifier compatible with the E.164 number plan pattern in this embodiment. This allows block 269 in FIG. 8B to have a consistent identifier format and is called for use in searching through DID database table registers of the type illustrated in FIG. 13 to determine how to route calls to subscriber-to-subscriber calls. same system. Effectively, therefore, blocks 257, 380, 390, 396, and 402 establish call classification criteria for classifying the call as a public network call or a private network call. Block 269 classifies the call, depending on whether or not the formatted receiver identifier has a DID database table record and this depends on how the call classification criteria are matched and block 402 directs the processor 202 of FIG. 7 to classify the call as a private network call when the receiver identifier conforms to a predefined format, that is, is a valid username and identifies a subscriber to the private network after the receiver identifier has been subjected to the block classification criteria 257, 380, 390 and 396.
Subscriber to Non-Subscriber Calls
Not all calls will be called subscriber to subscriber calls and this will be detected by processor 202 of figure 7 when executing block 269 in figure 8B, and not
ΡΕ2084868 Finding a DID database table record that is associated with the receiving party in the DID database table. When this occurs, the call is classified as a public network call by routing processor 202 to block 408 of FIG. 8B causing it to be set to the ID store contents of receiver part 211 of FIG. 7 newly formatted receiver identifier, that is, an E.164-compliant number. Then, block 410 of Fig. 8B directs processor 202 to fetch a route database or master list records by associating the route identifiers with the dial codes shown in Fig. 19 to locate a driver having a dial code having a number pattern that combines at least a portion of the reformatted receiver identifier.
Referring to Fig. 19, a data structure for a master list or route list record is illustrated. Each master list record includes a master list ID field 500, a dialing code field 502, a country code field 504, a national signal number field 506, a minimum length field 508, a field of maximum length 510, a national dialed digit field 512, an international dialed digit field 514 and a store rate field 516.
The master list ID field 500 maintains a unique code such as 1019, for example identifying the record. Dialing code field 502 maintains a
Predetermined number pattern that processor 202 of Fig. 7 uses in block 410 in Fig. 8B to find the master list register having a dialing code matching the first few digits of the amended receiver identifier stored in the part ID store. call 211. Country code field 504 holds a number representing the country code associated with the registration and national signal number field 506 maintains a number representing the area code associated with the registration. (Note that the dialing code is a combination of the contents of country code field 504 and national signal number field 506). Minimum length field 508 holds a number representing the minimum length of digits associated with the record and maximum length field 51 maintains a number representing the maximum number of digits in a number with which the record can be compared. National dialed digit field (NDD) 512 holds a number representing an access code used to make a call within the country specified by the country code, and international dialed digit field (IDD) 514 holds a number representing the international prefix required to make a call from the country indicated by the country code.
Thus, for example, a master list record may have a format as illustrated in Figure 20 with the illustrative field content as illustrated.
842084868
Referring again to Fig. 8B, using the reformatted receiver identifier country code and area code portions stored in the caller ID store 211, block 410 directs the processor 202 of Fig. 7 to find a master list record such as as shown in Fig. 20 having a dialing code that combines the country code (1) and the area code (604) of the receiver identifier. Thus, in this example, processor 202 finds a master list record having an ID field containing the number 1019. That number may be referred to as a route ID. Thus, a route ID number is found in the master list register associated with a predetermined number pattern in the reformatted receiver identifier.
After execution of block 410 in FIG. 8B, the process continues as illustrated in FIG. 8D. Referring to FIG. 8D, block 412 directs processor 202 of FIG. 7 to use the route ID number to fetch a provider record database by associating provider identifiers with route identifiers to locate at least one record. provider associated with the route identifier to identify at least one provider that operates to supply a communications link to the route.
Referring to Fig. 21, a data structure for a vendor list record is illustrated.
842084868
Provider list records include a provider ID field 540, a master list ID field 542, an optional prefix field 544, a specific route identifier field 546, an NDD / IDD rewrite field 548, a rate field 550, and a time limit field 551. Vendor ID field 540 maintains a code identifying the vendor name, and master list ID field 542 maintains a code to associate the vendor record with a master list record. Prefix field 544 maintains a sequence used to identify provider traffic and specific route identifier field 546 maintains an IP address of a provider-operated access circuit indicated by provider ID field 540. NDD / IDD rewrite field 548 maintains a code representing an NDD / IDD rewrite value associated with that route for that provider, and rate field 550 maintains a code indicating the cost per second for the system operator to use the route. provided by the access circuit specified by the contents of the route identifier field 546. Time limit field 551 maintains a code indicating a time for which the call controller should wait for a response from the associated access circuit before giving up and attempting the next access circuit. This time value can be represented in seconds, for example. Illustrative supplier records are illustrated in Figures 22, 23 and 24 for the illustrative suppliers illustrated in 20 in Figure 1, that is, Telus, Shaw and Sprint.
842084868
Referring again to Fig. 8D, in block 412, processor 202 finds all vendor registers that identify the master list ID found in block 410 of Fig. 8B.
Referring again to Fig. 8D, block 560 directs processor 202 of Fig. 7 to begin producing a routing message of the type illustrated in Fig. 15. To do so, processor 202 carries a routing message store as shown in Fig. 25 with a supplier prefix of the least expensive supplier where the least expensive supplier is determined from the fee fields 550 of Figure 21 of the records associated with the respective suppliers.
Referring to Figures 22 to 24, in the illustrated embodiment, the Telus provider has the lowest number in the rate field 550, and therefore the prefix 4973 associated with that provider is loaded into the forwarding message store illustrated in Figure 25 first. .
Block 562 in Fig. 8D directs the processor to delimit prefix 4973 by the number sign (#) and then load the reformatted receiver identifier into the forwarding message store illustrated in Fig. 25. In block 563 of Fig. 8D, The contents of the route identifier field 546 of Fig. 21 of the record associated with the Telus provider are added by processor 202 of Fig. 7 to the message store.
Forwarding pattern 2084868 shown in Fig. 25 after a signal delimiter @, and then block 564 in Fig. 8D directs the processor to obtain a live time value, which in one embodiment may be 3600 seconds, for example. Block 566 then directs processor 202 to load this live time value and timeout value (551) in Fig. 21 into the forwarding message store of Fig. 25. Accordingly, a first portion of the routing message for the Telus access circuit is illustrated generally by 570 in Figure 25.
Referring again to Figure 8D, block 571 directs processor 202 back to block 560 and causes it to repeat blocks 560, 562, 563, 564, and 566 for each successive provider until the forwarding message store be loaded with information pertaining to each provider identified by the processor in block 412. Thus, a second portion of the routing message as illustrated at 572 in Figure 25 refers to the second provider identified by the record illustrated in Figure 23. Referring again to Figure 25, a third portion of the routing message as illustrated at 574 and associated with with a third party supplier as indicated by the supplier registration illustrated in Figure 24.
Accordingly, with reference to Fig. 25, the routing message store maintains a routing message identifying a plurality of
Different providers are able to provide access circuits for the public telephone network (ie, specific routes) to establish at least part of a communication link through which the caller may contact the receiving party. In this embodiment, each of the suppliers is identified, in succession, according to the rate. Other criteria for determining the order in which suppliers are listed in the routing message may include preferred supplier priorities, which may be established based on service agreements, for example.
Referring again to Fig. 8D, block 568 directs processor 202 of Fig. 7 to send the routing message illustrated in Fig. 25 to call controller 14 in Fig. 1.
Subscriber to Subscriber Calls Within Same Node
Referring again to Fig. 8A, if in block 280 the receiver identifier received in the request message, when RC has a prefix that identifies the same node as that associated with the caller, block 600 directs processor 202 to use the identifier. receiver in caller ID store 211 to find and retrieve a dialing profile for the caller. The marking profile may be of the type illustrated in Fig. 11 or 12, for example. Block 602 of FIG. 8A then directs processor 202 of FIG. 7 to obtain the data registers.
ΡΕ2084868 call blocking, call forwarding and voicemail from database 18 of figure 1 based on the username identified in the caller profile
<td>recovered by processor</td><td>in the block</td><td> 600 .</td><td>The</td><td>records</td><td>in</td>
<td>call blocking, sending</td><td colspan="2">call and</td><td colspan="2">mail from</td><td>voice</td>
<td colspan="2">can be as illustrated in the figures</td><td> 26,</td><td> 27,</td><td>28 and 30</td><td>per</td>
<td>example.</td><td></td><td></td><td></td><td></td><td></td>
<td>With reference to</td><td>figure</td><td> 26,</td><td>the</td><td>records</td><td>in</td>
Call blocking includes a username field 604 and a block pattern field 606. The username field maintains a username corresponding to the username in the username field (258 in figure 10) of the receiving party profile and the block pattern field 606 maintains one or more E-compatible numbers. 164 or usernames identifying PSTN numbers or system subscribers of which the subscriber identified in username field 604 does not wish to receive calls.
Referring to FIG. 8A and FIG. 27, block 608 directs processor 202 of FIG. 7 to determine whether or not the caller identifier received in the request message RC matches a block pattern stored in the block pattern field. 606 of the call block register associated with the call identified by the contents of username field 604 in FIG. 26. If the caller ID matches a block pattern, block 610 directs the processor to send a message.
ΡΕ2084868 call interrupted or no connection message to call controller (14) and the process is terminated. If the caller ID does not match a lock pattern associated with the call, block 609 directs the processor to store the username and domain of the receiving party, as determined from the dialing profile of the receiving party, and a live time value in the forwarding message store as illustrated at 650 in figure 32. Referring again to Figure 8A, block 612 then directs processor 202 to determine whether or not call forwarding is required.
Referring to Figure 28, call forwarding records include a username field 614, a destination number field 616, and a sequence number field 618. Username field 614 stores a code representing a user with whom the registration
<td>it is</td><td colspan="2">associated. 0 number field</td><td>in</td><td>destiny</td><td> 616</td><td>keeps</td><td>one</td>
<td>name</td><td>in</td><td>user representing</td><td>one</td><td>number</td><td>for</td><td>which</td><td>The</td>
<td colspan="2">call</td><td>should be sent,</td><td>and</td><td>the field</td><td>in</td><td>number</td><td>in</td>
String 618 maintains an integer indicating the order in which the username associated with the corresponding destination number field 616 should be attempted for call forwarding. The call forwarding table may have a plurality of records for a given user. Processor 202 of Fig. 7 uses the contents of sequence number field 618 to put the records for a particular user in order. As will be appreciated below, this allows call forwarding numbers
842084868 are attempted in an ordered sequence.
Referring to FIG. 8A and FIG. 29, if in block 612, the call forwarding record for the call identified by the receiver identifier contains no content in the destination number field 616 and, accordingly, no content in the destination field. In sequence number 618, there are no call forwarding records for that call, and processor 202 is directed to block 620 in FIG. 8C. If there are records in the call forwarding table 27, block 622 in FIG. 8A directs processor 202 to fetch the dialing profile table to find a dialing profile record as illustrated in FIGURE 9 for the user identified by the field. destination number 616 of the call advance register illustrated in figure 28. Processor 202 of Fig. 7 is further directed to storing the username and domain for that user and a live time value in the routing message store as illustrated at 652 in Fig. 32 to produce a routing message as illustrated. This process is repeated for each call forwarding record associated with the call identified by caller ID store 211 in FIG. 7 to add to the forwarding message store all caller usernames and domains associated with the receiving party. .
842084868
Referring again to figure 8A, if in block
612 there are no call forwarding records, then at block 620 in figure 8C the processor 202 is directed to determine whether or not the user identified by the receiver identifier has paid for the voicemail service. This is done by checking to see whether or not an indicator is configured in a voicemail register of the type illustrated in Figure 30 in a voicemail table stored in database 18 shown in Figure 1.
Referring to Figure 30, the voicemail records in that embodiment may include a username field 624, a voicemail server field 626, a few seconds for voicemail field 628 and an activation field. 630. Username field 624 stores the username of the receiving party. Voicemail server field 626 maintains a code identifying a domain name of a voicemail server associated with the user identified by username field 624. Voicemail second field 628 maintains a code identifying waiting time before access to voicemail, and activation field 630 maintains a code representing whether or not voicemail is enabled for the user. Referring again to Fig. 8C in block 620, if the processor 202 of Fig. 7 encounters a voice mail record as shown in Fig. 30 having the contents of username field 624 matching the receiver identifier, the processor is
842084868 directed to examine the contents of activation field 630 to determine whether or not voicemail is enabled. If voicemail is enabled, then block 640 in figure 8C directs processor 202 to figure 7 to store the contents of the voicemail server field 626 and the contents of the seconds field for voicemail 628 in the store. message path as illustrated by 654 in Fig. 32. Block 642 then directs processor 202 to obtain live time values for each path specified by the routing message according to the routing cost and the user balance. These live time values are then appended to the corresponding tracks already stored in the forwarding message store.
Referring again to Fig. 8C, block 644 then directs processor 202 of Fig. 7 to store the current node's IP address in the forwarding message store as illustrated by 656 in Fig. 32. Block 646 then directs processor 202 to send the routing message illustrated in Fig. 32 to call controller 14 in Fig. 1. Thus, in the described embodiment the routing controller will produce a routing message that will cause at least one of the following: sending the call to another party, blocking the call, and routing the caller to a voicemail server.
Referring again to FIG. 1, the routing message if said type illustrated in FIGS.
842084868
16, 25 or 32 is received at the call controller 14 and the call controller interprets the receipt of the routing message as a request to establish a call.
Referring to Figure 4, Program Memory
104 Call controller 14 includes a routing to the access circuit routine generally shown at 122.
Where a routing message of the type illustrated in Fig. 32 is received by the call controller 14, the routing to the access circuit routine 122 illustrated in Fig. 4 may direct processor 102 to cause a message to be sent back through the call. Internet 13 shown in the figure for the receiving party's telephone 15, knowing the receiving party's telephone IP address 15 from the user's name.
Alternatively if the routing message is of the type illustrated in Fig. 16, which identifies a domain associated with another node in the system, the call controller may send an invitation message.
SIP along the high speed frame 17 connected to the other node.
another node functions as explained above in response to receiving a SIP invitation message.
842084868
If the forwarding message is of type
<td>illustrated in</td><td>figure 25 where</td><td>There is one</td><td>plurality</td><td>in</td>
<td>Providers</td><td>circuit</td><td>of access</td><td>available,</td><td>O</td>
<td>controller</td><td>call send</td><td>a message</td><td>of invitation</td><td>SIP</td>
to the first provider, in this case Telus, using a dedicated line or an Internet connection to determine whether or not Telus is capable of handling the call. If the Telus access circuit returns a message indicating that it is unable to handle the call, call controller 14 then proceeds to send a SIP invitation message to the next provider, in this case Shaw. 0 This process is repeated until one of the providers responds indicating that it is available to make the call. Once the provider responds by indicating that he is capable of making the call, the provider sends back to the call controller 14 an IP address to a provider-provided access circuit through which the call or audio path of the call can be accomplished. This IP address is sent in a message from call controller 14 to media relay 9 that responds to a message indicating an IP address to which the caller's telephone should send its audio / video, traffic and an IP address to The access circuit must send your audio / video to the call. The call controller carries the IP address at which the media relay expects to receive audio / video from the caller's telephone to the caller's telephone 12 in a message. 0 The caller's telephone answers the call controller with an IP address at which they would like to receive the audio / video and
ΡΕ2084868 call controller carries this IP address to the
<td>media relay. The call</td><td>can then</td><td>to be</td><td>conducted between</td><td>O</td>
<td colspan="2">caller and the receiving party through</td><td>of</td><td>media relay and</td><td>of</td>
<td>access circuit.</td><td></td><td></td><td></td><td></td>
<td>With reference</td><td>again</td><td>The</td><td>figure 1 if</td><td>O</td>
<td>call controller</td><td colspan="2">14 receive</td><td>a message</td><td>in</td>
As shown in Fig. 32, and having at least one call forwarding number and / or a voicemail number, the call controller attempts to establish a call to the receiving party's telephone 15 by searching from the receiving telephone. called by a message indicating an IP address to which the media relay should send audio / video. If no message is received from the receiving party's telephone, no call is made. If no call is made within a predetermined time, call controller 14 attempts to establish a call with the next user identified in the call routing message in the same way. This process is repeated until all call forwarding possibilities have been exhausted, In which case the call controller communicates with the voice mail server 19 identified in the routing message to obtain an IP address to which the media relay must send audio / video and the remainder of the above mentioned process for establishing addresses. IP on the media relay 9 and the caller's telephone is performed to establish audio / video pathways to allow the caller to leave a voicemail message with the voicemail server.
842084868
When an audio / video path through the media relay is established, a call timer maintained by the call controller 14 archives the start date and time of the call and archives the caller ID and route ID (ie IP address). audio / video path) for later billing use.
Live weather
Referring to Figures 33A and 33B, a method of determining a live time value for any of blocks 642 in Figure 8C, 350 in Figure 8A or 564 in Figure 8D above is described. The process is performed by processor 202 illustrated in figure 7. Generally, the process involves calculating a cost per unit time, calculating a first time value as a sum of free time allocated to a participant in the communication session and the quotient of a participant-held balance of funds for cost per unit. unit time value and producing a second time value in response to the first time value and a billing pattern associated with the participant, the billing pattern including first and second billing intervals and the second time value being the time to allow a communication session to be conducted.
Referring to Figure 33A, in this embodiment, the process begins with a first block 700 that directs the RC processor to determine whether or not the type
The ΡΕ2084868 call determined in block 302 in Fig. 8A indicates that the call is a cross domain or network call. If the call is a cross domain or network call, block 702 of Fig. 33A directs the RC processor to set the live time equal to 99999 θ the process is terminated. Thus, the cross domain or network call type has a long live time. If in the block
700 If the call type is determined to be not a cross-domain or network type, block 704 directs the processed RC to obtain a subscriber beam table record from database 18 in figure 1 and store it locally in the RC subscriber beam record store 14.
Referring to Fig. 34, a subscriber beam table record is generally illustrated at 706. The record includes a username field 708 and a service field 710. Username field 708 maintains a code identifying the name. subscriber and service field 710 maintain codes identifying service features assigned to the subscriber, such as free local call, call blocking and voice mail, for example.
Fig. 35 illustrates an illustrative subscriber beam register for the Vancouver caller. In that record the username field 708 is loaded with the username 2001 1050 8667 and the service field
842084868
710 It is loaded with codes 10, 14 and 16 corresponding to the free local call, call block and voicemail respectively. Thus, user 2001 1050 8667 has the features of free local calling, call blocking and voicemail.
Referring again to Fig. 33A, after a subscriber beam register has been loaded into the subscriber beam register store, block 712 directs the RC processor to fetch database 18 to determine whether or not a register exists. elimination table data for the master list ID value that was determined in block 410 in figure 8B. An illustrative beam drop table record is illustrated at 714 in Figure 36. The beam table record includes a master list ID field 716, a delete type field 718, a delete value field 720, a first range field 722, and a second range field 724. The ID field list master 716 maintains a master list ID code. Elimination type field 718 maintains a disposal type code indicating a fixed amount, percentage to indicate the amount by which a rate will be increased. The purge value field 720 maintains a real number representing the value of the purge type. First slot field 722 maintains a value indicating the minimum number of seconds for a first charge level and second slot field 724 maintains a number representing a second charge level.
842084868
Referring to Fig. 37, a beam deletion record for the localized master list ID code is generally illustrated at 726 and includes a master list ID field 716 retaining code 1019 which was the code located in block 410 of FIG. 8B. Elimination type field 718 includes a code indicating that the elimination type is a percentage value and the elimination value field 720 maintains the value 10.0 indicating that the elimination will be 10.0% of the amount charged. The first interval field 722 maintains a value representing 30 seconds and the second interval field 724 maintains a value representing 6 seconds. The 30-second value in the first interval field 722 indicates that forwarding invoices will be performed at a first rate for 30 seconds and thereafter will be invoiced at a different rate in 6-second increments as indicated by the content of the forwarding. second range field 724.
Referring again to Fig. 33A, if in block 712 the processor encounters a beam blanking register of the type illustrated in figure 37, block 728 directs the processor to store the beam blanking register in local memory. In the illustrated embodiment, the beam deletion record shown in Fig. 37 is stored in the RC beam deletion record store as shown in Fig. 7. Still referring to Fig. 33A, block 730 then directs the RC processor to determine whether or not
842084868 subscriber beam table 706 in Fig. 35 has a field of services including a code identifying that the user is entitled to free local calls and also directs the processor to determine whether or not the type of call is not a cross domain cell, that is, it is a local or local / national style. If both of these conditions are met, block 732 directs the processor to set the live time equal to 99999, providing the user with a long period of time for the call. The process is then terminated. If the conditions associated with block 730 are not met, block 734 of Fig. 33B directs the RC processor to retrieve a subscriber account record associated with a call participant. This is done by copying and storing in the subscriber account record store a subscriber account record for the caller.
Referring to Fig. 38, an illustrative subscriber account table record is generally illustrated at 736. The record includes a username field 738, a funds balance field 740, and a free time field 742. Username field 738 maintains a subscriber username, funds balance field 740 maintains a real number representing a dollar amount of credit available to the subscriber, and free time field 742 maintains an integer representing the number of free seconds to which the user is entitled.
842084868
An illustrative subscriber account record for the Vancouver caller is generally illustrated by 744 in Figure 39, where username field 738 retains username 2001 1050 8667, funds balance field 740 retains $ 10.00, and free time field 742 holds the value of 100. The funds balance field holding $ 10.00 indicates that the user has $ 10.00 credits and the free time field having the value of 100 indicates that the user has a 100 second free call time balance.
Referring again to Fig. 33B, after copying and storing the subscriber account register illustrated in Fig. 39 from the database to the RC subscriber account register store, block 746 directs the processor to determine whether or not subscriber account registration fund balance field 740 or free time field 742 is greater than zero. If they are not greater than zero, block 748 directs the processor to determine zero live time and the process terminates. The RC then sends a message back to the call controller to cause the call controller to reject the call to the caller. If the conditions associated with block 746 are met, block 750 directs the processor to calculate the call cost per unit time. A procedure for calculating the call cost per unit time is described below with respect to Fig. 41.
842084868
Assuming that the cost-per-second procedure returns a number representing the cost of the call per second, block 752 directs processor 202 in Figure 7 to determine whether or not the cost per second is zero. If so, block 754 directs the processor to set the live time to 99999 to provide the caller with a long call time and the process is terminated.
If in block 752 the call cost per second is not zero, block 756 directs processor 202 in figure 7 to calculate a first live time value as a sum of a free time allocated to the participant in the communication session and the ratio of the funds held by the participant to the cost per unit time value. To do this, processor 202 of Fig. 7 is directed to setting a first time or temporary time value to the live value equal to the sum of free time provided in the free time field 742 of the subscriber account register illustrated in Fig. 39 and the quotient of the funds balance field content 740 in the subscriber's account register for the call shown in Fig. 39 and the cost per second determined in block 750 of Fig. 33B. So, for example, if in block 750 the cost per second is determined to be three cents per second and the funds balance field holds $ 10.00, the funds balance ratio and the cost per second is 333 seconds and this is added to the contents of free time field 742 which is
842084868 equals 100, resulting in a live time of 433 seconds.
Block 758 then directs the RC processor to produce a second time value in response to the first time value and the billing pattern associated with the participant as established by the beam deletion register illustrated in Fig. 37. This process is illustrated in more detail at 760 in Figure 40 and generally involves the production of a remaining amount representing a portion of the second billing interval remaining after dividing the second billing interval into a difference between the first time value and the first. billing interval.
Referring to Fig. 40, the process for producing the second time value begins with a first block 762 that directs the processor 202 in Fig. 7 to set a remaining value equal to the difference between the calculated live time value in block 756 in FIG. 33b and the contents of the first range field 722 of the record shown in Figure 37, multiplied by the second range field content module 724 of Figure 37. Thus, in the example provided, the difference between the live time field and the first interval field is 433 minus 30, which is equal to 403 and therefore the remainder produced by mod 403 divided by 6 is 0, 17 Block 764 then directs the processor to determine whether or not this remaining value is greater than zero, and if so, block
842084868
766 directs the processor to subtract the remainder of the first time value and set the difference as the second time value. To do this the processor is directed to set the live time value equal to the current live time of 403 minus the remainder of 1, ie 402 seconds. The processor is then returned to block 758 of Fig. 33B.
Referring again to Fig. 40, if in block 764 the remainder is not greater than zero, block 768 directs processor 202 of Fig. 7 to determine whether or not the live time is less than the contents of the first slot field 722 in the register. If so, then block 770 of Fig. 40 directs the processor to set the live time to zero. Thus, the second time value is set to zero when the remainder is greater than zero and the first time value is to infer the free time associated with the call participant. If in block 768 the conditions of this block are not met, the processor returns the first live value time as the second live value time.
Thus, with reference to Fig. 33B, after having produced a second live value time, block 772 directs the processor to configure the live value time for use in blocks 342, 350, or 564.
842084868
Cost Per Second
Referring to Fig. 33B in block 750, it has been explained that a call cost per unit time is calculated. The following explains that the call cost per unit time value is calculated.
Referring to Fig. 41, a process for calculating a unit time cost is generally illustrated at 780. The process is performed by processor 202 in Figure 7 and generally involves locating a record in a database, the record comprising a dial type indicator, a dial value and a billing pattern and resale rate setting. equal to the sum of the markup value and the store rate, locating at least one of a deletion record specifying a route cost per unit time associated with a route associated with the communication session, a dealer record associated with a communications session reseller, the reseller registration specifying a unit time reseller cost associated with the reseller for the communication session and a standard operator marking record specifying a standard unit time cost and setting as the cost per unit time the sum of the reseller fee and at least one of the unit time route cost, the unit time dealer cost, and the standard unit time cost.
The process begins with a first set of blocks 782, 802, and 820 that direct processor 202 in Figure 7 to locate at least one register associated with a dealer and a route associated with the dealer, a register associated with the dealer, and a register dealer markup system. Block 782 in particular directs the processor to address database 18 to search for a record associated with a dealer and a route with the dealer looking for a special rate record based on the master list ID set out in block 410 in Figure 8C.
Referring to Fig. 42, a system operator special rate table record is generally illustrated at 784. The record includes a dealer field 786, a master list ID field 788, a dial type field 790, a dial value field 792, a first range field 794, and a second range field 796. Reseller field 786 maintains a reseller ID code and a master list ID field 788 maintains a list ID code main. The dial type field 790 maintains a dial type such as the fixed percentage or cents and the dial value field 792 maintains a real number representing the value corresponding to the dial type. The first range field 794 holds a number representing a first billing level and the second range field 796 maintains a number representing a second billing level.
842084868
An illustrative system operator special rate table for a dealer known as Klondike is illustrated at 798 in Figure 43. In this record, dealer field 786 maintains a code indicating retailer ID is Klondike, the master list ID field. 788 maintains code 1019 to associate the record with master list ID code 1019. Dial type field 790 holds a code indicating that the dial type is cents and dial value field 792 maintains a dial value indicating 1/10 of a cent. The first interval field 794 keeps the value 30 and the second interval field 796 keeps the value 6, these two fields indicating that the operator allows 30 free seconds and then billing is performed in 6 second increments thereafter.
Referring again to Fig. 41, if in block 782 a register such as shown in Fig. 43 is located in the system operator special rate table, the processor is directed to block 800 in Fig. 41. If such a register is not found In the system operator special rate table, block 802 directs the processor to address database 18 to search a system operator dial table for a dial register associated with the dealer.
Referring to Fig. 44, an illustrative system operator dial table entry is illustrated.
842084868 is usually 804. The record includes an 806 dealer field, an 808 dial type field, an 810 dial value field, a first slot field 812, and a second slot field 814. The dealer dial type , mark value, first interval and second interval fields are as described with respect to the fields by the same names in the system operator special rate table illustrated in Fig. 42.
Figure 45 provides an illustrative system operator dial table entry for the dealer known as Klondike, and therefore dealer field 806 retains the Klondike value, dial type field 808 retains the value cents, markup value field keeps the value 0.01, first range field 812 keeps the value 30, and second range field 814 keeps the value 6. This indicates that dealer Klondike invoices for one cent to one
<td>rate of</td><td>one</td><td>penny</td><td>per minute. The first</td><td> 30</td><td>seconds</td><td>gives</td>
<td>call</td><td>are</td><td>free</td><td>and billing is performed</td><td>at</td><td>rate of</td><td>one</td>
<td>penny</td><td>per</td><td>minute</td><td colspan="2">in 6 second increments.</td><td></td><td></td>
<td></td><td>THE</td><td>figure</td><td>46 provides a record</td><td>in</td><td>table</td><td>in</td>
illustrative system operator markup for cases where no specific system operator markup table record exists for a particular dealer, that is, a standard dealer markup record. This record is similar to the record shown in figure 45 and dealer field 806 retains the value everyone, the field of
842084868 markup type 808 is loaded with a code indicating markup is based on a percentage, markup value field 810 maintains the percentage by which the cost is marked, and first and second interval fields 812 and 814 identify the first and according to billing levels.
Referring again to Fig. 41, if in block 802 a dealer-specific marking register identified in block 782 is not found, block 820 directs the processor to obtain the marking register illustrated in figure 46, having the code all in the field. 806. The processor is then directed to block 800.
Referring again to Fig. 41, at block 800, processor 202 of Fig. 7 is directed to set a reseller rate equal to the sum of the register dial value located by blocks 782, 802, or 820 and the store rate specified by the contents. from the store rate field 516 of the master list record illustrated in figure 20. To do this, the RC processor sets a variable called reseller cost per second to a value equal to the sum of the contents of the associated record dial value field (792, 810), plus the contents of the store rate field ( 516) of the master list record associated with the master list ID. Block 822 then directs the processor to set a system operator cost per second variable equal to the field rate field contents.
842084868 store (516) from the master list entry. Block 824 then directs the processor to determine if the call type indicator indicates that the call is a local or local / national style and whether the caller has a free local call. If both of these conditions are met, then block 826 sets the user cost per second variable to zero and sets two increment variables equal to one for use in further processing. 0 The cost per second can thus be calculated and the process illustrated in Fig. 41 is terminated.
If in block 824 the conditions of that block are not met, processor 202 of FIG. 7 is directed to locate at least one of a beam drop table register specifying a unit time route cost associated with a route associated with the session. communication, a reseller special target table record associated with a communications session reseller, the reseller registration specifying a unit-time reseller cost associated with the reseller for the communication session and a standard global reseller marking record specifying a standard cost per unit time.
To do this, block 828 directs processor 202 of FIG. 7 to determine whether or not the beam deletion register 726 of FIG. 37 located in block 712 in FIG. 33A has a master list ID.
842084868 is the same as the stored master list ID that was determined in block 410 in figure 8B. If not, block 830 directs the processor to find a dealer special destination table record in a dealer special destination table in database (18), having a master list ID code equal to the list ID code master of the master list ID that was determined in block 410 in figure 8B. An illustrative reseller special target table record is illustrated in Figure 47 in 832. The reseller special target table record includes a reseller field 834, a master list ID field 836, a dial type field 838 , a dial value field 840, a first range field 842, and a second range field 844. This record has the same format as the system operator special rate table record shown in Fig. 42, but is stored in a different table to allow different dial types and different values and time intervals to be configured according to dealer preferences. Thus, for example, an illustrative special dealer table record for the Klondike dealer is illustrated at 846 in Figure 48. Reseller field 834 maintains a value indicating the dealer as the Klondike reseller, and the master list ID field retains the code 1019. The dial type field 838 maintains a code indicating that the dial type is a percentage and the value field. Dial number 840 maintains a number representing the dial value as 5%. The fields
First and second interval ΡΕ2084868 identify different billing levels used as described above.
Referring again to Fig. 41, the register illustrated in Fig. 48 may be located in block 830, for example. If at block 830 such a record is not found, then block 832 directs the processor to obtain a standard operator global dial register based on dealer ID.
Referring to Fig. 49, a standard dealer global dial table record is generally illustrated at 848. That record includes a dealer field 850, a dial type field 852, a dial value field 854, a dial field, and a first range 856 and a second range field 858. Reseller field 850 maintains a code identifying the dealer. Dial type field 852, dial value field 854, and first and second interval fields 856 and 858 are of the same type as described with respect to the fields of the same name in Fig. 47, for example. The field contents of this 860 record can be configured according to the preferences of the system operator, for example.
Referring to Figure 50, an illustrative dealer global dial table record is generally illustrated by 860. In that record, dealer field 850 maintains a code indicating the dealer as Klondike, dial type field 852 maintains a
Indicando2084868 code indicating that the markup type is a percentage, markup value field 854 holds a value representing 10% as the markup value, first range field 856 keeps the value 30, and second range field 858 keeps the values 30 and 6 respectively to indicate that the first 30 seconds are free and billing should be done in 6 second increments thereafter.
Referring again to Fig. 41, if the processor moves to block 832, the reseller global dial table record as shown in Fig. 50 is retrieved from the database and stored locally in the RC. As seen in Fig. 41, it should be appreciated that if the conditions are met at blocks 828 and 830, or if the processor executes block 832, the processor is then directed to block 862 which causes it to set a value. equal to the contents of the localized record markup value field, to set the first increment variable equal to the contents of the first range field of the localized record and to set the second increment variable equal to the contents of the second range field of the localized record. (Increment variables were alternatively set to specific values in block 826 of Figure 41).
It will be appreciated that the localized register may be a beam deletion register of the type illustrated in
842084868 Figure 37 or the localized record may be a dealer special destination record of the type shown in Figure 48 or the record may be a global dealer dial table record of the type shown in Figure 50. After elimination and the first and second increment variables have been set in block 862, processor 202 in Figure 7 is directed to set the sum of the dealer rate as a unit cost per time and at least one of the route cost per unit. unit time, the dealer cost per unit time, and the standard cost per unit time, depending on which record was found. To do this, block 864 directs the processor to set the unit time cost equal to the sum of dealer cost determined in block 800 in figure 41, plus the contents of the elimination variable calculated in block 862 in figure 41. unit time was thus calculated and it is this cost per unit time that is used in block 752 of Fig. 33B, for example.
Call Termination
In the event that the caller or caller terminates a call, the telephone of the terminating party sends a SIP farewell message to controller 14. An illustrative SIP farewell message is illustrated at 900 in Fig. 51 and includes a caller field 902, a calling field 90 4, and a calling ID field 90 6. Caller field 902 holds a twelve digit username, caller field 904 maintains a PSTN or username compatible number and caller ID field 906
842084868 maintains a unique receiver identifier field of the type illustrated in caller ID field 65 of the SIP invitation message illustrated in figure 3.
Thus, for example, with reference to Fig. 52, a goodbye SIP message to the receiving Calgary party is generally illustrated at 908 and the calling field 902 maintains a username identifying the receiving party, in this case 2001 1050 8667, the The receiving party field 904 maintains a user name identifying the Calgary call, in this case 2001 1050 2222, and the caller ID field 906 holds the FAIO code @ 192.168.0.20, which is the caller ID for the call.
The goodbye SIP message illustrated in Fig. 52 is received at call controller 14 and the call controller performs a process as generally illustrated at 910 in Fig. 53. The process includes a first block 912 that directs the call controller processor 202 of Fig. 7 to copy the caller ID, receiving party, and caller field contents of the SIP goodbye message received from the terminating party to the corresponding fields. of an RC interrupt message store (not shown). Block 914 then directs the processor to copy the call start time from the call timer and to obtain a call break time from the call timer. Block 916 then directs the call controller to calculate a communication session time by
ΡΕ2084868 Determining the difference in time between call start time and call break time. This session time is then stored in a corresponding field of the RC call interrupt message store. Block 917 then directs the processor to reduce the contents of the current simultaneous call field 277 of the dialing profile to the caller as illustrated in Figure 10, to indicate that there is one less concurrent call in progress. A copy of the amended dialing profile for the caller is then stored in database 18 of Fig. 1. Block 918 then directs the processor to copy the route from the call file. An RC call interrupt message produced as described above is generally illustrated at 1000 in Fig. 54. An RC call interrupt message specifically associated with the call made for the Calgary call is generally illustrated by 1020 in Fig. 55.
Referring to Fig. 54, the RC interrupt call message includes a caller field 1002, a caller field 0404, a caller ID field 1006, an account start time field 1008, a caller time field account interrupt 1010, a communication session time 1012 and a route field 1014. Caller field 1002 maintains a username, call field 1004 maintains a PSTN-compatible number or system number, caller ID 1006 maintains the unique receiver identifier received from the SIP invitation message illustrated in Figure 3, the field of
ΡΕ2084868 account start time 1008 keeps the call start date and time, account close field 1010 keeps the call end date and time, communication session time field 1012 keeps a value representing the difference between start time and end time, in seconds, and route field 1014 maintains the IP address for the communications link that has been established.
Referring to Fig. 55, an RC interrupt call message for the Calgary call is illustrated at 1020. In this example, caller field 1002 retains the username 2001 1050 8667 identifying the Vancouver-based caller and the called field. 1004 retains the 2001 username 1050 2222 identifying the Calgary ticket. The content of caller ID field 1006 is FAIO @ 192.168.0.20. The content of account start time field 1008 is 2006-12-30 12:12:12 and the content of account break time field is 2006-12-30 12:12:14. Communication session time field content 1012 is 2 to indicate call duration of 2 seconds and route field content is 72.64.39.58.
Referring again to Fig. 53, having produced an RC call interrupt message, block 920 directs the processor 202 of Fig. 7 to send the compiled RC interrupt message in the RC call interrupt message store to the
842084868
RC 16 of FIG. 1. Block 922 directs call controller 14 to send a goodbye message back to the non-terminating party.
<td> 0</td><td>RC</td><td>16 of</td><td colspan="2">figure</td><td>1 receive</td><td>The</td><td>message</td><td>in</td>
<td>interruption</td><td>in</td><td>call</td><td>and</td><td>one</td><td>process</td><td>in</td><td>message</td><td>in</td>
<td>interruption</td><td>in</td><td>call</td><td>RC</td><td colspan="2">is invoked in</td><td>RC,</td><td colspan="2">the process</td>
<td colspan="2">being illustrated</td><td>at 950</td><td>in the</td><td colspan="2">figures 56A,</td><td>5 6B</td><td>and 58 ° C.</td><td>With</td>
<td>reference</td><td>The</td><td colspan="2">figure 56a,</td><td> 0</td><td>process</td><td>in</td><td>message</td><td>in</td>
<td>interruption</td><td>RC</td><td colspan="2">950 begins</td><td>with</td><td colspan="3">a first block 952</td><td>what</td>
<td>directs the</td><td colspan="2">processor</td><td> 202</td><td>at</td><td>figure 7 a</td><td>stop</td><td>end up</td><td>or</td>
no communication session time is less than or equal to the first increment value determined by the costing routine illustrated in figure 41, specifically blocks 826 and 862. If this condition is met, then block 954 of figure 56A directs the RC processor to set a billable time variable equal to the first increment value determined in block 826 or 862 of Fig. 41. If in block 952 of Fig. 56a the condition is not met, block 956 directs the RC processor to set a remaining variable equal to the difference between the communication session time and the first increment value mod the second increment value produced in the block. 826 or 862 of Fig. 41. Then the processor is directed to block 958 of Fig. 56a which directs it to determine whether or not the remainder is greater than zero. If so, block 960 directs the RC processor to determine the billable time variable equal to the difference between
842084868 communication session and the remaining value. If in block 958 the remainder is not greater than zero, block 962 directs the processed RC to determine the billable time variable equal to the communication session time content from the RC interrupt message. The processor is then directed to block 964. Additionally, after execution of block 954 or block 960, the processor is directed to block 964.
Block 964 directs processor 202 of the figure to determine whether or not the billable time variable is greater than or equal to the free time balance as determined from the free time field 742 of the subscriber account register illustrated in the figure. 39. If this condition is met, block 966 of Fig. 56A directs the processor to determine the free time field 742 in the register illustrated in Fig. 39 to zero.
If the billable time variable is not greater than or equal to the free time balance, block 968 directs the RC processor to set a user cost variable to zero, and block 970 then reduces the free time field 742 of the subscriber's account registration to the caller for the amount of billable time determined by block 954, 960, or 962.
If in block 964 the processor 202 of figure 7 is directed to block 966 which causes the free time field (742 in figure 39) to be set to zero with reference to figure 56b, block 972 directs the
Processador2084868 processor to determine a remaining billable time variable equal to the difference between the billable time and the contents of the free time field (742 in figure 39). Block 974 then directs the processor to determine the user cost variable equal to the product of the remaining billable time and the cost per second calculated at block 750 in figure 33b. Block 976 then directs the processor to reduce the funds balance field 740 of the subscriber account register illustrated in Fig. 39 by the content of the calculated user cost variable in block 974.
After completing block 976 or after completing block 970 in Fig. 56A, block 978 of Fig. 56b directs processor 202 of Fig. 7 to calculate a reseller cost variable as the reseller rate product as indicated in the field. dial value 810 of the system operator dial table register illustrated in Fig. 45 and the communication session time determined in block 916 in Fig. 53. Then, block 980 of Fig. 56B directs the processor to add reseller cost to reseller balance field 986 of a reseller account record of the type illustrated in Fig. 57 at 982.
The reseller account registration includes a reseller ID field 984 and the reseller balance field mentioned above 98 6. The reseller ID field 984 maintains a reseller ID code, and the reseller balance field.
842084868 986 reseller maintains an accumulated billing balance.
Referring to Fig. 58, a specific reseller account record for the Klondike reseller is generally illustrated at 988. In that record the reseller ID field 984 maintains a code representing the Klondike reseller and the reseller balance field 986 maintains a balance. from $ 100.02. Thus, the contents of the dealer balance field 98 6 in figure 58 is incremented by the dealer cost calculated in block 978 of figure 56B.
Still referring to Fig. 56B, after adding reseller cost to the reseller balance field as indicated in block 980, block 990 directs processor 202 of figure 7 to calculate a system operator cost as the product of system operator per second as determined in block 822 in FIG. 41 and the communication session time as determined in block 916 in FIG. 53. Block 992 then directs the processor to add the calculated system operator cost value in block 990 to a system operator account table record of the type illustrated in 994 in Figure 59. That record includes an operator balance field. system 996 keeping a balance of accrued invoices. Referring to Fig. 60 in the described embodiment, the system operator balance field 996 may hold the value of $ 1,000.02 for example, and to this value the system operator cost calculated in block 990 is added.
842084868 when the processor executes block 992 of Fig. 56B.
Finally, the final reseller balance 986 of Fig. 58 holds a number representing an amount due to the reseller by the system operator and the system operator balance 996 of Fig. 59 maintains a number representing a profit amount to the system operator.
While specific embodiments of the invention have been described and illustrated, such embodiments are to be considered illustrative of the invention only and not as limiting the invention as considered in accordance with the appended claims.
Contents3
64 members in 14 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 85621206 | United States of America | P | |
| 85621206 | United States of America | P | |
| US20060856212P | – | – | – |
Members64
| Document | Office | Kind | |
|---|---|---|---|
| CA2668025A1 | Canada | A1 | |
| CA2916217A1 | Canada | A1 | |
| CA2916220A1 | Canada | A1 | |
| CA3032707A1 | Canada | A1 | |
| CA3045672A1 | Canada | A1 | |
| CA3045681A1 | Canada | A1 | |
| CA3045683A1 | Canada | A1 | |
| CA3045694A1 | Canada | A1 | |
| CA3103310A1 | Canada | A1 | |
| WO2008052340A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2008052340A8 | World Intellectual Property Organization (WIPO) | A8 | |
| EP2084868A1 | European Patent Office (EPO) | A1 | |
| KR20090086428A | Republic of Korea | A | |
| MX2009004811A | Mexico | A | |
| CN101584166A | China | A | |
| US2010150328A1 | United States of America | A1 | |
| EP2084868A4 | European Patent Office (EPO) | A4 | |
| US8542815B2 | United States of America | B2 | |
| BRPI0718312A2 | Brazil | A2 | |
| US2013329722A1 | United States of America | A1 | |
| US2014010119A1 | United States of America | A1 | |
| US2014016764A1 | United States of America | A1 | |
| US8774378B2 | United States of America | B2 | |
| US2014321333A1 | United States of America | A1 | |
| US9137385B2 | United States of America | B2 | |
| US9179005B2 | United States of America | B2 | |
| US2016006882A1 | United States of America | A1 | |
| US2016028619A1 | United States of America | A1 | |
| US9537762B2 | United States of America | B2 | |
| US2017111265A1 | United States of America | A1 | |
| US2017126752A1 | United States of America | A1 | |
| US9813330B2 | United States of America | B2 | |
| US9826002B2 | United States of America | B2 | |
| US2018034729A1 | United States of America | A1 | |
| US2018041427A1 | United States of America | A1 | |
| US9935872B2 | United States of America | B2 | |
| US9948549B2 | United States of America | B2 | |
| EP2084868B1 | European Patent Office (EPO) | B1 | |
| US9998363B2 | United States of America | B2 | |
| US2018227222A1 | United States of America | A1 | |
| DK2084868T3 | Denmark | T3 | |
| ES2685443T3 | Spain | T3 | |
| EP3386155A1 | European Patent Office (EPO) | A1 | |
| PT2084868TThis record | Portugal | T | |
| PL2084868T3 | Poland | T3 | |
| US10218606B2 | United States of America | B2 | |
| HUE040485T2 | Hungary | T2 | |
| CA2916217C | Canada | C | |
| US2019199621A1 | United States of America | A1 | |
| HK1256252A | Hong Kong, China | A | |
| HK1256252A1 | Hong Kong, China | A1 | |
| CA2916220C | Canada | C | |
| CA2668025C | Canada | C | |
| BRPI0718312B1 | Brazil | B1 | |
| CA3045672C | Canada | C | |
| CA3032707C | Canada | C | |
| CA3045694C | Canada | C | |
| CA3045681C | Canada | C | |
| CA3045683C | Canada | C | |
| US11171864B2 | United States of America | B2 | |
| US2022070088A1 | United States of America | A1 | |
| CA3103310C | Canada | C | |
| US12395425B2 | United States of America | B2 | |
| US2025373732A1 | United States of America | A1 |
Numbers
- Publication, DOCDB
- 2084868
- Publication, EPODOC
- PT2084868T
- Application
- 816106
- Application, DOCDB
- 07816106
- Application, EPODOC
- PT20070816106T
Titles2
- English
- PRODUCING ROUTING MESSAGES FOR VOICE OVER IP COMMUNICATIONS
- Portuguese
- PRODUÇÃO DE MENSAGENS DE ENCAMINHAMENTO PARA COMUNICAÇÕES DE VOZ ATRAVÉS DE IP
Classification
- CPC, 33
- H04L9/3226
- H04M15/63
- H04L12/28
- H04L45/3065
- H04L12/1439
- H04L12/1496
- H04L12/66
- H04Q3/66
- H04L12/14
- H04Q3/70
- H04Q2213/13091
- H04Q2213/13141
- H04Q2213/13196
- H04Q2213/1322
- H04Q2213/13384
- H04M7/0075
- H04M15/56
- H04M15/51
- H04M15/8033
- H04M15/8083
- H04M15/8055
- H04M15/06
- H04L61/5007
- A61K39/39558
- A61K45/06
- C07K16/18
- H04M15/8228
- H04M15/887
- H04M15/888
- H04M3/4211
- H04M7/006
- H04L65/1033
- H04L65/1069
- IPC, 10
- H04L12 66
- H04L45 42
- H04L12 14
- H04M3 42
- H04M7 00
- H04M11 06
- H04M15 00
- H04Q3 64
- H04Q3 66
- H04Q3 70