FIELD OF THE INVENTION
[0001] The present invention relates generally to providing personalized caller identification.
More particularly, the present invention relates to providing a centralized personal
directory scheme with corresponding digit tree processing within a communications
network.
BACKGROUND OF THE INVENTION
[0002] Within the field of telecommunications, the concept of calling party identification
(i.e. "caller ID") is a well known. Caller ID is currently used within either landline
or mobile telecommunications. In such known caller ID systems, each caller has a corresponding
unique identifier typically in terms of the caller's telephone number. A mechanism
on the called party end of the communications link is enabled to distinguish and display
such unique identifier prior to fully establishing a communication link. While such
a system is useful, there is the limitation that the unique identifier in the form
of the caller's telephone number is only useful if the called party recognizes the
actual telephone number. To alleviate this, alpha tagging allows users to associate
a text string with any given caller ID (or extension number) that is displayed on
their telephone set when receiving or making a call involving that caller ID (or extension
number). The text string is personal to the user and the same caller ID may be included
in the personal directory of more than one user. For example, several users may have
different alpha tags for the same number - e.g., the number for "Dino's Pizzeria &
Take-Out" could be "Pizza" for one user, "Delivery" for another user, and "Dinner"
for yet another user.
[0003] Some telephones and other physical telecommunications devices implement alpha tagging
by enabling a user to store several phone numbers and associate such phone numbers
with an alphabetic name or term. For instance, (613) 555-2323 may correspond to a
particular take-out restaurant focussing on vegetarian food and operating under the
name of "Veggies On The Run." A patron of such restaurant may program their telephone
to associate "Veggies" to correspond with (613) 555-2323. If such restaurant were
to call the patron, the caller ID mechanism with their telephone would recognize (613)
555-2323 and display the associated, prestored term "Veggies" on the patron's caller
ID display. Similarly, the same telephone could be used to store other frequent contacts
and associated telephone numbers. When an incoming call arrives, the personal directory
of stored alpha tags and numbers is referenced to determine whether a text string
has been configured for the instant caller ID (or extension number). If so, the text
string is displayed on the device rather than the caller ID (or extension number).
A system directory can also be referenced when no personal directory entry exists.
Additionally, if desired a department/tenant scope directory can also be used before
checking the system directory to provide more flexibility in alpha tagging delivery.
Such systems are limited, however, by the memory of the telephone or device used to
store the alpha tag and number data. While memory storage capacity has become less
of a concern as the cost of memory has been reduced over time, access time can be
a considerable issue if a significant amount of fixed memory allocation is to be scanned.
[0004] In addition to maintaining a personal directory within a telephone or some such telecommunications
device itself, the personal directory may be more centralized as illustrated in
US-B1-6 658 455. Within such centralized systems, independent personal directory facilities may exist
for a group of users that would require considerable system memory space. Such centralized
systems often limit each user to a fixed personal directory size of only 10 or 20
possible entries. Alternatively, a hash mechanism (or resource management facility)
is used to share a pool of personal directory entries between all users or groups
of users. The hash mechanism identifies a hash table bucket that is a linked list
or table of entries. Each entry includes the user identity, the full caller ID (or
significant abbreviation), and the associated alpha tag. A caller ID (or extension
number) is then transformed into a hash table bucket, many to one, and the corresponding
bucket entries are searched for the matching caller ID and user identifier.
[0005] Within local networks such as a corporate enterprise setting, such access time and
memory allocation issues become significant concerns. It is, therefore, desirable
to provide an improved and robust caller identification mechanism for use within such
communications networks.
SUMMARY OF THE INVENTION
[0006] It is an object of the present invention to obviate or mitigate at least one disadvantage
of previous caller identification mechanisms. The present invention therefore provides
a centralized personal directory scheme having corresponding digit tree processing
and useful within a communications network. The present invention uses digit tree
processing along with a non-diallable digit capability in order to provide for direct
de-referencing of personal numbers where no searching of entries is required. The
present invention also prevents collisions in data configuration/manipulation between
users (or systems). As well, the present invention distinguishes between internal
and external numbers (and other categories). Further, the present invention is applicable
to corporate alpha tagging as well as personal alpha tagging, including department/tenant
delineation. The present invention can support a downloadable personal directory for
provisioning any applicable software interface by downloading the associated digit
tree branch of the present invention. Still further, the present invention can support
"wild card" digits and dialling conflict resolution automatically. Moreover, fixed
allocation of system memory space is not required for personal directories implemented
via the present invention.
[0007] The description describes an apparatus for personalized calling party number determination
and identification, the apparatus including an interface for receiving a calling party
number corresponding to a calling party, a memory for storing an alpha tag corresponding
to the calling party number, and a processor coupled to the interface. The processor
includes instructions to determine a character indicating presence of a character
string including a unique identifier portion, a classification portion, and a calling
party portion, wherein the processor correlates the alpha tag to the calling party
upon matching the calling party portion of the character string to the calling party
number stored in the memory.
[0008] The description describes a method for personalized calling party number determination
and identification, the method including receiving from a calling party a call message
within a communications network, determining from the call message, a non-diallable
character indicating presence of a character string including a unique identifier
portion, a classification portion, and a calling party portion, upon determination
of the non-diallable character, correlating a stored alpha tag with the calling party
upon matching the calling party portion of the character string to a stored calling
party number, and displaying the stored alpha tag.
[0009] The description describes a method for personalized calling party number determination
and identification, the method including receiving, within a communications network,
an outgoing call message to a known calling party number, determining from the call
message, a non-diallable character indicating presence of a character string including
a unique identifier portion, a classification portion, and a calling party portion,
upon determination of the non-diallable character, correlating a stored alpha tag
with the known calling party number upon matching the calling party portion of the
character string to a stored calling party number; and displaying the stored alpha
tag.
[0010] Other aspects and features of the present invention will become apparent to those
ordinarily skilled in the art upon review of the following description of specific
embodiments of the invention in conjunction with the accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Embodiments of the present invention will now be described, by way of example only,
with reference to the attached Figures, wherein:
FIGURE 1 is a schematic illustrating a digit block including a special character node in accordance
with the present invention;
FIGURE 2 is a schematic illustrating a special string in accordance with the present invention;
FIGURE 3 is a schematic illustrating digit tree traversal of the digit block shown in
FIGURE 1 along with parallel generation and traversal of the special string shown in
FIGURE 2 in accordance with the present invention; and
FIGURE 4 is a flowchart showing the methodology of alpha tag de-referencing in accordance
with the present invention.
DETAILED DESCRIPTION
[0012] Generally, the present invention provides a method and system for providing personalized
caller identification including a centralized personal directory scheme with corresponding
digit tree processing within a communications network. For purposes of clarity, the
invention is described in terms of incoming calls only. However, it should be readily
apparent that the present invention applies to both incoming and outgoing calls such
that a personal directory may be used for outgoing calls as well as incoming calls
[0013] With reference to
FIGURE 1, a basic digit tree building block is shown and includes fields (nodes) for numeric
digits 0 through 9 along with the "*" and "#" characters. To avoid increasing the
storage requirements of digit string pools, the digit block shown also includes nodes
for time out (T), pause (P), and flash (F). Three wildcard digits, N, X, and Y are
allotted for other features not related to the present discussion. In accordance with
the present invention, the basic digit tree building block shown also includes a node
for a special character (I). This special character is described further below.
[0014] FIGURE 2 shows one possible embodiment of a special string
200 of the present invention including the special character, unique identifier, classification
indicator (i.e., internal/external indicator), caller's phone number, and caller's
area code. In the example shown, the special character is a "~" character, but may
of course be any single or multiple characters. The unique identifier is the given
called number that, for instance, may be indicated as "4001" for "extension 4001"
within a corporate communications network. Such extensions may of course be longer
or shorter and the related unique identifiers would therefore be longer or shorter
correspondingly. The internal/external indicator may be a single character indicating
the nature of the caller's number - e.g., "1" for internal, "0" for external - and
may also be other single or multiple characters depending upon the variety of caller
types in any given system.
[0015] With reference to
FIGURE 3, a digit block
10 as described in regard to
FIGURE 1 including the special character as "~" mentioned above in regard to
FIGURE 2. Traversal of the digit tree is represented by element
15 and is accomplished in a known manner including, but not limited to, a call processing
engine is typically used for processing the called number and includes one or more
known type of computer processors. In the instance shown, the called number includes
a special character "~" though it should be understood that not all incoming calls
will include such special character such that the incoming call can be processed in
like manner with or without the special character to arrive at the termination device
20. In other words, the call processing engine receives digits and performs digit translation
until a termination
20 is found at a device that corresponds to the called number. The special character
is a hidden, non-diallable digit, for example "~", within the system digit tree for
use as a prefix to alpha tagging digit tree entries. In parallel with digit translation
15, the special character is identified
30 whereby a special string is generated and further processed by a special digit tree
processing
100 formed by digit blocks
31 through
39. Blocks between digit blocks
37 and
38 are omitted for clarity of illustration.
[0016] It should be understood that other characters may be included within each digit block,
in addition to numerals 0 through 9 and the special character "~", such as field delimiters
(not shown for clarity). Such field delimiters may be used to indicate where, for
instance, the unique identifier ends and the internal/external indicator begins. The
field delimiter could be any character such as, but not limited to, "*" or "#". Such
field delimiters may be useful especially when the unique identifier is within a range
of digits. For example, the unique identifier may be only four digits as shown in
FIGURE 2, may be only three, or may be as many as seven digits depending upon the number of
extensions within the communications network utilizing the invention. Alternatively,
the field delimiter may be omitted altogether if the information regarding the internal/external
indicator were to be retained upon generation of the special string. This information
regarding internal/external context could be retained, for instance, within a journal
block as an internal/external flag during digit translation along with other information
typically retained during normal translation operations.
[0017] The special digit tree processing
100 subsequent to identification of the special character, e.g., "~", first processes
the unique user identifier (preferably the user's extension number) as shown at digit
blocks
31 through
34. The processing indicated at a block
35 shows processing of a classification indicator. The classification indicator shown
preferably indicates a "1" for calls made internal to a network (e.g., intra-corporate)
and a "0" for call made external to a closed network (e.g., from the public switched
telephone network, PSTN). The caller ID digits indicating the digits of the calling
external number (or extension number if deemed internal) are processed via blocks
36 through
39. The example shown may be for a caller ID of "613-592-0000."
[0018] It should be noted the area code "613" may or may not be considered in digit translation
depending upon the given implementation of the present invention. As shown in
FIGURE 2, the final block 39 ends with translation of the digit "5" as the final translation
before personalized identification
40 is made that associates the abbreviated number 592-0000 with some stored alpha tagging
text string - e.g., "Veggies Restaurant" for the caller ID "592-0000." Still further,
it should be readily apparent as suggested above that a classification indicator of,
for example "1" indicating an internal (e.g., intra-corporate) caller ID may require
even less digit translation because only three, four, or five extension digits would
be necessarily processed in most types of corporate enterprise systems.
[0019] With further reference to
FIGURE 2, the caller's phone number obtained as caller ID for an incoming call, or as a keypad
entry for an outgoing call, would include a standard seven characters along with three
more characters for the caller's area code. The caller's phone number and caller's
area code would preferably be arranged in reverse order. For example, the special
string
200 shown in
FIGURE 2 is indicative of a caller having the phone number (613) 592-0000 where the called
extension is 4001. It is possible to implement the present invention without reversing
the order of digits. However, digit matching to any given personalized identification
(e.g., "Veggies Restaurant") would be facilitated by identifying the most specific
possible match (i.e., extensions such as "0000") prior to the most general possible
match (i.e., area codes such as "613"). This would accordingly reduce processing time
in an advantageous manner. Further, if the classification indicator reveals that the
caller is an internal number, and then perhaps only the first four subsequent characters
would be necessary to translate in the digit translation process (shown as
100 in
FIGURE 3).
[0020] In regard to
FIGURE 4, a flowchart illustrating the methodology of alpha tag de-referencing in accordance
with the present invention is shown. In each call instance, the incoming call will
of course have the call destination determined and if the personal alpha tag feature
is deemed present by the identification of the special character, then a special string
is generated. The special string is built in accordance with that shown in
FIGURE 2 by building upon the caller-ID with the called party prefix. If no special character
is found, then no further action in regards to the invention is taken. This is of
course possible, as the present invention is an optional feature. If found though,
and after the special string is generated, the digits are traversed until no further
digits remain to traverse. Upon such instance, the digit traversal will ideally point
to a swid (software ID) that will correspond to a stored entry. If no match is made,
then of course no action need be taken. However, upon indication of a match, the special
string will then de-reference an alpha tag string that corresponds to a personalized
entry. That entry is then displayed on some user interface utilizing the present invention.
Such interface may be a desktop telephone set, a software based computer screen interface,
or any related interface including, but not limited to, audio and/or visual mechanisms.
For instance, the alpha tag string may be translated into an audio form by use of
a .wav file or the like.
[0021] As suggested above, further alternatives in terms of the classification indicators
are possible and considered to be well within the intended scope of the present invention.
For instance, additional classification indicators can be used to further distinguish
between types of entries in the personal digit tree other than simply internal and
external calling parties. Such entries would not be limited to directory numbers but
could also apply to alpha tagging for account codes, as an example. An indicator of
whether the alpha tagging text string is private may also be stored within the digit
sequence (or associated with the text string itself). The privacy indicator would
be used to prevent display of the entry in a system configuration.
[0022] Yet further, the hidden, non-diallable digit may be any single identifier or combination
of identifiers that would prefix the personal directory entries. As well, the use
of a digit tree may be replaced by any other mechanism for managing digit translations.
The digit tree mechanism may be expanded to include alphanumeric characters (in addition
to the standard diallable digits) for application in areas where digits are insufficient.
[0023] It is yet further appreciable that the present invention could also be applied to
management of personal contacts within a corporate contact database (where contacts
are indexed by telephone numbers). In such instance, the prefix identifier can be
used to ensure only authorized individual(s) can view and/or modify the entries. By
extension, the present invention may be applied when a user has access to personalize
(or of limited access) data stored in a centralized (or distributed/replicated) repository.
Further, the present invention may be applied where users are uniquely identified
by a user ID that are each used to access their data within the repository.
[0024] In operation, the special string of the present invention results in a unique and
useful method of digit translation. Specifically, a method is implemented to translate
a given caller ID (or extension number) into a digit string using a given user identifier.
As well, the method includes insertion or removal of a text string reference in the
digit tree using the digit string provided by the aforementioned method and described
in detail above. In addition, the present inventive digit tree translation method
serves to de-reference an associated text string using a digit string and applying
appropriate abbreviation matching rules based on classification indicator as described
above. Within such inventive method, the Caller ID that a user enters in their personal
directory is reversed when stored in the digit tree to facilitate matching of abbreviated
digits. Abbreviated digits are considered to be any shortened string of digits less
than the extended (i.e., full) phone number such as "1-(613)-592-0000". The method
applies the classification indicator to distinguish between the significant abbreviation
that can be applied. Numbers designated as internal cannot be abbreviated and must
match exactly (for example, 004 is not a valid match for 2004). Numbers designated
as external will match if the abbreviated form matches the caller ID dialed or received
on an incoming call. In such a way, the area code may be ignored so long as duplicates
do not exist for the abbreviations.
1. A method for personalized calling party number determination and identification, said
method comprising:
- receiving, at an interface of a closed communications network, from a calling party
a call message comprising a standard caller identification (caller ID) associated
with said calling party, and optionally comprising a non-diallable character,
- determining, from said call message, the presence of the non-diallable character,
- generating, using a processor coupled to the interface, and upon determination of
the presence of said non-diallable character, a character string (200) including a
unique identifier portion corresponding to the called number, a classification portion,
and calling party portion;
- matching the character string to a stored personalised entry that corresponds to
a stored alpha tag
and
displaying said stored alpha tag on a user interface of the calling or called party,
wherein said stored alpha tag is an alphabetic identifier stored within a centralized
memory of said communications network, and
wherein said determining and matching steps occur within a call processing engine
coupled to the interface which performs digit tree processing, and
wherein said classification portion of said character string includes one or more
characters to indicate to said call processing engine whether said calling party is
internal or external relative to said closed communications network.
2. The method of claim 1, wherein said calling party number includes a caller's extended
phone number.
3. The method of claim 1 or claim 2, wherein said calling party portion is capable of
including a caller's extended phone number.
4. The method of any one of the preceding claims, wherein said calling party portion
is capable of including a caller's abbreviated phone number.
5. The method of any one of the preceding claims, wherein said call message is an incoming
message to said communications network.
6. The method of any of claims 1 to 4, wherein said call message is an outgoing message
to said communications network.
7. An apparatus for personalized calling party number determination and identification,
said apparatus comprising the following elements:
- an interface;
- a memory; and
- a processor comprising a call processing engine;
- a delivery means for delivering the alpha tag to a user interface of claim 1, wherein
the above elements perform the corresponding method steps of claim 1.
1. Verfahren zum Bestimmen und Identifizieren einer personalisierten Nummer einer anrufenden
Partei, umfassend:
- Empfangen, an einer Schnittstelle eines geschlossenen Kommunikationsnetzes, einer
Anrufnachricht einer anrufenden Partei, umfassend eine mit der anrufenden Partei verbundene
Standard-Anrufer-Kennung (Anrufer-ID) und wahlweise umfassend ein nicht wählbares
Zeichen,
- Bestimmen des Vorhandenseins des nicht wählbaren Zeichens anhand der Anrufnachricht,
- Erzeugen - unter Einsatz eines an die Schnittstelle gekoppelten Prozessors und nach
Bestimmen des Vorhandenseins des nicht wählbaren Zeichens - einer Zeichenkette (200),
die einen eindeutigen, der angerufenen Nummer entsprechenden Kennungsabschnitt, einen
Klassifizierungsabschnitt und einen Abschnitt für die anrufende Partei enthält;
- Vergleichen der Zeichenkette mit einem gespeicherten personalisierten Eintrag, der
einem gespeicherten Alpha-Tag entspricht, und Anzeigen des gespeicherten Alpha-Tags
der anrufenden oder angerufenen Partei auf einer Benutzeroberfläche,
wobei der gespeicherte Alpha-Tag eine in einem zentralen Speicher des Kommunikationsnetzes
gespeicherte alphabetische Kennung ist, und
wobei die Bestimmungs- und Vergleichsschritte innerhalb einer an die Schnittstelle
gekoppelten Anrufverarbeitungs-Engine stattfinden, die Ziffernbaumverarbeitung durchführt,
und
wobei der Klassifizierungsabschnitt der Zeichenkette ein oder mehrere Zeichen enthält,
um der Verarbeitungs-Engine gegenüber anzuzeigen, ob es sich bei der anrufenden Partei
mit Bezug auf das geschlossene Kommunikationsnetz um eine interne oder externe Partei
handelt.
2. Verfahren nach Anspruch 1, wobei die Nummer der anrufenden Partei die erweiterte Telefonnummer
eines Anrufers enthält.
3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei der Abschnitt für die anrufende Partei
fähig ist, die erweiterte Telefonnummer eines Anrufers zu enthalten.
4. Verfahren nach Anspruch 1 oder Anspruch 2, wobei der Abschnitt für die anrufende Partei
fähig ist, die abgekürzte Telefonnummer eines Anrufers zu enthalten.
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Anrufnachricht eine in
das Kommunikationsnetz eingehende Nachricht ist.
6. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Anrufnachricht eine aus dem
Kommunikationsnetz ausgehende Nachricht ist.
7. Vorrichtung zum Bestimmen und Identifizieren der personalisierten Nummer einer anrufenden
Partei, umfassend folgende Elemente:
- eine Schnittstelle;
- einen Speicher; und
- einen Prozessor, umfassend eine Anrufverarbeitungs-Engine;
- ein Zustellmittel zum Zustellen des Alpha-Tags an eine Benutzeroberfläche nach Anspruch
1,
wobei die obigen Elemente die entsprechenden Verfahrensschritte von Anspruch 1 durchführen.
1. Procédé de détermination et d'identification personnalisées de numéro d'appelant,
ledit procédé comprenant :
- la réception, au niveau d'une interface d'un réseau de communication fermé, de la
part d'un appelant, d'un message d'appel comprenant une identification d'appelant
standard (affichage du numéro d'appel) associée à l'appelant et comprenant optionnellement
un caractère ne pouvant pas être composé,
- la détermination, à partir dudit message d'appel, de la présence du caractère ne
pouvant pas être composé,
- la génération, en utilisant un processeur couplé à l'interface, à la détermination
de la présence dudit caractère ne pouvant pas être composé, d'une chaîne de caractères
(200) comprenant une partie d'identifiant unique correspondant au numéro appelé, une
partie de classification et une partie d'appelant ;
- la mise en correspondance de la chaîne de caractères avec une entrée personnalisée
stockée qui correspond à une balise alpha stockée, et l'affichage de ladite balise
alpha stockée sur une interface utilisateur de l'appelant ou de l'appelé,
dans lequel ladite balise alpha stockée est un identifiant alphabétique stocké dans
une mémoire centralisée dudit réseau de communication, et
dans lequel ladite étape de détermination et ladite étape de mise en correspondance
se déroulent dans un moteur de traitement d'appel couplé à l'interface qui effectue
le traitement d'arborescence numérique, et
dans lequel ladite partie de classification de ladite chaîne de caractères comprend
un ou plusieurs caractères pour indiquer au moteur de traitement si l'appelant est
interne ou externe par rapport au dit réseau de communication fermé.
2. Procédé selon la revendication 1, dans lequel ledit numéro d'appelant comprend un
numéro téléphonique étendu d'appelant.
3. Procédé selon la revendication 1 ou 2, dans lequel ladite partie d'appelant est capable
d'inclure un numéro téléphonique étendu d'appelant.
4. Procédé selon l'une quelconque des revendications précédentes, dans lequel ladite
partie d'appelant est capable d'inclure un numéro téléphonique abrégé d'appelant.
5. Procédé selon l'une quelconque des revendications précédentes, dans lequel ledit message
d'appel est un message entrant dans ledit réseau de communication.
6. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel ledit message
d'appel est un message sortant dudit réseau de communication.
7. Appareil de détermination et d'identification personnalisées de numéro d'appelant,
ledit appareil comprenant les éléments suivants :
- une interface ;
- une mémoire ;
- un processeur comprenant un moteur de traitement d'appel;
- un moyen de livraison pour livrer la balise alpha à une interface utilisateur selon
la revendication 1,
dans lequel les éléments susmentionnés effectuent les étapes correspondantes du procédé
selon la revendication 1.