Abstract:
A method for handling an incoming call received at an inbound terminal via an analog line is described. The method comprises receiving the incoming call at the inbound terminal; storing caller ID data enabling identification of incoming call; comparing a stored existing caller ID with the stored current caller ID to determine if an earlier incoming call is being signaled to an application; if the earlier incoming call is being signaled, disconnecting the earlier incoming call; and presenting the incoming call to the application thereby reducing the risk of conflict between incoming calls.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This is the first application filed for the present invention.  
       TECHNICAL FIELD  
       [0002]     This invention relates to the field of telecommunications. More precisely, this invention pertains to the field of communication on analog lines.  
       BACKGROUND OF THE INVENTION  
       [0003]     In the case of an incoming call on analog lines, no defined event exists for signaling the end of a call establishment phase. Such limitation may create various problems as explained below.  
         [0004]     For instance, as shown in  FIG. 1 , there is shown a diagram which discloses how a conflict may occur due to the limitation.  
         [0005]     In the case where a first incoming call is provided by an outbound switch to an Application Programming Interface (API) of an inbound terminal, a ring signal for the first incoming call is issued to an application at the inbound terminal. The skilled addressee will appreciate that the incoming call is provided using a ringing voltage on the line. The application may be any type of application such as for instance a voicemail managing application, an authentication application based on incoming call data, Unified Messaging Applications, Automatic Call Distribution (ACD) Server, Voice over IP (VoIP) Gateway, Point of Sales Server (POS), etc. In response to the ring for the first call, the application issues a “Call Accept Command” (i.e., an AT Answer (ATA) command if a port driver or a TTY driver is used as Application Programming Interface (API)) for instance.  
         [0006]     If while the “Call Accept Command” is being issued to the API, the party issuing the first incoming call hangs up and therefore causes the first incoming call to be terminated and if a second incoming call issued by another party is being provided to the application, the “Call Accept Command” issued to the API will be applied against the second incoming call causing a conflict.  
         [0007]     Such conflict may be the source of Denial of Service (DoS) attacks in the case for instance where an access to an application is based upon a calling or called identity. Incoming calls may also be directed to wrong directions by an application. In the case where the application is an answering machine, a user issuing a call may leave a message in a wrong voicemail.  
         [0008]     There is a need for a method and apparatus that will overcome at least one of the above-identified drawbacks.  
       SUMMARY OF THE INVENTION  
       [0009]     The invention provides a method and apparatus for handling an incoming call.  
         [0010]     According to an aspect of the invention, there is provided a method for handling an incoming call received via an analog line, the method comprising receiving the incoming call, checking if an earlier incoming call is being signaled to an application, if the earlier incoming call is being signaled, disconnecting the earlier incoming call and presenting the incoming call.  
         [0011]     According to another aspect of the invention, there is provided an apparatus for handling an incoming call signal received via an analog line. The apparatus comprises a communication port receiving the incoming call signal and providing a received call signal comprising incoming call information representative of the incoming call signal; a memory unit; and a processing unit receiving the received call signal and accessing the memory unit using the incoming call information to find out if the memory unit comprises another incoming call information signal representative of an earlier incoming call signal being signaled. The processing unit further provides a signaling signal if the memory unit does not comprise another incoming call information signal.  
         [0012]     According to yet another aspect of the invention, there is provided a method for handling an incoming call received at an inbound terminal via an analog line. The method comprises receiving the incoming call at the inbound terminal; storing caller ID data enabling identification of incoming call; comparing a stored existing caller ID with the stored current caller ID to determine if an earlier incoming call is being signaled to an application; if the earlier incoming call is being signaled, disconnecting the earlier incoming call; and presenting the incoming call to the application. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]     Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:  
         [0014]      FIG. 1 . is a diagram showing a case where a conflict occurs due to existing limitations; an answer command is issued by an application of an inbound terminal for a wrong incoming call;  
         [0015]      FIG. 2  is a block diagram showing an apparatus for handling an incoming call according to an embodiment of the invention.  
         [0016]      FIG. 3  is a flowchart showing how an incoming call is handled according to one embodiment of the invention; and  
         [0017]      FIG. 4  is a diagram showing how the handling of an incoming call according to the invention overcomes the above-identified limitation. 
     
    
       [0018]     It will be noted that throughout the appended drawings, like features are identified by like reference numerals.  
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0019]     Now referring to  FIG. 2 , there is shown a block diagram showing an apparatus  8  for handling an incoming call at an inbound terminal according to an embodiment of the invention.  
         [0020]     The apparatus  8  comprises a communication port  12 , a processing unit  14  and a memory unit  16 .  
         [0021]     The communication port  12  is adapted for receiving an incoming call signal originating from an outbound switch, not shown, located on a network  10  and further for providing a received signal to the processing unit  14 .  
         [0022]     The communication port  12  is further adapted for receiving a signal to send and providing an outgoing phone signal to the network  10 .  
         [0023]     In an embodiment, the communication port  12  comprises a Direct Access Arrangement (DAA) chip as analog front end (AFE) to terminate the network  10 .  
         [0024]     The processing unit  14  is adapted for receiving the received signal provided by the communication port  12  and further adapted for providing a signal to send to the communication port  12 . The processing unit  14  is further adapted for storing a call information signal in the memory unit  16  and further for retrieving the call information signal from the memory unit  16 .  
         [0025]     It should be understood by the skilled addressee that in one embodiment, the communication port  12 , the processing unit  14  and the memory unit  16  are embedded into a single card referred to as an “active” embedded system card. Such card may be then plugged to a computer for instance. In another embodiment, the processing unit of a computer as well as at least one part of the memory unit of the computer are used which is referred to as a “passive” design.  
         [0026]     The memory unit  16  is adapted for storing a call information signal. It should be appreciated that the call information signal may be any type of data enabling the identification of a call such as for instance caller ID data. It should be further appreciated that the memory unit  16  may be used to store additional information provided in the case where an SMDI (Simplified Message Desk Interface) interface is used. Such additional information may comprise additional call related information like Redirecting Number or receive/send Message Waiting signal. As known by the skilled addressee, using SMDI requires an extra serial cable connected to some specific switch types. In fact, as known by the skilled addressee, with most networks the caller ID information may be provided using in-band tones (e.g. like FSK modem tones or DTMF tones) after or before the first ring. As explained previously, the memory unit  16  may be a dedicated memory unit comprised in an embedded system card while alternatively, the memory unit of a computer may be used.  
         [0027]     It should be understood that the communication port  12 , the processing unit  14  and the memory unit  16  may already be comprises in an existing communication device such as a modem for instance.  
         [0028]     Now referring to  FIG. 3 , there is shown how an incoming call is handled according to one embodiment of the invention.  
         [0029]     According to step  20 , an incoming call is received. The incoming call is received from the network  10  by the processing unit  14  via the communication port  12 . Alternatively, at least one part of the incoming call, the incoming call information, may be received from an external serial interface (e.g. a SMDI interface), while the call comes in at the communication port  12 .  
         [0030]     According to step  22 , a check is performed using the received incoming call in order to find out if an earlier incoming call is being signaled. The check is performed by the processing unit  14  disclosed in  FIG. 2 . More precisely, the processing unit  14  checks in the memory unit  16  if the latter comprises an existing call information signal indicative of an earlier incoming call. It should be appreciated that preferably, the memory unit  16  comprises an existing call information signal if an earlier incoming call is being signaled. Still in the preferred embodiment, the check is performed by comparing a stored existing call information signal, if any, with the current call information signal.  
         [0031]     In the case where an earlier incoming call is being signaled, i.e., in the case where the current call information signal is different from the earlier incoming call information signal, the earlier call is disconnected. Preferably, the earlier call is disconnected using the processing unit  14 .  
         [0032]     In the case where no earlier incoming call is being signaled and according to step  26 , an indication of the incoming call is provided. In the preferred embodiment, the indication of the incoming call is stored in the memory unit  16  by the processing unit  14 . The incoming call is then presented to the application.  
         [0033]     Now referring to  FIG. 4 , there is shown how the handling of an incoming call according to the invention overcomes the above-identified limitation.  
         [0034]     More precisely, a first incoming call is provided to an Application Programming Interface (API), the first incoming call is signaled to an application.  
         [0035]     The first incoming call is accepted by the application and a command to that effect is issued by the application and is directed to the API.  
         [0036]     A second incoming call is issued prior the command to the effect that the first incoming call is accepted is received by the API.  
         [0037]     A check is performed by the API as disclosed at step  22  of  FIG. 3  and it is therefore detected that the first incoming call is being signaled.  
         [0038]     A notice to the effect that the first call is disconnected is then sent to the application and a notice indicating that the second incoming call is presented to the application.  
         [0039]     While illustrated in the block diagrams as groups of discrete components communicating with each other via distinct data signal connections, it will be understood by those skilled in the art that the preferred embodiments are provided by a combination of hardware and software components, with some components being implemented by a given function or operation of a hardware or software system, and many of the data paths illustrated being implemented by data communication within a computer application or operating system. The structure illustrated is thus provided for efficiency of teaching the present preferred embodiment.  
         [0040]     It should be noted that the present invention can be carried out as a method, can be embodied in a system, a computer readable medium or an electrical or electro-magnetical signal.  
         [0041]     The embodiments of the invention described above are intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.