CA2449675C - Processor, system and method for providing call blocking in a packet network based telephone system - Google Patents
Processor, system and method for providing call blocking in a packet network based telephone system Download PDFInfo
- Publication number
- CA2449675C CA2449675C CA002449675A CA2449675A CA2449675C CA 2449675 C CA2449675 C CA 2449675C CA 002449675 A CA002449675 A CA 002449675A CA 2449675 A CA2449675 A CA 2449675A CA 2449675 C CA2449675 C CA 2449675C
- Authority
- CA
- Canada
- Prior art keywords
- call
- ucd
- blocking
- data packets
- communication data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The present invention relates to a processor and a processing method of providing call blocking to a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of associated continuous media communication data packets that are associated with the UCD. The processor receives a data stream of associated continuous media communication data packets that relate to a potential call with another party. The processor blocks completion of the potential call based on a comparison of preestablished call blocking criteria with information derived from the stream. The method comprises the step of receiving the stream and blocking completion of the potential call based on a comparison of preestablished call blocking criteria with information derived from the stream.
Description
PROCESSOR, SYSTEM AND METHOD FOR PROVIDING CALL BLOCKING
IN A PACKET NETWORK BASED TELEPHONE SYSTEM
This is a division of co-pending Canadian Patent Application Serial No. 2,260,476, which was filed on January 26, 1999.
TECHNICAL FIELD OF THE INVENTION
The present invention is directed, in general, to telecommunications and, more specifically, to a system and method for providing advanced calling features, such as call forwarding and call blocking, to a packet network-based telephone, such as an Internet telephone, and a packet network that employs the system or the method.
BACKGROUND OF THE INVENTION
Call forwarding and call blocking are well known telephony services provided to subscribers by a local exchange carrier in circuit switched networks.
Traditionally, call forwarding allows a subscriber (or user) selectively to "program" an incoming call to be forwarded to another communication device; call blocking, on the other hand, prevents an incoming or outgoing call from being completed.
As previously mentioned, call forwarding is a generally recognized calling feature provided in circuit switched networks and, as such, has been the subject of many prior art references. For instance, U.S. Patent No. 5,027,384, entitled "Personalized Automatic Call Routing", by Sanford J. Morganstein, issued r l June 25, 1991, discloses a system where the subscriber can preprogram the communication system to provide personalized voice responses and alternate destinations to assist the calling party in completing the call.
Additionally, U.S. Patent No. 5,442,691, entitled "Method and Apparatus for Call Routing in Switched Digital Networks Using Call Control Tables", by Steven Price, et al., provides tables of call control information to facilitate the routing of calls in a switched digital network.
SUMMARY OF THE INVENTION
Internet telephone, systems for providing call processing features (e.g., call forwarding or:call blocking) to the UCD. The present invention therefore adapts call processing techniques employed in circuit switching systems to packet-based networks. In one embodiment, the present invention: (1) determines that a call composed of a stream of continuous media communication packets and associated with the UCD
requires a specified alternative processing and (2) causes the continuous media communication data packets associated with the call to be processed in accordance with the specified alternative processing.
The call forwarding system or the call blocking system may be directly connectible with the UCD or may be directly connectible with a point of presence (POP) of the packet network (such as an Internet Service Provider, or ISP). "Directly connectible", for purposes of the present invention, is defined as being directly associated with or a part of. For example, one or both of the systems may be in a user's telephone or computer UCD. One or both of the systems may be at the user's ISP, such that they may operate even when the user's UCD
is not connected to the packet network.
In one embodiment, the call forwarding system stores call forwarding criteria and forwards incoming calls based on the call forwarding criteria. In one embodiment, the call blocking system receives information pertaining to a potential call with another party and blocks completion of the potential call based on a comparison of stored call blocking criteria with the information.
In accordance with one aspect of the present invention there is provided for use with a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of continuous media communication data packets, a processor for providing a call blocking feature to said UCD that executes instructions to: receive a stream of associated continuous media communication data packets relating to a potential call with another party; and block completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
In accordance with another aspect of the present invention there is provided for use with a user communication device (UCD) that communicated over a packet network by transmitting and receiving streams of continuous media communication data packets, a system for providing a call blocking feature to said UCD, comprising: means for receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and means for blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD
with information derived from said stream.
In accordance with yet another aspect of the present invention there is provided a method of providing call blocking to a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of associated continuous media communication data packets that are associated with said UCD, comprising the steps of: receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
The present invention, taken in conjunction with the invention described in co-pending Canadian Patent Application Serial No. 2,260,476, which was filed on January 26, 1999 will be discussed in detail, hereinbelow with the aid of the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an embodiment of a packet network providing an environment for a system constructed according to the principles of the present invention;
FIG. 2 illustrates an embodiment of a data packet assembled according to the present invention;
FIG. 3 illustrates a block diagram of an exemplary computer providing an environment within which the system 5 of the present invention may be employed and implemented;
FIG. 4 illustrates a flow chart of an embodiment of a packet interception routine according to the principles of the present invention;
FIG. 5 illustrates a flow chart of an embodiment of a call blocking routine according to the principles of the present invention;
FIG. 6 illustrates a flow chart of an embodiment of a call forwarding routine according to the principles of the present invention; and FIG. 7 illustrates a flow chart of a related embodiment of the call forwarding routine of FIG. 6.
DETAILED DESCRIPTION
Referring initially to FIG. 1, illustrated is an embodiment of a packet network, generally designated 100, providing an environment for a system constructed according to the principles of the present invention.
The packet network 100, e.g., the Internet, facilitates the transmission of data in the form of data packets, or datagrams, between a user station and a single station, in the case of a unicast, or between a user station and a plurality of stations, as with a multicast. The packet network 100 includes a user station 130, typically a processor, such as a personal computer (PC), that is coupled to a data storage device 135, e.g., an external hard disk. The system of the present invention is not limited for use with a data storage device such as external physical devices or even the presence of such devices physically connected to the user station 130.
The system of the present invention contemplates that the user station 130 is able to access a data storage device at either the user station 130 or at a remote location, or both.
The user station 130 is also coupled to an access node 140, or point of presence (POP), that provides a gateway to the packet network 100. The access node 140 may be a packet network service provider, such as an Internet service pProvider (ISP), and is shown coupled to a data storage device 145 analogous to the data storage device 135. The presence of the access node 140 is not necessary to the practice of the present invention as the user station 130 is equipped to communicate directly to the packet network 100 without requiring an intermediate interface. A station 120 and a plurality of alternate stations 150 are also coupled to the packet network 100.
The station 120 and the plurality of alternate stations 150 are typically user communication devices (UCDs), such as packet telephones, voice mailboxes, or pagers.
The user station 130 communiGates with the station 120 or alternate stations 150 by ser.Lding data packets via the packet network 100. Further information about packet network architectures and transmission of data packets may be found in "Data Network Design", by Darren L.
Spohn, McGraw-Hill, Inc. (1993).
IN A PACKET NETWORK BASED TELEPHONE SYSTEM
This is a division of co-pending Canadian Patent Application Serial No. 2,260,476, which was filed on January 26, 1999.
TECHNICAL FIELD OF THE INVENTION
The present invention is directed, in general, to telecommunications and, more specifically, to a system and method for providing advanced calling features, such as call forwarding and call blocking, to a packet network-based telephone, such as an Internet telephone, and a packet network that employs the system or the method.
BACKGROUND OF THE INVENTION
Call forwarding and call blocking are well known telephony services provided to subscribers by a local exchange carrier in circuit switched networks.
Traditionally, call forwarding allows a subscriber (or user) selectively to "program" an incoming call to be forwarded to another communication device; call blocking, on the other hand, prevents an incoming or outgoing call from being completed.
As previously mentioned, call forwarding is a generally recognized calling feature provided in circuit switched networks and, as such, has been the subject of many prior art references. For instance, U.S. Patent No. 5,027,384, entitled "Personalized Automatic Call Routing", by Sanford J. Morganstein, issued r l June 25, 1991, discloses a system where the subscriber can preprogram the communication system to provide personalized voice responses and alternate destinations to assist the calling party in completing the call.
Additionally, U.S. Patent No. 5,442,691, entitled "Method and Apparatus for Call Routing in Switched Digital Networks Using Call Control Tables", by Steven Price, et al., provides tables of call control information to facilitate the routing of calls in a switched digital network.
SUMMARY OF THE INVENTION
Internet telephone, systems for providing call processing features (e.g., call forwarding or:call blocking) to the UCD. The present invention therefore adapts call processing techniques employed in circuit switching systems to packet-based networks. In one embodiment, the present invention: (1) determines that a call composed of a stream of continuous media communication packets and associated with the UCD
requires a specified alternative processing and (2) causes the continuous media communication data packets associated with the call to be processed in accordance with the specified alternative processing.
The call forwarding system or the call blocking system may be directly connectible with the UCD or may be directly connectible with a point of presence (POP) of the packet network (such as an Internet Service Provider, or ISP). "Directly connectible", for purposes of the present invention, is defined as being directly associated with or a part of. For example, one or both of the systems may be in a user's telephone or computer UCD. One or both of the systems may be at the user's ISP, such that they may operate even when the user's UCD
is not connected to the packet network.
In one embodiment, the call forwarding system stores call forwarding criteria and forwards incoming calls based on the call forwarding criteria. In one embodiment, the call blocking system receives information pertaining to a potential call with another party and blocks completion of the potential call based on a comparison of stored call blocking criteria with the information.
In accordance with one aspect of the present invention there is provided for use with a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of continuous media communication data packets, a processor for providing a call blocking feature to said UCD that executes instructions to: receive a stream of associated continuous media communication data packets relating to a potential call with another party; and block completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
In accordance with another aspect of the present invention there is provided for use with a user communication device (UCD) that communicated over a packet network by transmitting and receiving streams of continuous media communication data packets, a system for providing a call blocking feature to said UCD, comprising: means for receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and means for blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD
with information derived from said stream.
In accordance with yet another aspect of the present invention there is provided a method of providing call blocking to a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of associated continuous media communication data packets that are associated with said UCD, comprising the steps of: receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
The present invention, taken in conjunction with the invention described in co-pending Canadian Patent Application Serial No. 2,260,476, which was filed on January 26, 1999 will be discussed in detail, hereinbelow with the aid of the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an embodiment of a packet network providing an environment for a system constructed according to the principles of the present invention;
FIG. 2 illustrates an embodiment of a data packet assembled according to the present invention;
FIG. 3 illustrates a block diagram of an exemplary computer providing an environment within which the system 5 of the present invention may be employed and implemented;
FIG. 4 illustrates a flow chart of an embodiment of a packet interception routine according to the principles of the present invention;
FIG. 5 illustrates a flow chart of an embodiment of a call blocking routine according to the principles of the present invention;
FIG. 6 illustrates a flow chart of an embodiment of a call forwarding routine according to the principles of the present invention; and FIG. 7 illustrates a flow chart of a related embodiment of the call forwarding routine of FIG. 6.
DETAILED DESCRIPTION
Referring initially to FIG. 1, illustrated is an embodiment of a packet network, generally designated 100, providing an environment for a system constructed according to the principles of the present invention.
The packet network 100, e.g., the Internet, facilitates the transmission of data in the form of data packets, or datagrams, between a user station and a single station, in the case of a unicast, or between a user station and a plurality of stations, as with a multicast. The packet network 100 includes a user station 130, typically a processor, such as a personal computer (PC), that is coupled to a data storage device 135, e.g., an external hard disk. The system of the present invention is not limited for use with a data storage device such as external physical devices or even the presence of such devices physically connected to the user station 130.
The system of the present invention contemplates that the user station 130 is able to access a data storage device at either the user station 130 or at a remote location, or both.
The user station 130 is also coupled to an access node 140, or point of presence (POP), that provides a gateway to the packet network 100. The access node 140 may be a packet network service provider, such as an Internet service pProvider (ISP), and is shown coupled to a data storage device 145 analogous to the data storage device 135. The presence of the access node 140 is not necessary to the practice of the present invention as the user station 130 is equipped to communicate directly to the packet network 100 without requiring an intermediate interface. A station 120 and a plurality of alternate stations 150 are also coupled to the packet network 100.
The station 120 and the plurality of alternate stations 150 are typically user communication devices (UCDs), such as packet telephones, voice mailboxes, or pagers.
The user station 130 communiGates with the station 120 or alternate stations 150 by ser.Lding data packets via the packet network 100. Further information about packet network architectures and transmission of data packets may be found in "Data Network Design", by Darren L.
Spohn, McGraw-Hill, Inc. (1993).
Turning now to FIG. 2, illustrated is an embodiment of a continuous media communication data packet 210 assembled according to the present invention. The data packet 210, e.g., an Internet Protocol (IP) packet, includes a header 220, data 230 and other information, such as an identifier or options associated with the data packet. Included in the header 220 are source 250 and destination 260 information. The data packets 210 contain complete addressing information and may be split, or fragmented, into smaller packets. The fragmentation of the data packets 210 will permit a large data packet to travel across a packet network which can only handle smaller data packets.
It is not necessary that the source and destination information 250, 260 be contained only in the header 220 of the data packet 210; the source and destination information 250, 260 may also reside in other locations within the data packet 210. Furthermore, the source and destination information 250, 260 may include not only the addresses of the source and destination, but also other identifiers, such as the identity of individual at the source or destination, or both.
Turning now to FIG. 3, illustrated is a block diagram of an exemplary computer, generally designated 300, providing an environment within which the system of the present invention may be employed and implemented.
The computer 300 includes processing circuitry 310, e.g., having at least one conventional processor, conventional volatile memory 320, e.g., random access memory, non-volatile memory 330, e.g., a hard disk drive, and a UCD 360. The UCD 360 may be separate devices, such as a microphone, speakers and associated voice encoding and decoding software, or a conventional telephone that has been adapted for use with the present invention. The processing circuitry 310, volatile memory 320 and non-volatile memory 330 are associated with each other and cooperatively operate to execute the system of the present invention. The computer 300 may further include an input/output device 340, such as a keyboard, and a display device 350, such as a video monitor. The keyboard may be used to control the execution of the process associated with the system of the present invention in the computer 300, and a video monitor may be used to view the results thereof.
The principles of the present invention are not limited to a particular processing environment, but may be implemented in any processing system architecture, including, without limitation, microcomputers, e.g., personal computers, and main-frame computers.
Conventional processing system architecture is discussed in "Computer Organization and Architecture", by William Stallings, MacMillan Publishing Co. (3rd ed. 1993), and conventional processing system network design is discussed in "Data Network Design", by Darren L. Spohn, McGraw-Hill, Inc. (1993).
In one embodiment of the present invention, a system for providing a call blocking feature is embodied in a sequence of instructions executable in the computer 300.
The call blocking process includes a packet interception routine that monitors a particular user station for outgoing or incoming calls. Upon detection of a call, incoming or outgoing, the packet interception routine then determines the identity of the calling and called parties and provides this information to a call blocking routine. The call blocking routine proceeds to decide if the call, incoming or outgoing, should be terminated based on the information provided by the packet interception routine. A more specific embodiment of the packet interception routine and the call blocking routine will be described with respect to FIGS. 4 and 5.
In another embodiment of the present invention, a system for providing a call forwarding feature is embodied in a sequence of instructions executable in the computer 300. The call forwarding routine receives an incoming call and determines the identity of the calling and called parties. The call forwarding routine provides the identities of the calling and called parties to a call forwarding criteria routine that compares the provided information to entries in a call forwarding directory. The call forwarding directory contains routing information associated with calling entities and provides alternate destinations to the call forwarding routine, to complete the incoming call. A more specific embodiment of the call forwarding routine and the call forwarding criteria routine will be described with respect to FIGS. 6 and 7. Those skilled in the art understand, however, that the foregoing embodiments and the systems of the present invention, in general, may also be implemented in hardware, firmware, software, or any combination thereof.
Turning now to FIG. 4, illustrated is a flow chart of an embodiment of a packet interception routine according to the principles of the present invention.
The process begins at a start step 405 with an access node monitoring a packet network and user station for any outgoing or incoming calls. At a detect call step 410, the access node detects a call. Outgoing calls from the 5 user station are usually detected when the user station requests a connection to the packet network. Similarly, incoming calls are usually detected when data packets are received at a station serving as the destination. Upon detection of a call, incoming or outgoing, source and 10 destination information contained in the header of the data packets are extracted and the data packets are placed in a buffer, e.g., a memory device associated with the access node, pending a request from the call blocking routine to transmit the data packets. The extracted source and destination information are then provided, at a provide information step 415, to the call blocking routine.
Turning now to FIG. 5, illustrated is a flow chart of an embodiment of a call blocking routine according to the principles of the present invention. The call blocking routine is initiated, at a receive information step 520, with the acceptance of the source and destination information of the data packets. At an incoming or outgoing decisional step 525, it is determined whether the call is an incoming or outgoing call. This is accomplished by comparing the source identifier with the station identifier. If the source and station identifiers are the same, the call is an outgoing call.
If the determination at the incoming or outgoing step 525 is that the call is an outgoing call, control passes to a call blocking enabled decisional step 530 to determine if call blocking is enabled for the calling station. The determination of whether call blocking is enabled may be accomplished by accessing a particular memory location, which may be associated with an enable flag or other identifier, which would determine if the bit has been set, i.e., a logic "1". If call blocking has not been enabled, the call blocking routine, at a complete call step 535, transmits a request to the access node to release the buffered data packets and complete the connection.
If it is determined at the call blocking enabled step 530, however, that call blocking is enabled, control passes to a selective call blocking enabled decisional step 540 to determine if selective call blocking has been activated for the called station, i.e., destination, by comparing the called station with a call blocking criteria that has been preestablished. Selective call blocking is to distinguish from the call blocking enabled at step 530. The call blocking enabled decisional step 530 determines if the call blocking feature has been activated for the calling station whereas selective call blocking determines if calls to the called station is to be blocked. The station user generally creates call blocking control entries that may be used by the application programs running at the local station processor, the access node processor, the remote processors accessed through the packet network or any stations of the packet network which are connected to the remote processors. An outgoing call blocking directory may be created with each entry comprising a name of a specific destination and associated call blocking control information. An example of a call control table is disclosed in Steven Price, et al. The destinations in the outgoing call blocking directory table may include, for instance, the continuous media communication data packet source address, the continuous media communication data packet destination address, the identity of the calling party, the automatic number information (ANI) associated with the call and the identity of the called party. The call blocking control information may include a time period, such as a day of week or time of'day, when calls to the associated destinations of the call blocking control information are not to be completed, i.e., blocked.
To illustrate, a station user, e.g., Mother with child A and child B, may define the call blocking directory whereby calls initiated by Mother are never blocked and calls to predetermined destinations initiated by child A or child B are selectively blocked depending on the call blocking control information associated with each child. The identification of the current station user, e.g., Mother, child A or child B, may be accomplished with a "logon" procedure using identifiers, such as user I.D. and passwords. Also, passwords or identifiers may be employed to prevent the unauthorized additions and deletions to the call blocking directory.
Additionally, both static and dynamic call blocking directory tables may be employed. In the former, all the entries are fully defined before the initiation of any calls. In the latter, destinations and call blocking control information may be added and deleted dynamically or alternatively may be enabled or disabled, as required and not only before calls are initiated. The table entries are the call blocking criteria used at the selective call blocking enabled step 540 to determine if call blocking has been activated for the called station.
If at the selective call blocking enabled step 540, it is determined that selective call blocking for that particular destination has not been enabled or does not exist, the call blocking routine, at a complete call step 545, transmits a request to the access node to release the buffered data packets and complete the connection.
However, if at the selective call blocking enabled step 540, it is determined that selective call blocking for that particular destination has been enabled, the call blocking routine, at a block call step 550, transmits a request to the access node to discard the buffered data packets and deny the station access to the packet network.
Returning to the incoming or outgoing step 525, if it is determined that the call is an incoming call, control passes to a call blocking enabled decisional step 555 to determine if call blocking is enabled for the called station. The determination of whether call blocking is enabled may be accomplished by accessing a particular memory location, which may be associated with an enable flag or other identifier, which would determine if the bit has been set, i.e., a logic "1". If call blocking has not been enabled, the call blocking routine, at a complete call step 560, transmits a request to the access node to release the buffered data packets and complete the connection.
If it is determined at the call blocking enabled step 555, however, that call blocking is enabled, control passes to a selective call blocking enabled decisional step 565 to determine if selective call blocking has been activated for the calling station, i.e., source, by comparing the calling station with the call blocking criteria that has been preestablished. Selective call blocking is to distinguish from the call blocking enabled at step 555. The call blocking enabled decisional step 555 determines if the call blocking feature has been activated for the called station whereas selective call blocking determines if calls from the calling station is to be blocked. An incoming call blocking directory, similar to the outgoing call blocking directory described previously, is defined by the station user with entries corresponding to specific sources and associated call blocking control information.
If at the selective call blocking enabled step 565, it is determined that selective call blocking for that particular destination has not been enabled or does not exist, the call blocking routine, at a complete call step 570, transmits a request to the access node to release the buffered data packets and complete the connection.
If at the selective call blocking enabled step 565, however, it is determined that selective call blocking for that particular destination has been enabled, the call blocking routine, in a block call step 575, transmits a request to the access node to discard the buffered data packets and ignore, i.e., do not transmit, data packets from that source to the station.
Turning now to FIG. 6, illustrated is a flow chart of an embodiment of a call forwarding routine according to the principles of the present invention. The process begins at a start step 605 with an access node monitoring a packet network for incoming calls. At a call detected step 610, an incoming call is detected when data packets are received identifying the user station as the 5 destination.
Upon detection of an incoming call, control passes to a call forwarding enabled decisional step 615 to determine if call forwarding has been enabled for the called station, i.e., user station. The determination of 10 whether call forwarding is enabled may be accomplished by accessing a particular memory location, associated with an enable flag, to determine if the bit has been set, i.e., a logic "1". If call forwarding has not been enabled, the call forwarding routine, in a continue 15 transmission step 620, transmits a request to the access node to continue to transmit the data packets to the user station.
However, if it is determined, at the call forwarding enabled step 615, that call forwarding is enabled, source and destination information contained in the header of the data packets are extracted, at an extract information step 625, and the data packets are placed in a buffer, typically a memory device associated with the access node, e.g., data storage device, pending a request from the call forwarding criteria routine to transmit the data packets to an alternate destination. The call forwarding routine provides the extracted source and destination information, at a provide information step 630, to the call forwarding criteria routine and control passes to a wait for request step 635, whereby the call forwarding routine waits for a request from the call forwarding criteria routine.
When a request is received by the call forwarding routine, at a what is request decisional step 640, it is determined if the request is to continue transmitting data packets to the called station or to reroute the data packets to an alternate destination. If it is determined that the request is to continue transmitting the data packets to the user station, the access node continues to transmit the data packets to the user station at a continue transmission step 645.
If it is determined, however, that the data packets are to be rerouted to an alternate destination, the call forwarding routine, at a forward to alternate destination step 650, substitutes the destination address in the header of the data packets with the alternate destination address provided by the call forwarding criteria routine.
The data packets with the substituted destination address are then retransmitted over the packet network.
Turning now to FIG. 7, illustrated is a flow chart of a related embodiment of the call forwarding routine of FIG. 6. The call forwarding routine: is initiated at a receive information step 755, with the acceptance of the source and destination information contained in the received data packets. Control passes to a selective call forwarding enabled decisional step 760 to determine if selective call forwarding has been activated for the called station, i.e., destination, by comparing the calling station with the call forwarding criteria that has been preestablished. A call routing directory for incoming calls is configured and used in a similar way as the call blocking directory described previously. The call routing directory contains the call forwarding criteria and is defined by the station user with entries corresponding to specific sources and associated call routing control information to alternate destinations.
The call routing directory may include the continuous media communication data packet source address, the continuous media communication data packet destination address, the identity of the calling party, the automatic number information (ANI) associated with the call and the identity of the called party. The call routing control information may include a time period, such as a day of week or time of day, when calls to an associated alternate destination of the call routing control information are to be accomplished, i.e., forwarded.
Additionally, the alternate destination addresses may specify an endpoint that may be a second telephone, a voice mailbox, a pager or another computer.
If, at the selective call forwarding enabled step 760, it is determined that selective call routing for that particular source has not been enabled or does not exist in the call routing directory, the call forwarding routine, in a default destination decisional step 765, determines whether a default destination has been specified in the call routing directory. If no default destination has been specified, the call forwarding routine, at a request continued transmission step 770, transmits a request to the access node to continue to transmit the data packets to the user station. If a default destination has been specified, however, the call forwarding criteria routine, at a provide default destination step 775, provides the default destination address along with a request to the call forwarding routine to route the call to the destination address.
If it is determined, however, that selective call routing for that particular source is enabled, i.e., the call routing directory has an entry for the source and associated alternate destination(s), the call forwarding criteria routine, at a provide alternative destination step 780, provides the associated alternate destination address(es) along with a request to the call forwarding routine to route the call to the alternate destination address (es) .
Although the present embodiment: describes that the packet interception routine, call blocking routine, call forwarding routine and call forwarding criteria routine are resident in data processing and storage circuitry of the access node, the systems of the present invention are not limited to a particular device or location. The packet interception, call blocking, call forwarding and call forwarding criteria routines may also reside together in the user station or the user station's data storage device or separately at different locations.
The foregoing has outlined preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Although the present invention has been described in detail, those skilled in the art should understand that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form.
It is not necessary that the source and destination information 250, 260 be contained only in the header 220 of the data packet 210; the source and destination information 250, 260 may also reside in other locations within the data packet 210. Furthermore, the source and destination information 250, 260 may include not only the addresses of the source and destination, but also other identifiers, such as the identity of individual at the source or destination, or both.
Turning now to FIG. 3, illustrated is a block diagram of an exemplary computer, generally designated 300, providing an environment within which the system of the present invention may be employed and implemented.
The computer 300 includes processing circuitry 310, e.g., having at least one conventional processor, conventional volatile memory 320, e.g., random access memory, non-volatile memory 330, e.g., a hard disk drive, and a UCD 360. The UCD 360 may be separate devices, such as a microphone, speakers and associated voice encoding and decoding software, or a conventional telephone that has been adapted for use with the present invention. The processing circuitry 310, volatile memory 320 and non-volatile memory 330 are associated with each other and cooperatively operate to execute the system of the present invention. The computer 300 may further include an input/output device 340, such as a keyboard, and a display device 350, such as a video monitor. The keyboard may be used to control the execution of the process associated with the system of the present invention in the computer 300, and a video monitor may be used to view the results thereof.
The principles of the present invention are not limited to a particular processing environment, but may be implemented in any processing system architecture, including, without limitation, microcomputers, e.g., personal computers, and main-frame computers.
Conventional processing system architecture is discussed in "Computer Organization and Architecture", by William Stallings, MacMillan Publishing Co. (3rd ed. 1993), and conventional processing system network design is discussed in "Data Network Design", by Darren L. Spohn, McGraw-Hill, Inc. (1993).
In one embodiment of the present invention, a system for providing a call blocking feature is embodied in a sequence of instructions executable in the computer 300.
The call blocking process includes a packet interception routine that monitors a particular user station for outgoing or incoming calls. Upon detection of a call, incoming or outgoing, the packet interception routine then determines the identity of the calling and called parties and provides this information to a call blocking routine. The call blocking routine proceeds to decide if the call, incoming or outgoing, should be terminated based on the information provided by the packet interception routine. A more specific embodiment of the packet interception routine and the call blocking routine will be described with respect to FIGS. 4 and 5.
In another embodiment of the present invention, a system for providing a call forwarding feature is embodied in a sequence of instructions executable in the computer 300. The call forwarding routine receives an incoming call and determines the identity of the calling and called parties. The call forwarding routine provides the identities of the calling and called parties to a call forwarding criteria routine that compares the provided information to entries in a call forwarding directory. The call forwarding directory contains routing information associated with calling entities and provides alternate destinations to the call forwarding routine, to complete the incoming call. A more specific embodiment of the call forwarding routine and the call forwarding criteria routine will be described with respect to FIGS. 6 and 7. Those skilled in the art understand, however, that the foregoing embodiments and the systems of the present invention, in general, may also be implemented in hardware, firmware, software, or any combination thereof.
Turning now to FIG. 4, illustrated is a flow chart of an embodiment of a packet interception routine according to the principles of the present invention.
The process begins at a start step 405 with an access node monitoring a packet network and user station for any outgoing or incoming calls. At a detect call step 410, the access node detects a call. Outgoing calls from the 5 user station are usually detected when the user station requests a connection to the packet network. Similarly, incoming calls are usually detected when data packets are received at a station serving as the destination. Upon detection of a call, incoming or outgoing, source and 10 destination information contained in the header of the data packets are extracted and the data packets are placed in a buffer, e.g., a memory device associated with the access node, pending a request from the call blocking routine to transmit the data packets. The extracted source and destination information are then provided, at a provide information step 415, to the call blocking routine.
Turning now to FIG. 5, illustrated is a flow chart of an embodiment of a call blocking routine according to the principles of the present invention. The call blocking routine is initiated, at a receive information step 520, with the acceptance of the source and destination information of the data packets. At an incoming or outgoing decisional step 525, it is determined whether the call is an incoming or outgoing call. This is accomplished by comparing the source identifier with the station identifier. If the source and station identifiers are the same, the call is an outgoing call.
If the determination at the incoming or outgoing step 525 is that the call is an outgoing call, control passes to a call blocking enabled decisional step 530 to determine if call blocking is enabled for the calling station. The determination of whether call blocking is enabled may be accomplished by accessing a particular memory location, which may be associated with an enable flag or other identifier, which would determine if the bit has been set, i.e., a logic "1". If call blocking has not been enabled, the call blocking routine, at a complete call step 535, transmits a request to the access node to release the buffered data packets and complete the connection.
If it is determined at the call blocking enabled step 530, however, that call blocking is enabled, control passes to a selective call blocking enabled decisional step 540 to determine if selective call blocking has been activated for the called station, i.e., destination, by comparing the called station with a call blocking criteria that has been preestablished. Selective call blocking is to distinguish from the call blocking enabled at step 530. The call blocking enabled decisional step 530 determines if the call blocking feature has been activated for the calling station whereas selective call blocking determines if calls to the called station is to be blocked. The station user generally creates call blocking control entries that may be used by the application programs running at the local station processor, the access node processor, the remote processors accessed through the packet network or any stations of the packet network which are connected to the remote processors. An outgoing call blocking directory may be created with each entry comprising a name of a specific destination and associated call blocking control information. An example of a call control table is disclosed in Steven Price, et al. The destinations in the outgoing call blocking directory table may include, for instance, the continuous media communication data packet source address, the continuous media communication data packet destination address, the identity of the calling party, the automatic number information (ANI) associated with the call and the identity of the called party. The call blocking control information may include a time period, such as a day of week or time of'day, when calls to the associated destinations of the call blocking control information are not to be completed, i.e., blocked.
To illustrate, a station user, e.g., Mother with child A and child B, may define the call blocking directory whereby calls initiated by Mother are never blocked and calls to predetermined destinations initiated by child A or child B are selectively blocked depending on the call blocking control information associated with each child. The identification of the current station user, e.g., Mother, child A or child B, may be accomplished with a "logon" procedure using identifiers, such as user I.D. and passwords. Also, passwords or identifiers may be employed to prevent the unauthorized additions and deletions to the call blocking directory.
Additionally, both static and dynamic call blocking directory tables may be employed. In the former, all the entries are fully defined before the initiation of any calls. In the latter, destinations and call blocking control information may be added and deleted dynamically or alternatively may be enabled or disabled, as required and not only before calls are initiated. The table entries are the call blocking criteria used at the selective call blocking enabled step 540 to determine if call blocking has been activated for the called station.
If at the selective call blocking enabled step 540, it is determined that selective call blocking for that particular destination has not been enabled or does not exist, the call blocking routine, at a complete call step 545, transmits a request to the access node to release the buffered data packets and complete the connection.
However, if at the selective call blocking enabled step 540, it is determined that selective call blocking for that particular destination has been enabled, the call blocking routine, at a block call step 550, transmits a request to the access node to discard the buffered data packets and deny the station access to the packet network.
Returning to the incoming or outgoing step 525, if it is determined that the call is an incoming call, control passes to a call blocking enabled decisional step 555 to determine if call blocking is enabled for the called station. The determination of whether call blocking is enabled may be accomplished by accessing a particular memory location, which may be associated with an enable flag or other identifier, which would determine if the bit has been set, i.e., a logic "1". If call blocking has not been enabled, the call blocking routine, at a complete call step 560, transmits a request to the access node to release the buffered data packets and complete the connection.
If it is determined at the call blocking enabled step 555, however, that call blocking is enabled, control passes to a selective call blocking enabled decisional step 565 to determine if selective call blocking has been activated for the calling station, i.e., source, by comparing the calling station with the call blocking criteria that has been preestablished. Selective call blocking is to distinguish from the call blocking enabled at step 555. The call blocking enabled decisional step 555 determines if the call blocking feature has been activated for the called station whereas selective call blocking determines if calls from the calling station is to be blocked. An incoming call blocking directory, similar to the outgoing call blocking directory described previously, is defined by the station user with entries corresponding to specific sources and associated call blocking control information.
If at the selective call blocking enabled step 565, it is determined that selective call blocking for that particular destination has not been enabled or does not exist, the call blocking routine, at a complete call step 570, transmits a request to the access node to release the buffered data packets and complete the connection.
If at the selective call blocking enabled step 565, however, it is determined that selective call blocking for that particular destination has been enabled, the call blocking routine, in a block call step 575, transmits a request to the access node to discard the buffered data packets and ignore, i.e., do not transmit, data packets from that source to the station.
Turning now to FIG. 6, illustrated is a flow chart of an embodiment of a call forwarding routine according to the principles of the present invention. The process begins at a start step 605 with an access node monitoring a packet network for incoming calls. At a call detected step 610, an incoming call is detected when data packets are received identifying the user station as the 5 destination.
Upon detection of an incoming call, control passes to a call forwarding enabled decisional step 615 to determine if call forwarding has been enabled for the called station, i.e., user station. The determination of 10 whether call forwarding is enabled may be accomplished by accessing a particular memory location, associated with an enable flag, to determine if the bit has been set, i.e., a logic "1". If call forwarding has not been enabled, the call forwarding routine, in a continue 15 transmission step 620, transmits a request to the access node to continue to transmit the data packets to the user station.
However, if it is determined, at the call forwarding enabled step 615, that call forwarding is enabled, source and destination information contained in the header of the data packets are extracted, at an extract information step 625, and the data packets are placed in a buffer, typically a memory device associated with the access node, e.g., data storage device, pending a request from the call forwarding criteria routine to transmit the data packets to an alternate destination. The call forwarding routine provides the extracted source and destination information, at a provide information step 630, to the call forwarding criteria routine and control passes to a wait for request step 635, whereby the call forwarding routine waits for a request from the call forwarding criteria routine.
When a request is received by the call forwarding routine, at a what is request decisional step 640, it is determined if the request is to continue transmitting data packets to the called station or to reroute the data packets to an alternate destination. If it is determined that the request is to continue transmitting the data packets to the user station, the access node continues to transmit the data packets to the user station at a continue transmission step 645.
If it is determined, however, that the data packets are to be rerouted to an alternate destination, the call forwarding routine, at a forward to alternate destination step 650, substitutes the destination address in the header of the data packets with the alternate destination address provided by the call forwarding criteria routine.
The data packets with the substituted destination address are then retransmitted over the packet network.
Turning now to FIG. 7, illustrated is a flow chart of a related embodiment of the call forwarding routine of FIG. 6. The call forwarding routine: is initiated at a receive information step 755, with the acceptance of the source and destination information contained in the received data packets. Control passes to a selective call forwarding enabled decisional step 760 to determine if selective call forwarding has been activated for the called station, i.e., destination, by comparing the calling station with the call forwarding criteria that has been preestablished. A call routing directory for incoming calls is configured and used in a similar way as the call blocking directory described previously. The call routing directory contains the call forwarding criteria and is defined by the station user with entries corresponding to specific sources and associated call routing control information to alternate destinations.
The call routing directory may include the continuous media communication data packet source address, the continuous media communication data packet destination address, the identity of the calling party, the automatic number information (ANI) associated with the call and the identity of the called party. The call routing control information may include a time period, such as a day of week or time of day, when calls to an associated alternate destination of the call routing control information are to be accomplished, i.e., forwarded.
Additionally, the alternate destination addresses may specify an endpoint that may be a second telephone, a voice mailbox, a pager or another computer.
If, at the selective call forwarding enabled step 760, it is determined that selective call routing for that particular source has not been enabled or does not exist in the call routing directory, the call forwarding routine, in a default destination decisional step 765, determines whether a default destination has been specified in the call routing directory. If no default destination has been specified, the call forwarding routine, at a request continued transmission step 770, transmits a request to the access node to continue to transmit the data packets to the user station. If a default destination has been specified, however, the call forwarding criteria routine, at a provide default destination step 775, provides the default destination address along with a request to the call forwarding routine to route the call to the destination address.
If it is determined, however, that selective call routing for that particular source is enabled, i.e., the call routing directory has an entry for the source and associated alternate destination(s), the call forwarding criteria routine, at a provide alternative destination step 780, provides the associated alternate destination address(es) along with a request to the call forwarding routine to route the call to the alternate destination address (es) .
Although the present embodiment: describes that the packet interception routine, call blocking routine, call forwarding routine and call forwarding criteria routine are resident in data processing and storage circuitry of the access node, the systems of the present invention are not limited to a particular device or location. The packet interception, call blocking, call forwarding and call forwarding criteria routines may also reside together in the user station or the user station's data storage device or separately at different locations.
The foregoing has outlined preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Although the present invention has been described in detail, those skilled in the art should understand that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the invention in its broadest form.
Claims (10)
1. For use with a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of continuous media communication data packets, a processor for providing a call blocking feature to said UCD that executes instructions to:
receive a stream of associated continuous media communication data packets relating to a potential call with another party; and block completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
receive a stream of associated continuous media communication data packets relating to a potential call with another party; and block completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
2. The processor of Claim 1 wherein said processor is directly connectible to said UCD.
3. The processor as recited in Claim 1 wherein said processor is directly connectible to a point of presence (POP) of said packet network.
4. The processor as recited in Claim 1 wherein at least on of said call blocking criteria are selected from the group consisting of:
a continuous media communication data packet source address, a continuous media communication data packet destination address, an identity of a calling party, an identity of a called party, automatic number information (ANI) pertaining to said call, a time of day, and a day of week.
a continuous media communication data packet source address, a continuous media communication data packet destination address, an identity of a calling party, an identity of a called party, automatic number information (ANI) pertaining to said call, a time of day, and a day of week.
5. The processor as recited in Claim 4 wherein said potential call in an outgoing call.
6. For use with a user communication device (UCD) that communicated over a packet network by transmitting and receiving streams of continuous media communication data packets, a system for providing a call blocking feature to said UCD, comprising:
means for receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and means for blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
means for receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and means for blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
7. A method of providing call blocking to a user communication device (UCD) that communicates over a packet network by transmitting and receiving streams of associated continuous media communication data packets that are associated with said UCD, comprising the steps of:
receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
receiving a stream of associated continuous media communication data packets relating to a potential call with another party; and blocking completion of said potential call based on a comparison of call blocking criteria stored by a user of said UCD with information derived from said stream.
8. The method as recited in Claim 7 wherein said potential call is an incoming call from a calling party and said information includes automatic number identification (ANI) information pertaining to said call.
9. The method as recited in Claim 7 wherein at least one of said call blocking criteria are selected from the group consisting of:
a continuous media communication data packet source address, a continuous media communication data packet destination address, an identity of a calling party, an identity of a called party, automatic number information (ANI) pertaining to said call, a time of day, and a day of week.
a continuous media communication data packet source address, a continuous media communication data packet destination address, an identity of a calling party, an identity of a called party, automatic number information (ANI) pertaining to said call, a time of day, and a day of week.
10. The method as recited in Claim 7 wherein said potential call in an outgoing call.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/027,842 US6594230B1 (en) | 1998-02-23 | 1998-02-23 | System and method for providing advanced calling features to a packet network-based communication device and packet network employing the same |
US09/027,842 | 1998-02-23 | ||
CA002260476A CA2260476C (en) | 1998-02-23 | 1999-01-26 | System and method for providing advanced calling features to a packet network-based communication device and packet network employing the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002260476A Division CA2260476C (en) | 1998-02-23 | 1999-01-26 | System and method for providing advanced calling features to a packet network-based communication device and packet network employing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2449675A1 CA2449675A1 (en) | 1999-08-23 |
CA2449675C true CA2449675C (en) | 2008-11-18 |
Family
ID=31189133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002449675A Expired - Fee Related CA2449675C (en) | 1998-02-23 | 1999-01-26 | Processor, system and method for providing call blocking in a packet network based telephone system |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA2449675C (en) |
-
1999
- 1999-01-26 CA CA002449675A patent/CA2449675C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2449675A1 (en) | 1999-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6243398B1 (en) | System and method for personal multimedia communication over a packet switched network | |
CA2256728C (en) | A telephone doubler arrangement | |
US7974276B2 (en) | System and method for providing advanced calling features to a packet network-based communication device and packet network employing the same | |
US6282269B1 (en) | Voice mail on the internet | |
US6909776B2 (en) | Systems and methods for monitoring network-based voice messaging systems | |
JP4132075B2 (en) | Call notification function for telephone lines connected to the Internet | |
US6253249B1 (en) | Method and devices for bridging data and telephone networks | |
US20020116464A1 (en) | Electronic communications system and method | |
US6169796B1 (en) | Call rerouter method and apparatus | |
US7092380B1 (en) | Method and system for providing voice communication over data networks | |
US7512224B2 (en) | Call transfer service using service control point and service node | |
US20020186828A1 (en) | Context driven alternate point of contact service | |
US7099306B2 (en) | System and method for internet protocol telephony advertisement protocol | |
US20050105708A1 (en) | Method of routing signals through communication networks | |
JP2001268248A (en) | Network telephone system | |
US6591315B1 (en) | Remote intelligent peripheral routing method and apparatus | |
US6363430B1 (en) | Methods and systems for providing an absent addressing service to customers in a communications network | |
CA2449675C (en) | Processor, system and method for providing call blocking in a packet network based telephone system | |
US7751547B2 (en) | Extending a call to a telecommunications terminal through an intermediate point | |
US20030185200A1 (en) | System and method for emergency call diversion | |
US20040052350A1 (en) | System and method for delivering enhanced voice and data services in parallel with an incumbent phone company | |
US7308092B1 (en) | Method for connecting calls directed to a PSTN extension to a handset of a packet switched network | |
EP1059796A2 (en) | Rerouting telephone calls over the Internet during an active Internet sessions | |
CA2246192C (en) | Method and devices for bridging data and telephone networks | |
US20010033641A1 (en) | Voice messaging system, method, and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20180126 |