BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relate to telecommunications systems and, in particular, to an improved teleconferencing system.
2. Description of the Related Art
Modern telecommunications systems allow users to define workgroups, i.e., groups of workers involved in a specific project. Workgroup members often communicate with some or all of each other using voice and/or web conferences.
A workgroup member may be provided with a telecommunication portal that allows the user to join a workgroup and see the status of a voice and/or web conference associated with such a workgroup. However, if the user is not viewing the web portal or using one of the telephony applications he may not be aware of the voice and web conference and may not be aware he is missing an important conference.
SUMMARY OF THE INVENTIONThese and other drawbacks in the prior art are overcome in large part by a system and method according to embodiments of the present invention.
A telecommunications system according to embodiments of the present invention includes a notification set-up unit associated with a user device; and an access control unit configured to receive notification configuration information from said notification set-up unit and provide notification to said user device of a pending conference in accordance with said notification configuration information.
A telecommunications method in accordance with embodiments of the present invention includes providing notification configuration information from a user device to a notification controller, said notification configuration information identifying requirements for a pending conference; and notifying said user device via a messaging application in accordance with said notification configuration information.
BRIEF DESCRIPTION OF THE DRAWINGSThe present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
FIG. 1A is a diagram schematically illustrating a system according to embodiments of the present invention.
FIG. 1B is a block diagram illustrating an exemplary media service or server in accordance with an embodiment of the present invention.
FIG. 2 is a diagram schematically illustrating a system according to embodiments of the present invention.
FIG. 3 is a flowchart illustrating operation of an embodiment of the present invention.
FIG. 4 is a flowchart illustrating operation of an embodiment of the present invention.
FIG. 5 is a diagram illustrating operation of an embodiment of the present invention.
FIG. 6A andFIG. 6B illustrate exemplary operation of embodiments of the present invention.
FIG. 7 is a block diagram of an exemplary user device according to an embodiment of the present invention.
FIG. 8 is a block diagram of a server according to an embodiment of the present invention.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTIONTurning now to the drawings and, with particular attention toFIG. 1, a diagram of atelecommunications system100 according to an embodiment of the present invention is shown. The system includes a media service orserver101 connected to or in communication with amessaging service108. Themessaging service108 may include, for example, e-mail, Short Message Service (SMS), pager, Instant Messaging (IM), Web Portal pop-up, or voice messaging. Themedia service101 may include aworkgroup control unit102, anotification setup unit104, and anaccess control unit106. Themedia service101 may implement or be in communication with one or more devices that implement teleconferencing services, such as those of a multipoint control unit or conferencing bridge.
User devices, such asuser devices110,112,114,116 may be operably coupled to or in communication with themedia service101 and themessaging service108. In some embodiments, a user device may be or include such things as telephones, cellular telephones, PDAs, computers, etc. For example, theuser devices110,112, may be personal computers implementing the Windows XP™ operating system and the Windows Messenger™ instant messenger system. In addition, theuser devices114,116 may include telephony and other multimedia messaging capability using, for example, peripheral cameras, Webcams, microphones and speakers (not shown) or peripheral telephony handsets, such as the Optipoint™ handset available from Siemens Information and Communication Networks.
The user devices may be equipped withserver access portals118a-118d, respectively, for communicating with themedia service101, as will be explained in greater detail below. In accordance with embodiments of the present invention, theserver access portals118a-118dmay be used to set particular notification conditions for accessing teleconferences (i.e., a teleconference “tell me when”). In certain embodiments, the server access portals may be embodied as web browsers. In addition, one or more of the user devices may be equipped withmessaging applications117a-117d.
In certain embodiments, thesystem100 may also include other hardware and/or software components (e.g., gateways, proxy servers, registration server, presence servers, redirect servers, databases, applications, etc.) such as, for example, hardware and software used to support a SIP (Session Initiation Protocol) or other protocol based infrastructure for thesystem100 and allow the registration of SIP devices in thesystem100.
Theworkgroup control unit102 may be used to define workgroups, associating a plurality of the users in one or more workgroups. Theworkgroup control unit102 may provide or include an application interface that allows a user or administrator to define and manage workgroups, i.e., specifying workgroup members and workgroup specific functions. Applications may monitor, access, and/or query theworkgroup control unit102 for workgroup-related information. Theworkgroup control unit102 may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments, theworkgroup control unit102 may be operating on some or all of the same devices as other components in thesystem100.
Thenotification setup unit104 may be or include an application that receives notification setup parameters fromuser devices110,112,114,116. That is, thenotification setup unit104 can receive parameters such as callback, activation, contact medium, and the like. In addition, thenotification setup unit104 can interface to receive the notification parameters through a variety of input systems, such as web browsers, interactive voice response, or voice recognition input systems. Thenotification setup unit104 may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments, thenotification setup unit104 may be operating on some or all of the same devices as other components in thesystem100.
Theaccess control unit106 accesses theworkgroup control unit104 for the appropriate notification information while a conference is ongoing, and causes the appropriate message or notification to be sent to the user. In certain embodiments, theaccess control unit106 causes themessaging unit108 to send an appropriate Tell Me When message. In other embodiments, theaccess control unit106 can automatically attempt a call out to the user at a specified number. Theaccess control unit106 may be implemented in hardware and/or software operating on one or more servers, computer systems, host or mainframe computers, workstations, etc. In some embodiments, theaccess control unit106 may be operating on some or all of the same devices as other components in thesystem100.
An exemplary server environment capable of being adapted for use in a system according to embodiments of the present invention is the OpenScape system, available from Siemens Information and Communication Networks, Inc. Such an environment can be implemented, for example, in conjunction with Windows Server, Microsoft Office Live Communications Server, Microsoft Active Directory, Microsoft Exchange and SQL Server.
A block diagram illustrating several components of a server in accordance with embodiments of the present invention is shown inFIG. 1B. As shown, the server environment can include, be operably coupled to or in communication with, avoice portal120, abrowser portal122, a messaging portal (text, e-mail, instant messaging, SMS, etc.)108, atelephony portal124, conferencing (audio and/or multimedia)126, andworkgroup portal102.
Thevoice portal120 provides user access to groupware features via the telephone. Thevoice portal120 may be implemented, for example, as an interactive voice response (IVR) system capable of receiving voice and/or DTMF inputs. TheWorkgroup Portal102, which may be implemented as a browser interface, allows users to initiate audio or multi-media conferencing sessions and view documents that have been checked in to the Workgroup Repository (not shown). Theconferencing module126 allows the user to set up audio or multimedia conference sessions. Thetelephony module124 allows theserver101 to act as a telephony feature provider/switch. Themessaging portal108 may be implemented as one or more text or multimedia messaging systems, such as e-mail, Instant Messaging, or Short Messaging Service (SMS).
In certain embodiments of the present invention, one or more of the components of thesystem100 may be connected to or in communication with each other via a communication network. For example, turning now toFIG. 2, asystem150 including various components of thesystem100 is illustrated, wherein some or all of the components are in communication via anetwork222. Thenetwork222 may be or include the Internet, World Wide Web, a local area network, or some other public or private computer, cable, telephone, client/server, peer-to-peer, or communication network or intranet. In some embodiments, the communication network can also include other public and/or private wide area networks, local area networks, wireless networks, data communications networks, or connections, intranets, routers, satellite links, microwave links, cellular or telephone networks, radio links, fiber optic transmission lines, ISDN lines, T1 lines, DSL connections, etc. Moreover, as used herein, communications include those enabled by wired or wireless technology. In some embodiments, some or all of thenetwork222 may be implemented using a TCP/IP network and may implement voice or multimedia over IP using, for example, the Session Initiation Protocol (SIP).
Turning now toFIG. 3, aflowchart300 illustrating operation of an embodiment of the present invention is shown. The particular arrangement of elements in theflowchart300 is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.
In particular,flowchart300 illustrates user setting of “tell me when” options via a user portal such as aweb browser portal120 or an interactive voice response unit with DTMF orvoice input capabilities122. In astep302, the user accesses hisportal application118. In astep304, the user can access aworkgroup control102 for the appropriate workgroup. For example, theportal application118 can communicate with themedia service101 to display a dropdown menu allowing selection of the specific workgroup, via theworkgroup control unit102. In astep306, the user can set up the conference “tell me when” parameters via thenotification setup unit104. For example, the user can set whether the “tell me when” is a one time only or permanent or ongoing tell me when. That is, the user can specify whether he is to be sent a “tell me when” whenever a conference is begun for the group and he is not present or only once (e.g., for the next conference, or at a specific time and date). Similarly the user can specify the “busy” telephone number, i.e., the number the user is expected to be at for the conference; if the user does not pick up, then the tell me when will be sent. Finally, in astep308, the user can set up a contact medium ormessaging application117 for receiving the tell me when. For example, if the user is at his desk, he can specify that the tell me when should be received via an Instant Messaging application or via a web browser pop up, e-mail, voice message, or other medium. In addition, in certain embodiments, the user can specify a non-desktop medium, such as SMS, pager, and the like. The information is then saved in the appropriate server or server-connected memory location. In addition, or alternatively, in astep310, the user can set one or more callback parameters. For example, could identify a telephony application associated with his computer, or a telephone number of a desktop or cellular telephone on which to receive one or more callbacks after a predetermined period has elapsed.
Turning now toFIG. 4, aflowchart400 illustrating operation of an embodiment of the present invention is shown. The particular arrangement of elements in theflowchart400 is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable.
In particular,flowchart400 illustrates using the conference “tell me when” to join a conference. In astep402, a workgroup member (or other person) can initiate a teleconference via theworkgroup control102 andconference unit126. For example, a conference host can cause theserver101 to call out to all members of the workgroup (e.g., using the telephony control unit124) and perform any necessary mixing, etc., for conduct of the conference. In astep404, the user will be called. In astep406, the user can be detected as not being present. For example, the telephone line at which the user is called can be detected as being busy or not active by theaccess control unit106, in communication with thetelephony unit124. In astep408, theserver101'saccess control unit106 can then access the user's “tell me when” settings. In astep410, the user can be sent an alert message in accordance with the setting. For example, in certain embodiments, theserver101 will access and read the “tell me when” setting and identify the alert medium, i.e., themessaging application108. Theserver101 can then activate or communicate with the appropriate alerting medium ormessaging application108, and send a message to the user. Alternatively, in astep412, one or more attempts to call back the user may be made using the stored number and thetelephony service124.
Turning now toFIG. 5, a diagram schematically illustrating operation of an embodiment of the present invention is shown. The particular arrangement of elements in the diagram is not meant to imply a fixed order to the elements; embodiments can be practiced in any order that is practicable. In particular, the diagram ofFIG. 5, illustrates interaction of the various components of the system.
Shown is auser device110, which may be embodied as a personal computer and may include aportal application118 and amessaging application117. Theportal application118 may be or include a telephony application. Alternatively, a separate telephony application (not shown), such as a telephone, may be provided. Alternatively, the user device may be implemented, e.g., as a cellular telephone with SMS capabilities. Also shown ismedia server101, which may implement a teleconferencing bridge, and which may include aworkgroup control unit102,notification setup unit104, andaccess control unit106. Amessaging service108 may also be provided. Finally, one or more other users, such as aworkgroup member112, may be provided.
At502, theuser110 andother users112 can configure or define membership in a workgroup, in conjunction with theworkgroup control unit102. At504, theuser110 can communicate with thenotification setup unit104 to set up “tell me when” parameters and providing workgroup identification. As noted above, in some embodiments, the communication can be via a web browser122 (FIG. 1B) or via anInteractive Voice Response120 telephony type connection. At506, in response to user input, thenotification setup unit104 will set the “call me back” parameters. As discussed above, these can include contact medium and place, as well as call back times, numbers, etc.
At508, aworkgroup member112 can initiate a teleconference with the workgroup, via theserver101. At510, theuser110 fails to be contacted. At512, theaccess control unit106 determines, or receives notice, that theuser110 is not present. Accordingly, theaccess control unit106 communicates with thenotification setup unit104, at514, to receive the user's “tell me when” settings. At516, theaccess control unit106 communicates with themessaging service108 to generate and address the appropriate “tell me when” message. As discussed above, the “tell me when” medium could include Instant Messaging, Short Message Service, browser pop-up, e-mail, and the like.
At518, themessaging service108 sends the message to the user, such as to the user'smessaging application117 or browser. At520, the user can return and check the message. Then, at522, the user can either call in to join the conference (e.g., using a telephone or telephony application), or at524, can simply wait and let the server call him back.
Operation of embodiments of the present invention is shown inFIG. 6A andFIG. 6B by way of example. In particular,FIG. 6A illustrates an exemplary user case with a web portal;FIG. 6B illustrates an exemplary user case employing a telephony or IVR portal.
Shown inFIG. 6A isserver101, and a user “John” with apersonal computer110. Thepersonal computer110 includes amessaging application117 and abrowser118. Also shown is a user “Beth” anduser device112, andworkgroup members186. John and Beth may be members of the same workgroup. Using the portal118, John can set a “permanent tell me when,” as shown at180, to ensure that he is always involved in team discussions. He can thus set up the “tell me when” to notify him via, for example, an IM whenever a voice conference begins for his workgroup.
When Beth starts a teleconference at182, John misses the phone call because he is away from his desk. However, the server101 (or the messaging system) sends the prescribed message, in this case, anIM184. When John returns to hisdevice110, he sees the message and can call in to the conference.
FIG. 6B illustratesserver101, user Ed atdevice114 with a portal118 andmessaging117, user Lisa atdevice116, andother workgroup members189. For example, Ed may be a sales team workgroup member and be on the road a significant amount of time. He may know that the team is going to be having a conference on a particular date, but with the time not yet set. Accordingly, at190, he may set a one time “tell me when” to send him an SMS message when the conference starts.
At192, Lisa starts the conference. Ed may miss the start because he is talking on the phone with a third party, at191. However, at194, he receives the SMS indicating that the conference has begun. When he finishes his phone call, he can call in to the conference. Alternatively, in addition to or instead of the “tell me when” message, Ed can have set the “tell me when” to automatically call him back periodically, e.g., every three minutes. Then, when Ed sees the SMS message, or when he is finished with his call, he can simply wait for his phone to ring at196, joining him to the conference.
Now referring toFIG. 7, a representative block diagram of a computer orprocessing device700 suitable for use as a user device according to embodiments of the present invention is shown. In particular, thecomputer700 may be a device suitable for setting one or more notification rules of the user and may implement thepersonal computer110. In some embodiments, thecomputer700 may include or operate a messaging client and a web browser orserver access portal118. Thecomputer700 may also include or interface to a telephony client. Thecomputer700 may be embodied as a single device or computer, a networked set or group of devices or computers, a workstation, mainframe or host computer, etc. In some embodiments, thecomputer700 may implement one or more elements of the methods disclosed herein.
Thecomputer700 may include a processor, microchip, central processing unit, orcomputer702 that is in communication with or otherwise uses or includes one or more communication ports ornetwork interfaces704 for communicating with user devices and/or other devices. Thecommunication ports704 may include such things as telephone adapters, local area network adapters, wireless communication devices, Bluetooth technology, etc. Thecomputer700 also may include aninternal clock element706 to maintain an accurate time and date for thecomputer700, create time stamps for communications received or sent by thecomputer700, etc.
If desired, thecomputer700 may include one ormore output devices708 such as a printer, infrared or other transmitter, antenna, audio speaker, display screen or monitor, text to speech converter, etc., as well as one ormore input devices710 such as a bar code reader or other optical scanner, infrared or other receiver, antenna, magnetic stripe reader, image scanner, roller ball, touch pad, joystick, touch screen, microphone, computer keyboard, computer mouse, etc.
In addition to the above, thecomputer700 may include a memory ordata storage device712 to store information, software, databases, documents, communications, device drivers, etc. The memory ordata storage device712 may be implemented as an appropriate combination of magnetic, optical and/or semiconductor memory, and may include, for example, Read-Only Memory (ROM), Random Access Memory (RAM), a tape drive, flash memory, a floppy disk drive, a Zip™ disk drive, a compact disc and/or a hard disk. Thus, thestorage device712 may include various combinations of moveable and fixed storage. Thecomputer700 also may includememory714, such asROM716 andRAM718.
Theprocessor702 and thedata storage device712 in thecomputer700 each may be, for example: (i) located entirely within a single computer or other computing device; or (ii) connected to each other by a remote communication medium, such as a serial port cable, telephone line or radio frequency transceiver. In one embodiment, thecomputer700 may be implemented as one or more computers that are connected to a remote server computer, as will be explained in greater detail below.
A conventional personal computer or workstation with sufficient memory and processing capability may be used as thecomputer700. Thecomputer700 may be capable of high volume transaction processing, performing a significant number of mathematical calculations in processing communications and database searches. A Pentium™ microprocessor such as the Pentium III™ or IV™ microprocessor, manufactured by Intel Corporation may be used for theprocessor702. Other suitable processors may be available from Motorola, Inc., AMD, or Sun Microsystems, Inc. Theprocessor702 also may be embodied as one or more microprocessors, computers, computer systems, etc.
Software may be resident and operating or operational on thecomputer700. The software may be stored on thedata storage device712 and may include aclient control program722, a server access client, such as abrowser118, amessaging client117, and a telephony client orinterface726.
The messaging client724 may implement, for example, text or multi-media messaging, such as e-mail, or an Instant Messaging program, such as AOL Instant Messenger or Microsoft Instant Messaging. Theserver access portal118 may implement a World Wide Web or Internet browser, such as Microsoft Explorer, Netscape Navigator, or Mozilla Firefox. Thetelephony client726 may implement a telephony application or may interface to a separate telephone.
Theclient control program722,server access portal118, messaging client724, andtelephony client726 may control theprocessor702. Theprocessor702 may perform instructions of the control programs and clients, and thereby operate in accordance with the methods described in detail herein. The control programs and clients may be stored in a compressed, uncompiled and/or encrypted format. The control programs and clients furthermore include program elements that may be necessary, such as an operating system, a database management system and device drivers for allowing theprocessor702 to interface with peripheral devices, databases, etc. Appropriate program elements are known to those skilled in the art, and need not be described in detail herein.
According to some embodiments, the instructions of the control program and clients may be read into a main memory from another computer-readable medium, such as from theROM716 to theRAM718. Execution of sequences of the instructions in the control program causes theprocessor702 to perform the process elements described herein. In alternative embodiments, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of some or all of the methods described herein. Thus, embodiments are not limited to any specific combination of hardware and software.
Theprocessor702,communication ports704,clock706,output device708,input device710,data storage device712,ROM716 andRAM718 may communicate or be connected directly or indirectly in a variety of ways. For example, theprocessor702,communication ports704,clock706,output device708,input device710,data storage device712,ROM716 andRAM718 may be connected via abus734.
While specific implementations and hardware/software configurations for thecomputer700 have been illustrated, it should be noted that other implementations and hardware configurations are possible and that no specific implementation or hardware/software configuration is needed. Thus, not all of the components illustrated inFIG. 7 may be needed for thecomputer800 implementing the methods disclosed herein.
FIG. 8 is a diagram illustrating aserver800 according to embodiments of the present invention. Theserver800 may be representative, for example, of the server ofFIG. 1B. In some embodiments, theserver800 may include or operate aworkgroup control unit102, anotification setup unit104, anaccess control unit106, and one ormore messaging services108. Theserver800 may be embodied as a single device or computer, a networked set or group of devices or computers, a workstation, mainframe or host computer, etc. In some embodiments, theserver800 may implement one more elements of the methods disclosed herein.
Theserver800 may include a processor, microchip, central processing unit, orcomputer802 that is in communication with or otherwise uses or includes one ormore communication ports804 for communicating with user devices and/or other devices. Thecommunication ports804 may include such things as local area network adapters, wireless communication devices, telephone network adapters, Bluetooth technology, etc. Theserver800 also may include aninternal clock element808 to maintain an accurate time and date for theserver800, create time stamps for communications received or sent by theserver800, etc.
If desired, theserver800 may include one ormore output devices808 such as a printer, infrared or other transmitter, antenna, audio speaker, display screen or monitor, text to speech converter, etc., as well as one ormore input devices810 such as a bar code reader or other optical scanner, infrared or other receiver, antenna, magnetic stripe reader, image scanner, roller ball, touch pad, joystick, touch screen, microphone, computer keyboard, computer mouse, etc.
In addition to the above, theserver800 may include a memory ordata storage device820 to store information, software, databases, documents, communications, device drivers, etc. The memory ordata storage device820 may be implemented as an appropriate combination of magnetic, optical and/or semiconductor memory, and may include, for example, Read-Only Memory (ROM), Random Access Memory (RAM), a tape drive, flash memory, a floppy disk drive, a Zip™ disk drive, a compact disc and/or a hard disk. Theserver800 also may includememory814, such asROM818 andRAM818.
Theprocessor802 and thedata storage device820 in theserver800 each may be, for example: (i) located entirely within a single computer or other computing device; or (ii) connected to each other by a remote communication medium, such as a serial port cable, telephone line or radio frequency transceiver. In one embodiment, theserver800 may be implemented as one or more computers that are connected to a remote server computer for maintaining databases.
A conventional personal computer or workstation with sufficient memory and processing capability may be used as theserver800. Theserver800 may be capable of high volume transaction processing, performing a significant number of mathematical calculations in processing communications and database searches. A Pentium™ microprocessor such as the Pentium III™ or IV™ microprocessor, manufactured by Intel Corporation may be used for theprocessor802. Other suitable processors may be available from Motorola, Inc., AMD, or Sun Microsystems, Inc. Theprocessor802 also may be embodied as one or more microprocessors, computers, computer systems, etc.
Software may be resident and operating or operational on theserver800. The software may be stored on thedata storage device820 and may include acontrol program822 for operating the server, databases, etc. Thecontrol program822 may include or interface to theworkgroup control unit102, anotification setup unit104, anaccess control unit108, and one ormore messaging services108, as well as other modules ofFIG. 1B (not shown).
The control program and control units may control theprocessor802. Theprocessor802 may perform instructions of the control programs, and thereby operate in accordance with the methods described in detail herein. The control program and control units may be stored in a compressed, uncompiled and/or encrypted format. The control program and control units furthermore includes program elements that may be necessary, such as an operating system, a database management system and device drivers for allowing theprocessor802 to interface with peripheral devices, databases, etc. Appropriate program elements are known to those skilled in the art, and need not be described in detail herein.
Theserver800 also may include or store information regarding identities, user devices, communications, outgoing notification messages, etc., in database(s)824. Information regarding other application program data may be stored in application database (not shown). In some embodiments, some or all of one or more of the databases may be stored or mirrored remotely from theserver800.
According to some embodiments, the instructions of the control program may be read into a main memory from another computer-readable medium, such as from theROM818 to theRAM818. Execution of sequences of the instructions in the control program causes theprocessor802 to perform the process elements described herein. In alternative embodiments, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of some or all of the methods described herein. Thus, embodiments are not limited to any specific combination of hardware and software.
Theprocessor802,communication ports804,clock808,output device808,input device810, data storage device812,ROM818, andRAM818 may communicate or be connected directly or indirectly in a variety of ways. For example, theprocessor802,communication ports802,clock808,output device808,input device810, data storage device812,ROM818, andRAM818 may be connected via abus834.
While specific implementations and hardware/software configurations for theserver800 have been illustrated, it should be noted that other implementations and hardware configurations are possible and that no specific implementation or hardware/software configuration is needed. Thus, not all of the components illustrated inFIG. 8 may be needed for theserver800 implementing the methods disclosed herein.
The methods described herein may be embodied as a computer program developed using an object oriented language that allows the modeling of complex systems with modular objects to create abstractions that are representative of real world, physical objects and their interrelationships. However, it would be understood by one of ordinary skill in the art that the invention as described herein could be implemented in many different ways using a wide range of programming techniques as well as general-purpose hardware systems or dedicated controllers. In addition, in some embodiments, many, if not all, of the elements for the methods described above are optional or can be combined or performed in one or more alternative orders or sequences and the claims should not be construed as being limited to any particular order or sequence, unless specifically indicated.
Each of the methods described above can be performed on a single computer, computer system, microprocessor, etc. In addition, in some embodiments, two or more of the elements in each of the methods described above could be performed on two or more different computers, computer systems, microprocessors, etc., some or all of which may be locally or remotely configured. The methods can be implemented in any sort or implementation of computer software, program, sets of instructions, programming means, code, ASIC, or specially designed chips, logic gates, or other hardware structured to directly effect or implement such software, programs, sets of instructions, programming means or code. The computer software, program, sets of instructions or code can be storable, writeable, or savable on any computer usable or readable media or other program storage device or media such as a floppy or other magnetic or optical disk, magnetic or optical tape, CD-ROM, DVD, punch cards, paper tape, hard disk drive, Zip™ disk, flash or optical memory card, microprocessor, solid state memory device, RAM, EPROM, or ROM.
The foregoing description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The drawings and description were chosen in order to explain the principles of the invention and its practical application. The drawings are not necessarily to scale and illustrate the device in schematic block format. It is intended that the scope of the invention be defined by the claims appended hereto, and their equivalents