CA3045683C

Producing routing messages for voice over ip communications

Abstract

When a first participant device initiates a communication to a second participant device, a first participant identifier is used to locate a first participant profile comprising one or more attributes associated with the first participant. A second participant identifier is processed based on an attribute from the first participant profile, to produce a new second participant identifier. The communication is classified, using the new second participant identifier, as a first or send network communication depending on whether first or second classification criteria are met. The second network classification criterion is met if the second participant is not registered with the system. A first network routing message identifying an address associated with the second participant device is produced when the first classification criteria are m .t and a second network routing message, identifying an address associated with a gateway to a network external to the system is produced when the second classification criteria are met.

CA3045683C, 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

77 claims: 53 independent, 24 dependent

  1. 1
    EMBODIMENTS IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:1. A method of routing communications in a system in which a first participant identifier is associated with a first participant registered with the system and wherein a second participant identifier is associated with a second participant, the first participant being associated with a first participant device operable to establish a communication using the system to a second participant device associated with the second participant, the system comprising at least one processor operably configured to execute program code stored in at least one memory, the method comprising: in response to the first participant device initiating the communication to the second participant device, receiving the first participant identifier and the second participant identifier from the first participant device;using the first participant identifier to locate, via the at least one processor, a first participant profile from among a plurality of participant profiles that are stored in a database, the first participant profile comprising one or more attributes associated with the first participant;processing the second participant identifier, via the at least one processor, based on at least one of the one or more attributes from the first participant profile, to produce a new second participant identifier;classifying the communication, via the at least one processor, using the new second participant identifier, as a first network communication if a first network classification criterion is met and as a second network communication if a second network classification criterion is met;CA 3045683 2019-06-07 -61 when the first network classification criterion is met, producing, via the at least one processor, a first network routing message, the first network routing message identifying an address in the system, the address being associated with the second participant device;and when the second network classification criterion is met, producing, via the at least one processor, a second network routing message, the second network routing message identifying an address associated with a gateway to a network external to the system, wherein the second network classification criterion is met if the second participant is not registered with the system.
  2. 4
    The method of any one of claims 1 to 3, further comprising:updating the first participant profile to cause at least one of the one or more attributes to be modified.
  3. 5
    The method of any one of claims 1 to 4, wherein the classifying comprises:CA 3045683 2019-06-07 -62causing a database of records to be searched with the new second participant identifier.
  4. 7
    The method of any one of claims 1 to 4, wherein the classifying comprises:causing a database of records to be searched with the new second participant identifier and determining whether the second participant is registered with the system.
  5. 9
    The method of any one of claims 1 to 8, wherein the processing comprises:comparing at least one of the one or more attributes from the first participant profile with at least a portion of the second participant identifier.
  6. 11
    The method of any one of claims 1 to 9, wherein the processing comprises at least one of:removing an international dialing digit (IDD) from the second participant identifier;removing a national dialing digit (NDD) from the second participant identifier and prepending a first participant country code to the second participant identifier;prepending a first participant country code to the second participant identifier;and prepending a first participant country code and area code to the second participant identifier. CA 3045683 2018-06-07
  7. 12
    The method of any one of claims 1 to 11, wherein the system comprises an IP network and the first participant device is in data communication with the IP network, wherein the first network routing message causes the communication to take place entirely over the IP network, and wherein the network external to the system is a circuit switched network.
  8. 14
    The method of any one of claims 1 to 13, wherein the second participant identifier is a plurality of dialing digits.
  9. 15
    The method of any one of claims 1 to 14, wherein the new second participant identifier is in a pre-defined format.
  10. 17
    The method of any one of claims 1 to 16, wherein if the first network classification criterion is met, the second participant is registered with the system.
  11. 18
    The method of any one of claims 1 to 16 further comprising registering the second participant with the system including storing a second participant profile comprising one or more attributes associated with the second participant in the plurality of participant profiles that are stored in the database. CA 3045683 2019-06-07
  12. 19
    The method of any one of claims 1-18, wherein the communication comprises a voice-over-IP (VoIP) communication.
  13. 20
    The method of any one of claims 1-18, wherein the communication comprises at least one of video data traffic and message traffic.
  14. 21
    The method of any one of claims 1 - 20, wherein the at least one of the first and second network routing messages is communicated to a call controller to effect routing the communication.
  15. 22
    A non-transitory computer readable medium encoded with program code for directing the at least one processor to execute the methods of any one of claims 1 to 21.
  16. 23
    A system for routing communications in which a first participant is registered with the system and has an associated first participant identifier and wherein a second participant has an associated second participant identifier, the first participant being associated with a first participant device operable to establish a communication using the system to a second participant device associated with the second participant, the system comprising; a controller comprising:at least one processor operably configured to access at least one memory, wherein the at least one processor is operably configured to: CA 3045683 2019-06-07 -66in response to the first participant device initiating the communication, receive the first participant identifier and the second participant identifier from the first participant device;locate, using the first participant identifier, a first participant profile from among a plurality of participant profiles that are stored in a database, the first participant profile comprising one or more attributes associated with the first participant;process the second participant identifier, based on at least one of the one or more attributes, to produce a new second participant identifier;classify the communication, using the new second participant identifier, as a first network communication if a first network classification criterion is met and as a second network communication if a second network classification criterion is met;produce a first network routing message when a first network classification criterion is met, the first network routing message identifying an address in the system, the address being associated with the second participant device;and produce a second network routing message when the second network classification criterion is met, the second network routing message identifying an address associated with a gateway to a network external to the system, wherein the second network classification criterion is met if the second participant is not registered with the system. CA 3045683 2019-06-07
  17. 26
    The system of any one of claims 23 to 25, wherein the at least one processor is operably configured to:cause a database of records to be searched using the new second participant identifier and determine whether the second participant is registered with the system.
  18. 28
    The system of any one of claims 23 to 25, wherein the at least one processor is operably configured to:cause a database of records to be searched using the new second participant identifier.
  19. 30
    The system of any one of claims 23 to 29, wherein the at least one processor is operably configured to:compare at least one of the one or more attributes with at least a portion of the second participant identifier.
  20. 32
    The system of any one of claims 23 to 29, wherein the at least one processor is operably configured to perform at least one of:remove an international dialing digit (IDD) from the second participant identifier;remove a national dialing digit (NDD) from the second participant identifier and prepend a first participant country code to the second participant identifier;prepend a first participant country code to the second participant identifier;and prepend a first participant country code and area code to the second participant identifier.
  21. 33
    The system of any one of claims 23 to 32, wherein the system comprises an IP network and the first participant device is in data communication with the IP network, wherein the first network routing message causes the CA 3045683 2018-06-07 -70communication to take place entirely over the IP network, and wherein the network external to the system is a circuit switched network.
  22. 35
    The system of any one of claims 23 to 34, wherein the second participant identifier is a plurality of dialing digits.
  23. 36
    The system of any one of claims 23 to 35, wherein the at least one processor is further operably configured to:update the first participant profile to cause at least one of the one or more attributes to be modified.
  24. 37
    The system of any one of claims 23 to 36, wherein the new second participant identifier is in a pre-defined format.
  25. 39
    The system of any one of claims 23 to 38, wherein if the first network classification criterion is met, the second participant is registered with the system.
  26. 40
    The system of any one of claims 23 to 38, wherein the controller is further operably configured to register the second participant with the system including to store a second participant profile in the plurality of participant profiles that are stored in the database. CA 3045683 2018-06-07
  27. 41
    A method of 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, the second participant identifier being associated with the second participant device;causing the at least one processor to access a database comprising user profiles, using the first participant identifier, each user profile associating a respective plurality of attributes with a respective user, to locate a plurality of first participant attributes;processing the second participant identifier, using the at least one processor, based on at least one of the plurality of first participant attributes obtained from a user profile for the first participant, to produce a new second participant identifier;classifying the communication, based on the new second participant identifier, as a system communication or an external network communication, using the at least one processor;when the communication is classified as a system communication, producing a system routing message identifying an Internet address associated with the second participant device, using the at least one CA 3045683 2018-06-07 -72processor, 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.
  28. 44
    The method of any one of claims 41 to 43, wherein classifying the communication further comprises causing the at least one processor to:determine whether a user profile associated with the new second participant identifier exists in the database;and if a user profile associated with the new second participant identifier does not exist in the database, classify the communication as the external network communication.
  29. 47
    The method of any one of claims 41 to 43, wherein classifying the communication further comprises causing the at least one processor to:determine whether a user profile associated with the new second participant identifier exists in the database;if a user profile associated with the new second participant identifier does not exist in the database, classify the communication as the external network communication;and CA 3045683 2018-06-07 -74if a user profile associated with the new second participant identifier exists in the database, classify the communication as the system communication, wherein the Internet address associated with the second participant device is based on the user profile associated with the new second participant identifier.
  30. 48
    The method of any one of claims 41 to 47, 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.
  31. 49
    The method of any one of claims 41 to 48, wherein processing the second participant identifier comprises causing the at least one processor to modify the second participant identifier, based on at least one of the plurality of first participant attributes, to produce the new second participant identifier.
  32. 50
    The method of any one of claims 41 to 43, CA 3045683 2019-06-07 -75wherein producing the system routing message comprises causing the at least one processor to determine the Internet address associated with the second participant device based on a user profile for the second participant.
  33. 51
    The method of any one of claims 41 to 50, wherein producing the external network routing message comprises causing the at least one processor to select the Internet address associated with the gateway to the external network from among a plurality of Internet addresses associated with a respective plurality of gateways to the external network, and wherein the external network routing message comprises a code identifying a communication supplier associated with the gateway to the external network.
  34. 52
    The method of any one of claims 41 to 51, wherein the Internet address associated with the second participant device comprises an IP address or domain name of a first communication system node associated with the second participant device, the first 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.
  35. 54
    The method of any one of claims 41 to 53, further comprising:accessing the database to locate communication blocking information associated with the second participant, using the at least one processor;and blocking the communication when the communication blocking information identifies the first participant identifier.
  36. 55
    The method of any one of claims 41 — 54, wherein the communication comprises a voice-over-IP (VoIP) communication.
  37. 56
    The method of any one of claims 41 - 54, wherein the communication comprises at least one of video data traffic and message traffic. CA 3045683 2018-06-07
  38. 57
    The method of any one of claims 41 - 56, 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.
  39. 58
    A non-transitory computer readable medium encoded with program code for directing at least one processor to execute the method of any one of claims 41 to 57.
  40. 59
    A method of 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 over the Internet, receiving, by a controller comprising at least one processor, a first participant identifier and a second participant identifier, the second participant identifier being associated with the second participant device;causing the at least one processor to access at least one database using the first participant identifier, the at least one database comprising user profiles and each user profile associating a respective plurality of attributes with a respective user, to locate a plurality of first participant attributes including at least one user-specific attribute associated with the first participant;processing the second participant identifier, using the at least one processor, based on at least one of the plurality of first participant attributes obtained from a user profile for the first participant to produce a new second participant identifier;CA 3045683 2019-06-07 determining whether a user profile associated with the new second participant identifier exists in the at least one database;classifying the communication, based on the new second participant identifier, as a system communication if a user profile associated with the new second participant identifier exists in the at least one database, and as an external network communication if a user profile associated with the new second participant identifier does not exist in the at least one database;when the communication is classified as a system communication, using the at least one processor to produce a system routing message identifying an Internet address associated with the second participant device based on the user profile associated with the new second participant identifier, causing the communication to be established entirely over an Internet protocol (IP) network;when the communication is classified as an external network communication, using the at least one processor to produce an external network routing message identifying an Internet address associated with a gateway to an external network, causing at least a portion of a path taken by the communication to be established over a circuit switched network;and updating the at least one database to cause at least one of the plurality of first participant attributes to be modified.
  41. 62
    The method of any one of claims 59 - 61, wherein the communication comprises a voice-over-IP (VoIP) communication.
  42. 63
    The method of any one of claims 59 - 61, wherein the communication comprises at least one of video data traffic and message traffic.
  43. 64
    The method of any one of claims 59 - 63, wherein the 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.
  44. 65
    A non-transitory computer readable medium encoded with program code for directing at least one processor to execute the method of any one of claims 59 to 64.
  45. 66
    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:a 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 CA 3045683 2019-06-07 -81 participant identifier and a second participant identifier, the second participant identifier being associated with the second participant device;access a database comprising user profiles, using the first participant identifier, each user profile associating a respective plurality of attributes with a respective user, to locate a plurality of first participant attributes including at least one user-specific attribute associated with the first participant;process the second participant identifier, based on at least one of the plurality of first participant attributes obtained from a user profile for the first participant, to produce a new second participant identifier;classify the communication, based on the new second participant identifier, 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 associated with the second participant device, 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, produce an external network routing message identifying an Internet address associated with a gateway to an external network, wherein the external network routing message CA 3045683 2018-06-07 -82causes the communication to the second participant device to be established using the gateway to the external network.
  46. 69
    The apparatus of any one of claims 66 to 68, wherein the at least one processor is further operably configured to:determine whether a user profile associated with the new second participant identifier exists in the database;and CA 3045683 2019-06-07 -83if a user profile associated with the new second participant identifier does not exist in the database, classify the communication as the external network communication.
  47. 71
    The apparatus of any one of claims 66 to 70, 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. CA 3045683 2019-06-07
  48. 72
    The apparatus of any one of claims 66 to 71, wherein the at least one processor is further operably configured to update the database to cause at least one of the plurality of first participant attributes to be modified.
  49. 73
    The apparatus of any one of claims 66 to 72, wherein the external network routing message comprises a code identifying a communication supplier associated with the gateway to the external network.
  50. 74
    The apparatus of any one of claims 66 to 73, wherein the at least one processor is further operably configured to:modify the second participant identifier, based on at least one of the plurality of first participant attributes, to produce the new second participant identifier.
  51. 75
    The apparatus of any one of claims 66 to 68, wherein the at least one processor is further operably configured to:determine the Internet address associated with the second participant device based on a user profile for the second participant.
  52. 76
    The apparatus of any one of claims 66 to 75, wherein the at least one processor is further operably configured to:select the Internet address associated with the gateway to the external network from among a plurality of Internet addresses associated with a respective plurality of gateways to the external network.
  53. 77
    The apparatus of any one of claims 66 to 75, CA 3045683 2018-06-07 -8510 wherein the 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;and wherein the Internet address associated with the gateway to the external network is selected from among a plurality of Internet addresses associated with a respective plurality of gateways to the external network.
Independent claims53