CA3045672C

Producing routing messages for voice over ip communications

Abstract

A process for producing a routing message for routing communications between a caller and a callee in a communication system involves using a caller identifier associated with the caller to locate a caller dialing profile comprising a plurality of calling attributes associated with the caller. When at least one of the calling attributes and at least a portion of a callee identifier associated with the callee meet private network classification criteria a private network routing message identifying an address, on the private network and associated with the callee is produced and sent to a call controller. When at least one of the calling attributes and at least a portion of the callee identifier meet a public network classification criterion a public network routing message identifying a gateway to the public network is produced, for receipt by the call controller.

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

115 claims: 64 independent, 51 dependent

  1. 1
    A process for producing a routing message for routing communications between a caller and a callee in a communication system, the process comprising:using a caller identifier associated with the caller to locate a caller dialing profile comprising a plurality of calling attributes associated with the caller;when at least one of said calling attributes and at least a portion of a callee identifier associated with the callee meet private network classification criteria: producing a private network routing message for receipt by a call controller, said private network routing message identifying an address, on the private network, associated with the callee;and when at least one of said calling attributes and at least a portion of said callee identifier meet a public network classification criterion: producing a public network routing message for receipt by the call controller, said public network routing message identifying a gateway to the public network.
  2. 4
    The process of any one of claims 1-3, further comprising:locating a callee dialing profile for the callee when said callee identifier identifies a callee that is associated with the same network node as said caller;and retrieving call handling information associated with the callee, where said call handing information is available, said call handing information including at least one of call blocking information, call forwarding information, and voicemail information. CA 3045672 2019-06-07
  3. 8
    The process of any one of claims 1-7, further comprising associating at least one direct inward dial (DID) record with at least one subscriber to said communication system, each of said at least one direct inward dial records comprising a field storing a direct inward dial number associated with said at least one subscriber.
  4. 9
    The process of any one of claims 1-8, wherein said public network classification criteria include:a) said callee identifier begins with the same digit pattern as an international dialing digit (IDD) attribute of said callee identifier;and b) a reformatted callee identifier produced by removing the IDD attribute from said callee identifier has no DID bank table record. CA 3045672 2019-06-07
  5. 10
    The process of any one of claims 1-9, wherein said public network classification criteria include:a) said callee identifier begins with the same digit pattern as a national dialing digit (NDD) attribute of said callee identifier;and b) a reformatted callee identifier produced by removing the NDD attribute from said callee identifier and including a caller country code has no DID bank table record.
  6. 11
    The process of any one of claims 1 - 10, wherein said public network classification criteria include:a) said callee identifier begins with the same area code as an area code of said caller;and b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code has no DID bank table record.
  7. 12
    The process of any one of claims 1-11, wherein said public network classification criteria include:a) said callee identifier has a length that is within a range of caller local number lengths;and b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code and area code has no DID bank table record. CA 3045672 2019-06-07
  8. 13
    The process of any one of claims 1-12, wherein said plurality of calling attributes includes at least one of an international dialing digits identifier, a national dialing digits identifier, a country code identifier, a local area codes identifier, a caller minimum local length identifier, a caller maximum local length identifier, a reseller identifier, and a maximum number of concurrent calls identifier.
  9. 15
    The process of any one of claims 1 -14, further comprising maintaining a list of public network route suppliers and when said public network classification criterion is met identifying at least one of said public network route suppliers that satisfies public network routing selection criteria.
  10. 23
    The process of any one of claims 17-20, further comprising arranging said gateway supplier identifiers in an order based on at least one provision in a service agreement.
  11. 24
    The process of any one of claims 1-23, further comprising causing the private network routing message or the public network routing message to be communicated to a call controller to effect routing of the call. CA 3045672 2019-06-07
  12. 25
    The method of any one of claims 1 - 24, wherein the communication comprises a voice-over-IP (VoIP) communication.
  13. 26
    The method of any one of claims 1 - 24, wherein the communication comprises at least one of video data traffic and message traffic.
  14. 27
    The method of any one of claims 1 - 26, wherein at least one of the private network routing message and the public network routing message is communicated to a call controller to effect routing of the communication.
  15. 28
    A non-transitory computer readable medium encoded with codes for directing a processor to execute the method of any one of claims 1-27.
  16. 29
    A call routing controller apparatus for producing a routing message for routing communications between a caller and a callee in a communication system, the apparatus comprising:at least one processor operably configured to: use a caller identifier associated with the caller to locate a caller dialing profile comprising a plurality of calling attributes associated with the caller;when at least one of said calling attributes and at least a portion of a callee identifier associated with the callee meet private network classification criteria: produce a private network routing message for receipt by a call controller, said private network routing message CA 3045672 2019-06-07 -67identifying an address, on the private network, associated with the callee;and when at least one of said calling attributes and at least a portion of said callee identifier meet a public network classification criterion: produce a public network routing message for receipt by the call controller, said public network routing message identifying a gateway to the public network.
  17. 32
    The apparatus of any one of claims 29-31, wherein said at least one processor is further configured to:access the database of caller dialing profiles to locate a callee dialing profile for the callee when said callee identifier identifies a callee that is associated with the same network node as said caller;and retrieve call handling information associated with the callee, where said call handing information is available, said call handing information including at least one of call blocking information, call forwarding information, and voicemail information.
  18. 36
    The apparatus of any one of claims 29 - 35, wherein said at least one processor is further operably configured to access a database of direct inward dial records each associating at least one direct inward dial (DID) number with at least one subscriber to said communication system.
  19. 37
    The apparatus of any one of claims 29 - 36, wherein said public network classification criteria include:a) said callee identifier begins with the same digit pattern as an international dialing digit (IDD) attribute of said callee identifier;and b) a reformatted callee identifier produced by removing the IDD attribute from said callee identifier has no DID record.
  20. 39
    The apparatus of any one of claims 29 - 38, wherein said public network classification criteria include:CA 3045672 2019-06-07 a) said callee identifier begins with the same area code as an area code of said caller;and b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code has no DID record.
  21. 40
    The apparatus of any one of claims 29 - 39, wherein said public network classification criteria include:a) said callee identifier has a length that is within a range of caller local number lengths;and b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code and area code has no DID record.
  22. 41
    The apparatus of any one of claims 29 - 40, wherein said plurality of calling attributes includes at least one of an international dialing digits identifier, a national dialing digits identifier, a country code identifier, a local area codes identifier, a caller minimum local length identifier, a caller maximum local length identifier, a reseller identifier, and a maximum number of concurrent calls identifier.
  23. 43
    The apparatus of any one of claims 29 - 42, wherein said at least one processor is further operably configured to access a list of public network route suppliers when said public network classification criterion is met and to CA 3045672 2019-06-07 -71 identify at least one of said public network route suppliers that satisfies public network routing selection criteria.
  24. 51
    The apparatus of any one of claims 45 - 48, wherein said at least one processor is operably configured to arrange said gateway supplier identifiers in an order based on at least one provision in a service agreement.
  25. 52
    The apparatus of any one of claims 29-51, wherein said at least one processor is further operably configured to cause the private network routing message or the public network routing message to be communicated to a call controller to effect routing of the call.
  26. 53
    A call routing controller apparatus for producing a routing message for routing communications between a caller and a callee in a communication system, the apparatus comprising:means for using a caller identifier associated with the caller to locate a caller dialing profile comprising a plurality of calling attributes associated with the caller;and means for, when at least one of said calling attributes and at least a portion of a callee identifier associated with the callee meet private network classification criteria, producing a private network routing CA 3045672 2019-06-07 -73message for receipt by a call controller, said private network routing message identifying an address, on the private network, associated with the callee;and means for, when at least one of said calling attributes and at least a portion of said callee identifier meet a public network classification criterion, producing a public network routing message for receipt by the call controller, said public network routing message identifying a gateway to the public network.
  27. 56
    The apparatus of any one of claims 53 - 55, further comprising:means for accessing the database of caller dialing profiles to locate a callee dialing profile for the callee when said callee identifier identifies a callee that is associated with the same network node as said caller;and means for retrieving call handling information associated with the callee, where said call handing information is available, said call handing information including at least one of call blocking information, call forwarding information, and voicemail information.
  28. 60
    The apparatus of any one of claims 53 - 59, further comprising means for accessing a database of direct inward dial (DID) records each associating at least one direct inward dial number with at least one subscriber to said communication system.
  29. 61
    The apparatus of any one of claims 53 - 60, wherein said public network classification criteria include:a) said callee identifier begins with the same digit pattern as an international dialing digit (IDD) attribute of said callee identifier;and b) a reformatted callee identifier produced by removing the IDD attribute from said callee identifier has no DID record.
  30. 62
    The apparatus of any one of claims 53 - 61, wherein said public network classification criteria include:a) said callee identifier begins with the same digit pattern as a national dialing digit (NDD) attribute of said callee identifier;and b) a reformatted callee identifier produced by removing the NDD attribute from said callee identifier and including a caller country code has no DID record.
  31. 63
    The apparatus of any one of claims 53 - 62, wherein said public network classification criteria include:a) said callee identifier begins with the same area code as an area code of said caller;and CA 3045672 2019-06-07 b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code has no DID record.
  32. 64
    The apparatus of any one of claims 53 - 63, wherein said public network classification criteria include:a) said callee identifier has a length that is within a range of caller local number lengths;and b) a reformatted callee identifier produced by reformatting the callee identifier to include a caller country code and area code has no DID record.
  33. 65
    The apparatus of any one of claims 53 - 64, wherein said plurality of calling attributes includes at least one of an international dialing digits identifier, a national dialing digits identifier, a country code identifier, a local area codes identifier, a caller minimum local length identifier, a caller maximum local length identifier, a reseller identifier, and a maximum number of concurrent calls identifier.
  34. 67
    The apparatus of any one of claims 53 - 65, further comprising means for accessing a list of public network route suppliers when said public network classification criterion is met and means for identifying at least one of said public network route suppliers that satisfies public network routing selection criteria. CA 3045672 2019-06-07
  35. 75
    The apparatus of any one of claims 69 - 72, further comprising means for arranging said gateway supplier identifiers in an order based on at least one provision in a service agreement.
  36. 76
    The apparatus of any one of claims 53 - 75, further comprising means for causing the private network routing message or the public network routing message to be communicated to a call controller to effect routing of the call.
  37. 77
    A method of routing communications in a packet switched network in which a first participant identifier is associated with a first participant and a second participant identifier is associated with a second participant in a communication, the method comprising:after the first participant has accessed the packet switched network to initiate the communication, using the first participant identifier to locate a first participant profile comprising a plurality of attributes associated with the first participant;when at least one of the first participant attributes and at least a portion of the second participant identifier meet a first network classification criterion, producing a first network routing message for receipt by a controller, the first network routing message identifying an address in a first portion of the packet switched network, the address being CA 3045672 2019-06-07 -79associated with the second participant, the first portion being controlled by an entity;and when at least one of the first participant attributes and at least a portion of the second participant identifier meet a second network classification criterion, producing a second network routing message for receipt by the controller, the second network routing message identifying an address in a second portion of the packet switched network, the second portion not controlled by the entity.
  38. 80
    The method of any one of claims 77- 79, wherein the second participant identifier comprises a second participant telephone number or username.
  39. 81
    The method of any one of claims 77 - 80, wherein the communication comprises a voice-over-IP communication.
  40. 82
    The method of any one of claims 77-81, wherein the packet switched network is accessed via an Internet service provider.
  41. 83
    The method of any one of claims 77 - 82, wherein the first participant profile further comprises a username and a domain associated with first participant. CA 3045672 2019-06-07
  42. 84
    The method of any one of claims 77 - 83, wherein the attributes comprise at least one of an international dialing digit (IDD), a national dialing digit (NDD), an area code, a country code and a number length range.
  43. 85
    The method of any one of claims 77 - 84, wherein the first classification criterion is satisfied when the first participant identifier does not begin with the same international dialing digit (IDD) digit pattern as the second participant identifier.
  44. 86
    The method of any one of claims 77 - 85, wherein the first classification criterion is satisfied when an address associated with the first participant and the address associated with the second participant are both in the first portion of the packet switched network.
  45. 87
    The method of any one of claims 77 - 86, wherein the address in the first portion is accessible through the first participant's Internet service provider.
  46. 88
    The method of any one of claims 77 — 87, wherein the first portion comprises one or more supernodes.
  47. 89
    The method of any one of claims 77 - 86, further comprising storing in a database a direct inward dial (DID) record associated with at least one of the first participant and the second participant.
  48. 91
    The method of any one of claims 77 - 90, wherein the entity is an entity supplying communication services for the first portion. CA 3045672 2019-06-07
  49. 92
    The method of any one of claims 77 - 91, wherein the second network classification criterion is satisfied when access to the second participant requires routing through a portion of the packet switched network operated by a communication service supplier.
  50. 95
    The method of any one of claims 77 - 94, wherein the address in the second portion of the packet switched network comprises an address accessed by a communication service supplier.
  51. 96
    The method of any one of claims 77 - 95, wherein producing the second network routing message identifying the address in the second portion comprises searching a database of route records associating route identifiers with dialing codes, in an attempt to find a route record having a dialing code with a number pattern matching at least a portion of second participant identifier. CA 3045672 2019-06-07
  52. 97
    The method of any one of claims 77 - 96, wherein the communication comprises a voice-over-IP (VoIP) communication.
  53. 98
    The method of any one of claims 77 - 96, wherein the communication comprises at least one of a video data traffic and message traffic.
  54. 99
    The method of any one of claims 77 - 98, wherein at least one of the first and second routing messages is communicated to a call controller to effect routing of the communication.
  55. 100
    A computer readable medium encoded with instructions for directing at least one processor to execute the method of any one of claims 77 - 99.
  56. 101
    A system for routing communications in a packet switched network in which a first participant in a communication has an associated first participant identifier and a second participant in the communication has an associated second participant identifier, the system comprising:a controller comprising: a processor operably configured to access a memory, wherein the processor is configured to: after the first participant has accessed the packet switched network to initiate the communication, locate a first participant profile in the memory using the first participant identifier, the first participant profile comprising a plurality of attributes associated with the first participant;CA 3045672 2019-06-07 -83produce a first network routing message when at least one of the first participant attributes and at least a portion of the second participant identifier meet a first network classification criterion, the first network routing message identifying an address in a first portion of the packet switched network, the address being associated with the second participant, the first portion being controlled by an entity;and produce a second network routing message when at least one of the first participant attributes and at least a portion of the second participant identifier meet a second network classification criterion, the second network routing message identifying an address in a second portion of the packet switched network, the second portion not controlled by the entity.
  57. 104
    The system of any one of claims 101 - 103, wherein the first classification criterion is satisfied when the first participant identifier does not begin with the same international dialing digit (IDD) digit pattern as the second participant identifier.
  58. 105
    The system of any one of claims 101 - 104, wherein the second network classification criterion is satisfied when access to the second participant CA 3045672 2019-06-07 -84requires routing through a portion of the packet switched network operated by a communication service supplier.
  59. 106
    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;when at least one of the one or more attributes and at least a portion of the second participant identifier meet a first network classification criterion, 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;when at least one of the one or more attributes and at least a portion of the second participant identifier meet a second network classification criterion, producing, via the at least one processor, a second network CA 3045672 2019-06-07 -85routing 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;and when at least one of the one or more attributes meets a third network classification criterion, producing, via the at least one processor, an error message and causing prevention of the communication from being established.
  60. 109
    The method of any one of claims 106 - 108, wherein the communication comprises a voice-over-IP (VoIP) communication.
  61. 110
    The method of any one of claims 106 - 108, wherein the communication comprises at least one of video data traffic and message traffic. CA 3045672 2019-06-07
  62. 111
    The method of any one of claims 106-110, wherein at least one of the first and second routing messages is communicated to a call controller to effect routing of the communication.
  63. 112
    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 106 to 111.
  64. 113
    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 having at least one processor operably configured to access at least one memory storing program code that, when executed, operably configures the controller to: in 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;produce a first network routing message when at least one of the one or more attributes and at least a portion of the second CA 3045672 2019-06-07 -87participant identifier meet a first network classification criterion, the first network routing message identifying an address in the system, the address being associated with the second participant device;produce a second network routing message when at least one of the one or more attributes and at least a portion of the second participant identifier meet a second network classification criterion, 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;and produce an error message when at least one of the one or more attributes meets a third network classification criterion, the error message preventing the communication from being established.
Independent claims64