UNIVERSAL PERSONAL COMMUNICATION SYSTEM AND TRACING SYSTEM THEREFOR
Technical Field
This invention relates generally to universal personal communication systems.
Background A universal personal communication system is a system enabling anyone to communicate instantly with anyone else anywhere in the world. One of the crucial problems of such a system would be locating millions of moving customers in an efficient manner. The existing techniques for locating moving customers in the system are paging and registration using a central database. Considering the large number of customers in a global system, the first technique, if applied without knowledge of the location of the customers is impractical. The registration technique, which records all the movements of customers in a central database, is also impractical because the task of keeping track of such a huge number of users would be immense. Thus, a need exists for a system for efficiently tracking customers in a universal personal communication system.
Summary of the Invention
Briefly, according to the invention, a communication system includes a plurality of organizational layers, a plurality of portable communication units, and a plurality of base stations. Each layer comprises a plurality of nodes. The plurality of nodes comprises a plurality of base stations in the first layer, and a plurality of communication services nodes in the higher layers. Each communication services node includes a database possibly containing information on the locations of one or more portable communication units. The databases constitute a distributed database containing information on the locations of the portable communication units within the system.
In another aspect of the invention, a method for establishing a connection between a calling and a called communication unit in the above-mentioned communication system is provided. An active portable communication unit in one of its service areas will be located by the system when a calling communication unit initiates a connection request.
In still another aspect of the invention, a method for updating the databases in the communication services node by transmission of some control messages.
Brief Description of the Drawings
FIG. 1 is a hierarchical structure for a communication system in accordance with the invention.
FIG. 2 is a flow chart of a process carried out at a node for locating a portable communication unit in accordance with the invention.
FIG. 3 is a possible address structure in accordance with the invention.
FIG. 4 is a possible database of a node at layer k. FIG. 5 is an example of an address chain for a customer of class 5 or 6, before moving.
FIG. 6 is a flow chart for nodes receiving a message M1.
FIG. 7 is a flow chart for nodes receiving a message M2.
FIG. 8 is a flow chart for nodes receiving a message 3. FIG. 9 is a flow chart for nodes receiving a message M4.
FIG. 10 is an example of an address chain after moving for a customer of class 5 or 6.
Detailed Description of the Preferred Embodiment Referring to FIG. 1 , there is shown a hierarchical structure for a communication system 100 in accordance with the invention. The covered area of the communication system 100 is organized into a hierarchical structure having several layers. The highest layer may be the earth 102 followed by country 104, state 106, area code 108, city 110, and the lowest layer (Layer 1) is a primary layer that comprises a plurality independent paging
regions (cells) 112. Each layer 1 cell comprises one or more base stations. Layer 1 may comprise a radio telephone communication * system (e.g., Digital European Cordless Telephone). Not losing generality, from now on layer 1 cells shall be referred to as base **" 5 stations. Each region of layer "/" (except the lowest layer) consists of several regions of layer ~i- 1.n.
Each block in layers 2 through 6 (the secondary layers) is a communication service node representing a switching station having computing and memory means (i.e., all layers >1 are
10 intelligent layers). The memory means comprises a database for tracking the location of customers (i.e., users of portable communication units that are registered in the system).
Referring to FIG. 2, there is shown a flow chart illustrating a process for receiving a connection request for a layer / node. In
15 step 120, a connection request packet is received at node in layer /. The connection request packet, sent by a calling communication unit, requests a connection between the calling communication unit and a called (portable) communication unit 1. The call request packet comprises a code identifying the called portable
20 unit. In step 122 the system keeps track of the possible connections (i.e., bookkeeping).
In decision 124, a determination is made as to whether (1) the connection request is received at the first layer and (2) the connection request was not received directly from a portable
25 communication unit. If the determination of decision 124 is affirmative, the called party is paged (if it is a portable) or rung (if it is a fixed telephone) (step 126). In decision 128, it is determined whether a connection confirmation signal is received from the called communication unit within a predetermined
30 period of time. If the determination made in decision 128 is affirmative, the connection is successful (step 130). If it is negative, the connection attempt fails (step 132).
If the determination in decision 124 is negative, then a further decision 134 is made to determine whether the
35 connection request was received in the first layer. If decision 134 is affirmative, the connection request is passed to its parent
node in layer two (step 136). The process then continues to the stop step (144) for that node.
If decision 134 is negative a further decision 138 is made to determine whether there is any information relating to the called party in the database corresponding to the current node. If decision 138 is affirmative, the connection request is passed to the next node along the address chain (step 140). If the determination in step 138 is negative, the connection request is passed to the next node along the path to the home address of the called party (step 142). Following either step 140 or 142, the process stops (step 144) for the node passing on the connection request, and begins at step 120) for the next node receiving the connection request.
Referring to FIG. 3, there is shown a set of possible address structures for portable communication units. These address structures include a field for each of the layers.
There are two kinds of addresses used in the system: (1) home addresses; and (2) physical addresses. The home address is the registered address of the portable communication unit (i.e., the same as a telephone number). The incoming calls will find the portable communication unit in this address unless it has moved to another area or if it has been turned off. The physical address is the address where the portable communication unit can be actually reached. When hand over (or handoff) happens, two physical addresses are needed: (1) the current address, which indicates the physical address of the base station to which the portable unit is locking; and (2) the new address, which indicates the physical address of the desired new base station. In the case of a fixed subscriber, the physical address is always identical to the home address. The physical address of portable communication unit is obtained in the messages broadcasted from the port.
Referring to FIG. 4, there is shown a representation of a possible database of a node. "HA/ is the home address of customer "f and "Add/" is the current address field for customer ti ΛI J -
A customer is classified by the number of the lowest layer that covers all the service areas of the customer. A service area is any area that the customer selects to be reached at. The home address of a customer must be in one of the service areas. The
- > 5 symbol "pc" is used to denote the class of the customer.
Referring again to FIG. 1 , for example pc = 4, if customer 1 wants to be reached anywhere in area code 404 and Savannah because the lowest level common node (Georgia) is at layer 4. If customer 2 wants to be reached anywhere in area code 407,
10 Atlanta and California, the pc will be 5 because the lowest level common node (U.S.A.) is at layer 5. Also, pc = 2 if customer 3 wants to be reached only in Boynton. The service areas are chosen by customers and the associated information is stored in the portable communication units. The information may also be
15 stored elsewhere (e.g., for credit purposes). The classification pc of a portable communication unit is derived easily from its service areas as follows: Define SAj be the address of the ith service area of the portable communication unit which contains all the layer addresses from the service area and up with all the
20 lower addresses filled with "don't care" marks '?'. For example, if the second service area of a portable communication unit is Florida, the SA2 of the customer will be {U.S.A., Florida,?,?,?}. Also, if the third service area of the customer is Atlanta, the SA3 will be {U.S.A., Georgia, 404, Atlanta,?}. Define Qjj to be the
25 highest layer where the address of the ith and the jth service area of a customer are different. For customer 1 , for example, 3. Suppose no more than M service areas are chosen by each customer. Then the customer class is: pc = 1 + max Qij
30 , M
There are three kinds of entities in the database of layer / with each entry associated with an active customer of class / or higher:
(1) portable communication units which registered in the ith layer region and are now outside the region (i.e..native customers that are outside the covered area);
(2) the portable communication unit which registered outside the ith layer region and is now inside the region (i.e., a foreign customer having a home address outside and a current address inside the covered area); and
(3) portable communication units which registered in the ith layer region and are now inside the region, but in a different ϊ-1 layer region from where they registered (i.e., a native customer having a different current address from its home address at the next lower layer).
The address information field may contain one of the following three entries: (1) an "out" mark which indicates that the native portable communication unit is outside the covered region;
(2) the physical address of the i-1 layer for the foreign portable communication unit; and
(3) physical address of ϊ-1 layer for the native portable communication unit.
In this system an active customer does not necessarily communicate on the portable communication unit, but the movement of the portable communication unit is traced by the system. A customer is active when the power of the portable communication unit is on. To reduce the burden on the system, it is possible to charge customers in terms of the number of tracing messages for their portable communication units. A class 0 customer is defined to be reached only at home address (i.e., a fixed telephone). Referring to Fig 5, there is shown a diagram illustrating an example of an address chain before moving for a portable communication unit 24 of class 5 or 6. In this example, the called party (unit 24) has a home address in cell 1 ,d, and a current address at cell 8,d. In a first case, the communication unit 20, located in cell 2,c, places a call to communication unit 24. The communication unit 20 merely dials the home address
number of the called party. The calling party's connection request is received by an base station at cell 2,c, and it is passed on to the Boynton node in layer 2.
At the Boynton node, the corresponding database is searched for an entry relating to the called party. In this case an entry is found in the database. The entry contains the home address (HA) of the called party and an "out" indication. The call is then forwarded along the address chain to the "407" node of layer 3, where the database also contains the home address of the called party and an "out" indication. Thus, the connection request is further traced up through the Florida node of layer 4, also indicating that the called party is "out". Then, in the USA node of layer 5 the database indicates that the portable 24 is in Georgia. The tracing then continues to the Georgia node, where the area code 404 is indicated. Therefore, the tracing process continues to the 404 node, where "Atlanta" is indicated. Searching in the Atlanta database reveals the precise location of the portable communication unit 24, and the requested connection is made. Referring again to FIG. 5, in a second case the call for the called party is made from a calling communication unit 22 (also a portable in this example) located at cell 9,c. Accordingly, the call is received at the base station in cell 9,c, and is passed on to the Athens node in layer 2. There is no entry relating to the called party in the Athens database. Therefore, the connection request is passed on to the next node toward the home address of the called party (i.e., the "404" node). The database at the "404" node contains an an entry (HA, Atlanta) indicating that the called party is in Atlanta. The connection request is accordingly passed on to the Atlanta node where the exact location of the portable 24 is determined to be in the 8,d cell, and the requested connection is made.
The problem remaining is how to maintain the databases. The database updating process is initiated by portable communication units. Each base station continuously transmits its subsystem identification information. By monitoring this information from the surrounding bases, an active portable
communication unit is able to select a desired base station (e.g., the strongest base) and lock on to it. Whenever a new strongest base is found, up to two messages may be transmitted to the associated bases to update address chains. The address of the base to which the portable communication unit is locking is called the current address and the address of the base of the new strongest base is called new address.
In order to update the tracing chains it is required to introduce the layer difference numbers RCh. Rnc. and Rnh and the layer difference indexes CCh(i). Cnc( . C--ιh(i) and chn%( where the subscript ch indicates that the difference is in terms of the current address and the home address and nh is in terms of the new address and the home address. The above-mentioned addresses are portable communication unit addresses. Similarly, nn* is in terms of the new address of the portable communication unit and the address of the ith layer node at which the M message was received and hn* is in terms of the home address of the portable communication unit and the address of the ith layer node at which the M message was received. The layer difference number RC is the number of the highest layer where the current address and the home address of the portable communication unit are different. For example in FIG. 1 , Rc = 4 if a portable communication unit is located (current address) somewhere in Atlanta (col. 7) and is registered (home address) somewhere in Boynton Beach (col. 1 or 2). The other layer difference numbers are defined in the same manner.
The layer difference index Cnh(D = True if the new address and the home address of the portable communication unit are the same at the ith layer, otherwise Cnh(D - False. For example (see FIG. 1) Cnh(4) = True, and Cnh(3) = False, if the portable communication unit find a new strongest port (new address) in Jacksonville and registered (home address) somewhere in Boynton Beach. The other layer difference indexes are defined in the same manner. The value of all the layer difference numbers and layer difference indexes are derived easily from the addresses.
Definitions:
Active(t)=True, if the portable communication unit is active at time t, or False, otherwise.
Tum_on=True, if not Active (t) and Active(t+Δt), or False otherwise.
Turn_off=True, if Active(t) and not Active(t+Δt), or False, otherwise.
Define SA = Ui=1 M area (SAj), where area (SAj) is the ith service area represented by the address SAj. Also define: INC =
True, if current address SA, or False, otherwise,
INn = True, if new address *≡ SA, or False, otherwise. The basic ideas of the algorithm that portable communication units employ are as follows.
An active portable monitors the environment for base signals. The portable determines (1) whether the current and new addresses are both inside the service area (i.e., whether INc and INn are true), and (2) whether the new address and the current address are not the same at the first layer (i.e, whether a paging boundary is crossed, or Cnc(1) is false). If the current and new addresses are both inside the service area, and the new address and the current address are not the same at the first layer, the portable communication unit transmits a message (M1) if the new and home address are different at the first layer. If the current and new address are both inside the service area, and the new address and the current address are not the same at the first layer, and the portable communication unit is not in the registered position (i.e., the current address is not the home address), it transmits a second message (M2) to the current port. The portable communication unit then continues monitoring the environment.
The portable also determines whether it is outside its home address, and whether the following additional conditions are met: (1) it is in its service area and turned off, (2) it is inside its
service area but moving outside of its service area, or (3) there exist unsuitable usage conditions. If the above determination is affirmative, the portable transmits a message (M3) to the current port. The portable communication unit then continues monitoring the environment.
The portable also determines whether (1) the portable is not at its home address, and (2) it is activated (i.e., turned on) inside its service area or it is moving into a service area. If those conditions are met, a fourth message (M4) is sent to the new port and the portable communication unit continues to monitor the environment. The foregoing discussion may be represented by the following case statement:
Case Beg in
INc & INn & not Cnc(1): Send M1 to new port if not Cnh(1)
Send M2 to current port if not Cch(1) not Cch(1) & [INc & Turn_off) or (INc & not INn) or unsuitable usage]: Send M3 to current port not Cnh(1) & [(INc & Turn_on) or (INn & not INc)]:
Send M4 to new port End
There are five fields in each of the M messages: (1) message type, (2) current address, (3) new address, (4) home address, and (5) pc.
After receiving these M messages, the base station transmits them immediately to its layer 2 parent node. The logic of the process employed at each of the nodes of layer i after receiving M messages is as follows.
Referring to FIG. 6, there is shown a flow chart for nodes receiving M1 messages. In step 300 a first message M1 is received in a node in layer /. A decision 302 is then made determining whether i is less than or equal to the number of the highest layer where the new and current addresses of the portable communication unit are different (i.e., whether i< Rnc)- In step 306, the message M1 is sent to its layer / +1 parent
communication service node when the determination of step 302 is affirmative.
Then in decision 307 it is determined whether / is greater than one. When the determination of step 307 is negative, the process is stopped (320) for the node in layer one. When decision
307 is affirmative, a further decision 310 is made determining whether there is an entry for the portable communication unit in the database of the layer / node.
When the determination of step 310 is affirmative, a decision 312 is made determining whether the new address and the home address of the portable communication unit are the same at the /-1 layer.
When the determination of step 312 is affirmative, the entry relating to the portable communication unit at the database of the layer / node is removed in step 316, and the process stops
(320) for the communication service node in layer /.
When the determination of step 312 is negative, the /- 1 layer address relating to the portable communication unit is updated and the process stops (320) for the layer i node. When the determination of step 302 is negative, a further decision 304 is made to determine whether / is equal to the sum of one and the number of the highest layer where the new address and the current address of the portable communication unit are different. When the determination of step 304 is affirmative, the process continues at decision 307. When the determination of step 304 is negative, it is determined (in step 308) that an error exists.
When the determination of step 310 is negative, a new entry will be added in the database at the layer i node with the layer i-
1 new address of the portable communication unit stored in the address field in step 318, and the process is stopped (320) for the layer i communication services node.
Referring to FIG. 7, there is shown a flow-chart for nodes receiving M2 messages. In step 340, the second message M2 is
received in a base station or a communication service node in layer /*.
In decision 342 it is determined whether i is less than the number of the highest layer where the new address and the current address of the portable communication unit are different. When the determination of step 342 is negative, the process proceeds to step 345. When the determination of step 342 is affirmative, the M2 message is sent to its layer i+1 parent node in step 344. Then in decision 345 it is determined whether /' is greater than 1. When the determination of step 345 is affirmative, a further decision 346 is made to determine whether the current address and the home address of the portable communication unit are the same at layer /. When the determination of step 345 is negative, the process stops (352) for the layer i node.
When the determination of step 346 is affirmative, a new entry relating to the portable communication unit with an "out" mark is added (in step 348) in the database at the layer / node. The out mark indicates that the portable communication unit is not at its home address. The process then stops (352) for the layer i communication services node. When the determination of step 346 is negative, a further decision 347 is made to determine whether the first layer is the highest layer where the current address and the new address of the portable communication unit are different.
When the determination of step 347 is negative, the entry relating to the portable communication unit in the database of the layer i node is removed in step 350, and the process for the layer i communication services node is stopped (352). When the determination of step 347 is affirmative, the process for the layer i communication services node stops (352).
Referring to FIG. 8, there is shown a flow-chart for nodes receiving M3 messages. In step 360, the third message M3 is received in a node in layer . In decision 361 , it is determined whether i is greater than one. When decision 361 is negative, the third message is sent to
its second layer parent node, and the process stops (372) for the node in layer one. When the determination of decision 361 is affirmative, a further decision 362 is made determining whether the current address of the portable communication unit and the address of the node, at which the third message was received, are the same at layer i, and whether i is less than or equal to the number of the highest layer where the current address and the home address of the portable communication unit are different. When decision 362 is affirmative, the M3 message is sent to its layer i+1 parent node in step 364. Then in step 370 the entry relating to the portable communication unit is removed from the database of the node in which the third message was received, and the process stops (372) for the layer i communication services node. When decision 362 is negative, a further decision 366 is made to determine whether the home address of the portable communication unit and the address of the node in which the third message was received are the same at layer i, and whether i is greater than two. When decision 366 is affirmative, the third message is sent to its layer i-1 child node along the path leading to the home address of the portable communication unit, and the process continues at step 370. When decision 366 is negative, the process continues at step 370.
Referring to FIG. 9, there is shown a flowchart for nodes receiving M4 messages. In step 400 a layer i node receives an 4 message. In decision 401 it is determined whether i is greater than one. If decision 401 is affirmative, a further decision 402 is made to determine if i equals two, and if the new address of the portable communication unit and the address of the node at which the fourth message was received, are the same at layer i. If decision 402 is negative, a decision 408 is made. If decision 402 is affirmative, a decision 404 is made.
In decision 404, the layer i node will make an authentication test to determine whether the customer (portable communication unit) is authentic. If decision 404 is negative, the
process stops (406) for the layer i node. If decision 404 is affirmative, the process continues at decision 408.
In decision 408 it is determined whether the new address of the portable communication unit and the address of the node at which the fourth message was received, are the same at layer i. When decision 408 is negative, the process continues at decision 414. When decision 408 is affirmative, a further decision 410 is made determining whether i is less than or equal to the number of the highest layer where the new address and the home address of the portable communication unit are different.
When the determination of step 410 is affirmative, the fourth message is sent to its layer i+1 parent node in step 415, and the process continues at step 416. When the determination of step 410 is negative, a further decision 411 is made determining whether i is greater than two.
If decision 411 is affirmative the fourth message is sent to the layer i-1 child communication services node along a path leading to home address of the portable communication unit. Then the process continues at step 416. If decision 411 is negative, the process continues at step 416. In step 416, an entry with the layer i-1 address of the portable communication unit is added in the database of the node, and the process stops for the layer i communication services node.
In decision 414 it is determined whether the home address of the portable communication unit and the address of the node at which the fourth message was received, are the same at layer i. If decision 414 is negative then it is determined in step 420 that there is an error, and the process stops.
When the determination of step 414 is affirmative, a further determination is made as to whether i is greater than two in decision 417 . If decision 417 is affirmative, the fourth message is sent (422) to the the layer i-1 child communication services node along a path leading to home address of the portable communication unit, and the process continues at step 418. If decision 417 is negative, the process continues at step 418.
In step 418, a new entry relating to the portable communication unit with an "out" mark is entered in the database at the layer i node, and the process stops for the layer i communication services node. The out mark indicates that the portable communication unit is not at its home address.
Referring to FIG. 10, there is shown an example of an address chain for a customer of class 5 or 6 (after moving), in this example, the user of portable communication unit 24 has a home address as follows: (USA, Florida, 407, Boynton, 1 ,d). The portable 24 is moving from 8,d to 9,d (indicated by the portable's phantom image 24'). Thus, the portable 24 has a current address as follows: (USA, Georgia, 404, Atlanta, 8,d), and a new address as follows: (USA, Georgia, 404, Athens, 9,d). As the portable 24 moves out of cell 8,d, it transmits a message M1 to the base station in cell 9,d, and an M2 message to the base station at cell 8,d.
According to the invention, when the base station at 9,d receives the M1 message, it is transmitted to the Athens node. When the Athens node receives the M1 message it will send the message to node 404, and add an entry indicating that the portable unit 24 is currently in cell 9,d. Then the 404 node updates the entry to indicate that the current address for unit 24 is now in Athens.
Thus a communication system in accordance with the invention provides a distributed database including location information relating to portable communication units within the system, and processes for tracing the portable communication units and for updating their locations, thus avoiding the necessity of maintaining a single database for the whole system.