APPARATUS AND METHOD FOR NUMBER PORTABILITY CALL PROCESSING

Abstract: An apparatus and method for completing a call between a telephone (100) and a telephone (110) in a telecommunications network supporting number portability. A telephone network includes a plurality of switches (102, 108, and 112) connected by switched telecommunications network (106). The method and apparatus use a ported number list or a routing cache in a network switch or adjunct processor to avoid inefficiencies of QOR and N-1 call processing procedures. The invention includes an originating switch (102) as well as an adjunct processor for completing a call between the originating switch (102) and a destination switch (108), the originating switch (102) including structure for storing a ported number list or routing cache in database (104), structure for searching the ported number list or routing cache, and routing a call to the destination switch (108).

Description: APPARATUS AND METHOD FOR NUMBER PORTABILITY CALL PROCESSING BACKGROUND OF THE INVENTION The present invention relates to number portability (NP) in telecommunication networks, and more particularly to systems and methods for number portability call processing. Currently, local phone service is provided by a single company, such as a Regional Bell Operating Company (RBOC). These companies basically enjoy a monopoly over local phone service within their regions. Thus, efforts are being made to introduce competition into the local phone market to eliminate the monopolies. Under the current system, however, if customers want to change from one service provider to another, they must also change their phone numbers. This is a serious deterrent to switching service providers and, thus, a hindrance to free and open competition. To alleviate the problem, the Federal Communications Commission (FCC) has issued an order for NP which, in addition to providing other features, will allow a customer to switch between local service providers while keeping the same phone number. The public telephone network consists of a large number of switches, such as Lucent Technologies' 5ESS, each serving about lOk-lOOk customers. When a customer dials a number, the customer's serving switch (the originating switch) must allocate a route to the switch serving the dialed number (the destination/provider switch). In the existing pre-NP telephone network, the first six digits (NPA-NXX) of a 10 digit phone number identify a particular switch in a particular geographic region. Switches can route calls between switches based on the NPA-NXX of the dialed number. In an NP environment, however, this relationship between the NPA-NXX and the physical location of a switch is broken, such that there is no fixed relationship between a dialed number and its geographic location. Current proposals for NP involve storing an identifier corresponding to the switch to which a subscriber's service has been ported in large, special purpose computers, known as service control points (SCP). A simple way to implement NP is for a switch to simply query an SCP for a routing address on every interswitch call, a procedure known as "N-l." However, since most numbers are unported, i.e., most customers stay with one provider, N-l results in many unnecessary SCP queries. An alternative procedure is to first route the call to the dialed subscriber's original provider switch. If the dialed subscriber's number has been ported, the original provider switch releases the call (i.e., the original provider switch sends a release message to the originating switch). The originating switch then queries the SCP to find out the identifier of the switch providing service to the ported, dialed subscriber. This procedure is called Query-on-Release (QOR). Both the N-l and QOR procedures suffer from inefficient use of network resources when used to provide number portability. The present invention can be implemented in a variety of telecommunication networks including, for example, a telephone network as depicted in the block diagram of Fig. 1. As shown in Fig. 1, a telephone network typically includes a plurality of switches A, B, and C connected by switched telecommunications network (STN) 106. For purposes of this description, these switches are designated as originating provider switch A 102, original provider switch B 108, and ported provider switch C 112. Each switch supports numerous subscribers such as telephone service subscribers 100 and 110. In a typical call flow in such a network, subscriber 100 dials a destination telephone number corresponding to subscriber 110; for example, 201-576-6123. Processing this call according to the QOR procedure, switch A 102 routes the call through STN 106 according to the NPA-NXX of the dialed number, i.e., 201-576, to original provider switch B 108 without first querying SCP 104 for a routing translation of the dialed number. The last four digits of the dialed number, i.e., 6123, identifies a specific telephone line number of Switch B 108. Note that there are also switches that support greater than 10,000 phone numbers. Switch B 108 connects the incoming call to line 6123, thus completing the call to subscriber 110. Number portability means that subscriber 100 will not need to use a new telephone number to call subscriber 110 if subscriber 110 changes service providers or relocates to an area served by a different switch owned by their current provider. In other words, once a provider assigns a telephone number to subscriber 110, this number remains the subscriber's telephone number regardless of the company providing telephone service to the subscriber or geographic location of the switch actually serving the subscriber. Once subscriber 110 changes from service provided by a telephone company owning switch B 108 to a company owning switch C 112, the company owning switch C 112 is known as a "ported provider" and the telephone number of subscriber 110, which remains the same, is a "ported number." In the example depicted in the block diagram of Fig. 1, ported subscriber 110 receives telephone service from line 1234 of switch C 112. The ported number represents a virtual address of the switch providing service and cannot be used to route calls without translation to obtain the identifier of the switch actually providing service to "ported subscriber" 110. The difference between routing calls using the N-l call processing procedure and the QOR call processing procedure is a matter of timing. Specifically, N-l and QOR are distinguishable by considering the timing of when ported number translation occurs. Under QOR the originating provider processes every number dialed by subscriber 100 as if the number were not ported and attempts to route the call to switch B 108 having switch identifier 201-576. However, if subscriber 110's service is ported to switch C 112, original provider switch B 108 will release the incoming call. Upon receiving a signal from switch B 108 that the attempted call to subscriber 110 through switch B 108 was released, originating provider switch A 102 queries a routing translation database in SCP 104 for a translation of the dialed number to obtain the identifier of the ported provider switch. SCP 104 translates the dialed ported number 201-576-6123 to a route corresponding to switch C, line 1234. Accordingly, the call is properly routed to ported subscriber 110 through ported provider switch C, thus completing the call. In contrast to QOR call processing, under the N-l procedure, originating provider switch A 102 assumes each dialed number is a ported number and requests a translation of the dialed number from SCP 104 before attempting to complete the call. Although the N-l procedure avoids the wasted overhead inherent in the QOR procedure resulting from attempts to complete calls to switches that no longer provide service to a particular subscriber, the N-l procedure is inefficient because the originating switch queries the SCP for numbers that have not been ported. Accordingly, it is an object of the invention to improve the efficiency and effectiveness of NP call processing procedures. DESCRIPTION OF THE INVENTION To achieve these and other advantages and in accordance with the purposes of the invention, as embodied and broadly described, the invention includes an efficient method for providing number portability. The method includes the steps, executed by a switch call processor, of searching a ported number list or routing cache and routing a call to the destination switch. The invention also comprises an originating switch for completing a call between the originating switch and a destination switch, the originating switch including structure for storing a ported number list or routing cache, structure for searching the ported number list or routing cache, and structure for routing a call to the destination switch. The invention also comprises an adjunct processor for completing a call between the originating switch and a destination switch, the adjunct processor including structure for storing a ported number list or routing cache, structure for searching the ported number list or routing cache, and structure for providing the originating switch with a route for routing a call to the destination switch. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings provide a further understanding of the invention. They illustrate embodiments of the invention and, together with the description, explain the principles of the invention. Fig. 1 is a block diagram of a telecommunication network supporting number portability; Fig. 2 is a block diagram of an originating switch in accordance with one embodiment of the present invention; Fig. 3 is a process flow diagram of a method for completing a call between an originating switch and a destination switch in accordance with one embodiment of the present invention; Fig. 4 is a block diagram of an originating switch in accordance with another embodiment of the present invention; Fig. 5 is a process flow diagram of a method for completing a call between an originating switch and a destination switch in accordance with one embodiment of the present invention; and Fig. 6 is a block diagram of an embodiment of an adjunct processor in accordance with one embodiment of the present invention. BEST MODE FOR CARRYING OUT THE INVENTION Reference will now be made in detail to the construction and operation of preferred implementations of the present invention which are illustrated in the accompanying drawings. The following description of the preferred implementations of the present invention is only exemplary of the invention. The present invention is not limited to these implementations, but may be realized by other implementations. An embodiment of the apparatus of the present invention shown in the block diagram of Fig. 2 provides call processing capability supporting number portability that improves upon the N-l and QOR techniques. The apparatus of Fig. 2 includes telecommunications switch 200, which includes call processor 202, switching hardware 204, and memory 206. Memory 206 stores ported number list 208; ported number list 208 contains the set of numbers dialed by subscribers served by switch 200 that correspond to ported numbers. Instead of processing every number dialed by subscriber 100 using either the QOR procedure alone or the N-l procedure alone, switch 200 processes calls using ported number list 208 in a manner combining QOR and N-l procedures described in greater detail below. In accordance with the present invention, switch 200 in a telecommunications network performs several tasks as illustrated by the process flow diagram of Fig. 3. Preferably, switch 200 searches ported number list 208 stored in switch memory 206 for the number dialed by a subscriber (step 300). If the dialed number is in ported number list 208, call processor 202 enters the N-l procedure and queries an SCP for translation of the dialed number to obtain the destination switch address (step 308), thus completing the call (step 312). If the dialed number is not represented in the ported number list (step 302), then call processor 202 enters the QOR procedure using the dialed number as the destination switch address (step 304). If the call is released by the dialed switch (step 306), the dialed number is added to ported number list 208 (step 310) and call processor 202 subsequently enters the N-l procedure and queries an SCP for translation of the dialed number to obtain the destination switch address to complete the call (step 308). If the call is not released by the dialed switch (step 306), the call is subsequently completed to the destination switch address corresponding to the dialed number without translation (step 312). In another embodiment of the apparatus of the present invention, switch 400, shown in the block diagram of Fig. 4, includes call processor 402, switching hardware 404, and memory 406. Routing cache 408, stored in memory 406, contains both a list of ported numbers and the corresponding switch address and line numbers for each of the ported numbers. Call processor 402 of switch 400 executes tasks similar to those outlined in the process flow diagram of Fig. 3 to provide improved local number portability. These tasks are illustrated by the flow diagram of Fig. 5. Preferably, switch 400 searches for the dialed number in routing cache 408 (step 500). If the dialed number is represented in routing cache 408 (step 502), the call is completed to the address specified in the routing cache 408 (step 512). If the dialed number is not represented in routing cache 408, call processor 402 enters the QOR procedure using the dialed number as the destination switch address (step 504). After entering the QOR procedure, the process then determines whether the call was released by the dialed switch (step 506). If not, the call is completed (step 512). If the dialed switch has released the call, call processor 402 enters the N-l procedure and queries an SCP for translation of the dialed number to obtain a destination switch address corresponding to the dialed number (step 508). Call processor 408 then adds both the dialed number and the just obtained destination switch address to routing cache 408 (step 510) and completes the call (step 512). In addition to the tasks outlined above, in another embodiment consistent with the present invention it may also be desirable to delete routing cache entries that provide the call processor with incorrect destination switch addresses. In such an embodiment, call processor 402 deletes an entry in routing cache 408 when a call cannot be completed to a switch identified by an entry in routing cache 408 corresponding to the dialed number. The call processor or adjunct processor creates a new ported number list or routing cache if the ported number list or routing cache gives too many false positives, i.e., the list or cache indicates that an unported number is ported. This new cache or list continues to run in parallel with the old cache or list until the new cache or list has a sufficient set of numbers to route most calls correctly. After which time, the old cache or list is discarded. In accordance with the present invention, the ported number list and the routing cache may be configured as any conventional memory structure for providing efficient and effective memory look-up operations. For example, both ported number list 208 and routing cache 408 may be represented as a hash table or search tree. In another embodiment of the present invention as shown in the block diagram of Fig. 6, switch 600 cooperates with adjunct processor 608 to route calls. Switch 600 includes call processor 602, switching hardware 604, and memory 606. Adjunct processor 608 includes processor 614, which executes number portability application 610. Number portability application 610 preferably accesses adjunct processor memory 612 to provide routing support to switch 600. To reduce the computational overhead required in a call processor and the amount of switch memory required to support the methods for improving number portability of the present invention, adjunct processor memory 612 preferably includes either a ported number list or a routing cache as previously described. Processor 614 executes number portability application 610 and performs the tasks outlined in the flow diagrams of Figs. 3 and 5 in cooperation with a switch call processor to route calls. A benefit of solving problems associated with number portability with methods and apparatuses in accordance with the present invention is illustrated in the following example of typical telecommunications traffic. The calls originating from a given switch are to a relatively small set of distinct numbers. Typically, about 99.7% of calls are to numbers that have been called and routed to within the previous week, and the number of distinct numbers called in a given week is less than 10% of the weekly traffic. Accordingly, maintaining a ported number list or cache in accordance with the present invention and storing only a few ported telephone numbers accommodating the majority of calls dialed from a switch can provide tremendous switching efficiencies by eliminating many SCP queries. While there has been illustrated and described what are at present considered to be preferred embodiments and methods of the present invention, it will be understood by those skilled in the art that various changes and modifications may be made, and equivalents may be substituted for elements thereof without departing from the true scope of the invention. In addition, many modifications may be made to adapt a particular element, technique or implementation to the teachings of the present invention without departing from the central scope of the invention. Therefore, it is intended that this invention not be limited to the particular embodiments and methods disclosed herein, but that the invention include all embodiments falling within the scope of the appended claims.

Claims: We claim: 1. A method for completing a call between an originating switch and a destination switch including the steps, executed by a call processor in the originating switch, of: searching a ported number list stored in memory in the originating switch containing an entry representing a ported number; and routing the call to the destination switch if a dialed number is not represented in said ported number list. 2. The method of claim 1, further including the steps of: querying a routing translation database if the dialed number is not represented in said ported number list; and routing the call to the destination switch according to an address specified in said routing translation database. 3. The method of claim 2 wherein the step of querying a routing translation database includes the substep of querying a service control point. 4. The method of claim 1 further including the step of adding or updating an entry in said ported number list if said destination switch releases said call. 5. The method of claim 1 further including the step of removing an entry from said ported number list. 6. A method for completing a call between an originating switch and a destination switch including the steps, executed by a call processor in the originating switch, of: querying a routing cache containing an entry corresponding to a ported number stored in memory of the originating switch to obtain a destination switch address; and routing the call to the destination switch according to the address specified in said routing cache. 7. A method for completing a call between an originating switch and a destination switch including the steps, executed by a call processor in the originating switch, of: querying a routing cache containing an entry corresponding to a ported number stored in memory of the originating switch to obtain a destination switch address; and routing the call to the destination switch using a dialed number. 8. The method of claim 7, further including the steps of: querying a routing translation database if the destination switch releases the call; adding an entry from the routing translation database to the routing cache; and routing the call to the destination switch using an address obtained from the routing translation database. 9. The method of claim 6, further including the step of removing an entry from the routing cache. 10. An originating switch for completing a call between the originating switch and a destination switch, the originating switch comprising: a ported number list containing an entry representing a ported number; means for searching said ported number list; and means for routing the call to the destination switch if a dialed number is not represented in said ported number list. 11. The originating switch of claim 10, further comprising: means for querying a routing translation database if the dialed number is not represented in said ported number list; and means for routing the call to the destination switch according to an address specified in said routing translation database. 12. The originating switch of claim 11, wherein the means for querying a routing translation database further comprises means for querying a service control point. 13. The originating switch of claim 10, further comprising means for adding or updating an entry in said ported number list. 14. The originating switch of claim 10, further comprising means for removing an entry from said ported number list. 15. An originating switch for completing a call between the originating switch and a destination switch, the originating switch comprising: a routing cache containing an entry corresponding to a ported number; means for querying said routing cache; and means for routing the call to the destination switch according to the address specified in said routing cache. 16. An originating switch for completing a call between the originating switch and a destination switch, the originating switch comprising: a routing cache containing an entry corresponding to a ported number; means for querying said routing cache; and means for routing the call to the destination switch using a dialed number. 17. The originating switch of claim 16, further comprising: means for querying a routing translation database; means for adding an entry from the routing translation database to said routing cache; and means for routing the call to the destination switch using an address obtained from the routing translation database. 18. The originating switch of claim 16, further comprising: means for removing an entry from said routing cache. 19. An adjunct processor connected to an originating switch for completing a call between the originating switch and a destination switch, the adjunct processor comprising: a ported number list containing an entry representing a ported number; means for searching said ported number list; and means for routing the call to the destination switch if a dialed number is not represented in said ported number list. 20. The adjunct processor of claim 19, further comprising: means for querying a routing translation database if the dialed number is not represented in said ported number list; and means for routing the call to the destination switch according to an address specified in said routing translation database. 21. The adjunct processor of claim 20, wherein the means for querying a routing translation database further comprises means for querying a service control point. 22. The adjunct processor of claim 19, further comprising means for adding or updating an entry in said ported number list. 23. The adjunct processor of claim 19, further comprising means for removing an entry from said ported number list. 24. An adjunct processor connected to an originating for completing a call between the originating switch and a destination switch, the adjunct processor comprising: a routing cache containing an entry corresponding to a ported number; means for querying said routing cache; and means for routing the call to the destination switch according to the address specified in said routing cache. 25. An adjunct processor connected to an originating switch for completing a call between the originating switch and a destination switch, the adjunct processor comprising: a routing cache containing an entry corresponding to a ported number; means for querying said routing cache; and means for routing the call to the destination switch using a dialed number. 26. The adjunct processor of claim 25, further comprising: means for querying a routing translation database; means for adding an entry from the routing translation database to said routing cache; and means for routing the call to the destination switch using an address obtained from the routing translation database. 27. The adjunct processor of claim 25, further comprising: means for removing an entry from said routing cache. 28. A method for completing a call between an originating switch and a destination switch including the steps, executed by an adjunct processor connected to the originating switch, of: searching a ported number list stored in memory in the adjunct processor containing an entry representing a ported number; and providing a route to the originating switch for routing the call to the destination switch if a dialed number is not represented in said ported number list. 29. The method of claim 28, further including the steps of: causing the originating switch to query a routing translation database if the dialed number is not represented in said ported number list; and providing a route to the originating switch for routing the call to the destination switch according to an address specified in said routing translation database. 30. The method of claim 29 wherein the step of causing the originating switch to query a routing translation database includes the substep of causing the originating switch to query a service control point. 31. The method of claim 28, further including the step of adding or updating an entry in said ported number list if said destination switch releases said call. 32. The method of claim 28, further including the step of removing an entry from said ported number list. 33. A method for completing a call between an originating switch and a destination switch including the steps, executed by an adjunct processor connected to the originating switch, of: querying a routing cache containing an entry corresponding to a ported number stored in memory of the adjunct processor to obtain a destination switch address; and providing a route to the originating switch for routing the call to the destination switch according to the address specified in said routing cache. 34. A method for completing a call between an originating switch and a destination switch including the steps, executed by an adjunct processor connected to the originating switch, of: querying a routing cache containing an entry corresponding to a ported number stored in memory of the adjunct processor to obtain a destination switch address; and providing a route to the originating switch for routing the call to the destination switch using a dialed number. 35. The method of claim 34, further including the steps of: causing the originating switch to query a routing translation database if the destination switch releases the call; adding an entry from the routing translation database to the routing cache; and providing a route to the originating switch for routing the call to the destination switch using an address obtained from the routing translation database. 36. The method of claim 33, further including the step of removing an entry from the routing cache.

Inventors: COCHINWALA MUNIR, COHEN ERNEST SAMUEL, COCHINWALA, MUNIR, COHEN, ERNEST, SAMUEL
Applicants: BELL COMMUNICATIONS RES, BELL COMMUNICATIONS RESEARCH, INC.
Application year: 1998
Main classification: H04M3
IPC codes: H04M3, H04M7, H04Q3