MXPA99009898A - System and method for recording transactions - Google Patents

System and method for recording transactions

Info

Publication number
MXPA99009898A
MXPA99009898A MXPA/A/1999/009898A MX9909898A MXPA99009898A MX PA99009898 A MXPA99009898 A MX PA99009898A MX 9909898 A MX9909898 A MX 9909898A MX PA99009898 A MXPA99009898 A MX PA99009898A
Authority
MX
Mexico
Prior art keywords
transaction
entry
list
pointer
indexed
Prior art date
Application number
MXPA/A/1999/009898A
Other languages
Spanish (es)
Inventor
S Velamuri Syana
Torbert Julia
Nimmagadda Prasad
Original Assignee
Bellsouth Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bellsouth Corporation filed Critical Bellsouth Corporation
Publication of MXPA99009898A publication Critical patent/MXPA99009898A/en

Links

Abstract

Recording transactions using a chronological list superimposed on an indexed list. A transaction log of transaction entries is maintained as a chronological list superimposed on an indexed list. Preferably, each transaction entry includes a transaction descriptor field, a time stamp field, a chronological list pointer field and an indexed list pointer field. A first chronological list pointer points to the oldest transaction entry in the transaction log and a last chronological list pointer points to the latest transaction entry in the transaction log. The chronological list pointer field of a transaction entry points to the next oldest transaction entry. The indexed list includes a number of indexed list entry pointers. Each indexed list entry pointer corresponds to an index and points to a transaction entry with the same index. Th indexed list pointer field of a transaction entry points to another transaction entry with the same index. Adding a transaction entry to the transaction log or deleting a transaction entry from the transaction log includes updating the chronological list pointers and the indexed list pointers.

Description

SYSTEM AND METHOD TO REGISTER TRANSACTIONS FIELD OF THE INVENTION This invention relates, in general, to the registration of transactions and, in particular, to a transaction record using a chronological list superimposed on an indexed list.
BACKGROUND OF THE INVENTION The telecommunications industry is on the verge of a major change in the way local telephone service is provided. Traditionally, a single service provider provided local service to all telephone subscribers within a local market. However, under the Telecommunications Act of 1996, multiple service providers can operate within a local market and compete for local subscribers. In the competition for local subscribers, the existing service provider has an advantage over other service providers if local telephony subscribers must change telephone numbers when changing service providers. To eliminate any advantage that the existing local service provider may have due to the subscriber's reluctance to change the telephone numbers, a local telephone subscriber is allowed to maintain an existing telephone number.
P16E0 / 99MX when - the subscriber changes the service providers. The Local Number Portability ("LNP") is the mechanism that allows a local telephone subscriber to keep an existing telephone number even when the subscriber changes local service providers. Currently, each telephone subscriber line is assigned a directory number or telephone number. A directory number is the number that is dialed or entered by a call originator to make a phone call. Each directory number in the United States includes ten digits (for example: 404-222-2500). A directory number contains a three-digit area code ("NPA") followed by a three-digit change code ("NXX"). The first six digits of a directory number are known as the "NPA-NXX". For example, there are 10,000 directory numbers that start with NPA-NXX 404-222 (that is, 404-222-0001, 404-222-0002, etc.). In a telecommunications network that has a validated LNP, each NPA-NXX is normally assigned to a single switch. However, in a telecommunications network with validated LNP, an NPA-NXX is no longer assigned to a single switch. A directory number can be "moved" to a switch server by a different service provider so that the NPA-NXX of a directory number already P1650 / 99MX does not identify only one switch. Traditional telephone routing procedures assume that the NPA-NXX of a directory number identifies only one switch. To provide LNP, new telephone routing procedures are needed because the NPA-NXX of a directory number no longer identifies only one switch. A method for routing calls in a local number portability environment is described in EP 0 751 691 A2, entitled "A Method for Routing Telephone Calis to Subscribers of Different Service Providers Within a Common Numbering Plan Area". In this method, an area code for service provider ("SPA" - service provider area code) is assigned to each local service provider. To route a call using this method, the NPA is replaced with the SPA for the appropriate local service provider. In another method for routing telephone calls in a telecommunication network validated with LNP, the originating switch refers to an LNP database to determine which switch serves a particular directory number. The LNP database includes a list of directory numbers and the corresponding Local Routing Numbers ("LRN"). An LRN identifies the switch that serves the number P1650 / 99MX directory. Each local service provider can maintain its own LNP database. For example, if a telephone call is made from a directory number in Network A to a directory number in Network B, the switch that originates the call in Network A refers to an LNP database in Network A to determine where the call should be routed. The LNP database includes an entry for the directory number that was called indicating that the directory number is served by a switch on Network B. Therefore, the switch that originates the call on Network A routes the telephone call to a switch on Network B. Alternatively, local service providers can share an LNP database. A method for updating a shared LNP database is described in EP 0750 434 A2, entitled "Method for Automatic Maintenance of a Local Number Portability Data Base". In this method all local service providers have access to a central LNP database. The central LNP database is updated whenever an operational support system receives a new client line order. When a subscriber changes local service providers, the subscriber's directory number is moved to a network managed by a provider P1650 / 99MX different local service. If each local service provider maintains its own LNP database, then the local service providers must update their respective LNP databases with network information for the new local service provider. Ideally, all LNP databases are updated simultaneously so that calls to the subscriber's directory number are appropriately routed after the change of service providers. However, in reality, there is a delay between updates because the updates are made independently by each local service provider. If the LNP databases are not updated simultaneously, then a message not associated with a call can "interlace" between local service provider networks, that is, the message can be routed between the networks in a cycle or loop until that both LNP databases are updated. For example, a cycle or loop may occur if a subscriber moves from the local service provider A to the local service provider B and the LNP databases are not all updated when a CLASS service (Signaling Services for Local Area Client - Custom Local rea Signaling Services) such as the "Repeat Dialing" service is invoked for the subscriber's directory number. Before the change, the base of P1650 / 99MX LNP data for the local service provider A and the LNP database for the local service provider B both indicate that the subscriber directory number is served by a switch in Network A. After the change, the provider A local service updates its LNP database to indicate that the subscriber directory number is served by a switch in Network B. However, the local service provider B does not immediately update its LNP database, so its base The LNP data still indicates that the client number is served by a switch on Network A. If the subscriber's directory number is initially occupied, Repeat Dialing can be invoked to monitor the directory number to determine when the number is available. of directory. Once the subscriber's directory number is available, the call can be completed. Messages that are not associated with calls are used to monitor the status of the subscriber's directory number. Some of the messages require Global Title Translation ("GTT" - Global Title Translation). If the call to the subscriber's directory number originates from Network A, the Network A switch requests the LNP database from Network A to determine which switch serves the directory number. The LNP database of Network A indicates that a switch on Network B serves the P1650 / 99MX directory number, so Network A sends a message to Network B to determine the status of the called number. When Network B receives the message, it is requested to the LNP database of Network B to determine which switch serves the directory number. The LNP database of Network B indicates that the message should be routed to a switch on Network A, so Network B sends the message back to Network A. The message continues to interconnect between Network A and Network B until the LNP database of Network B is updated. The cycle or loop can also occur if there is an error in one of the LNP databases. An error may arise due to a human error or a processing error. The cycle or loop is a problem because a cycle or loop message consumes network resources and negatively impacts the performance and reliability of the network. Cycle or loop messages also create an overload condition in the network, causing no legitimate calls to be made. Several solutions have been proposed to solve the problem of the cycle or loop. A proposed solution includes marking a message with a "dirty" bit. A dirty bit is sent through the source network before sending the message. The source network checks the dirty bit for each message it receives from another network. If the dirty bit is sent, then the originating network detects a cycle or P1650 / 99MX loop. One disadvantage of the dirty bit proposal is that the dirty bit must be preserved by all local service providers. However, there is no supply of a dirty bit in the existing message routing protocol, therefore, there is no guarantee that the dirty bit will be preserved. Another proposed solution is the "catwalk selection". This solution requires a network to select messages received from other networks to detect a cycle or loop message. A message received from another network is selected to determine whether the message originates in the network receives the message. If the message originates in the network that receives the message, then the message is derived. One disadvantage of this solution is that it will only detect derivations that include a source network. If a cycle or loop occurs between two networks that are not the ones that originate, the cycle or loop is not detected. A third proposed solution is the transaction ID log. The transaction ID log keeps a record of messages recently sent to other networks and compares a message received from another network with the message log. If the received message matches a message in the record, a cycle or loop is detected. The record is kept so that it only contains messages P1650 / 99MX sent within a predetermined period of time. One advantage of the transaction ID log is that it is a sufficient auto solution. The transaction ID log may be implemented by a local service provider regardless of whether it is implemented by other local service providers. Another advantage is that the registry works with existing message protocols. Although the transaction ID log is theoretically attractive, it has not been previously implemented due to consequences that would adversely impact the performance of the network. The Illinois Commerce Commission ("ICC"), a group formed to study the message loop or cycle in validated LNP telecommunications networks and to provide recommended solutions, considered but did not follow the transaction ID log . The IIC Subcommittee [sic] concluded that the transaction ID log was too strong a processor and, therefore, did not follow the transaction ID log. Accordingly, there is a need in the art for a transaction ID log implementation wherein the time to compare a new transaction with the transaction income existing in the transaction record is reduced to P1650 / 99MX minimum. There is also a need in the art for a transaction ID chronological record implementation where the time to maintain a transaction record is minimized.
SUMMARY OF THE INVENTION The present invention satisfies the needs described above by using a chronological list superimposed on an indexed list to implement the transaction ID log. The chronological list facilitates the maintenance of transaction records and the indexed list facilitates the search of the transaction record. In a validated LNP telecommunications network, the present invention can be used to detect cyclization of messages between networks. Generally described, the present invention provides a system and method for recording transactions, such as messages not associated with calls, in a transaction record using a chronological list superimposed on an indexed list. A transaction record includes a number of transaction entries. Each transaction entry corresponds to a previous transaction. When a new transaction is received, the new transaction is compared with the existing transactions in the transaction record. If a match is detected between the new transaction and P1650 / 99MX an existing transaction, cycle or loop is detected. Once a transaction cycle or loop is detected, the appropriate action can be taken to break the cycle. To ensure that a valid subsequent transaction is not detected as a cycle or loop transaction, the expired transaction entries are canceled from the transaction record. Normally, a transaction entry is expired if it has been in the transaction record longer than a predetermined maintenance period. A transaction entry typically includes a transaction descriptor field, a date field, a chronological list pointer field and an indexed list pointer field. The transaction descriptor field contains a transaction descriptor that identifies the transaction and other transaction information. The date field contains a dater that indicates when the transaction was initiated. The chronological list pointer field can contain a chronological list pointer that points to the next oldest transaction entry. The indexed list pointer field can contain an indexed list pointer that points to another transaction entry with the same index. Each transaction entry in the transaction record is placed both in the list P1650 / 99MX chronological as in the indexed list. The chronological list sorts the transaction entries from the oldest transaction entry to the most recent transaction entry. The pointers in the chronological list are associated with the transaction entries in the chronological list. For example, a first chronological list pointer points to the oldest transaction entry and a last chronological list pointer indicates the entry of the most recent transaction. The order of the remaining transaction entries in the chronological list is maintained using chronological list pointers. A chronological list pointer links a transaction entry to the next oldest transaction entry. The chronological list minimizes the time required to identify and cancel a transaction entry that expires. The indexed list is a list of indexed list entry pointers. Each entry pointer to an indexed list corresponds to an index and points to a transaction entry with the same index. The index for a transaction entry can be determined by addressing the transaction descriptor for the transaction entry. If there is more than one transaction entry with the same index, then the transaction entries are linked together via the indexed list pointer fields of the transaction entries. By P1650 / 99MX example, if there are two transaction entries with the same index, then the indexed entry pointer points to the first transaction entry and the indexed list pointer field of the first transaction entry points to the next entry of transaction. The indexed list reduces the number of transaction entries that must be searched to determine if there is a match between a new transaction and an existing transaction. Reducing the number of entries minimizes the time required to compare a new transaction with an existing transaction. To maintain the transaction record, transaction entries are verified to determine if any of the transaction entries have been stored in the transaction record for longer than the default maintenance period. The first chronological list pointer is used to identify the oldest transaction entry in the transaction record. The date field for the oldest transaction entry is checked to determine if the transaction entry is expired. If the oldest transaction entry is expired, then the transaction entry is canceled from the chronological list and from the indexed list. To cancel the oldest transaction entry in the chronological list, the first chronological pointer will be P1650 / 99MX updates to point to the next oldest transaction entry. To cancel the oldest transaction entry in the indexed list, the entry pointer to the indexed list that corresponds to the oldest transaction entry is updated. If the field for indexed entry pointer of the oldest transaction entry contains a list indicator end, then there are no other transaction entries with the same index and the indexed list entry pointer is updated to contain one end of list indicator. If the field for indexed entry pointer of the oldest transaction entry contains a pointer for another transaction entry, then the indexed list entry pointer is updated to point to that transaction entry. To compare a new transaction with the existing transactions in the transaction record, the index for the new transaction is calculated. The index identifies an indexed list entry pointer corresponding to the index. If there is no transaction entry corresponding to the index, then the indexed list entry pointer contains one end of list indicator. Otherwise, the indexed list entry pointer contains a pointer to a transaction entry corresponding to the index. If there are more than P1650 / 99MX a transaction entry corresponding to the index, then the field for indexed list pointer of the transaction entry corresponding to the index contains a pointer to another transaction entry. Once the transaction entries corresponding to the Index are identified, the transaction information for each transaction entry is compared with the transaction information for the new transaction. If there is a match, then a cycle or loop is detected. If there is no match, a new transaction entry is created for the new transaction and the new transaction entry is created for the new transaction and the new transaction entry is added to the transaction record. To add a new transaction entry to the transaction record, the last chronological list pointer is updated to point to the new transaction entry. The field for the chronological list pointer of the transaction entry previously signaled by the last chronological list pointer is updated to point to the new transaction entry. If the indexed list entry pointer corresponding to the index for the new transaction contains a list indicator endpoint, the indexed list entry pointer is updated to point to the new transaction entry. Otherwise, the P1650 / 99MX field for indexed list pointer of the last transaction entry corresponding to the index is updated to point to the new transaction identifier. The use of a chronological list superimposed on an indexed list solves the problems of maintaining and quickly searching for the transaction record. The chronological list minimizes the time required to identify and cancel the oldest transaction entries. It is not necessary to search the complete transaction record to locate the oldest transaction entry because the first chronological list pointer points to the oldest transaction entry. Similarly, only those transaction entries with the same index of the new transaction are searched to determine if a new transaction matches an existing transaction in the transaction record. The search time is reduced to the minimum because only those transaction entries with the same index are searched. These and other aspects, features and advantages of the present invention can be understood and appreciated more clearly from a review of the following detailed description of the disclosed modes and with reference to the attached drawings and claims.
P1650 / 99MX BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram of two switched telephone networks illustrating the operating environment for an exemplary embodiment of the present invention. Figure 2 is a block diagram of a computer illustrating the operating environment for an embodiment and method of the present invention. Figure 3 is an illustration of a transaction entry created by an exemplary embodiment of the present invention. Figure 4A is an illustration of a transaction record created by an exemplary embodiment of the present invention. Figure 4B is an illustration of the transaction record of Figure 4A after the cancellation of a transaction entry by an exemplary embodiment of the present invention. Figure 4C is an illustration of a transaction record of Figure 4A after the addition of a transaction entry by an exemplary embodiment of the present invention. Figure 5 is a logical flow diagram illustrating the steps for maintaining a transaction record by canceling the expired transaction entries, in accordance with an exemplary embodiment of the present invention.
P1650 / 99MX Figure 6A is a logic flow diagram illustrating the steps for adding a transaction entry to a transaction record, in accordance with an exemplary embodiment of the present invention. Figure 6B is a logical flow diagram illustrating steps for comparing a transaction with existing transactions in a transaction record, in accordance with an exemplary embodiment of the present invention.
DETAILED DESCRIPTION The present invention is directed to a system and method for recording transactions in a transaction log using a chronological list superimposed on an indexed list. In one embodiment, the present invention can be used to implement the transaction ID log in a validated LNP telecommunications network. Described briefly, a transaction log of messages sent recently to other networks is kept in a chronological list and in an indexed list. Each time a message is received from another network, the message is compared with existing messages in the transaction log. If the message matches an existing message in the transaction log, then a cycle or loop is detected. The chronological list is P1650 / 99MX used to detect and cancel transaction entries expires. The indexed list is used to compare a new message with existing messages in the transaction record. The use of a chronological list superimposed on an indexed list implements the transaction ID log without adversely impacting the performance of the network.
Telecommunication Operation Environment Ex emplificative Figure 1 is a functional block diagram illustrating a portion of a public switched telecommunications network ("PSTN") configured for LNP. Two Advanced Intelligent Networks lia and 11b ("AINs" - Advanced Intelligent Networks) represent the portion of the validated LNP of the PSTN 10. Although Figure 1 illustrates two networks in the validated LNP portion of the PSTN 10, there may be additional networks for providers. of additional local service. Although Figure 1 shows both networks as AINs, a network is not necessarily implemented as an AIN. An AIN is well known to those skilled in the art and is described in the patent commonly assigned to Weisser, Jr. , U.S. Patent No. 5,430,719.
P1650 / 99MX The AINs lia and 11b may include a plurality of central office switches (not shown). Some of the central office switches are equipped with service switching points ("SSPs"). The representative SSPs 12a and 12b are shown in Figure 1. An SSP (specifically, a Class 5 central office switch) is the AIN component of a typical electronic central office switch used by a local exchange bearer. The terms "SSP" and "switch" are used interchangeably here to refer to a telecommunications switch for connecting voice channel circuits, including voice channel lines. In Figure 1, the voice channel lines for SSP 12a and SSP 12b are respectively 14a-n and 17a-n. The AINs switches 11 and 11b are interconnected by a network of high-capacity voice channel circuits known as trunks 22. Each switch of an AIN can operate to receive a communication, such as a telephone call, that originates in a line served by the switch and for routing the telephone call to the correct terminating station. In Figure 1, the terminating equipment is represented by telephones 16a-n and 18a-n. Although the telephones are illustrated in Figure 1 as the pieces of the terminating equipment, the terminating equipment may include P1650 / 99MX other communication devices, such as cordless telephones, facsimile machines, computers, modems, etc. Each switch in an AIN is connected to a local signal transfer point ("STP" signal transfer point) via a data link. In Figure 1, the switch 12a is connected to the STP 24a via the data link 26a and the switch 12b is connected to the STP 24b via the data link 26b. STPs 24a and 24b are multi-port, high-speed packet switches that are programmed to respond to routing information and route a packet to its destination. The STP 24a of Network A is connected to STP 24b of Network B via a data link 19 of Signaling System 7 ("SS7" - Signaling System 7). Most of the intelligence of an AIN resides in a plurality of local service control points ("SCPs"), represented by SCP 27a and SCP 27b in Figure 1. SCP 27a is connected to the STP 24a via a data link 28a of SS7 and SCP 27b is connected to STP 24b via a data link 28b of SS7. An SCP is an intelligent network element that can be programmed remotely. As is known by those skilled in the art, SCPs are physically implemented by relatively fault tolerant computers.
P1650 / 99MX powerful. As shown in Figure 1, an LNP database can be located in an SCP. An LNP database includes a look-up table that crosses the reference of directory numbers moved with Local Routing Numbers ("LRN" - Local Routing Numbers). An LRN identifies the switch that serves the directory number moved. Each local service provider can maintain its own LNP database. Alternatively, if future implementations of an STP or an SSP contain sufficient memory, an LNP database can be located in an STP or in an SSP. An SSP can be configured to interface with the intelligent network elements of the AIN through the use of an "activator". In general, an activator is defined by a predetermined set of conditions and serves as an indicator for the SSP to take some action. For example, in response to an activator, an SSP 12a can create a digital data message for transmission over the digital data link network 26a and 28a. The SSP normally holds the communication until the SSP receives a response to its message from an appropriate network element, such as an SCP, instructing the SSP to take a certain action. If the SSP does not receive instructions within a certain amount of time, the SSP is "time-out" and executes a default task for the P1650 / 99MX communication. For more information regarding the AIN protocol, see Bellcore Specification TR-NWT-001284 Switching Systems Generic Requirements for AIN 0.1, which is incorporated herein by reference. The message created by an SSP in response to an activator is known as a "query" message. A query message opens a "transaction" and the SSP generally withholds communication while the transaction remains open. The response to the inquiry message may be a "conversation" message or a "response" message. Conversation messages allow bidirectional exchanges between network elements while the transaction remains open. A "response" message closes the transaction opened by the inquiry message, and normally instructs the SSP to route the held communication for connection to a terminating station. An activator can be activated or deactivated in an SSP by another network element through an "update" message. Query messages, conversation messages, response messages and update messages are standard message types defined by the AIN protocol. The decalles of the AIN protocol are well known to those skilled in the art and will not be described here in additional form. For more information regarding the AIN protocol, see Bellcore P1650 / 99MX Specification TR-NWT-001284 Switching Systems Generic Requirements for AIN 0.1, which was referenced in the foregoing. Figure 1 can be used to illustrate message routing not associated with call in a validated telecommunications network LNP. In this example, the SSP 12a detects an activator of a originating user station 16n in Network A. The activator causes the SSP 12a to open a transaction and formulate a message to verify the status of the directory number in the end user station 18a in Network B. Additional messages may be presented to verify the status of a so-called directory number if the Repeated Dialing service is invoked. Some of the messages associated with a CLASS service such as the Repeated Dialing Service may require GTT. To route a message that requires GTT from Network A, STP 24a accesses the LNP database 30a from SCP 27a to determine where the message should be routed. In this example, the LNP database 30a indicates that the message should be routed to Network B, so SCP 27a instructs STP 24a to route the inquiry message to Network B via data link 19 of SS7. When Network B receives the message, STP 24b accesses LNP database 30b of SCP 27b to determine whether the message concerns a directory number served by a Network B switch.
P1650 / 99MX this example, the LNP database 30b indicates that the message concerns a directory number served by a Network B switch, thus the SCP 27b instructs the STP 24b to verify the status of the directory number in the SSP 12b for terminal user station 18a. To illustrate the intertwining of the message in a validated LNP telecommunications network, consider the same trigger scenario. However, in this example, the directory number has been moved recently from Network A to Network B. The LNP database of Network A is updated to reflect the porting of the directory number to Network B, but the The LNP database of Network B still indicates that the directory number is served by Network A. In order to route a message that requires GTT from Network A, STP 24a accesses the 30a LNP database of SCP 27a to determine in where the message should be routed. As before, the LNP database 30a indicates that the message should be routed to Network B, so SCP 27a instructs STP 24a to route the message to Network B via data link 19 of SS7. When Network B receives the message, the STP 24b accesses the LNP database 30b of the SCP 27b to determine whether the message concerns a directory number served by a Network B switch. In this example, the database 30b LNP has not been updated, thus the LNP database 30b P1650 / 99MX indicates that the message concerns a directory number served by a Network A switch. SCP 27b instructs STP 24b to route the message to Network A. When Network A receives the message, STP 24a accesses the message. database 30a LNP of SCP 27a to determine if the message concerns a switch on Network A. The database 30a of LNP indicates that the message concerns a switch on Network B, thus the message is routed back to Network B. The message continues to interweave between Network B and Network B until the LNP database of Network B is updated. Although the cycle or loop of the message has been illustrated using the Repeated Dialing service, those skilled in the art will appreciate that the cycle or loop of the message may occur in other situations. The message loop may be presented whenever the GTT is performed for messages such as Transaction Capabilities Applications Protocol ("TCAP") messages in a validated LNP telecommunications network. Finally, note that Figure 1 illustrates a conventional landline telecommunications system. For simplicity, the disclosed embodiment of the present invention is described in the context of this conventional landline telecommunications system. Should P1650 / 99 X, however, that alternative embodiments of the present invention may operate in association with cellular systems or with other wireless telecommunication systems.
Operative Environment for Computer Axis of embodiment Another embodiment of the present invention can be implemented in a computer system. The modality can be used to record transactions or other data in a transaction log so that the record can be searched and maintained quickly. Figure 2 and the following analysis provide a brief and general description of a computing environment suitable for the invention. Those skilled in the art will appreciate that the invention can be practiced with other computer system configurations, including: portable devices, multiprocessor systems, consumer-or microprocessor-based electronic devices, minicomputers, macrocomputers, and similar. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, the program modules can be located in storage devices of P1650 / 99MX both remote and local memory. Referring to Figure 2, an exemplary computer system for implementing an embodiment of the invention includes a conventional personal computer 220, which includes a processing unit 221, a system memory 222 and a system bus 223 that couples memory system with the processing unit 221. The personal computer 220 further includes a hard disk drive 227, a magnetic disk drive 228, for example, for reading from a writeable disk 229 or for writing thereto, and a disk drive 230, for example for reading a CD-ROM disc 231 or for reading from another optical medium or for writing thereto. The hard disk drive 227, the magnetic disk unit 228 and the optical disk unit 230 are connected to the system bus 223 by means of a hard disk interface 232, a magnetic disk interface 233 and an interface 234 optical unit, respectively. The units and their associated means for reading by computer provide non-volatile storage for the personal computer 220. Although the description of the medium for reading by the previous computer refers to a hard disk, a removable magnetic disk and a CD-ROM disk, it must appreciated by those with expertise in the technique than other types of media that can be read by a P1650 / 99MX computer, such as magnetic cassettes, instant memory cards, digital video discs, Bernoulli cartridges, and the like, can also be used in the exemplary operating environment. A number of program modules can be stored in the units and in the RAM 225, including an operating system 235, one or more application programs 236, other program modules 237, for example a program module 237a of log ID transaction, and program data 238. A user can enter commands and information on the personal computer 220 through the keyboard 240 and the pointing device, such as a mouse 242. Other input devices (not shown) may include: a microphone, joystick, playmat, satellite dish, scanner or the like. These and other input devices are often connected to the processing unit 221 through a serial port interface 246 that is coupled to the system bus, but which may be connected by other interfaces, such as a port for games or games. a universal serial bus (USB - universal serial bus). A monitor 247 or other type of display device is also connected to the system bus 223 via an interface, such as a video adapter 248. In addition to the monitor, personal computers include P1650 / 99MX normally other peripheral output devices (not shown), such as microphones or printers. The personal computer 220 can operate in a network environment that uses logical connections for one or more remote computers, for example a remote computer 249. The remote computer 249 can be a server, a router, a similar device or another common network node , and typically includes many or all of the described elements related to personal computer 220, although only one memory storage device 250 is illustrated in Figure 21. The logical connections illustrated in Figure 21 include a local area network 251 ( LAN - local area network) and a wide area network 252 (WAN - wide area network). Network environments are common places in offices, large intra-network enterprise computer networks and the Internet. When used in a LAN environment, the personal computer 220 is connected to the LAN 251 through a network interface 253. When used in a WAN network environment, the personal computer 220 normally includes a modem 254 or other means for establishing communications over the WAN 252, such as the Internet. The modem 254, which may be internal or external, is connected to the system bus 223 via the serial port interface 246. In a work network environment, the program modules P1650 / 99MX illustrated related to the personal computer 220, or with parts thereof, can be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between the computers can be used.
LNP Modality of the Present Invention The present invention is an implementation of the transaction ID register using a chronological list superimposed on an indexed list. One embodiment of the present invention can be used to detect a message loop or cycle in a validated LNP telecommunications network. In the LNP mode, a transaction record is comprised of a number of transaction entries, each transaction entry corresponds to a message, such as a TCAP message, sent to another network. An exemplary transaction entry 300 is shown in Figure 3. Preferably, the transaction entry includes a transaction descriptor field 302, a date field 304, a field for chronological list pointer 306, and a field for indexed list pointer 308. Field 302 transaction descriptor includes a transaction descriptor that identifies the transaction associated with the message. The field 302 P1650 / 99MX transaction descriptor also includes other information associated with the transaction. In the LNP mode, the transaction descriptor may include the TCAP transaction ID, the TCAP message type, the call originator point code of the SCCP header, and the length of the TCAP message. The field for dater 304 contains a dater that indicates the time at which the message was sent. Field 306 for chronological list pointer contains a chronological list pointer for the next entry in the chronological list. Field 308 for indexed list pointer contains an indexed list pointer for the next entry with the same index in the indexed list. Transaction entries are placed in chronological order in the chronological list using chronological list pointers. Preferably, two chronological list pointers, a first chronological list pointer and a last chronological list pointer keep the start track of the chronological list and the end of the chronological list, respectively. The first chronological list pointer identifies the oldest transaction entry in the record and the last chronological list identifies the most recent transaction entry. The order of the intervening transaction entries is maintained by the fields for the chronological list pointer of the transaction entries.
P1650 / 99MX The chronological list 406, illustrated in Figure 4A, comprises a plurality of chronological pointers 402, 404, 426, 436, 446, 456, 466 and 476. The first chronological list pointer 404 points to transaction entry 420 plus old in the chronological list and the last chronological list pointer 402 signals the most recent transaction entry 470 in the chronological list. The field for the chronological list pointer of a transaction entry points to the next oldest transaction entry. For example, the oldest transaction entry 420 includes a field for chronological list pointer 426 that contains a chronological list pointer for the second oldest transaction entry 460. The second oldest transaction entry 460 includes a field 466 for chronological list pointer that contains a chronological list pointer for the third oldest transaction entry 430. The field for chronological list pointer for the most recent transaction entry 470 contains a list indicator ending in field 470 for chronological list pointer. The list indicator term is illustrated in the figures by "IL." , the null pointer. The chronological list helps solve the problem of efficiently maintaining the transaction record. The transaction record is maintained by canceling the transaction entries P1650 / 99MX expire. Preferably, an expired transaction entry is a transaction entry that has been stored in the transaction record for a period of time greater than a predetermined maintenance period. The oldest transaction entries in the transaction record can be modified quickly and easily because the oldest transaction entries are on the front of the chronological list. The first chronological list pointer identifies the oldest transaction entry. The pointer to the chronological list of the oldest transaction entry identifies the second oldest transaction entry. In a validated LNP telecommunications network, maintaining the transaction record by debugging the expired transaction entries ensures that a subsequent valid message is not detected as a cycle or loop message. In addition, to be placed in a chronological list, the transaction entries are also placed in an indexed list. The indexed list comprises a list of indexed list entry pointers. Each entry pointer to an indexed list corresponds to an index and points to a transaction entry corresponding to the same index. A transaction entry corresponds to an index if the transaction descriptor for the transaction entry corresponds to the index. In a P1650 / 99MX implementation of the LNP mode, indexes vary from 0000 to 4095. However, the interval of the indices may vary from implementation to implementation. As discussed in more detail below, the lower index is preferably zero and the upper index is preferably defined as (2n-1), where n is an integer. Preferably, a transaction entry corresponds to an index if the "addressed" transaction descriptor for the transaction entry matches that index. Addressing converts a transaction descriptor into a pseudo-random index. The index is not truly random because for any given transaction descriptor, addressing always results in the same pseudo-random index. However, the pseudo-random indices produced by addressing are sufficiently random so that the transaction entries are evenly distributed among the indices. If the implementation uses indexes that vary from 0000 to 4095, then preferably, the transaction descriptor is addressed by calculating module 4096 of the transaction descriptor. The module operation is performed by dividing the transaction descriptor by 4096 and returning the remainder of the division operation. The surplus of the division operation is used as an index in P1650 / 99MX the indexed list. Module number 4096 is preferred, in part because the module of the transaction descriptor for a transaction entry can be determined by performing an AND logical operation with the transaction descriptor and 4095. As will be apparent to those skilled in the art, if the indexes varies from zero to 2n - 1, then module 2n can be determined by performing an AND logical operation with the transaction descriptor and 2n - l. Figure 4A also illustrates the indexed list 400. The indexed list 400 comprises a list of entry pointers 410a, 410b, 410c ... 410n of indexed list entry. Each entry pointer to an indexed list corresponds to an index. For example, entry pointer 410a of indexed list corresponds to 0000 and entry pointer 410b of indexed list corresponds to 0001. Addressing of transaction descriptors can result in multiple transaction descriptors having the same index. For example, transaction descriptor module 4096 and transaction descriptor module 4096 9192 are both, 1000. If there are multiple transaction descriptors with the same index, then all transaction entries with the same index are linked via the fields for indexed list pointer (for example, 428 and 438) of the transaction entries. As shown in Figure 4A, the P1650 / 99MX transaction entries 420, 430 and 440 and indexed list entry pointer 410a all correspond to index 0000. Input pointer 410a of the indexed list points to transaction entry 420. Transaction entry 420 is linked to the transaction entry 430 via its field for pointer 428 of the indexed list. Similarly, transaction entry 430 is linked to transaction entry 440 via its field for pointer 438 of indexed list. Since there are no other transaction entries with index 0000, transaction entry 440 contains one end of list indicator in its field for pointer 448 of indexed list. The indexed list helps solve the problem of quickly finding the transaction record to determine if a new transaction matches an existing transaction in the transaction record. When a new transaction is received, the transaction descriptor for the new transaction is routed to determine its index. The index is used to identify an indexed list entry pointer which, in turn, is used to identify transaction entries corresponding to the index. To determine if there is a match, the transaction information in the transaction descriptor field of the new transaction is compared to the transaction information in the transaction description fields P1650 / 99MX of the transaction entries corresponding to the index. Only the transaction entries corresponding to the index are verified. If the transaction information in the transaction descriptor field of the new transaction matches the transaction information in the transaction descriptor field of an existing transaction, the indices for the two transaction descriptors will match because the routing always produces the same index for the same income. A chronological list superimposed on an indexed list solves the problems of maintaining and efficiently searching the transaction record. The chronological list minimizes the time required to identify the oldest transaction entry. There is no need to look up the transaction log to locate the oldest transaction entry because the first chronological list pointer points to the oldest transaction entry. If the oldest transaction entry is expired or if there are no transaction entries available, then the oldest transaction entry can be canceled by modifying the first chronological list pointer and modifying the indexed list entry pointer associated with the index for the entry of the oldest transaction. The indexed list minimizes the time required to search the list for transactions that match P1650 / 99MX a new transaction. Only those transaction entries with the same index of the new transaction need to be compared. The steps for maintaining the transaction record by canceling the expired transaction entries can be illustrated as reference in Figures 4A, 4B and 5. Figure 4A illustrates an exemplary transaction record 408 using a chronological list 406 superimposed on an indexed list 400. Figure 4B illustrates the transaction record of Figure 4A after an expired transaction entry is debugged from the transaction record. Figure 5 is a logical flow diagram illustrating the steps for canceling a transaction entry expiring from the transaction record. Figure 4A illustrates the transaction record 408 before the cancellation of any transaction entry expires. The transaction register 408 comprises six transaction entries 420, 430, 440, 450, 460 and 470. The first chronological pointer 408 signals transaction entry 420 and the last chronological pointer 402 signals transaction entry 470. The chronological order of the transaction entries is 420, 460, 430, 440, 450 and 470. The indexed list contains indexes from 0000 to 4095. Transaction entries 420, 430 and 440 correspond to index 0000, transaction entry 450 It corresponds to P1650 / 99MX index 0002, and transaction entries 460 and 470 correspond to index 0004. Figure 5 illustrates the steps to cancel the expired transaction entries in the transaction record. Preferably, a transaction is expired if it has been stored in the transaction record for longer than a predetermined maintenance period. Maintenance of the transaction record can be initiated from a free state as shown in step 500. Alternatively, the maintenance of the transaction record can be started whenever a new transaction is received. In any case, a timer may be used to keep track of the time elapsed since the last maintenance operation was carried out and to indicate when the predetermined maintenance period has expired. The timer is verified in step 502 to determine whether the predetermined maintenance period has expired. If the timer indicates that the predetermined maintenance period has expired, then the method continues to step 504. In step 504, the transaction entry signaled by the first chronological list pointer is selected as the selected transaction entry. In Figure 4A, the first chronological pointer 404 points to transaction entry 420, so transaction entry 420 is selected as the entry of P1650 / 99MX transaction selected. Once the transaction entry is selected as the selected transaction entry, the date field 424 of the selected transaction entry 420 is verified in step 506 to determine whether the selected transaction entry is expired. If the dater contained in the dater field 424 indicates that the selected transaction entry 420 has been stored in the transaction register 408 for longer than the predetermined maintenance period, then the selected transaction entry 420 is canceled from the chronological list 406 in step 508 and the indexed list 400 in step 510. To cancel from the chronological list 406, the transaction entry 420 selected, the first pointer 404 of the chronological list is modified to signal the next oldest transaction entry 460 . The transaction entry 460 is identified as the next oldest transaction entry by the chronological list pointer in field 426 for the chronological list pointer of the selected transaction entry 420. The other chronological list pointers remain the same. The selected transaction entry 420 is also canceled from the indexed list. To cancel the selected transaction entry of the indexed list, the index for the entry of P1650 / 99MX Transaction 420 selected is calculated by addressing all or a predetermined part of the transaction descriptor. In an implementation of the LNP mode, the index is calculated by calculating the module 4096 of a predetermined portion of the transaction descriptor for the selected transaction entry. In Figure 4A, the index for the selected transaction entry 420 is 0000. The index is used to identify a pointer 410a of indexed list entry corresponding to the index. If the field 428 for indexed list pointer of the selected transaction entry 420 contains an indexed list pointer for a subsequent transaction entry 430, then the entry pointer 410a of the indexed list is modified to signal the next transaction entry 430 If the field 428 for indexed list pointer of the selected transaction entry 420 contains a list indicator end, then the indexed index entry pointer 410a is modified to include a list indicator end. The other indexed list entry pointers and the indexed list pointers remain the same. The oldest transaction entry for a given index is always marked by the indexed entry pointer because a new transaction entry is always added to the end of the indexed list. In this way, cancel a P1650 / 99MX transaction entry expires from the indexed list, it only requires that the entry pointer of the indexed list be modified. The details to add a transaction entry to the indexed list are described below. After the selected transaction entry is canceled, the transaction record appears as shown in Figure 4B. The transaction register now comprises five transaction entries 430, 440, 450, 460 and 470. The first chronological list pointer points to transaction entry 460 and the last pointer in the chronological list signals transaction entry 470. The chronological order of transaction entries is 460, 430, 440, 450 and 470. Transaction entries 430 and 440 correspond to index 0000, transaction entry 450 corresponds to index 0002, and transaction entries 460 and 470 correspond to index 0004 Preferably, if the selected transaction entry is canceled, then the next oldest transaction entry is checked to determine if it is also expired. Figure 5 shows that step 504 of selecting a transaction entry as the selected transaction entry, step 506 of making a determination of whether the selected transaction entry is expired, step 508 of canceling the entry of P1650 / 99MX transaction selected from the chronological list and step 510 of canceling the selected transaction entry from the indexed list are repeated until the determination in step 506 is that the selected transaction entry is not expired. Using the first chronological list pointer to select the selected transaction entry, once a determination is made that the selected transaction entry is not expired, no other transaction entry is verified because the remaining transaction entries have been stored in the transaction record for shorter periods of time. If the determination in step 506 is that the selected transaction entry is not expired or if the determination in step 502 is that the predetermined maintenance period has not expired, then the method returns to the inactive state of step 500. Alternatively , if the maintenance of the transaction record starts with the reception of a new transaction, the method continues with the steps to handle a new transaction. The steps for handling a new transaction can be illustrated with reference to Figures 4A, 4C, 6A and 6B. Figure 4A illustrates an exemplary transaction record 408 that uses a chronological list 406 superimposed on an indexed list P1650 / 99MX 400. Figure 4C illustrates the transaction register of Figure 4A after a new transaction entry is added to the transaction record. Figure 6A is a logical flow diagram illustrating the steps of adding a new transaction entry to the transaction record. Figure 6B is a logical flow diagram illustrating the steps of making a determination of whether a new transaction matches an existing transaction in the transaction record. Figure 4A illustrates the transaction register 408 before the new transaction is received. The steps of adding a new transaction to the transaction record start at the START task in step 600 of Figure 6A. In step 602, a new transaction is received. In step 604, a determination is made as to whether a transaction entry is available in the transaction record for a new transaction entry. If there is a transaction entry available for the new transaction, then the method continues to step 610 where a determination is made as to whether the new transaction matches an existing transaction in the transaction record. The steps for making a determination of whether the new transaction matches an existing transaction in the transaction record are illustrated in Figure 6B. In Figure 6B, the index for the P1650 / 99MX new transaction is calculated in step 630 by addressing the transaction descriptor. In the LNP mode illustrated by Figure 4A, the index is calculated by taking module 4096 from the transaction descriptor for the new transaction. For example, if the transaction descriptor for the new transaction is 0004, the index for the new transaction is routed by calculating module 4096 of 0004 which is 0004. Once the index for the new transaction is calculated, the entry pointer of the indexed list corresponding to the index is identified in step 632. If the index is 0004, then, as shown in Figure 4A, the entry pointer 410e of the indexed list is identified. In step 634, a determination is made as to whether the pointer to the indexed list entry contains a pointer to a transaction entry. If the indexed list entry pointer does not contain a pointer to a transaction entry, then the determination is that the transaction does not match an existing transaction in the transaction record and the method continues with step 612. If the entry pointer indexed list contains a pointer to a transaction entry, then the transaction information for the existing transaction entry is compared with the transaction information for the new transaction in step 636. In Figure 4A, the P1650 / 99MX entry pointer 410e of the indexed list points to transaction entry 460, so the transaction information for the existing transaction entry 460 is compared to the transaction information for the new transaction. If the transaction information for the existing transaction entry matches the transaction information for the new transaction, then a cycle or loop is detected and the method continues with step 618 of Figure 6A. In response to the detection of a cycle or loop, the network takes some action that may include closing the transaction that originates the message or resending the message. Alternatively, if the transaction information for the existing transaction entry does not match the transaction information for the new transaction, then the method continues with step 638. In this example, the transaction information for transaction entry 460 the existing one does not match the transaction information for the new transaction, so the method continues with step 638. In step 638, a determination is made whether the field for indexed list pointer of the transaction entry points to another input of transaction. If the field for indexed list pointer of the transaction entry points to another transaction entry, then the method returns to step 636. In the Figure P1650 / 99MX 4A, field 468 for indexed list pointer of transaction entry 460 signals transaction entry 470, so step 636 is repeated with transaction entry 470. In this example, the determination in step 636 is that the transaction information for transaction 470 does not match the transaction information for the new transaction, so the method proceeds to step 638. If the determination in step 638 is that the field for indexed list pointer of the transaction entry it does not signal to another transaction entry, then the method proceeds to step 612 of Figure 6A. The determination in step 638 for transaction entry 470 is that field 478 for indexed list pointer of transaction entry 470 does not point to another transaction entry, thus the method proceeds to step 612 of Figure 6A. The transaction is added to the transaction record in steps 612-616. In step 612, a new transaction entry is created for the transaction. The new transaction entry contains a transaction descriptor field, a dater, a field for a chronological list pointer, and a field for an indexed list pointer. In the LNP mode, the field for transaction descriptor contains, preferably, a portion of the SS7 header and the date field contains a P1650 / 99MX time that indicates when the message associated with the new transaction was presented. The new transaction entry 480 includes a transaction descriptor field 482, a date field 484, a field 486 for a chronological list pointer, and an indexed list pointer field 488 and is shown in Figure 4C. The new transaction entry is placed in the chronological list in step 614. To place the new transaction entry in the chronological list, the last chronological list pointer is updated to signal the new transaction entry. The field for chronological list pointer for the transaction entry previously signaled by the last chronological list pointer is also updated to signal the new transaction entry. In Figure 4C, the last pointer 402 of the chronological list is updated to signal the new transaction entry 480 and, the last field 476 for chronological list pointer for the transaction entry 470 previously signaled by the last chronological list pointer, is update to signal the new transaction entry 480. The field 486 for chronological list pointer for the new transaction entry 480 contains one end of list indicator. To place the new transaction entry in the indexed list, the new transaction entry P1650 / 99MX is placed at the end of the list of transaction entries with the same index. By placing the new transaction entry at the end of the list of transaction entries with the same index, the oldest transaction entry for a given index is always indicated by the pointer for indexed list entry. Transaction entries with the same index were previously identified in step 610 where a determination was made as to whether the new transaction matches an existing transaction in the transaction record. In the example of Figure 4C, the transaction entries 460 and 470 correspond to the same transaction index. The new transaction entry is added after the transaction entry 470 by modifying the field 478 for indexed list pointer of the transaction entry 470 to signal the new transaction entry 480. The field for indexed list pointer of the new entry of transaction contains one end of list indicator. Alternatively, if the indexed entry pointer to the index corresponding to the new transaction entry contains a list indicator end, then in step 616, the indexed list entry pointer is updated to signal the new entry of transaction. The transaction record is shown in the P1650 / 99MX Figure 4C, after the new transaction entry is added. The transaction register now comprises seven transaction entries 420, 430, 440, 450, 460, 470 and 480. The first pointer in the chronological list points to transaction entry 420 and the last chronological list pointer points to transaction entry 480 The chronological order of the transaction entries is 420, 460, 430, 440, 450, 470 and 480. The transaction entries 420, 430 and 440 correspond to the index 0000, the transaction entry 450 corresponds to the index 0002, and the transaction entries 460, 470 and 480 correspond to index 0004. If a transaction entry is not available in the transaction record when a transaction is received, then the oldest transaction entry is purged from the transaction record. The steps for making a transaction entry available for a recently received transaction are shown in Figure 6A. The transaction is received in step 602. In step 604, a determination is made as to whether a transaction entry is available in the transaction record. If a transaction entry is not available, then the oldest transaction entry is debugged from the chronological list in step 606 and debugged from the list indexed in step 608. Debugging the transaction entry further P1650 / 99MX from the chronological list and from the indexed list follows the steps described above in relation to the maintenance of the transaction record. The present invention is directed to a system and method for recording transactions in a transaction log using a chronological list superimposed on an indexed list. The chronological list is used to identify and cancel transaction entries. The time needed to identify and cancel expired transaction entries is minimized because the oldest transaction entry is at the beginning of the chronological list and is at the beginning of the list indicated by the indexed list entry pointer corresponding to the index for the oldest transaction entry. The indexed list is used to compare a new transaction with existing transactions in the transaction record to determine whether the new transaction matches an existing transaction. The new transaction is only compared to the transaction entries with the same index as the new transaction. The time to determine if the new transaction matches an existing transaction is reduced to a minimum by limiting the number of transaction entries compared only to those entries from P1650 / 99MX transaction with the same index as the new transaction. In one embodiment, the present invention can be used to implement the transaction ID log to detect message loop or cycle that is not associated with a call in a validated telecommunications network LNP. The use of a chronological list superimposed on an indexed list implements the transaction ID log without adversely impacting the performance of the network. Other modalities may be used to record other types of transactions or data. The present invention has been described in relation to particular embodiments which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will be apparent to those skilled in the art to which the present invention pertains without departing from the scope of the invention. Accordingly, the scope of the present invention is described by the appended claims and is supported by the foregoing description.
P1650 / 99MX

Claims (25)

  1. NOVELTY OF THE INVENTION Having described the present invention, it is considered as a novelty and, therefore, the content of the following CLAIMS is claimed as property; A method for recording transactions in a transaction record comprising a variety of transaction entries corresponding to transactions, characterized by the steps of: providing the transaction record by providing a chronological list that orders the transaction entries in accordance with the the moment in which the corresponding transactions occurred, superimposed on an indexed list that orders the transaction entries in accordance with the indices corresponding to the transaction entries; receive a new transaction; create a new transaction entry for the transaction; place the new transaction entry in the chronological list; and place the new transaction entry in the indexed list.
  2. The method according to claim 1, wherein the step of creating a new transaction entry for the transaction comprises: creating a transaction descriptor field that P1650 / 99MX comprises a transaction descriptor to identify the transaction; create a date field that comprises a time identifier to indicate a time when the transaction occurred; create a field for chronological list pointer comprising a chronological list pointer to identify a subsequent transaction entry corresponding to a transaction received after the new transaction; and create a field for indexed list pointer that contains an indexed list pointer to identify a next transaction entry that corresponds to the same index of the new transaction entry.
  3. The method according to claim 1, wherein the chronological list comprises a last transaction entry and a last chronological list pointer, the last transaction entry corresponds to a transaction received before the new transaction and comprises a field for a pointer of chronological list, and the last chronological list pointer indicates the last transaction entry, and where the step of placing the new transaction entry in the chronological list comprises the steps of: updating the field for list pointer P1650 / 99MX chronological for the last transaction entry to signal the new transaction entry; and update the last chronological list pointer to signal the new transaction entry.
  4. The method according to claim 1, wherein the indexed list comprises a plurality of indexed list entry pointers, each indexed list entry pointer corresponds to an index, and wherein the step of placing the new transaction entry in The indexed list comprises the steps of: determining an index for the new transaction entry; and update the indexed list entry pointer corresponding to the index for the new transaction entry to signal the new transaction entry.
  5. The method according to claim 1, wherein the indexed list comprises a first indexed entry pointer corresponding to a first index and pointing to a first transaction entry, and the first transaction entry comprises a field for a pointer of indexed list, and where the step of placing the new transaction entry in the indexed list comprises the steps of: determining an index for the new entry P1650 / 99MX transaction; and if the index for the new transaction entry is equal to the first index, then update the field for indexed list pointer of the first transaction entry to point to the new transaction entry.
  6. The method according to claim 1, wherein the indexed list comprises a plurality of indexed list entry pointers, each indexed list entry pointer corresponds to an index, which further comprises the steps of: calculating an index for the new one transaction; and comparing the transaction descriptor field for the new transaction with a transaction descriptor field for a transaction entry signaled by an indexed list entry pointer corresponding to the index for the new transaction.
  7. 7. A method for being used in a telecommunications network configured to have the ability to move a local number to detect a message loop or cycle by registering messages in a transaction record, wherein the transaction record comprises a plurality of transaction entries that correspond to a plurality of messages, characterized by the steps of: providing the transaction record by providing a chronological list superimposed on P1650 / 99MX an indexed list, the chronological list orders the transaction entries of an older transaction entry until a last transaction entry and the indexed list sorts the transaction entries i in accordance with the corresponding indexes for the transaction descriptors for the messages; receive a message; make a determination of whether there is a transaction entry available in the transaction record; if the determination is that there is no transaction entry available, then cancel one of the plurality of transaction entries of the transaction record; create a new transaction entry for the message; and place the new transaction entry in the transaction record.
  8. The method according to claim 7, wherein the step of canceling one of the plurality of transaction entries of the transaction record comprises canceling a transaction entry corresponding to the oldest message in the transaction record.
  9. The method according to claim 8, wherein the oldest transaction entry corresponds to the oldest message in the transaction record, the oldest transaction entry P1650 / 99HX comprises a chronological list pointer that points to a second oldest transaction entry, and a first chronological list pointer points to the oldest transaction entry, and where the i stage cancels a corresponding transaction entry to the oldest message, comprises: updating the first chronological list pointer to signal the second oldest transaction entry.
  10. The method according to claim 7, wherein the indexed list comprises a plurality of indexed list entry pointers, a first indexed list entry pointer corresponds to a first index, the first indexed list entry pointer points to the oldest transaction entry, and the oldest transaction entry comprises a field for indexed list pointer, and where the step of canceling the oldest transaction entry comprises: if the field for indexed list pointer of the transaction entry The oldest one points to a new transaction entry corresponding to the first index, then update the first indexed entry pointer to point to the next transaction entry.
  11. The method according to claim 7, wherein the indexed list comprises a plurality of indexed list entry pointers, a first P1650 / 99MX indexed list entry pointer corresponds to a first index, the first indexed entry pointer points to the oldest transaction entry, and the oldest transaction entry i comprises a field for indexed list pointer, and where the step of canceling the oldest transaction entry comprises: if the entry pointer field of the indexed list of the oldest transaction entry contains a list indicator end, then update the first indexed entry pointer to contain one end of list indicator.
  12. 12. A method for debugging out-of-date transaction entries of a transaction record having a plurality of transaction entries characterized by the steps of: verifying whether a predetermined maintenance period has expired; if the default maintenance period has expired, then select a transaction entry as a transaction entry selected from the transaction record, the transaction record organized as a chronological list superimposed on an indexed list, where the chronological list is ordered from a oldest transaction entry to a last transaction entry and the indexed list comprises P1650 / 99MX a plurality of entry pointers of indexed list corresponding to a plurality of indexes; verify if the selected transaction entry is expired; and if the selected transaction entry is expired, then (a) purge the selected transaction entry from the chronological list, and (b) debug the selected transaction entry from the indexed list.
  13. The method according to claim 12, wherein a first chronological list pointer points to the oldest transaction entry in the chronological list, and wherein the step of selecting one of the plurality of transaction entries as a transaction entry selected comprises: selecting the oldest transaction entry as the selected transaction entry.
  14. The method according to claim 12, wherein the transaction entry corresponds to a selected transaction and comprises: a transaction descriptor field comprising a transaction descriptor for identifying the selected transaction; a date field comprising a time identifier to indicate the time at which the selected transaction occurred; a field for chronological list pointer P1650 / 99MX comprising a chronological list pointer to identify a subsequent transaction entry corresponding to a transaction occurring after the selected transaction; and i a field for indexed list pointer comprising an indexed list pointer to identify a next transaction entry corresponding to a transaction with the same index of the selected transaction entry.
  15. The method according to claim 14, wherein the step of verifying whether the selected transaction entry is expired comprises comparing the date field of the selected transaction entry for the predetermined maintenance period.
  16. The method according to claim 14, wherein the step of debugging the selected transaction entry from the chronological list comprises: updating the first chronological list pointer to signal the subsequent transaction entry.
  17. The method according to claim 14, wherein the indexed list comprises a selected indexed entry pointer corresponding to a selected index and points to the selected transaction entry, and wherein the step of debugging the selected entry of the Indexed list comprises: P1650 / 99MX update the selected indexed entry pointer to point to the next transaction entry.
  18. The method according to claim 14, further comprising the steps of: if the selected transaction entry is expired, then selecting the subsequent transaction entry as a second selected transaction entry; verify if the second selected transaction entry is expired; and if the second selected transaction entry is expired, then (a) debug the second transaction entry selected from the chronological list, and (b) debug the second transaction entry selected from the indexed list.
  19. 19. A means that can be read on a computer having executable computer instructions for maintaining a transaction record, the transaction record comprises a plurality of transaction entries, characterized by the steps of: providing the transaction record organized as a list chronological overlay in an indexed list, where the transaction entries are arranged in chronological order in the chronological list that begins with an entry of P1650 / 99MX more recent transaction and ends with a last transaction entry and the transaction entries are arranged in the indexed list in accordance with the corresponding indexes for the transaction entries; maintain a first chronological list pointer to identify the oldest transaction entry in the transaction record; maintain a last chronological list pointer to identify the last transaction entry in the transaction record; maintaining a plurality of indexed list entry pointers to identify the transaction entries corresponding to the indices; maintaining a plurality of indexed list pointers to identify additional transaction entries corresponding to the same index; and maintaining a plurality of chronological list pointers to identify transaction entries subsequent to the oldest transaction entry.
  20. The means which can be read on a computer according to claim 19, wherein the oldest transaction entry comprises a chronological list pointer pointing to a second oldest transaction entry, and wherein the step of maintaining a first pointer from list Chronological P1650 / 99MX comprises: if the oldest transaction entry is debugged from the chronological list, then update the first chronological list pointer to signal to i the second oldest transaction entry.
  21. The means that can be read in a computer according to claim 19, wherein the step of maintaining a last chronological list pointer comprises: if a new transaction entry is added to the transaction record, then update the last chronological list pointer to point to the new transaction entry.
  22. The means that can be read in a computer according to claim 19, wherein the last transaction entry comprises a chronological list pointer, and wherein the step of maintaining a plurality of chronological list pointers comprises: if a new one is added. transaction entry to the transaction record, then update the chronological list pointer so that the last transaction entry points to the new transaction entry.
  23. 23. The means that can be read in a computer according to claim 19, wherein a first indexed entry pointer corresponds to a first index, a first entry Transaction P1650 / 99MX has an index equal to the first index, the first indexed entry pointer points to the first transaction entry, and the first transaction entry comprises an indexed index pointer that points to a subsequent transaction entry , and wherein the step of maintaining a plurality of indexed list entry pointers comprises: if the first transaction entry is debugged, then update the first indexed entry pointer to point to the next transaction entry.
  24. The means which can be read on a computer according to claim 19, wherein a second indexed entry pointer corresponds to a second index and the second indexed entry pointer contains a list indicator end, and wherein the step of maintaining a plurality of indexed list entry pointers comprises: if a new transaction entry having an index equal to the second index is added to the transaction record, then updating the second indexed entry pointer to point to the new transaction entry
  25. 25. The medium that can be read on a computer according to claim 19, wherein a third entry pointer of indexed list P1650 / 99MX corresponds to a third index and points to a third transaction entry with an index equal to the third index, and the third transaction entry comprises an indexed list pointer, and wherein the step of maintaining a plurality of entry pointers Indexed list comprises: if a new transaction entry having an index equal to the third index is added to the transaction record, then update the field for indexed list pointer of the third transaction entry to point to the new transaction entry. P1650 / 99MX
MXPA/A/1999/009898A 1997-04-30 1999-10-27 System and method for recording transactions MXPA99009898A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08846576 1997-04-30

Publications (1)

Publication Number Publication Date
MXPA99009898A true MXPA99009898A (en) 2002-05-09

Family

ID=

Similar Documents

Publication Publication Date Title
AU748854B2 (en) System and method for recording transactions
US5910981A (en) Automatic updating of a local database supporting local number portability
US6134316A (en) Telecommunications network with relocateability of subscriber number
US6377674B1 (en) Method for global title translation processing
US7548611B2 (en) Method and system for reporting events in telecommunication networks
JP3350862B2 (en) How to test intelligent networks
US6028914A (en) System and method for monitoring performance statistics in a communications network
US5940490A (en) Call processing to provide number portability
JP3919239B2 (en) Intelligent call processing based on the complete identification of the calling phone
US5740239A (en) Method and apparatus using bit maps to access data for processing telephone calls
US20050220287A1 (en) Telephone number portability method and apparatus
CA2256066A1 (en) An intermediate switch service management system architecture and method
US5949870A (en) System and method for providing local number portability service
US6683946B2 (en) Local exchange carrier escape list for local number portability
MXPA99009898A (en) System and method for recording transactions
US6788777B2 (en) Alternative treatment for AIN fault handling
US6654453B1 (en) Method and system for minimizing database structure overhead in handling large volume advanced intelligent network services
CA2359394C (en) Method and system for reporting events in telecommunication networks
WO2000033587A1 (en) Call number translator