System and method for establishing a communications session with an end-user based on the state of a network connection

Information

  • Patent Grant
  • 8289965
  • Patent Number
    8,289,965
  • Date Filed
    Thursday, October 19, 2006
    18 years ago
  • Date Issued
    Tuesday, October 16, 2012
    12 years ago
Abstract
A method for establishing a communications session includes receiving a request to initiate a communications session. The request is associated with an end-user and the end-user is associated with at least two identifiers. The method also includes selecting one of the at least two identifiers in response to performance information associated with the selected one of the at least two identifiers. The method also includes establishing a communications session with the end-user in response to selecting the one of the at least two identifiers.
Description
BACKGROUND

The invention relates to telecommunications, and in particular, to a system and method for monitoring the connection state of an end-user to a remote network.


The recent increase in the availability and popularity of real-time voice, video, and data services has presented new challenges to providers of such services. More particularly, the state of the connection of end-user devices to a network frequently determines the quality of service enjoyed by an end-user during a service session.


SUMMARY

Various embodiments of the present invention offer improvements over prior art systems for initiating and controlling communications sessions.


In one embodiment of the present invention, a method for establishing a communications session is disclosed that includes receiving a request to initiate a communications session. The request is associated with an end-user and the end-user is associated with at least two identifiers. The method also includes selecting one of the at least two identifiers in response to performance information associated with the selected one of the at least two identifiers. The method also includes establishing a communications session with the end-user in response to selecting the one of the at least two identifiers.


In another embodiment of the present invention, a system for establishing a communications session is disclosed that includes a session controller, the session controller being operable to receive a request to initiate a communications session. The request is associated with an end-user associated with at least two identifiers. The system also includes a memory in communication with the session controller, the memory being operable to store performance information associated with a selected one of the at least two identifiers. The session controller is further operable to establish a communications session with the end-user in response to the performance information.


In yet another embodiment of the present invention, a signal control point for a network is disclosed that includes a memory operable to store information regarding the line state of network connections associated with end-users of the network and a processor in communication with the database. The processor is operable to select one of the network connections associated with one of the end-users in response to both receiving a request to initiate a communications session with the one of the end-users and the information regarding the line state of the one of the network connections.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a communication network in an embodiment of the invention.



FIG. 2 illustrates the operation of a communication network in an embodiment of the invention.



FIG. 3 illustrates the operation of a communication network in an embodiment of the invention.



FIG. 4 illustrates the operation of a service provider system in an embodiment of the invention.



FIG. 5 illustrates a communication network in an embodiment of the invention.



FIG. 6 illustrates the operation of a communication network in an embodiment of the invention.



FIG. 7 illustrates the operation of a communication network in an embodiment of the invention.



FIG. 8 illustrates the operation of a service provider system in an embodiment of the invention.



FIG. 9 illustrates a computer system implemented according to an embodiment of the invention.



FIG. 10 illustrates one embodiment of the invention used in connection with two or more communication networks, each managed by a different provider of network services.



FIG. 11 illustrates one embodiment of an entry in a network database associated with an end-user that is implemented according to the teachings of the present invention.



FIG. 12 illustrates one embodiment of a method of modifying a communications session implemented according to the teachings of the present invention.



FIG. 13 illustrates one embodiment of a method of selecting an end-user device implemented according to the teachings of the present invention.



FIG. 14 illustrates one embodiment of a signaling control system implemented according to the teachings of the present invention.





DETAILED DESCRIPTION OF THE DRAWINGS


FIGS. 1-14 and the following description depict specific embodiments of the invention to teach those skilled in the art how to make and use the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these embodiments that fall within the scope of the invention. Those skilled in the art will appreciate that the features described below can be combined in various ways to form multiple embodiments of the invention. As a result, the invention is not limited to the specific embodiments described below, but only by the claims and their equivalents.



FIG. 1 illustrates communication network 100 in an embodiment of the invention. Communication network 100 includes end-user system 110, communication network 130, and service provider system 140. End-user system 110 includes access system 112 and device 111. Access system 112 is in communication with communication network 130. Likewise, service provider system 140 is in communication with communication network 130.


Access system 112 could be any system capable of providing device 111 with access to services provided over communication network 130. Service provider system 140 could be any system capable of providing services to device 111. Device 111 could be any type of device capable of communicating with service provider system 140 through access system 112 and communication network 130, such as a personal computer, a mobile phone, or a personal digital assistant. Examples of services could include voice, video, and data services, as well as other types of service. It should be understood that communication network 130 could be any network or collection of networks capable of transporting communications between access system 112 and service provider system 140.


Device 111 is in communication with access system 112 by communication link 102. Communication link 102 could be a wired or wireless link such as a CAT-5 cable, USB cable, or WiFi wireless connection. Access system 112 is in communication with communication network by communication link 101. Communication link 101 could also be a wireline or wireless link. For example, communication link 101 could comprise a DSL connection, fiber connection, or a cable connection, as well as any other type of wireline access link. In another example, communication link 101 could comprise a CDMA, MMDS, EVDO, or WiMax link, as well as any combination thereof or any other type of wireless access link.



FIG. 2 illustrates the operation of communication network 100. In operation, device 111 communicates with access system 112 to initiate and setup an access link to communication network 130. Upon establishing access to communication network 130, access system 112 monitors communication link 101 for access state information, including line state information and transmission state information. For example, access system 112 measures the total bandwidth of link 101 and the amount of available bandwidth on link 101. Other metrics include jitter, delay, and reserved bandwidth. As illustrated by FIG. 2, access system 112 may transmit the access state information to service provider system 140.


After access system 112 has transmitted the access state information to service provider system 140, device 111 initiates a service request to service provider system 140 for a service. Service provider system 140 responsively processes the service request, along with the access state information, to determine service options for the requested service. The service options could be determined based on the access state information. Service provider system 140 then transfers the service options to device 111 for selection. A user operatively selects one of the options from the service options and device 111 returns the selected option to service provider system 140. Service provider system 140 responsively provides the service configured for the option selection.



FIG. 3 illustrates the operation of communication network 100 in an embodiment of the invention. In operation, device 111 communicates with access system 112 to gain access to communication network 130. Upon establishing the access, device 111 monitors link 102. For example, device 111 could monitor for the total bandwidth available or actual usable bandwidth over link 102. Device 111 could also monitor general performance statistics, such as packet jitter and packet delay. The performance results, such as jitter or delay, could be indicative of the performance of link 102, link 101, or communication network 130. Importantly, device 111 determines by monitoring and detection the state of the access at device 111, regardless of whether any degradation is caused by link 102, link 101, or communication network 130. Device 111 then generates access state information pertaining to the health or status of the access as perceived by device 111 and transmits the access state information to service provider system 140.


Next, device 111 transmits a service request for a service to service provider system 140 identifying the service and device 111. Service provider system 140 receives the service request from device 111 and responsively provides service options to device 111. Device 111 provides the options to a user for selection, such as via a graphical user interface. The user selects one of the service options and device 111 transmits the selected option to service provider system 140. Upon receiving the selected option, service provider system 140 provides the requested service configured for the option selection.



FIG. 4 illustrates the operation of service provider system 140 in an embodiment. To begin, service provider system 140 receives access state information indicate the state of an access link between an access system and a communication network (Step 410). The state information could include, for example, total bandwidth or available bandwidth, as well as other types of state information. Next, service provider system 140 receives a service request from a device whereby the device is provided access by the access system (Step 420). Service provider system 140 processes the service request with the access state information to determine service options based on the access state information (Step 430). Upon determining the service options, service provider system 140 transfers the service options to the device (Step 540). A user operatively selects one of the options and the device returns the selected option to service provider system 140. Service provider system 140 receives the selected option (Step 450) and provides the requested service configured for the selected option (Step 460).


Advantageously, communication network 100 allows for dynamically providing service options based on access state information to end-users in an interactive manner. In particular, either the device or the access system monitors for and provides access state information on the access links to the service provider. The service provider then provides the end-user with service options based on the access state information. The service is then configured and provided in accordance with the preference of the user.



FIG. 5 illustrates communication network 500 in an embodiment of the invention. Communication network 500 includes end-user system 510, communication network 530, session control system 520, and service provider system 540. End-user system 510 includes device 511 and access system 512. Device 511 is in communication with access system 512 by communication link 502. Access system 512 is in communication with communication network 530 by communication link 501. Session control system 520 is in communication with communication network 530. Likewise, service provider system 540 is in communication with communication network 530.


Service provider system 540 could be any system capable of providing a service to device 511 over communication network 530. A service could be, for example, a voice, video, audio, or data service. Session control system 520 could be any system capable of controlling service sessions between service provider system 540 and device 511. Access system 512 could be any system capable of providing device 511 with access to communication network 530. In an example, access system 512 could be a cable modem, a digital subscriber line (DSL) modem, or the like. Device 511 could be any device capable of communicating with session control system 520 and service provider system 540, such as a personal computing device, a personal digital assistant, or a mobile phone, as well as other types of devices. Alternatively, device 511 may communicate directly with communication network 530 without the use of access system 512 or session control system 520. Communication link 502 could be a wired or wireless link, such as a CAT-5 cable, USB cable, or WiFi wireless connection. Communication link 501 could also be a wireline or wireless link. For example, communication link 501 could comprise a DSL connection, fiber connection, cable connection, wire connection, or any other suitable wired connection using any suitable communications protocol, either alone or in combination with other links. The term “wired connection” refers to a connection that is not a wireless connection, and is not meant to exclude connections such as connections using optical fiber that do not include actual wire. In another example, communication link 501 could comprise a CDMA, MMDS, EVDO, WiMax link, or other suitable wireless link using any suitable communications protocol, either alone or in combination with other links.



FIG. 6 illustrates the operation of communication network 500 in an embodiment of the invention. In operation, device 511 communicates with access system 512 to gain access to communication network 530. Upon establishing the access, access system 512 monitors link 501. Access system 512 generates access state information pertaining to the health or status of link 501. Access system 512 could also monitor link 502 and could generate access state information pertaining to the health or status of link 502. Access system 512 actively transmits the access state information to session control system 520. Access system 512 could transfer the access state information periodically.


Next, device 511 transmits a service request for a service to session control system 520 identifying the service and device 511. In response to the service request, session control system 520 transfers a service request to service provider system 540 indicating device 511, the requested service, and the access state information. Service provider system 540 receives the service request from session control system 520 and responsively provides service options to device 511. Device 511 provides the options to a user for selection, such as via a graphical user interface. The user selects one of the service options and device 511 transmits the selected option to service provider system 540. Upon receiving the selected option, service provider system 540 provides the requested service configured for the option selection.



FIG. 7 illustrates the operation of communication network 500 in an embodiment of the invention. In operation, device 511 communicates with access system 512 to gain access to communication network 530. Upon establishing the access, device 511 monitors link 502. For example, device 511 could monitor for the total bandwidth available over link 502. Device 511 could also monitor general performance statistics, such as packet jitter and packet delay. The performance results, such as jitter or delay, could be indicative of the performance of link 501, link 502, or communication network 530. Importantly, device 511 determines by monitoring and detection the state of the access at device 511, regardless of whether any degradation is caused by link 502, link 501, or communication network 530. Device 511 then generates access state information pertaining to the health or status of the access as perceived by device 511 and transmits the access state information to session control system 520.


Next, device 511 transmits a service request for a service to session control system 520 identifying the service and device 511. In response to the service request, session control system 520 transfers a service request to service provider system 540 indicating device 511, the requested service, and the access state information. Service provider system 540 receives the service request from session control system 520 and responsively provides service options to device 511. Device 511 provides the options to a user for selection, such as via a graphical user interface. The user selects one of the service options and device 511 transmits the selected option to service provider system 540. Upon receiving the selected option, service provider system 540 provides the requested service configured for the option selection.


Thresholds may be established that may be stored in device 511, access system 512, session control system 520, or service provider system 540. Such thresholds may be associated with data such as a particular signal strength, level of bandwidth availability, amount of jitter, length of delay or latency, packet loss, voice quality, or any other metric or indicator of current or predicted quality of service or performance of communication between device 511 and communication network 530 or another device or network node with which device 511 is communicating (any such data being referred to hereafter as “performance data”, “line state”, or “state of a communications link”). In such a manner, the quality of service and performance over both links 501 and 502 can be monitored and predicted both separately and in combination. Such thresholds may be established to be indicative of current or predicted quality of service or performance. Thresholds may be absolute thresholds or thresholds that are dynamically determined and modified. For example, a threshold may be established based on some level or type of performance data known to be associated with poor communication or some other characteristic of performance data. Alternatively, a threshold may be established based on previous performance data collected by device 511, either alone or in combination with a time stamp or elapsed period of time associated with the time such previous performance data was collected. In such a manner, trends in performance data associated with device 511 or links 501 and 502 may be utilized to track a deteriorating communication session or connection or predict a more serious issue such as a dropped connection or unacceptable level of packet loss or delay.


Performance data may be collected by any or all of device 511, access system 512, session control system 520, and service provider system 540. Some performance data may be better collected by particular elements of FIG. 5. For example, device 511 may collect the data that is most relevant to assessing the overall connection over links 501 and 502 in combination, as device 511 may be best situated to collect data most closely associated with how the user of such device 511 experiences the effects of data communicated over communication network 530, link 501, and link 502. Performance data may be compared to one or more thresholds or otherwise analyzed or modeled for purposes of monitoring or predicting quality of service or performance. Such comparison, analysis, monitoring, and prediction may be accomplished by device 511, access system 512, session control system 520, or service provider system 540, either alone or in combination.


If it is determined that one or more thresholds have been crossed by the collected performance data, one or more events may be initiated by any of the elements of FIG. 5. Such events may include call handling procedures, providing feedback to a user, and the presentation of options to a user as to how to proceed with a particular communications session. More particularly, a user may be queried via device 511 if such user wants to make no changes, terminate or reinitiate a communications session or application, switch to another network mode (e.g., change from a WLAN to a cellular network), change a communications protocol, allocate a smaller amount of bandwidth to a particular application, change a CODEC utilized, batch a data transfer for later communication, queue a particular application or data transfer until performance conditions improve, or any other suitable change that may effect communication performance. Alternatively, an application may reside in device 511 or elsewhere in the elements of FIG. 5 to automatically make such determination based on rules or options previously established by a network administrator, service provider, or the user of device 511.


For example, a handheld wireless device may be progressively losing bandwidth due to a decline in signal strength. A user of the device may change geographic location, enter a structure, or enter a region with heavy user traffic or wireless interference. If a user is communicating using both voice and video, the device may prompt the user such that the user is alerted of the decline in signal strength and ask if such user would like to switch to voice only communications. Alternatively, the device may automatically drop the video connection or queue it until sufficient signal strength is reestablished. Further, if a video and voice session with two participants other than the user is being conducted, the device may automatically determine which of the video connections connecting the user to one of the two participants is to be terminated based on preference previously selected by the user. In fact, the user may elect to prioritize, rank or otherwise express a preference for packets associated with a video connection with party 1, an audio connection with party 1, a video connection with party 2, and an audio connection with party 2. The device may then terminate, queue, and reestablish such connections in accordance with the user's preferences as the signal strength of the connection of the user's device increases and decreases in strength. Although the above example is presented in terms of video and audio communications, it is equally applicable to the prioritization and selective termination and queuing of any applications communicating over a network.



FIG. 8 illustrates the operation of service provider system 540. To begin, service provider system 540 receives the service request from session control system 520 identifying device 511, the requested service, and the access state information (Step 810). Next, service provider system 540 determines service options based on the access state information (Step 820). For example, service provider system 540 could determine various possible codecs or protocols to use for the service based on the available bandwidth indicated in the access state information. Service provider system 540 transmits the service options to device 511 (Step 830) whereby a user selects one of the options. Service provider system 540 receives the selected option from device 511 (Step 840) and provides the service configured for the selected option (Step 850).


As illustrated, communication network 500 advantageously allows a service provider to dynamically interact with an end-user in order to optimally configure a requested service. In addition, communication network 500 provides for the forwarding of access state information on per-service request basis from a session control system to a service provider. In this manner, a device or an access system need not have awareness of a service provider while still allowing the service provider to use the access state information service optimization.



FIG. 9 illustrates computer system 900 in an embodiment of the invention. Computer system 900 includes interface 920, processing system 930, storage system 940, and software 950. Storage system 940 stores software 950. Processing system 930 is linked to interface 920. Computer system 900 could be comprised of a programmed general-purpose computer, although those skilled in the art will appreciate that programmable or special purpose circuitry and equipment may be used. Computer system 900 may use a client server architecture where operations are distributed among a server system and client devices that together comprise elements 920-950.


Interface 920 could comprise a network interface card, modem, port, or some other communication device. Interface 920 may be distributed among multiple communication devices. Interface 930 could comprise a computer microprocessor, logic circuit, or some other processing device. Processing system 930 may be distributed among multiple processing devices. Storage system 940 could comprise a disk, tape, integrated circuit, server, or some other memory device. Storage system 940 may be distributed among multiple memory devices.


Processing system 930 retrieves and executes software 950 from storage system 940. Software 950 may comprise an operating system, utilities, drivers, networking software, and other software typically loaded onto a general-purpose computer. Software 950 could also comprise an application program, firmware, or some other form of machine-readable processing instructions. When executed by the processing system 930, software 950 directs processing system 930 to operate as described above for the elements of communication network 100 or communication network 400.



FIG. 10 illustrates one embodiment of the invention used in connection with two or more communication networks, each of which may be managed by a different provider of network services. More particularly, FIG. 10 illustrates a first end-user system 1010 accessing a communication network 1030 of a first provider of network services via a first access system 1012. FIG. 10 also illustrates a second end-user system 1040 accessing a second network 1060 of a second provider of network services via access system 1050. First network 1030 and second network 1060 may be directly connected or may be indirectly connected via any combination of networks or suitable network connections.


As illustrated, network 1030 may include an access point at which communications from end-user system 1010 are received at network 1030. For example, if network 1030 is a cellular network, access point 1070 may be an MSC or a GMSC. Similarly, network 1060 may include an access point 1080 providing similar functionality.


As previously described, end-user system 1010 may monitor performance data and thresholds as previously described relative to FIG. 5 in order to assess the quality of the connection such end-user system 1010 has with network 1030. End-user system 1010 may then communicate such performance data or the crossing of such thresholds to a node of network 1030 such as access point 1070 or any other suitable node of the network. Network 1030 may then further communicate the need to modify a communication session of such end-user system 1010 based on an indication of such performance data crossing any of such thresholds. More particularly, a packet may be generated and sent over network 1030 to network 1060 that indicates to network 1060 that a communication session conducted by end-user system 1010 needs to be modified or merely that such a threshold has been crossed. For example, such communication session may be conducted between end-user system 1010 and 1040.


Although such communication is described in the nomenclature of a packet, any suitable data communication between networks 1030 and 1060 may be utilized to signal network 1060 of the need to modify the communications session. As used herein, the terms modify and modification may be used to refer to a broad range of alternatives that may be selected in response to a change in the performance data or the crossing of a threshold, as each are associated with a particular communications session. For example, such a modification may include the call handling procedures, feedback, or options previously described relative to FIG. 5. Although FIG. 5 describes such options in terms of how things are presented or chosen by a user of an end-user system such as end-user system 1010, a modification may instead be determined automatically by a node of network 1030 or 1060 or a remote end-user device such as end-user system 1040. Such modification may include the termination or re-initiation of a communications session or application, the change in a mode of communications, a change in a communications protocol, a change in the amount of bandwidth used by a particular application, a change in a codec utilized, the queuing or batched transfer of data, or any suitable change that may improve or otherwise alter the communications session.


In one embodiment, such modification may include switching the communications session from one end-user device to another or from one communications network to another. For example, a communications session that is being conducted by a user using a personal digital assistant over a first data network can be switched to be conducted on a cellular network using a cellular telephone. Likewise, a communications session that is being conducted over a wireless land connection may instead be switched to be conducted over a DSL connection.


The decision as to how to modify a communications session may, as previously described, be affirmatively chosen by a user of one or more of the end-user devices being used in such communications session. Alternatively, such decision may be automatically made by a communications network or end-user device in response to the performance data received, the threshold crossed, the types of end-user systems available to end-users, the type of network access available to the end-users, the bandwidth, availability, quality of service, packet loss, jitter, latency, or any other performance data associated with alternatives with which the end-users may obtain network access and establish a network connection between the end-user devices of such end-users.


In one embodiment, the decision is made by a session controller of a network utilized by one of the end-users involved in a communications session. In one embodiment, such session controller may be session control system 520. More particularly, in response to receiving data associated with a decline in the quality of a connection to network A by end-user device A, a session controller of network B may make a change to a communications session between end-user device A and an end-user device B that is connected to network B. In one example of the embodiment, the session controller of network B may make such change in response to receiving data from end-user device A. In another embodiment of the example, the session controller of network B may make such change in response to a command generated by end-user device B. In yet another embodiment of the example, the session controller of network B may make such change in response to a preference previously indicated by end-user device B. Such preference may be an indication of bandwidth priority for a particular application, an indication of an alternative channel of communication, or any other suitable indication of desired change based on the circumstances of a particular communications session.


A packet or other signal or suitable data that is communicated between two different networks such as network 1030 and network 1060 may include information regarding the availability of a particular virtual channel, the amount of bandwidth that is available in such channel, a trigger indicative of a need or desire to modify a communications session, or any other suitable information indicative of a present or predicted change in the state of a particular network connection. The term state as used herein may be any status or change in the performance characteristics of any network connection that may affect the availability, quality, size, latency, or other characteristic capable of impacting the data communicated in a particular communications session. Such information may be communicated for example, directly between the network access point of a first end-user in a first network and the network access point of a second end-user of a second network. In such a manner, either of the two network access points or end-user devices connected thereto may modify a communications session. Alternatively, such information may be communicated prior to or during call setup in order to determine how best to establish a communications session between an end-user of the first network and an end-user of the second network.


In an alternative embodiment, information regarding the state of a particular network connection of a first end-user to a first network may be communicated to a register or database maintained on either network or at a central location for storage and use when setting up and conducting future communication sessions involving such end-user. Such register or database may be used in Session Initiation Protocol, Bearer Independent Call Control, or SS7 call control schemes. Databases such as a Home Location Register (HLR) in a cellular network, an ENUM database in a Voice Over IP network or Policy Decision Function/Home Subscriber Server in an IMS network are currently utilized to monitor the current location of an end-user device and/or determine how best to route a call or data transfer to such end-user device based on the location of such end-user device in one or more communication networks.


Each of such databases have entries corresponding to end-users. Such entries may be supplemented according to the teachings of the present invention to include state information regarding the connection of such end-user device to the network and the quality or state thereof. For example, such database entry could include information regarding the availability of a virtual channel to such end-user device, the amount of bandwidth available to such end-user device's connection to the network, the best route of communication to such network device, preferences of an end-user with respect to call setup or a particular device or network to use for each of a plurality of applications such as voice, video, data, music, or any other suitable type of data or application.



FIG. 11 illustrates an entry in a network database such as an HLR, HSS, PDF, or ENUM database associated with an end-user. Database entry 1110 includes an identifier associated with an end-user device such as EIN number, serial number, telephone number, account number, or other suitable identifier associated with a subscriber or device. Database entry 1110 may also include a list of alternative end-user devices, together with the type of network associated with such end-user device. Certain end-user devices may be associated with one or more networks. For example, a home computer may be connected both to a DSL connection, cable modem connection, wireless LAN connection, and/or a traditional dial-up connection.


Thus, as illustrated in FIG. 11, user 1234 has four end-user devices indicated. More particular, user 1234 has a home computer, work computer, cellular telephone, and personal digital assistant. Each of such devices is associated with particular networks. Each of such devices are further associated with parameters such as available applications, available bandwidth, available protocols, and user preferences. User preferences may include the election by a user to have a particular end-user device and/or network connection utilized when receiving data of a particular format or that is utilized by a particular application. For example, a user may indicate that any video data is first sent to his home computer and then to a cellular telephone if a connection to the home computer is not available. Alternatively, a user or network may set preferences based on time of day or the current location of the end-user.


Each of the network connections illustrated in FIG. 11 may also have fields associated with performance data that is periodically updated to reflect the current state of the end-user's access using such network connection. For example, an end-user device may periodically send performance data to such database indicative of the state of that device's connection to the network. The end-user device may indicate the amount of bandwidth available over such end-user device's connection to the network, the amount of latency experienced by such device, or any other piece of information relevant to the operation of a network connection or the performance thereof previously described in this application.


In one embodiment of the present invention, in setting up a communications session with a user, prior to setup of such communications session, a database entry such as the one illustrated in this FIG. 11 may be consulted to determine the best way of conducting such communications session with the end-user. For example, an HLR or PDF may be consulted to determine the network connection to the end-user that has the most available bandwidth. In response to such determination, a call setup, or other establishment of a communications session may proceed with the particular network device and particular network connection associated with the most available bandwidth. In an alternative embodiment, the same decision may be made to establish the network connection with the least latency, least jitter, or highest likelihood of reaching an end-user based on the location of a particular end-user, the time of day, the day of the week, or any other suitable piece of information.



FIG. 12 illustrates one embodiment of a method implemented according to the teachings of the present invention. In step 1210, performance data associated with a network connection is received. In step 1220, such performance data is compared to one or more thresholds. In step 1230, a packet is generated in response to comparing the performance data to the one or more thresholds. In step 1240, the packet is communicated from the network of one service provider to the network of a second service provider. In step 1250, the network of the second service provider modifies a communications session in response to receiving the packet.


In one example of the method illustrated in FIG. 12, a consumer purchases or selects a streaming video from an online content provider using an end-user device. The provider selects a particular codec with which to provide the streaming video based on the then current bandwidth available between the end-user device and a network access point. If the quality of the connection between the end-user device and the network access point deteriorates past a particular threshold such as a decline in available bandwidth or an increase in packet loss, the provider may be sent an indication that such threshold has been reached by the end-user device or the network access point. In response to receiving such indication, the provider may alter the codec being utilized, increase the amount of data queued before the video is displayed by the end-user device, or communicate to the end-user device that the provider believes the connection may soon be lost or deteriorate to such a degree that the streaming video will be unviewable by a user of the end-user device.



FIG. 13 illustrates one embodiment of a method implemented according to the teachings of the present invention. In step 1310, information regarding the state of at least two network connections associated with a particular end-user is stored in a database. In step 1320, a request to initiate a communications session with the particular end-user is received. In step 1330, one of the two network connections is selected in response to comparing the information associated with the performance of each of the network connections. In step 1340, a communications session is initiated over the selected network connection. In one embodiment, the selection of the network connection may be rejected based on a characteristic of the end-user device associated with network connection. For example, a selection may be rejected because a cell phone battery is low, because it does not support a particular format, because the end-user device is only indicated as being accessible during certain times, or because an end-user has indicated that he does not wish to utilize a particular application on such end-user device.


Various embodiments of the present invention allow a remote network or remote end-user device to control, change or terminate a communications session based on the state of a network connection between another end-user device and another network. In such a manner, a complete connection between two end-users that crosses networks of different service providers can be monitored in an end-to-end fashion. More particularly, one end-user's local access to a network can be modified and taken into account by another end-user even if the two end-users access a network such as the internet or a global telephone network through different service providers. The communication of a packet, signal or other data between such networks that is indicative of a particular end-user's local access and the quality thereof can therefore be taken into account during not only call setup or session initiation, but also on a continuous basis during a call or communications session, and actions may be taken to improve the performance of such communication and/or modify the way such communication is conducted in order to enhance the performance of the overall connection between the two end-users.



FIG. 14 illustrates one embodiment of a signaling control system 1400 implemented according to the teachings of the present invention. Signaling control system 1400 is a system for managing control signals utilized to set up communications session between clients of a network. In one embodiment, signaling control system 1400 may be an Information Management System (IMS) for an IP multi-media network. Such signaling control system 1400 may be a separate component of an IMS system that controls access facilities such as a Resource Admission and Control Sub-system (RAG-S), sometime referred to in whole or in part as a Resource Admission and Control Function or Resource Admission and Control Facility (in each case RAG-F). In yet another embodiment, signaling control system 1400 may be a signaling control point, home location register, or other appropriate network device suitable for storing line state data associated with a particular end-user device or network address of an end-user. Although specific embodiments of signaling control system 1400 are identified herein, signaling control system 1400 may be any network device or portion of a network device wherein it may be useful to maintain the current line state of a particular end-user device or network address connected to a network.


Signaling control system 1400 includes a user line state database 1410. User line state database 1410 may be embedded within signaling control system 1400 as illustrated or included in a separate network device in communication with signaling control system 1400. User line state database 1410 includes a plurality of user records 1420. Each user record 1420 includes information regarding the current status of a line state or transmission state of a connection between a network address associated with a particular end-user device and an access node or switch, gateway, or edge node of a network.


User record 1420 includes line state or transmission state information for the network connections of one or more network addresses 1430 associated with user record 1420. Hereafter, line state may be used to refer to either line state or transmission state. For example, each network address 1430 may include line state information associated with a total bandwidth 1432, a real time bandwidth 1434, and a non-real time bandwidth 1436. For each of the foregoing categories of bandwidth, the user record 1420 may include the overall capacity 1438 of a particular network connection utilized by network address 1430, the amount of such bandwidth in use 1440, the amount of such bandwidth reserved 1442, and the amount of such bandwidth currently and actually available 1444.


User record 1420 may also include user preferences 1450 for a particular end-user. For example, user preferences 1450 may include an override preference 1456 wherein an end-user or network administrator may specify a preferred network address for such end-user, or a hierarchy of addresses that specifies an order in which such network addresses should be utilized in order to set up a communications session with a particular end-user. Such override preference 1456 may be enabled at certain times to disregard other preferences of the user. User preferences 1450 may also include an application preference 1458 wherein a user may specify a particular network address to be used for a particular application. For example, an end-user may specify a particular network address for voice communications, and another network address for video content applications. User preferences 1450 may also include a codec preference 1460 wherein an end-user may specify a particular network address based on the codec being used to deliver video or audio content to such end-user. User preferences 1450 may include a time preference 1462, a day preference 1464, and a date preference 1466, each specifying that a particular network address be utilized when a communications session is desired to be set up at a particular time, day, and/or date.


User preferences 1450 may also include a bandwidth necessary preference 1468, wherein an end-user can specify a particular network address to be utilized based on the amount of bandwidth required for a particular communications session or application used therein. In such a manner, bandwidth necessary preference 1468 may, in one embodiment, be a table specifying different network addresses to be utilized based on a particular range of bandwidth in which the bandwidth required for a particular communications session falls.


In one embodiment, each network address 1430 may be associated with a particular end-user device, such that a network address may be selected based on a particular user preference 1450 that is selected based on the user interface of the end-user device located at such network address 1430. For example, a user may indicate a preference for a network address associated with a television or personal computer for video communications sessions requiring a large degree of bandwidth, and hence higher resolution. Such same user may indicate a preference 1450 for a cell phone if a lower resolution video communications session is desired based on the codec being utilized or the bandwidth necessary for such a connection. In another embodiment, an end-user device may be associated with more than one network address 1430. For example, a cell phone may have a network address on a cellular network and a network address on a wireless LAN network. In such a manner, the cell network address may be selected as a user preference 1450 for a real time application and a network address 1430 for a wireless LAN network may be selected for a non-real time application. Similarly, a personal computer may be connected to two different networks such as a wireless LAN network and a DSL or cable modem network.


User preferences 1450 can be utilized to compose rules 1460 for each network address 1430 or for an overall end-user. For example, a decision tree can be utilized based on the parameters of a communications session and the applications to be utilized therein and the current line state or transmission state of each network address 1430. For example, a video may be broadcast in a communications session based on a combination of the application utilized, the codec utilized, the date, day, and time for the communications session, the bandwidth necessary for the video download, the real time or non-real time bandwidth available, or other factors associated with a particular communications session, application, end-user, network address, or indication of user preference. Although not illustrated herein, user record 1420 may include additional line state or transmission state information for a particular network address 1430 such as latency, packet loss, jitter, or any other suitable indicia of the current performance or operation of a link between a particular end-user device and a network node or other device.


Signaling control system 1400 may be in direct or indirect communication with an end-user device 1470, an access node 1480, and a switch 1490. End-user device 1470 may be a telephone, PDA, personal computer, television, or any other suitable end-user device. Access node 1480 may be any node or gateway to any telecommunications network. Switch 1490 may be any switch, router, control point, transfer point, or other suitable network element. Each of end-user device 1470, access node 1480, and switch 1490 may send periodic updates to signaling control system 1400 to provide user line state database 1410 with updated information regarding the line state associated with any particular network address. In one embodiment, such updates may include timed triggers 1492 that are sent at regular or irregular intervals. For example, line state may be updated at intervals of every 0.1 seconds, one second, one minute, five minutes, half hourly, or hourly. Additionally, forced updates 1494 may be communicated to signaling control system 1400 by end-user device 1470, access node 1480, or switch 1490 based on the occurrence of a particular event or circumstance such as one of the previously described thresholds being reached with respect to available bandwidth, latency, packet loss, jitter, or any other suitable indicia of the performance or status of a particular link between an end-user device and a network or element of such network.


In another embodiment of the present invention, a system is disclosed for tracking the end-user device line transmission state in session controllers such as soft switches. The state information is then used for enhanced call handling. In cases where end user devices have multiple connectivity methods, the session controller tracks both line states for call handling decisions.


In yet another embodiment of the present invention, the session controller also communicates the line state information to other session controllers for call handling via inter-switch signaling protocol applications such as SS7, BIC, SIP, SIP-T, and other inter-switch signaling for call handling.


In yet another embodiment of the present invention, the session controller, and end-user devices can communicate their respective user line state to signaling control points, HLRs, ENUM servers, and other Advanced Intelligent Network devices for advanced call handling.


In yet another embodiment of the present invention, the signaling control platforms may track multiple end-user line states, and use those states to make call signaling decisions for those users at multiple locations and monitor connection quality during call handling and call control signaling.


In yet another embodiment of the present invention, the invention would be integrated in the Policy Decision Function (PDF) and/or Home Subscriber Server (HSS) function in a network designated as an IP Multimedia Subsystem (IMS). These functions would monitor the line state of the subscriber and determine appropriate bandwidth or coding requirements for the call session. Within the IMS architecture, this information would also be used to communicate to other IMS platforms to negotiate with the other platform to determine correct bandwidth or coding requirements for the end user to end user session.


Although particular embodiments of the present invention have been explained in detail, it should be understood that various changes, substitutions, and alterations can be made to such embodiments without departing from the spirit and scope of the present invention as defined solely by the following claim.

Claims
  • 1. A method for establishing a communications session over a network, the method comprising: receiving a request to initiate the communications session over the network to an end-user, the end-user being associated with at least two end-user devices;in response to receiving the request to initiate the communications session over the network to the end-user, selecting one of the at least two end-user devices based on a comparison of network performance information associated with the at least two end-user devices; andestablishing the communications session with the end-user through the one of the at least two end-user devices, wherein prior to establishing the communications session with the end-user through the one of the at least two end-user devices, determining whether a preference overrides establishing the communications session with a selected end-user device, the preference includes an indication of bandwidth priority for a particular application associated with the communications session.
  • 2. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting one of at least two network addresses associated with the end-user.
  • 3. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting routing instructions associated with the end-user.
  • 4. The method of claim 1, further comprising: selecting a second end-user device of the at least two end-user devices in response to receiving data associated with a decline in quality of the communication session; andestablishing a second communication session with the second end-user device of the end-user.
  • 5. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting one of the at least two end-user devices in response to a stored preference.
  • 6. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting one of the at least two end-user devices in response to a line state of a network connection.
  • 7. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting one of the at least two end-user devices in response to a transmission state of a network connection.
  • 8. The method of claim 1, wherein selecting one of the at least two end-user devices further comprises selecting one of the at least two end-user devices in response to quality of a network connection between the at least two end-user devices.
  • 9. A system for establishing a communications session, the system comprising: a session controller, the session controller configured to receive a request to initiate the communications session, the request being associated with an end-user, the end-user being associated with at least two end-user devices; anda memory in communication with the session controller, the memory configured to store network performance information associated with the at least two end-user devices, wherein the session controller is further configured to establish a communications session with the end-user based on a comparison of the network performance information between the least two end-user devices, wherein prior to establishing the communications session with the end-user through a selected end-user device, determining whether a preference overrides establishing the communications session with the selected end-user device, the preference includes an indication of bandwidth priority for a particular application associated with the communications session.
  • 10. The system of claim 9, wherein the memory includes an end-user database configured to store the performance information, the performance information being associated with at least two network connections associated with the end-user.
  • 11. The system of claim 9, wherein the memory includes an end-user database configured to store preferences, the preferences being associated with one or more network connections of the end-user.
  • 12. The system of claim 9, wherein the memory includes an end-user database configured to store device preferences of the end-user, the device preferences being associated with circumstances under which a device associated with the end-user should be used in the communications session.
  • 13. The system of claim 9, wherein the memory includes an end-user database configured to store line state information associated with one or more network connections associated with the end-user.
  • 14. The system of claim 9, wherein the memory includes an end-user database, the end-user database configured to store transmission state information associated with one or more network connections associated with the end-user.
US Referenced Citations (460)
Number Name Date Kind
4612416 Emerson et al. Sep 1986 A
4771448 Koohgoli et al. Sep 1988 A
4831649 Mejane May 1989 A
5042027 Takase et al. Aug 1991 A
5132966 Hayano et al. Jul 1992 A
5408465 Gusella et al. Apr 1995 A
5477529 Gingell Dec 1995 A
5479447 Chow et al. Dec 1995 A
5521910 Matthews May 1996 A
5539815 Samba Jul 1996 A
5574934 Mirashrafi et al. Nov 1996 A
5581482 Wiedenman et al. Dec 1996 A
5621663 Skagerling Apr 1997 A
5627766 Beaven May 1997 A
5638514 Yoshida et al. Jun 1997 A
5675578 Gruber et al. Oct 1997 A
5680425 Morzano Oct 1997 A
5726979 Henderson et al. Mar 1998 A
5757784 Liebowitz et al. May 1998 A
5793976 Chen et al. Aug 1998 A
5878097 Hase et al. Mar 1999 A
5883819 Abu-Amara et al. Mar 1999 A
5901141 Gruber et al. May 1999 A
5903558 Jones et al. May 1999 A
5917821 Gobuyan et al. Jun 1999 A
5931679 Funahashi Aug 1999 A
5953318 Nattkemper et al. Sep 1999 A
5963146 Johnson et al. Oct 1999 A
5970064 Clark et al. Oct 1999 A
6011798 McAlpine Jan 2000 A
6047326 Kilkki Apr 2000 A
6055578 Williams et al. Apr 2000 A
6058102 Drysdale et al. May 2000 A
6064673 Anderson et al. May 2000 A
6081505 Kilkki Jun 2000 A
6108306 Kalkunte et al. Aug 2000 A
6115393 Engel et al. Sep 2000 A
6141341 Jones et al. Oct 2000 A
6167025 Hsing et al. Dec 2000 A
6185198 LaDue Feb 2001 B1
6201719 He et al. Mar 2001 B1
6209033 Datta et al. Mar 2001 B1
6215769 Ghani et al. Apr 2001 B1
6236996 Bapat et al. May 2001 B1
6260072 Rodriguez-Moral Jul 2001 B1
6269401 Fletcher et al. Jul 2001 B1
6272151 Gupta et al. Aug 2001 B1
6282274 Jain et al. Aug 2001 B1
6327620 Tams et al. Dec 2001 B1
6327677 Garg et al. Dec 2001 B1
6338046 Saari et al. Jan 2002 B1
6341270 Esposito et al. Jan 2002 B1
6363056 Beigi et al. Mar 2002 B1
6370114 Gullicksen et al. Apr 2002 B1
6377982 Rai et al. Apr 2002 B1
6381221 Legouet-Camus et al. Apr 2002 B1
6381228 Prieto et al. Apr 2002 B1
6384744 Philyaw et al. May 2002 B1
6389005 Cruickshank May 2002 B1
6397359 Chandra et al. May 2002 B1
6401121 Yoshida et al. Jun 2002 B1
6404746 Cave et al. Jun 2002 B1
6421356 Carter et al. Jul 2002 B2
6434618 Cohen et al. Aug 2002 B1
6453359 Bender et al. Sep 2002 B1
6460055 Midgley et al. Oct 2002 B1
6473793 Dillon et al. Oct 2002 B1
6477590 Habusha et al. Nov 2002 B1
6493547 Raith Dec 2002 B1
6502131 Vaid et al. Dec 2002 B1
6529475 Wan et al. Mar 2003 B1
6530032 Shew et al. Mar 2003 B1
6535504 Johnson et al. Mar 2003 B1
6542466 Pashtan et al. Apr 2003 B1
6549946 Fisher et al. Apr 2003 B1
6560199 Hoshino May 2003 B1
6594268 Aukia et al. Jul 2003 B1
6594277 Chiang et al. Jul 2003 B1
6597683 Gehring et al. Jul 2003 B1
6614781 Elliott et al. Sep 2003 B1
6615261 Smorgrav Sep 2003 B1
6628629 Jorgensen Sep 2003 B1
6633835 Moran et al. Oct 2003 B1
6646987 Qaddoura Nov 2003 B1
6651030 Victor et al. Nov 2003 B2
6654803 Rochford et al. Nov 2003 B1
6657957 Cheung et al. Dec 2003 B1
6665264 Davison et al. Dec 2003 B1
6665714 Blumenau et al. Dec 2003 B1
6678250 Grabelsky et al. Jan 2004 B1
6678524 Hansson et al. Jan 2004 B1
6684253 Whitaker et al. Jan 2004 B1
6690646 Fichou et al. Feb 2004 B1
6721405 Nolting et al. Apr 2004 B1
6741563 Packer May 2004 B2
6741572 Graves et al. May 2004 B1
6748247 Ramakrishnan et al. Jun 2004 B1
6751777 Bates et al. Jun 2004 B2
6754221 Whitcher et al. Jun 2004 B1
6757255 Aoki et al. Jun 2004 B1
6763380 Mayton et al. Jul 2004 B1
6765864 Natarajan et al. Jul 2004 B1
6785259 Le et al. Aug 2004 B2
6785285 Romana et al. Aug 2004 B1
6798755 Lillie et al. Sep 2004 B2
6798786 Lo et al. Sep 2004 B1
6804240 Shirakawa et al. Oct 2004 B1
6807515 Vogel et al. Oct 2004 B2
6816463 Cooper et al. Nov 2004 B2
6836800 Sweet et al. Dec 2004 B1
6839070 Meandzija et al. Jan 2005 B2
6839356 Barany et al. Jan 2005 B2
6839747 Blumenau et al. Jan 2005 B1
6868094 Bordonaro et al. Mar 2005 B1
6891822 Gubbi et al. May 2005 B1
6892336 Giorgetta et al. May 2005 B1
6912231 White et al. Jun 2005 B2
6925060 Mangin Aug 2005 B2
6925424 Jones et al. Aug 2005 B2
6925493 Barkan et al. Aug 2005 B1
6931354 Jones et al. Aug 2005 B2
6934249 Bertin et al. Aug 2005 B1
6934251 Ono Aug 2005 B2
6934749 Black et al. Aug 2005 B1
6937359 Toyoda et al. Aug 2005 B2
6937713 Kung et al. Aug 2005 B1
6940832 Saadawi et al. Sep 2005 B2
6944673 Malan et al. Sep 2005 B2
6947379 Gleichauf et al. Sep 2005 B1
6950407 Huddle Sep 2005 B1
6965614 Osterhout et al. Nov 2005 B1
6973622 Rappaport et al. Dec 2005 B1
6975617 Walker et al. Dec 2005 B2
6978223 Milliken Dec 2005 B2
6985901 Sachse et al. Jan 2006 B1
6999419 Ise et al. Feb 2006 B2
7002992 Shaffer et al. Feb 2006 B1
7006526 Biederman Feb 2006 B1
7007107 Ivchenko et al. Feb 2006 B1
7013322 Lahr Mar 2006 B2
7013338 Nag et al. Mar 2006 B1
7013349 Idsinga Mar 2006 B2
7020082 Bhagavath et al. Mar 2006 B2
7020085 Mimura et al. Mar 2006 B2
7020696 Perry et al. Mar 2006 B1
7023839 Shaffer et al. Apr 2006 B1
7024475 Abaye et al. Apr 2006 B1
7027400 O'Neill Apr 2006 B2
7035220 Simcoe Apr 2006 B1
7035291 Grinfeld Apr 2006 B2
7039015 Vallone et al. May 2006 B1
7039709 Beadle et al. May 2006 B1
7042841 Abdelilah et al. May 2006 B2
7051098 Masters et al. May 2006 B2
7058727 Dingsor et al. Jun 2006 B2
7061856 Banerjee Jun 2006 B2
7062259 Dispensa et al. Jun 2006 B1
7068607 Partain et al. Jun 2006 B2
7082315 Bar-On Jul 2006 B2
7088678 Freed et al. Aug 2006 B1
7092696 Hosain et al. Aug 2006 B1
7096260 Zavalkovsky et al. Aug 2006 B1
7099879 Tacaille et al. Aug 2006 B2
7099942 Wilson et al. Aug 2006 B1
7100005 Pearl Aug 2006 B2
7107273 Ohata et al. Sep 2006 B2
7124211 Dickson et al. Oct 2006 B2
7127617 Wiederin et al. Oct 2006 B2
7133368 Zhang et al. Nov 2006 B2
7142516 Lev et al. Nov 2006 B2
7180866 Chartre et al. Feb 2007 B1
7184401 Foore et al. Feb 2007 B2
7184777 Diener et al. Feb 2007 B2
7194002 Zhang et al. Mar 2007 B2
7197546 Bagga et al. Mar 2007 B1
7206593 Yarkosky et al. Apr 2007 B1
7209473 Mohaban et al. Apr 2007 B1
7222147 Black et al. May 2007 B1
7222190 Klinker et al. May 2007 B2
7224974 Benco et al. May 2007 B2
7246045 Rappaport et al. Jul 2007 B1
7246159 Aggarwal et al. Jul 2007 B2
7248560 Blankenship et al. Jul 2007 B1
7248604 Sugar et al. Jul 2007 B2
7257080 Martin Aug 2007 B2
7260635 Pandya et al. Aug 2007 B2
7263067 Sreemanthula et al. Aug 2007 B2
7266122 Hogg et al. Sep 2007 B1
7266754 Shah et al. Sep 2007 B2
7277913 Kashyap Oct 2007 B2
7283474 Bergenwall Oct 2007 B1
7292531 Hill Nov 2007 B1
7304942 Malladi et al. Dec 2007 B1
7307989 Ofek et al. Dec 2007 B2
7310334 FitzGerald et al. Dec 2007 B1
7313129 Bova et al. Dec 2007 B1
7330434 Murooka et al. Feb 2008 B2
7333438 Rabie et al. Feb 2008 B1
7349960 Pothier et al. Mar 2008 B1
7360083 Ragireddy et al. Apr 2008 B1
7369498 Ma et al. May 2008 B1
7376731 Khan et al. May 2008 B2
7385997 Gorti et al. Jun 2008 B2
7389537 Callon et al. Jun 2008 B1
7391721 Holbrook Jun 2008 B1
7406029 Ciancaglini et al. Jul 2008 B1
7411966 Bruckner et al. Aug 2008 B2
7412507 Saxena et al. Aug 2008 B2
7417949 Weller et al. Aug 2008 B2
7447164 Ueda et al. Nov 2008 B2
7450928 Henry et al. Nov 2008 B1
7457868 Guo Nov 2008 B1
7460493 Dhanoa et al. Dec 2008 B1
7463634 Hansen Dec 2008 B1
7471653 McConnell et al. Dec 2008 B2
7472192 DeFerranti et al. Dec 2008 B2
7477657 Murphy et al. Jan 2009 B1
7483437 Mohaban Jan 2009 B1
7492708 Ge et al. Feb 2009 B2
7499407 Holness et al. Mar 2009 B2
7502841 Small et al. Mar 2009 B2
7505412 Miyake et al. Mar 2009 B2
7515542 Hertoghs et al. Apr 2009 B2
7519700 Sapsford et al. Apr 2009 B1
7519725 Alvarez et al. Apr 2009 B2
7529192 Labovitz May 2009 B2
7535913 Minami et al. May 2009 B2
7539241 Dick May 2009 B1
7542440 Rajkotia Jun 2009 B2
7552233 Raju et al. Jun 2009 B2
7587203 Shahidi et al. Sep 2009 B2
7590718 Gilmour et al. Sep 2009 B2
7593321 Galand et al. Sep 2009 B2
7602725 Vaught Oct 2009 B2
7613118 Appanna et al. Nov 2009 B2
7613142 Molteni et al. Nov 2009 B2
7616573 Olesinski et al. Nov 2009 B2
7623550 Forbes Nov 2009 B2
7627627 Helliwell et al. Dec 2009 B2
7643414 Minhazuddin Jan 2010 B1
7649837 Puuskari Jan 2010 B1
7653005 Zou et al. Jan 2010 B2
7653725 Yahiro et al. Jan 2010 B2
7684332 Ray et al. Mar 2010 B2
7715353 Jain et al. May 2010 B2
7733787 Paterson et al. Jun 2010 B1
7751780 Saidi et al. Jul 2010 B2
7756032 Feick et al. Jul 2010 B2
7765294 Edwards et al. Jul 2010 B2
7802008 Akinlar et al. Sep 2010 B2
7808918 Bugenhagen Oct 2010 B2
7843831 Morrill et al. Nov 2010 B2
7852749 Mickle et al. Dec 2010 B2
7889660 Bugenhagen Feb 2011 B2
7940735 Kozisek et al. May 2011 B2
7948909 Bugenhagen et al. May 2011 B2
8000318 Wiley et al. Aug 2011 B2
8015294 Bugenhagen et al. Sep 2011 B2
20010002195 Fellman et al. May 2001 A1
20010006899 Khullar et al. Jul 2001 A1
20010036181 Rogers Nov 2001 A1
20010038610 Decker et al. Nov 2001 A1
20020015386 Kajiwara Feb 2002 A1
20020032871 Malan et al. Mar 2002 A1
20020044528 Pogrebinsky et al. Apr 2002 A1
20020068543 Shah Jun 2002 A1
20020075869 Shah et al. Jun 2002 A1
20020093948 Dertz et al. Jul 2002 A1
20020107966 Baudot et al. Aug 2002 A1
20020115429 Deluca et al. Aug 2002 A1
20020129295 Nishioka et al. Sep 2002 A1
20020135611 Deosaran et al. Sep 2002 A1
20020145982 Talpade et al. Oct 2002 A1
20020145998 Hagirahim Oct 2002 A1
20020165957 Devoe et al. Nov 2002 A1
20020176131 Walters et al. Nov 2002 A1
20020186660 Bahadiroglu Dec 2002 A1
20020186665 Chaffee et al. Dec 2002 A1
20020191618 Mattathil Dec 2002 A1
20030005144 Engel et al. Jan 2003 A1
20030012138 Abdelilah et al. Jan 2003 A1
20030046388 Milliken Mar 2003 A1
20030064720 Valins et al. Apr 2003 A1
20030067877 Sivakumar et al. Apr 2003 A1
20030067884 Abler et al. Apr 2003 A1
20030088671 Klinker et al. May 2003 A1
20030100308 Rusch May 2003 A1
20030117964 Chen et al. Jun 2003 A1
20030118029 Maher, III et al. Jun 2003 A1
20030120594 Shaginaw et al. Jun 2003 A1
20030128692 Mitsumori et al. Jul 2003 A1
20030137997 Keating Jul 2003 A1
20030142625 Wan et al. Jul 2003 A1
20030147386 Zhang et al. Aug 2003 A1
20030172291 Judge et al. Sep 2003 A1
20030182410 Balan et al. Sep 2003 A1
20030182432 Lawson Sep 2003 A1
20030185210 McCormack Oct 2003 A1
20030189900 Barany et al. Oct 2003 A1
20030189943 Gorti et al. Oct 2003 A1
20030198187 Mellquist et al. Oct 2003 A1
20030198209 Schwengler et al. Oct 2003 A1
20030235209 Garg et al. Dec 2003 A1
20030236745 Hartsell et al. Dec 2003 A1
20040025172 Bian et al. Feb 2004 A1
20040032860 Mundra et al. Feb 2004 A1
20040034793 Yuan Feb 2004 A1
20040049596 Schuehler et al. Mar 2004 A1
20040054680 Kelley et al. Mar 2004 A1
20040058651 Ross et al. Mar 2004 A1
20040073641 Minhazuddin et al. Apr 2004 A1
20040073690 Hepworth et al. Apr 2004 A1
20040088244 Bartter et al. May 2004 A1
20040098473 Yodaiken May 2004 A1
20040101302 Kim et al. May 2004 A1
20040103216 Lane May 2004 A1
20040110507 Ramakrishnan et al. Jun 2004 A1
20040117502 Rosengard et al. Jun 2004 A1
20040139106 Bachman et al. Jul 2004 A1
20040153382 Boccuzzi et al. Aug 2004 A1
20040155899 Conrad Aug 2004 A1
20040158704 Oates et al. Aug 2004 A1
20040160979 Pepin et al. Aug 2004 A1
20040209595 Bekanich Oct 2004 A1
20040223505 Kim et al. Nov 2004 A1
20040230572 Omoigui Nov 2004 A1
20040240405 Okazaki Dec 2004 A1
20040240454 Yamauchi et al. Dec 2004 A1
20040242219 Oie et al. Dec 2004 A1
20040246895 Feyerabend Dec 2004 A1
20040252718 Miyamoto Dec 2004 A1
20040258226 Host Dec 2004 A1
20040261116 McKeown et al. Dec 2004 A1
20040264961 Nam et al. Dec 2004 A1
20040267948 Oliver et al. Dec 2004 A1
20050002331 Nolle et al. Jan 2005 A1
20050025059 Rajan et al. Feb 2005 A1
20050027851 McKeown et al. Feb 2005 A1
20050027870 Trebes Feb 2005 A1
20050043026 Brok et al. Feb 2005 A1
20050071494 Rundquist et al. Mar 2005 A1
20050075957 Pincus et al. Apr 2005 A1
20050083886 Ikeda Apr 2005 A1
20050086336 Haber Apr 2005 A1
20050089040 Kim Apr 2005 A1
20050089043 Seckin et al. Apr 2005 A1
20050135379 Callaway et al. Jun 2005 A1
20050138517 Monitzer Jun 2005 A1
20050157751 Rabie et al. Jul 2005 A1
20050163047 McGregor et al. Jul 2005 A1
20050169186 Qiu et al. Aug 2005 A1
20050176432 Kamura et al. Aug 2005 A1
20050180338 Pirila et al. Aug 2005 A1
20050181814 Okamoto et al. Aug 2005 A1
20050182847 Jawad Pirzada et al. Aug 2005 A1
20050201414 Awais Sep 2005 A1
20050204036 Farhat et al. Sep 2005 A1
20050204162 Rayes et al. Sep 2005 A1
20050208950 Hasse Sep 2005 A1
20050220035 Ling et al. Oct 2005 A1
20050223097 Ramsayer et al. Oct 2005 A1
20050228885 Winfield et al. Oct 2005 A1
20050235058 Rackus et al. Oct 2005 A1
20050238026 Wu et al. Oct 2005 A1
20050249124 Elie-Dit-Cosaque et al. Nov 2005 A1
20050249206 Wybenga et al. Nov 2005 A1
20050254435 Moakley et al. Nov 2005 A1
20050260993 Lovell Nov 2005 A1
20050262240 Drees et al. Nov 2005 A1
20050289232 Ebert Dec 2005 A1
20060002370 Rabie et al. Jan 2006 A1
20060015773 Singh et al. Jan 2006 A1
20060020700 Qiu et al. Jan 2006 A1
20060023638 Monaco et al. Feb 2006 A1
20060023642 Roskowski et al. Feb 2006 A1
20060072555 St. Hilaire et al. Apr 2006 A1
20060092976 Lakshman et al. May 2006 A1
20060094440 Meier et al. May 2006 A1
20060104264 Cho May 2006 A1
20060106919 Watkinson et al. May 2006 A1
20060109839 Hino et al. May 2006 A1
20060114818 Canali et al. Jun 2006 A1
20060114888 Schuman Jun 2006 A1
20060135118 Claussen et al. Jun 2006 A1
20060143098 Lazaridis Jun 2006 A1
20060159006 Yeon et al. Jul 2006 A1
20060159008 Sridhar et al. Jul 2006 A1
20060164982 Arora et al. Jul 2006 A1
20060171314 Qian et al. Aug 2006 A1
20060205410 Black Sep 2006 A1
20060209685 Rahman et al. Sep 2006 A1
20060218059 Hartley et al. Sep 2006 A1
20060235958 Motoyama Oct 2006 A1
20060239204 Bordonaro et al. Oct 2006 A1
20060239296 Jinzaki et al. Oct 2006 A1
20060242309 Damick et al. Oct 2006 A1
20060244818 Majors et al. Nov 2006 A1
20060245369 Schimmelpfeng et al. Nov 2006 A1
20060251050 Karlsson Nov 2006 A1
20060256721 Yarlagadda et al. Nov 2006 A1
20060256810 Yarlagadda et al. Nov 2006 A1
20060262772 Guichard et al. Nov 2006 A1
20060270385 Morris Nov 2006 A1
20060271677 Mercier Nov 2006 A1
20060285501 Damm Dec 2006 A1
20060286980 Hua Dec 2006 A1
20070014290 Dec et al. Jan 2007 A1
20070025255 Noble Feb 2007 A1
20070025258 Chen Feb 2007 A1
20070036151 Baeder Feb 2007 A1
20070076754 Krishnaswamy Apr 2007 A1
20070083643 Arndt et al. Apr 2007 A1
20070094374 Karia et al. Apr 2007 A1
20070097985 Lee May 2007 A1
20070117538 Weiser et al. May 2007 A1
20070133403 Hepworth et al. Jun 2007 A1
20070133441 Kang et al. Jun 2007 A1
20070140202 Calhoun et al. Jun 2007 A1
20070140301 Kailash et al. Jun 2007 A1
20070147247 Kalonji et al. Jun 2007 A1
20070171937 Boatright et al. Jul 2007 A1
20070180142 Small et al. Aug 2007 A1
20070189247 Wang et al. Aug 2007 A1
20070201485 Rabipour Aug 2007 A1
20070211717 Capps et al. Sep 2007 A1
20070217377 Takeuchi Sep 2007 A1
20070223388 Arad et al. Sep 2007 A1
20070223493 Sridhar et al. Sep 2007 A1
20070237085 Tirumalai et al. Oct 2007 A1
20070255846 Wee et al. Nov 2007 A1
20070263535 Shabtay Nov 2007 A1
20070268817 Smallegange et al. Nov 2007 A1
20070286195 Ilnickl et al. Dec 2007 A1
20070298763 Clayton Dec 2007 A1
20080002669 O'Brien et al. Jan 2008 A1
20080013531 Elliott et al. Jan 2008 A1
20080014908 Vasant Jan 2008 A1
20080016402 Harel et al. Jan 2008 A1
20080031145 Ethier et al. Feb 2008 A1
20080043716 Toombs et al. Feb 2008 A1
20080049625 Edwards et al. Feb 2008 A1
20080049637 Morrill et al. Feb 2008 A1
20080049745 Edwards et al. Feb 2008 A1
20080049775 Morrill et al. Feb 2008 A1
20080062986 Shand et al. Mar 2008 A1
20080101338 Reynolds et al. May 2008 A1
20080101364 Chow et al. May 2008 A1
20080112333 Busch et al. May 2008 A1
20080165687 Wang Jul 2008 A1
20080279183 Wiley et al. Nov 2008 A1
20090059881 Theobold et al. Mar 2009 A1
20090070454 McKinnon et al. Mar 2009 A1
20090086649 Van Der Burg et al. Apr 2009 A1
20090116497 Varma et al. May 2009 A1
20090144581 Jeong et al. Jun 2009 A1
20090177742 Rhoads et al. Jul 2009 A1
20090201828 Samuels et al. Aug 2009 A1
20090252148 Dolganow et al. Oct 2009 A1
20100135186 Choong et al. Jun 2010 A1
20100246393 Chamas et al. Sep 2010 A1
Foreign Referenced Citations (1)
Number Date Country
2401283 Mar 2004 GB
Related Publications (1)
Number Date Country
20080095049 A1 Apr 2008 US