CA3045694C

Producing routing messages for voice over ip communications

Abstract

Routing a communication between first and second participants involves causing a controller to receive on an IP network, from a first participant device, a first participant identifier and a second participant identifier to locate first and second participant profiles respectively. At least part of the second participant identifier is compared with at least one attribute contained in the first participant user profile and, based on the comparison, the communication is classified as a system communication or an external network communication whereupon a system routing message identifying an Internet address of a communication system node associated with the second participant device based on the user profile for the second participant is produced, or an external network routing message identifying an Internet address of a gateway to an external network is produced. The produced routing message thus indicates how the communication should be routed.

CA3045694C, drawing sheet 1
Sheet 1 of 32

Term

1.1 yearsleft in the term

Expires 1 November 2027.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

33 claims: 26 independent, 7 dependent

  1. 1
    EMBODIMENTS IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:1. A method for routing a communication in a communication system between an Internet-connected first participant device associated with a first participant and a second participant device associated with a second participant, the method comprising: in response to initiation of the communication by the first participant device, receiving, by a controller comprising at least one processor, over an Internet protocol (IP) network a first participant identifier and a second participant identifier;causing the at least one processor to access at least one database comprising user profiles using the first participant identifier, each user profile comprising a respective plurality of attributes for a respective user, to locate a user profile for the first participant including a plurality of first participant attributes;comparing at least a portion of the second participant identifier, using the at least one processor, with at least one of the plurality of first participant attributes obtained from the user profile for the first participant;causing the at least one processor to access the at least one database to search for a user profile for the second participant;classifying the communication, based on the comparing, as a system communication or an external network communication, using the at least one processor;CA 3045694 2019-06-07 -57when the communication is classified as a system communication, producing a system routing message identifying an Internet address of a communication system node associated with the second participant device based on the user profile for the second participant, using the at least one processor, wherein the system routing message causes the communication to be established to the second participant device;and when the communication is classified as an external network communication, producing an external network routing message identifying an Internet address associated with a gateway to an external network, using the at least one processor, wherein the external network routing message causes the communication to the second participant device to be established using the gateway to the external network.
  2. 4
    The method of any one of claims 1 to 3, wherein:(a) the causing the at least one processor to access the at least one database to search for the user profile for the second participant is based on the comparing at least a portion of the second participant identifier with the at least one of the plurality of first participant attributes;and (b) the classifying the communication is based on the causing the at least one processor to access the at least one database to search for the user profile for the second participant.
  3. 5
    The method of any one of claims 1 to 4, further comprising:accessing the at least one database to locate communication blocking information for the second participant, using the at least one processor;and blocking the communication when the communication blocking information identifies the first participant identifier.
  4. 6
    The method of any one of claims 1 to 5, further comprising:accessing the at least one database to locate communication forwarding information for the second participant, using the at least one processor;and wherein classifying the communication is based on the communication forwarding information for the second participant. CA 3045694 2019-06-07
  5. 8
    The method of any one of claims 1 to 7, further comprising:processing a plurality of communications from the first participant device to a plurality of communication recipient devices to classify each of the plurality of communications as a system communication or an external network communication, wherein the plurality of communications are concurrent;and producing a respective plurality of routing messages, based on the classifying of each respective one of the plurality of communications, each respective routing message identifying an Internet address associated with a recipient device or identifying an Internet address associated with a gateway to an external network.
  6. 9
    The method of any one of claims 1 to 8, further comprising updating the first participant profile, via the at least one processor, to cause at least one of the plurality of first participant attributes to be modified.
  7. 10
    The method of any one of claims 1 to 9, wherein the external network routing message comprises a code identifying a communication supplier associated with the gateway to the external network.
  8. 11
    The method of any one of claims 1 to 5, wherein the Internet address of the communication system node comprises a first Internet address and wherein the second participant CA 3045694 2019-06-07 -60device uses a second Internet address distinct from the first Internet address;wherein the user profile for the second participant is associated with communication forwarding information identifying at least one other destination device for the communication;and wherein the at least one processor is further operably configured to use the communication forwarding information associated with the second participant to cause the communication system node to establish the communication to the at least one other destination device using a third Internet address distinct from the first and second Internet addresses.
  9. 12
    The method of any one of claims 1 to 11, further comprising causing the at least one processor to:determine whether the second participant device is operably configured to communicate via the Internet;and if the second participant device is not operably configured to communicate via the Internet, classify the communication as the external network communication.
  10. 13
    The method of any one of claims 1 to 12, further comprising causing the at least one processor to:determine whether the user profile for the second participant exists in the at least one database;and CA 3045694 2019-06-07 -61 if the user profile for the second participant does not exist in the at least one database, classify the communication as the external network communication.
  11. 14
    The method of any one of claims 1 to 13, further comprising causing the at least one processor to:if the user profile for the second participant exists in the at least one database, classify the communication as the system communication.
  12. 15
    The method of any one of claims 1 -14, wherein the communication comprises a voice-over-IP (VoIP) communication.
  13. 16
    The method of any one of claims 1 -14, wherein the communication comprises at least one of video data traffic and message traffic.
  14. 17
    The method of any one of claims 1-16, wherein at least one of the system routing message and the external network routing message is communicated to a call controller to effect routing of the communication.
  15. 18
    A non-transitory computer readable medium encoded with program code for directing the at least one processor to execute the method of any one of claims 1 to 17.
  16. 19
    An apparatus for routing communications in a communication system that includes an Internet-connected first participant device associated with a first participant, the first participant device operable to initiate a communication to a second participant device associated with a second participant, the apparatus comprising:CA 3045694 2019-06-07 -62a controller comprising at least one processor in communication with at least one memory storing processor readable instructions, wherein the at least one processor is operably configured by the processor readable instructions to: in response to initiation of the communication by the first participant device, receive over an Internet protocol (IP) network a first participant identifier and a second participant identifier;access at least one database comprising user profiles using the first participant identifier, each user profile comprising a respective plurality of attributes for a respective user, to locate a user profile for the first participant including a plurality of first participant attributes;compare at least a portion of the second participant identifier with at least one of the plurality of first participant attributes obtained from the user profile for the first participant to generate a comparison result;access the at least one database to search for a user profile for the second participant;classify the communication, based on the comparison result, as a system communication or an external network communication;when the communication is classified as a system communication, produce a system routing message identifying an Internet address of a communication system node associated with the second participant device based on the user profile for the second participant, wherein the system routing message causes the CA 3045694 2019-06-07 -63communication to be established to the second participant device;and when the communication is classified as an external network communication, produce an external network routing message identifying an Internet address associated with a gateway to an external network, wherein the external network routing message causes the communication to the second participant device to be established using the gateway to the external network.
  17. 22
    The apparatus of any one of claims 19 to 20, wherein the at least one processor is further operably configured to:access the at least one database to locate communication forwarding information, associated with the second participant, comprising a plurality of destination identifiers;and use the communication forwarding information associated with the second participant to classify the communication.
  18. 23
    The apparatus of any one of claims 19 to 22, wherein the at least one processor is further operably configured to:process a plurality of communications from the first participant device to a plurality of communication recipient devices to classify each of the plurality of communications as a system communication or an external network communication, wherein the plurality of communications are concurrent;and produce a respective plurality of routing messages, based on the classifying of each respective one of the plurality of communications, each respective routing message identifying an Internet address associated with a recipient device or identifying an Internet address associated with a gateway to an external network.
  19. 24
    An apparatus for routing communications in a communication system that includes an Internet-connected first participant device associated with a first participant, the first participant device operable to initiate a communication to a second participant device associated with a second participant, the apparatus comprising:CA 3045694 2019-06-07 -65a controller comprising at least one processor in communication with at least one memory storing processor-readable instruction codes, wherein the at least one processor is operably configured by the processorreadable instruction codes to: in response to initiation of the communication by the first participant device over the Internet, receive a first participant identifier and a second participant identifier;access at least one database comprising user profiles using the first participant identifier, each user profile comprising a respective plurality of attributes for a respective user, to locate a user profile for the first participant including a plurality of first participant attributes;compare at least a portion of the second participant identifier with at least one of the plurality of first participant attributes obtained from the user profile for the first participant to generate a comparison result;access the at least one database to search for a user profile for the second participant and communication blocking information for the second participant;classify the communication, based on at least one of the comparison result and the communication blocking information for the second participant, as a system communication, an external network communication or a blocked communication;when the communication is classified as a system communication, produce a system routing message identifying a first Internet address CA 3045694 2019-06-07 -66associated with the second participant device, causing the communication to be established entirely over an Internet protocol (IP) network;and when the communication is classified as an external network communication, produce an external routing message identifying an Internet address associated with a gateway to a network that is external to the communication system, causing a portion of a path taken by the communication to be established over a circuit switched network.
  20. 27
    The apparatus of any one of claims 24 to 26, wherein the first Internet address associated with the second participant device comprises an IP address or domain name of a communication system node associated with the second participant device, the communication system node being one of a plurality of communication system nodes each operably configured to provide communications services to a plurality of communication system subscribers.
  21. 28
    The apparatus of any one of claims 24 to 27, wherein the external routing message comprises a code identifying a communication supplier associated with the gateway to the network that is external to the communication system.
  22. 29
    The apparatus of any one of claims 24 to 28, wherein the at least one processor is further operably configured to:access the at least one database to locate communication forwarding information, associated with the second participant, comprising a plurality of destination identifiers;and use the communication forwarding information associated with the second participant to classify the communication.
  23. 30
    The apparatus of any one of claims 24 to 29, wherein the at least one processor is further operably configured to:determine whether the second participant device is operably configured to communicate via the Internet;and if the second participant device is not operably configured to communicate via the Internet, classify the communication as the external network communication. CA 3045694 2019-06-07
  24. 31
    The apparatus of any one of claims 24 to 30, wherein the at least one processor is further operably configured to:determine whether the user profile for the second participant exists in the at least one database;and if the user profile for the second participant does not exist in the at least one database, classify the communication as the external network communication.
  25. 32
    The apparatus of any one of claims 24 to 31, wherein the at least one processor is further operably configured to:if the user profile for the second participant exists in the at least one database, classify the communication as the system communication, wherein the first Internet address associated with the second participant device is determined based on the user profile for the second participant.
  26. 33
    The apparatus of any one of claims 24 to 32, wherein producing the external routing message comprises causing the at least one processor to select the Internet address associated with the gateway from among a plurality of Internet addresses associated with a respective plurality of gateways to the network that is external to the communication system, and wherein the external routing message comprises a code identifying a communication supplier associated with the gateway.
Independent claims26