SCHEDULING APPLICAΗON
BACKGROUND OF THE INVENTION
Technical Field of the Invention
The present invention relates generally to software applications for use in computer telephony systems, and more specifically to improved methods and arrangements for defining and graphically depicting scheduled telephony service events associated with a scheduling and controlling process that routes calls.
Description of Related Art
Time management has always been an important factor in business. The increasingly automated information age has further increased the need for time management tools that can be used to schedule when specific tasks, events, programs, services, etc., are to be conducted or otherwise permitted to occur.
Automated scheduling and controlling software/hardware arrangements are often used to accomplish certain tasks during specified periods of time (e.g., date, day, time, etc.). The event that is scheduled and controlled by the software/hardware arrangement can vary greatly depending upon the activity. Thus, for example, in certain scheduling and controlling applications a specific automated task may be conducted, such as, initiating an automated daily backup of data, or otherwise interfacing with one or more other applications and/or devices. In other examples, rather than initiating an action, the scheduling and controlling application is configured to allow controlled activities to proceed. By way of example, in a computer network the scheduling and controlling application can be configured to allow access to various resources during a specified period of time.
In a business environment having shared computing resources, a scheduling and controlling application is typically employed to manage and control access to these resources by setting "business hours" during which access to at least one of the shared resources is allowed. For example, during specified business hours employees
may be allowed to access computer-based telephony services.
With this in mind, FIGURE 1 depicts a graphical display 100 associated with an exemplary scheduling and controlling application, as displayed on a display device 102 within a computer system. In this exemplary embodiment, the scheduling and controlling application includes a graphical user interface (GUI) that allows a user to view and control the setting of the business day 108 through a calender-like table. As shown, within display 100, there are a plurality of rows 104, each of which is associated with a specific day of the week, and a range of hours 106 associated with the 24 hours in each of the days. Within each of the plurality of rows 104, business hours 108 are defined and represented by a contiguous block of hours for each day of the week.
Thus, for example, on Sunday business hours 108a run from 12:00 PM to 5 :00 PM. Similarly, on Monday through Friday, business hours 108b-f, respectively, have been set to run from 9:00 AM to 5:00 PM. On Saturday, business hours 108g are set to run from 10:00 AM to 5 :00 PM
During business hours 108a-g, access to various resources, such as, for example, a telephony system is allowed. Outside of business hours 108a-g access would not be permitted.
One of the shortcomings with such "business hours" scheduling and controlling applications is that the business day has traditionally been considered to correspond, more or less, to the actual business day, and as such, the scheduled business hours are only allowed to be entered in a contiguous block for each day. While this business hours constraint may be acceptable for larger and/or more traditional business environments, for non-traditional businesses or even within home environments, the inflexibility of such scheduling and controlling applications presents undesirable limitations.
Additionally, determining the exact start and/or stop times associated with the business hours 108a-g from the table format on the display device 102 (as in FIGURE 1) can be difficult. Indeed, the user typically needs to open another more specific scheduling window to determine the exact times. For non-traditional, more dynamic scheduling environments, this is an added burden.
Further, such scheduling and controlling applications have traditionally been designed and packaged for use with particular applications and arrangements. Since no generic or otherwise reusable scheduling and controlling tool has been made available that can be incorporated into different products, manufacturers are required to develop software to meet the specific needs of their particular product. The resulting scheduling and controlling applications tend, therefore, to be somewhat inflexible, and often lack graphical user interfaces that can make an application more user-friendly.
Thus, as can be appreciated, there is a need for improved scheduling and controlling applications/tools that are more flexible, and can be configured to support non-traditional and/or non-contiguous business hours and practices. Preferably, the scheduling and controlling applications will be significantly powerful enough, user- friendly and readily configurable for use with a variety of products. There is a particular need for scheduling and controlling applications that can be used to schedule and control telephone operations in a computer telephony system.
SUMMARY OF THE INVENTION
The present invention provides improved scheduling and controlling methods and arrangements that are flexible and configurable. As such, the improved scheduling and controlling methods and arrangements can be used to support non- traditional and/or non-contiguous business hours and practices. Additionally, the scheduling and controlling methods and arrangements are preferably user-friendly and readily configurable for use with a variety of products, including computer telephony systems. Thus, in accordance with certain embodiments of the present invention, an arrangement is provided for use in a telephony system. The arrangement includes a processor, an input device for providing user inputs to the processor, and an output device for displaying data generated by the processor. Computer instructions within the processor provide a scheduler that is configured to receive the user inputs and to generate data relating to non-contiguous business hour events. The non-contiguous business hour events are associated with at least one day of the week. The computer
instructions further provide a graphical user interface (GUI) that is configured to display the data relating to non-contiguous business hour events on the output device. In accordance with still further embodiments of the present invention, the scheduler is also configured to generate data relating to non-contiguous business hour events associated a plurality of days, and the graphical user interface (GUI) is further configured to simultaneously display the data relating to non-contiguous business hour events for at least a portion of the plurality of days on the output device. In other embodiments, the arrangement further includes computer instructions that provide a controller that is configured to generate commands suitable for causing at least one change in a controlled event. For example, the commands can be provided to an application running on the processor or a another device.
The computer instructions, in accordance with certain preferred embodiments are provided as an Active X programmed control, a Java program, or a like portable and/or reusable set of instructions. The above stated needs and others are also met by a method for use in a computer telephony system. The method includes the steps of receiving user inputs, generating data relating to non-contiguous business hour events associated with at least one day of the week in response to the user inputs, and displaying data relating to the non-contiguous business hour events on the output device. The method can also include the step of generating commands suitable for causing at least one change in a controlled event.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the methods and arrangements in accordance with certain embodiments of the present invention may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
FIGURE 1 is a diagram depicting a graphical user interface (GUI) display associated with a conventional scheduling and controlling application; FIGURE 2 is a block diagram depicting an exemplary computer telephony system suitable for running an improved scheduling and controlling application, in
accordance with certain embodiments of the present invention;
FIGURE 3 is a diagram depicting a graphical user interface (GUI) display associated with an improved scheduling and controlling application, in accordance with certain embodiments of the present invention; FIGURE 4 is a flow-chart diagram depicting a process for use in an improved scheduling and controlling application to selectively control scheduled events, in accordance with certain embodiments of the present invention; and
FIGURE 5 is a block diagram depicting an exemplary improved scheduling and controlling application, in accordance with certain embodiments of the present invention.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. FIGURE 2 is a block diagram depicting an exemplary computer system 120, such as, for example, a contemporary personal computer (PC) or like arrangement that is suitable for providing computer telephony services.
Within computer system 120 there is at least one processor 200 that is connected to a primary memory 202 through a first bus 204. Processor 200, for example, can be a microprocessor, such as a Pentium II microprocessor available from
Intel Corporation of Santa Clara, California. Processor 200 is configured to access primary memory 202 through first bus 204. Primary memory 202 includes random access memory (RAM), such as, dynamic random access memory (DRAM), which is configured to store data associated with at least one application 220 that runs on processor 200.
As shown in FIGURE 2, first bus 204 is further interfaced to a second bus 208,
through a bus interface (I/F) 206. By way of example, second bus 208 can be a Universal Serial Bus (USB), a Peripheral Component Interconnect (PCI) bus, an Industry Standard Architecture(ISA)bus, or other similar bus.
A plurality of devices can be connected to second bus 208. For example, as depicted, a secondary memory 210 can be connected to second bus 208 to provide additional data storage. Secondary memory 210 can include, for example, additional RAM, DRAM, static random access memory (SRAM) (e.g., flash memory), a disk or tape drive and associated magnetic or optomagnetic storage medium, an optical storage drive and optical storage medium, or other like storage device and/or other type of computer readable medium.
At least one input device 212 is also connected to second bus 208 and configured to accept inputs from an operator. Input device 212 can include, for example, a keyboard device, a mouse device, a trackball device, a pen device, a pointing device, a touch sensitive input device, a microphone device, or other like input device. The inputs from input device 212 are then provided to processor 200, application 220, or any of the other applicable connected devices in FIGURES 1 and 2.
At least one output device 214 is also connected to second bus 208. Output device 214 is configured to generate an output suitable for use by a user (with or without additional devices) in response to one or more signals from processor 200.
By way of example, output device 214 can include a cathode-ray tube (CRT) generated display, flat panel display, a printer, an audio monitor, or other like devices. In accordance with certain preferred embodiments of the present invention, output device 214 includes a display device such as a CRT or flat panel display. Computer system 120 is also configured to access an external network 216 through a network interface 218. External network 216 can be a public switched telephone network (PSTN), for example, or a local area network (LAN) that provides access to other resources, including an intranet or the Internet. Thus, when, for example, external network 216 is a PSTN, then network interface 218 can include a communications switching device that is part of a telephony system along with computer system 120.
Although second bus 208 is depicted as connecting several different devices to first bus 204 and processor 200, it is to be understood that this is only an exemplary configuration, and that certain additional embodiments in accordance with the present invention use a plurality of buses, direct interfaces, and/or shared interfaces between the various devices. Further, it is to be understood that additional devices can be connected to or otherwise provided in computer system 120.
Application 220, for example, as graphically depicted in the block diagram in FIGURE 2, is (or includes) an incorporated scheduling and controlling application, in accordance with the various embodiments of the present invention. In certain preferred embodiments of the present invention, application 220 is configured to provide computer telephony services.
The following description of the various features and improvements presented by application 220 is intended to teach those skilled in the art how to practice the present invention. As such, various well known programming techniques, procedures, and/or operations are not described in detail so as to avoid unnecessarily complicating the description of the present invention. Furthermore, those skilled in the art will recognize that several different and equivalent software and/or hardware arrangements can benefit by incorporating various features of the present invention. Reference is now made to FIGURE 3, which shows an exemplary display 300. Display 300 is displayed on output device 214 (see FIGURE 2). Display 300 is similar to display
100, except that several key improvements have been made to provide a more detailed and flexible graphical user interface (GUI) within scheduling and controlling application 220. These improvements to the GUI and other provisions within scheduling and controlling application 220 are designed to meet the diverse needs of different environments, such as, those associated with non-traditional businesses, small businesses and homes. Application 220, in certain preferred embodiments is especially useful in meeting the computer telephony needs of such users by allowing control over the routing of calls (outgoing and/or incoming) during various times of the day or night. As demonstrated by display 300, application 220 is configured to allow the user to input and define non-contiguous business hours within a single day 104. For
example, as depicted the business hours 302 for Sunday include business hours 302a that run from 7:45 AM through 11 :45 AM and business hours 302b that from 3 :00 PM through 10:00 PM. On Monday business hours 304a-b also present a non-contiguous block of time, namely, business hours 304a run from 5 :45 AM through 12: 15 PM and business hours 304b run from 1 :00 PM through 11 :00 PM. Similarly, the remaining days of the week 104 (i.e., Tuesday through Saturday) each include non-contiguous business hours. Indeed, Saturday includes business hours 314a, 314b, and 314c.
Thus, in accordance with certain embodiments of the present invention, the defined business hours for any given day can be either contiguous or non-contiguous. This provides flexibility to the user, in that each day can include selectable business hours having multiple start and stop times. As such, a controlled event can be better adapted to meet the specific needs of the user.
In accordance with still further embodiments of the present invention, display 300 also includes a summary display 316, in which more detailed information is displayed for a selected business hours. For example, using a mouse input device 212, a user can select a day or specific business hours by placing a curser over the applicable section of display 300 and then clicking a mouse button. The exact starting and stopping times for the selected business hours or current business hours (e.g., based on the current date/time) are displayed in textual format in summary display 316. Thus, for example, business hours for Thursday would be displayed as a text string that reads "7:45 AM-4:45 PM, 5:30 PM-11 :00PM". Furthermore, other related information can also be displayed in summary display 316, such as, for example, the status of or identifiers for the current date/time, the controlled event/events, effected applications, devices, users, etc. FIGURE 4 depicts a process 400 for controlling a scheduled event, such as, call routing, using computer telephony system 120 and scheduling and controlling application 220. In step 402, an activity or service is requested, for example, by a user, device and/or application. Scheduling and controlling application 220, having been installed and set-up for the appropriate business hours and configured to support the desired actively or service, then determines if the activity or service is allowed in the subsequent steps. Thus, in step 404, scheduling and controlling application 220
determines the date/time, for example, through the operating system (e.g., Windows 95, etc.). In step 406, scheduling and controlling application 220 determines if the business hours are set-up to allow for the requested activity or service. If the request is during business hours then the calling application, device, or the like, is allowed to conduct the activity or access/provide the requested service. If the request is made during non-business hours, then the calling application, device, or the like, is not allowed to conduct the activity or access/provide the requested service.
In accordance with certain preferred embodiments of the present invention, scheduling and controlling application 220 can be an Active X control or Java program (i.e., a reusable component with a published and documented interface) that can be used in container types of applications programmed to house Active X controls, and/or run Java programs, as the case may be. FIGURE 5 is a block diagram depicting an exemplary scheduling and controlling application 220, in accordance with certain embodiments of the present invention. As shown, scheduling and controlling application 220 includes a graphical user interface (GUI) 502 that is configured to receive inputs from a user and/or device and to output information that is displayed on an output device 214. Associated with GUI 502 is a scheduler 504 and a controller 506. Scheduler 504 is configured to store/retrieve data relating to the business hours in/from memory 202, and to determine when an activity can be conducted, for example, as in process 400. Controller 506 is configured to provide an interface with other applications and/or devices, for example, to pass on requests and determinations associated with process 400 embodied within scheduler 504.
As will be recognized by those skilled in the art, the innovative concepts described in the present application can be modified and varied over a wide range of applications. Accordingly, the scope of patented subject matter should notbe limited to any of the specific exemplary teachings discussed.