Patent Publication Number: US-6339640-B1

Title: Method and apparatus for automatic callback in a telecommunication system

Description:
FIELD OF THE INVENTION 
     The present invention relates to a method and apparatus for performing automatic callback. The invention can be implemented in an Advanced Intelligent Network (AIN) environment. The system is particularly useful in the management of dial-up connections between subscribers and an Internet Services Provider (ISP). 
     ACRONYMS USED IN THIS SPECIFICATION 
     ACB: Automatic Call Back; 
     (A)IN: (Advanced) Intelligent Network; 
     BCM: Basic Call Model 
     DN: Dialled Number; 
     DP: Detection Point; 
     DTMF: Dual-Tone Multifrequency; 
     EDP: Event Detection Point; 
     IP: Intelligent Peripheral; 
     ISP: Internet Services Provider; 
     PC: Personal Computer; 
     PIC: Point-in-Call; 
     SCP; Service Control Point; 
     SS7: Signalling System 7; 
     SSP: Service Switching Point; 
     TCAP: Transaction Capability Application Part; 
     TDP: Trigger Detection Point; 
     BACKGROUND OF THE INVENTION 
     Currently, when a user wants access to the Internet, he/she dials up, through the modem connected to the Personal Computer (PC), the ISP&#39;s telephone number for connection to one of the modems from its pool of modems. Sometimes, none of the ISP modems are available. In such cases, the user will receive an advisory message or a busy signal and, depending on his software setup, his modem will redial after a certain period of time until it successfully connects to the ISP. 
     A problem with this approach is that if one of the ISP&#39;s modems becomes available in between the successive dial-ups, someone else may obtain the line. The result is that the user waits unnecessarily to obtain a connection to his ISP. Furthermore, this method consumes network resources unnecessarily thereby incurring costs to the telephone operating company. 
     A possible solution is to adjust the software to reduce the time between dial-ups thereby increasing the likelihood of connecting to the first available modem. An obvious disadvantage of this method is that it keeps the line and network resources unnecessarily busy for long periods of time, especially if none of the ISP&#39;s modems become available for a while. This solution also incurs unnecessary costs to the telephone operating company. In addition, a high rate of re-dial may trigger a protection mechanism in the telephone network designed to limit the velocity of call attempts. In such situation, the telephone network may become non-responsive to call attempts. 
     Thus, there exists a need in the industry to provide a system to manage the utilisation of a pool of modems through which multiple users can establish dial-up connections. 
     SUMMARY OF THE INVENTION 
     In summary, the invention provides an apparatus for use in a telecommunication network to provide automatic call-back (ACB) to a modem attempting to establish a data exchange session with a called party. The apparatus has an input to receive an input control signal from the telecommunication network signalling a busy line condition event at the called party. When the busy line condition ceases, as may be determined by another control signal received from the telecommunication network, the apparatus issues an output control signal directing the telecommunication network to notify the calling modem to re-try establishing the data exchange session with the called party. 
     In a specific example of the present invention the ACB feature is implemented on an SCP of the telecommunications network. The SCP is the AIN entity that provides database supported subscriber services. 
     Under this preferred embodiment of the invention, the telecommunications network notifies the SCP (typically the message originates from the SSP servicing the called modem) once a line to one of the ISP modems becomes available. The SCP will send a message to the network (typically the message is sent to the SSP serving the calling modem) to notify the calling modem that the line is now free. At the same time the SCP directs the SSP servicing the calling modem to observe the line condition. When the line goes off-hook, the SSP generates dial tone so the modem can re-dial 
     More specifically, the procedure for dial tone generation includes the following steps The first step is the detection of the off-hook condition. This detection is performed by the SSP that observes the state of the telephone line of the calling party. When the off-hook condition is detected, the SSP issues a message to the SCP to advise the SCP of this event. The SCP sends dial tone establishment instructions to the SSP. The calling modem then dials the digits and waits for the carrier. 
     The SCP may be provided with a database to store entries related to unsuccessful communication attempts. Each entry includes a time stamp allowing to age the entry. When the line becomes free, the SCP searches the database and notifies the calling party that corresponds to the oldest entry, i.e., the person that has been waiting the longest. Other possible selection strategies may also be considered and age is only one of them. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a partial view of an Advanced Intelligent Network which incorporates the invention; 
     FIG. 2 is a block diagram showing the Service Control Point in accordance with an embodiment of the invention; 
     FIG. 3 is a block diagram showing the Service Switching Point in accordance with an embodiment of the invention; and 
     FIG. 4 is a flowchart describing an embodiment of the method for performing automatic callback, in accordance with the present invention. 
    
    
     DESCRIPTION OF A PREFERRED EMBODIMENT 
     FIG. 1 is a simplified view of an AIN in accordance with an embodiment of the invention The components shown include a PC  100 , two SSPs  110  and  130 , an SCP  120 , a pool of modems  140 , an Intelligent Peripheral (IP)  150 , voice/data communication lines  105 ,  135  and  147 , and signaling network lines  115 ,  125  and  145 . 
     The PC  100  provides the interface to the user who wishes to communicate with the pool of modems  140 . The PC  100  therefore includes a modem and the necessary software to establish a communication with another modem This pool of modems could be used by an Internet Service Provider (ISP) for providing access to the Internet to its subscribers. 
     The service switching points (SSP)  110  and  130  act as voice and signaling switches. The SSPs  110  and  130  are identical for the purpose of this disclosure. 
     The voice function of the SSP switches voice/data to/from users, such as PC  100 , to/from other SSPs or other users. To accomplish this, SSP  110  is connected to users such as PC  100  through a voice/data link  105 , and to other service switching points such as SSP  130  through voice/data link  147 . 
     The signaling function of the SSP converts signaling from the users to, for example, SS7 signaling messages, which can then be sent to other exchanges through the SS7 network. Conversely, the SSP provides the reverse transformation. The SSP uses the information provided by the calling party (such as dialed digits) and determines how to connect the call. A routing table identifies which trunk circuit to use to connect the call, and at which exchange this trunk terminates. A signaling message is sent to the adjacent exchange requesting a circuit connection on the specified trunk The distant exchange grants permission to connect this trunk by sending back an acknowledgment to the originating exchange. Using the called party information in the setup message, the distant exchange can determine how to connect the call to its final destination. This may require several trunk connections between several exchanges. The SSP signaling function manages these connections until the final destination is reached. 
     For the signaling function, the SSP  110  is connected to other service switching points, such as SSP  130 , and to service control points, such as SCP  120 , via signaling links  115 ,  145  and  125 . The signaling links  115 ,  145  and  125  normally use the Signaling System 7 (SS7) protocol. 
     The service control point  120  responds to query messages sent by an SSP and serves as an interface to telephone company databases. Thus, SCPs are often described with databases incorporated. These databases are used to store information about subscribers&#39; services, routing of special service numbers (such as 800 and 900 numbers), calling card validation and fraud protection, and even Advanced Intelligent Network (AIN) services used when creating a service for a subscriber. SCP  120  is a computer used as a front end to the database system. The address of SCP  120  is a point code, while the address of the database is a subsystem number. 
     The last component of FIG. 1 is the Intelligent Peripheral (IP)  150 . The IP provides resource management of devices such as voice response units, voice announcers and Dual-Tone MultiFrequency (DTMF) sensors for caller-activated services. The IP is accessed by the SCP  120  either directly or, as shown in FIG. 1, via SSP2  130 . IPs are used by the AIN to interact with customers. IPs may therefore be used to allow customers to define their network needs themselves, without the use of telephone operating company personnel. 
     FIG. 2 is a block diagram showing a Service Control Point  120  in accordance with an embodiment of the invention. SCP  120  receives/sends signaling instructions on lines  115  and  125 . SCP  120  has four main components: a processor  205 , a memory  200 , databases  210 , and tables  215 . The memory  200  is used for storing instructions for the operation of processor  205 , for storing the data used by processor  205  in executing those instructions, and for buffering incoming and outgoing data. A bus  220  is provided for the exchange of information between all components of SCP  120 . The instructions stored in the processor  205  for achieving the results of the invention are detailed in the method described in FIG.  4 . 
     The databases  210  are shown as part of SCP  120 , but these are usually external components. As stated earlier, they hold information necessary for services offered by the AIN. When information concerning subscriber&#39;s is required, processor  205  gets it from databases  210  before proceeding. The format of the information may differ with each service. 
     The channel reservation table  215  records information related to the identification of the calling and called parties as well as the time of an unsuccessful communication attempt. The table below illustrates a type of format that may be used. Its length is not specified here and it is limited only by the channel reservation  215  memory capacity. In an embodiment of the invention, the timer is set to 30 minutes. 
     
       
         
           
               
               
               
               
               
             
               
                   
                   
               
               
                   
                 Entry 
                 Calling ID 
                 Called ID 
                 Timer (minutes) 
               
               
                   
                   
               
             
            
               
                   
                 1 
                 555-1122 
                 285-1236 
                 28:45 
               
               
                   
                 2 
                 987-6542 
                 466-1487 
                 29:02 
               
               
                   
                 3 
                 654-8437 
                 761-7611 
                 29:30 
               
               
                   
                 . . .  
                 . . .  
                 . . .  
                 . . .  
               
               
                   
                   
               
            
           
         
       
     
     The table above shows that entry 3 is the most recent (i.e., it has been in the table for 30 seconds) while entry 1 is the oldest (i.e., it has been in the table for 75 seconds) Therefore, when the processor  205  needs to identify, from this short list, the oldest entry as the next entry to access the ISP modems, entry 1 will be chosen. 
     FIG. 3 is a block diagram showing Service switching Point  130  in accordance with an embodiment of the invention. SSP  130  receives/sends voice/data on lines  135  and  147 , and signaling on lines  125  and  145 . SSP  130  has three main components: a processor  305 , a memory  300 , and switching fabric  310 . The memory  300  is used for storing instructions for the operation of processor  305 , for storing the data used by processor  305  in executing those instructions, and for buffering incoming and outgoing data. The instructions stored in the processor  305  for achieving the result of the invention are detailed in the method described in FIG.  4 . 
     The switching fabric  310  handles the actual connection of calls to their destinations. The operation of the switch matrix is controlled by the processor  305  that communicates with the switch matrix  310  through a data bus  320 . The processor  305  receives data over bus  320  relative to the status of call sessions so decisions on the handling of call sessions can be made by the processor  305 . The latter also uses the data bus  320  to transmit commands to the switch matrix  310  to manage call sessions, such as establishing the connection between two or more destinations, terminating the connection, etc. 
     The primary function of the SSP  130  in the telephone network is to establish connections between telephone instruments and data equipment for the transmission of voice and data. When a local call is placed, the following fundamental switch call processing steps come into play: call detection, dial tone provision, digit collection, digit translation, call routing, call connection, audible ringing/ringback, speech path establishment and, finally, call termination. 
     FIG. 4 is a flowchart describing an embodiment of the method for performing automatic callback, in accordance with the present invention. Assume for the purpose of this example, that there is at least one free modem in the pool of modems  140 , and that the channel reservation table  215  is empty 
     The PC user initiates a call (step  400 ) to the telephone number of an ISP by entering the numbers on his keypad. At step  401 , the calling modem goes off-hook and at step  402 , the end office (not shown) sends a dial tone to the calling modem. The end office is not shown in FIG. 1, but the tasks of the end office may be assumed by SSP1  110  since an SSP is an enhanced end office. 
     At step  416 , the calling modem (of PC  100 ) dials the called modem number (modem pool  140 ). At step  418 , SSP2  130  meets the Termination_Attempt trigger criteria and sends a Termination_Attempt message to SCP  120  to complete the call. At step  420 , SCP  120  verifies its table  215  for an entry regarding a previous attempt by any caller to reach the pool of modems  140 . If the table is empty (in this case it is according to the assumption above), the SCP proceeds, at step  424 , to send an Authorize_Termination message with a T_Busy event to SSP2  130 . The T_Busy event is required in order that SSP2  130  may check if the called party is busy. 
     At step  428 , a check is performed at SSP2  130  for a T_Busy event. If there is no T_event, the call connection proceeds as per the BCM at step  486 . The modems are then connected and start the handshaking procedure to exchange data SCP  120  concurrently removes the last entry from the table (step  487  ) and verifies its table length (step  488 ). According to our assumption, the length is zero and the procedure is terminated. 
     Assume now that none of the modems in the pool of modems  140  are free and that the channel reservation table  215  is empty. Therefore, when at step  428  SSP2  130  verifies the state of the line(s) leading to the pool of modems, it observes that none of the lines are available and generates a T_Busy message. The SSP2  130  then sends a T_message to SCP  120  (step  432 ). At step  436 , SCP  120  sets its Busy register to “1” and, at step  438 , it sends a Monitor_For_Change message to SSP2  130 . SCP  120  then registers the call information in table  215  (step  440 ). As stated earlier the call information in table  215  may include the calling number, the called number, and timer information. 
     At step  442 , SCP  120  sends a Send_To_Resource message to IP  150 . The Send_To_Resource message contains specific information that instructs IP  150  to send a voice message to the calling PC  100  (step  444 ). In this case, the voice message could be: “The number you dialed is busy. You will be notified with a distinctive ring when it becomes available. Please dial again when you receive the distinctive ring.” 
     At step  446 , SSP2  130  sends a Resource_Clear message to SCP  120 . SCP  120  responds, at step  448  with a Continue message and starts its timer for the last input in its table  215 . The Resource_Clear message is required after a Send_to_Resource message. When the SCP  120  sends a Send_to_Resource message to an SSP, the SSP needs to set up a temporary connection to the resource. After the resource fulfills its function (e.g., play an announcement, collect digits, etc.), the SSP needs to cancel the temporary connection with the resource. The Resource_Clear message tells the SCP that the function was performed and that the result is reported (if required, i.e., for collected digits). The Resource_Clear message also cuts-off the temporary connection to the resource. After an announcement is played, the SCP has to give instructions to the SSP concerning the disposition of the call. The Continue message is used to tell the SSP that there is no change in the conditions from the SCP and to continue processing the call with these conditions. 
     At step  450 , SSP2  130  sends a Release message with BusyCause parameter to SSP1  110  to release the communication line reserved for the call. Consequently, PC  100  will drop the call at step  460 . 
     At this point, there is a waiting period (step  466 ) until a ISP channel becomes available. The next few steps describe the call back feature implemented by using AIN functions only vs. the ACB feature residing on an SSP. Once an ISP channel becomes available, SSP2  130  notifies SCP by sending a Status_Report message indicating that the line is idle (step  468 ). SCP then sends, at step  469 , a Create_Call message with Origination_Attempt event to SSP1. At step  470 , SCP sets its Busy register to “0” indicating that there is a free channel. At step  471 , SSP1  110  sends a distinctive ring to the calling modem of PC  100 . 
     The next few steps are for the generation of a dial tone by the AIN instead of by the end office switch as is done normally. The user, recognizing this distinctive ring, will go off-hook with his PC&#39;s modem (step  403  ) At off-hook detection SSP1  110  encounters the Origination _Attempt event (step  404  ) and sends an Origination_Attempt EDP request message to SCP  120  (step  405  ) 
     At step  406  SCP  120  sends a Send_To_Resource message to SSP1  110 . This last message gives the instructions to SSP1  110  to send a dial tone to the calling modem (PC  100  ) (step  408 ). At step  410 , SSP1  110  sends a Resource_Clear message to SCP  120 . SCP  120  responds to SSP1  110  with an Analyze_Route message at step  412 . At step  414 , SSP1  110  reserves a route for the call to SSP2  130 . 
     The procedure returns to step  416  where the calling modem will effectively dial the ISP&#39;s DN. When the procedure reaches step  420  to verify if there is an entry in the SCP  120  table  215 , the answer will be “Yes” and it will proceed to step  422 . At step  422 , a verification is made to see if the call information matches a table entry. In this case it should since the call information was previously input at step  440   
     Before proceeding to authorize the connection of the call, a process is in place to verify if this is a caller who is calling back before he receives a distinctive ring. The SCP  120  therefore check its Busy register (step  472 ). If the register is at “1”, this signifies that none of the ISP modems are available and the procedure proceeds to step  474 . At step  474 , SCP  120  then sends a Send To_Resource message to IP  150 . The Send_To_Resource message contains specific information that instructs IP  150  to send a voice message to the calling PC  100  (step  478 ). In this case, the voice message could be: “The number you dialed is busy. We appreciate your patience. Please dial again when you receive the distinctive ring Thank you.” 
     It at step  472 , the verification revealed that the Busy register was not at “1”, a second verification is performed at step  476 . At step  476 , SCP  120  checks the calling information against the information for the first out of table  215 . If there is no match, the procedure goes to step  474  and proceeds to send a message to the caller as described above. An impatient caller who tries to jump the line is therefore blocked. 
     If, on the other hand, there is a match at step  476 , SCP  120  sends an Authorize_Termination message with T_Answer event to SSP2  130  (step  480 ). When one of the modems in the pool  140  finally answers, SSP2 encounters, at step  484 , a T_Answer and the call connection proceeds as per the BCM (step  486 ). The modems are then connected and start the handshaking procedure to exchange data. If a T_Answer is not encountered at step  484 , treatment is required. Treatment could be a verification of the malfunction. For example, it could be a faulty message or a faulty transmission. 
     At step  487 , SCP  120  then removes the oldest entry from table  215 . After or during the call connection, SCP  120  checks its table  215  length (step  488 ). If it is equal to “0”, the procedure ends. When the length of table  215  is not equal to “0”, SCP  120  sets its Busy register to “1” (step  490  ) and sends a Monitor_For_Change message to SSP2  130  (step  492 ). The procedure is then complete. 
     Now, changing the initial conditions to assuming that this is the user&#39;s first attempt at reaching his ISP, and that there are some entries in the ACB queue in table  215  (i.e. all modems in the pool  140  are busy and at least one caller is waiting in the ACB queue), when the procedure reaches step  420  to verify if there is an entry in the SCP  120  table  215 , the answer will be “Yes” and it will proceed to step  422 . There will be no match between the call information and a table entry since these are our initial conditions (step  422 ). The SCP  120  then verifies, at step  426 , if table  215  has reached its maximum length. If it has, SCP  120  sends a Send_To_Resource message to IP  150  (step  430 ). Then, IP  150  sends an appropriate message to the calling PC  100  (step  434 ). The message could be in the following form: “We are sorry We are now having extremely high volume of calls Please try again later. Thank you.” 
     If at step  426 , it was determined that the table had not reached its maximum length, then sCP  120  inserts call information in table  215 . The procedure then proceeds to the remaining steps as described earlier and eventually returns to step  422  for comparison of the call information to the table  215  entries. This time it should match since the call information was previously input at step  440 . SCP  120  then continues to step  472  and eventually the modems are connected and start the handshaking procedure to exchange data as described earlier. 
     The above description of a preferred embodiment of the present invention should not be read in a limitative manner as refinements and variations are possible without departing from the spirit of the invention. The scope of the invention is defined in the appended claims and their equivalents.