The present invention relates to the field of communications. More particularly, the invention relates to a method and apparatus for modifying the operation of a system, particularly a telecommunication system, by providing the user with a multi-mode external programming interface for controlling predetermined functions in the system.
Many organizations, offices and small businesses use PBXs to manage incoming outgoing and internal telephone calls. The operation of modern PBXs is controlled by dedicated software, which is run by a microcomputer, embedded into the PBX control circuitry. Such software comprises many parameters, which are usually stored in the database of the PBX. Since each organization has a specific set of requirements associated with its phone-call management system, PBX manufactures define many parameters programmable to an external user. A typical PBX comprises an interface consisting of one or more data ports, through which the PBX can exchange data with an external data source (such as a workstation). The data source manipulates these parameters by using a limited access to the database, and varies some of the operational parameters of the PBX. Some examples of parameters include the words shown on the display of a specific telephone connected to the PBX that is equipped with display capabilities, or the meaning of one or more programmable keys on any specific phone.
A Typical PBX programming interface is a common serial port, such as an RS-232 port, which communicates with an external terminal and allows the programming of each parameter by using the known American Standard Code Information Interchange (ASCII) programming mode. In a typical ASCII programming mode, the external terminal operates in full duplex mode, in which each character is transmitted to the system, and echoed back. Only the echoed character is displayed on the screen. Each parameter is programmed using the PBX systems unique programming codes. The data rate of characters being transmitted in the ASCII manual-programming mode, is determined by the typing rate of the programmer and therefore, is relatively slow. The microcomputer is thus designed to poll the RS-232 port at regular intervals (typically once every 0.1 seconds) in order to check for and handle a sent ASCII character.
However, this programming mode is cumbersome, since it requires manual programming of each and every parameter using a text based dialog system, with unique codes for each PBX.
Call handling tools in PBXs have been developed for controlling incoming and outgoing calls. The Windows based Telephony Application Program Interface (TAPI), jointly developed by Intel Corporation and Microsoft Corporation, is a standard program interface that enables a user to handle phone calls by clicking icons on his workstation display. The PBX manufacturer provides a specific driver, which can be loaded into the user""s workstation and communicates directly with the PBX""s hardware. Another tool, which is not limited to Windows environment, is Telephony Server Application Program Interface (TSAPI), jointly developed by Novell and ATandT. TSAPI is a standard program interface that enables a user to create Computer Telephony Integration (CTI) applications, such as providing a link between computer and telephony systems to get on-screen information for use by the caller. However, these interfaces, are mainly directed to call handling, and are not designed to handle administrative tasks, such as programming specific keys on a user""s telephone, or placing a new user""s name on the display of his display telephone. UNIMAX Systems (Minneapolis, Minn., USA) offers to develop a Graphical User Interface (GUI) based programming interface to handle the administrative tasks of a PBX. However, this system requires a specially designed interface for each PBX with a layout fixed by its original designer, and therefore lacks flexibility. Moreover, because of the need to support ASCII manual programming, the operating rate of this programming interface is limited to the manual typing rate
U.S. Pat. No. 4,620,294 discloses a dual speed modem for receiving and transmitting data over a telephone line. The modem comprises a processor for storing digital data samples of an analog signal which is connected to circuitry for converting digital data to an analog signal for transmission over the telephone line, and for converting analog signals, received from the telephone line, to digital data. A selection circuitry is incorporated with the processor for selecting a desired data rate, according to the data rate of an originate modem. Relatively higher bit rate is desired whenever differential Phase-Shift Keying (PSK) is employed, and relatively lower bit rate is desired whenever Frequency-Shift Keying (FSK) is employed. However, this modem incorporates a relatively expensive circuitry for continuously detecting and analyzing the actual data rate, and for adjusting its data processing rate to the received data rate. In addition, the mode of operation is set by the microprocessor, and is not responsive to the actual data received.
All the methods described above have not yet provided satisfactory solutions to the problem of providing a PBX user with a GUI based interface that can function at higher speeds than traditional ASCII based codes, while maintaining support for legacy programming systems.
It is an object of the present invention to provide a method and apparatus for controlling predetermined functions of a PBX, which support both the legacy ASCII communication method, and higher speed binary methods.
It is another object of the present invention to provide a method and apparatus for controlling predetermined functions of a PBX, which support both manual text based programming and GUI based programming.
Other objects and advantages of the invention will become apparent as the description proceeds.
For purposes of clarity and as an aid in the understanding of the invention, the following terms and abbreviations are defined below:
Protocolxe2x80x94a special set of rules for data communication between endpoints of a system;
Transmission Control Protocol (TCP)xe2x80x94a protocol which tracks individual units of data (data xe2x80x9cpacketsxe2x80x9d) and reassembles them to form a whole message;
Internet Protocol (IP)xe2x80x94a protocol used to send data packets from one computer to another over the Internet;
Interruptxe2x80x94a signal from a device or from a program which control a system, that causes a main program that operates the system to stop and continue to run the current program, or to run another program;
Application Programming Interface (API)xe2x80x94interface which specifies software-defined entry points that is used by application programmers to access the functionality of an operating system;
Universal Asynchronous Receiver/Transmitter (UARTxe2x80x94an electronic integrated circuit that transmits and receives data through the serial port of a system, by converting bytes into serial bits for transmission, and vice-versa;
Flagxe2x80x94a predefined bit pattern used in a transmitted protocol to define an event.
Hereinafter, the term xe2x80x9ccomputing platformxe2x80x9d refers to a particular computer hardware system or to a particular software operating system. Examples of such hardware systems include those with any type of suitable data processor, such as a computer. Hereinafter, the term xe2x80x9ccomputerxe2x80x9d includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows(trademark), OS/2(trademark) or Linux; Macintosh(trademark) computers; computers having JAVA(trademark)-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems(trademark) and Silicon Graphics(trademark), and other computers having some version of the UNIX operating system such as AIX(trademark) or SOLARIS(trademark) of Sun Microsystems(trademark); a PalmPilot(trademark), a PilotPC(trademark), or any other handheld device; or any other known and available operating system. Hereinafter, the term xe2x80x9cWindows(trademark)xe2x80x9d includes but is not limited to Windows95(trademark), Windows 3.x(trademark) in which xe2x80x9cxxe2x80x9d is an integer such as xe2x80x9c1xe2x80x9d, Windows NT(trademark), Windows98(trademark), Windows CE(trademark) and any upgraded versions of these operating systems by Microsoft Inc. (Seattle, Wash., USA).
For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computing platform according to which the software application is executed. Examples of suitable programming languages include, but are not limited to, C, C++ and Java. Furthermore, the functions of the present invention, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a data processor, such that the present invention could be implemented as software, firmware or hardware.
The present invention relates to a method for providing data communication through a port of a system, such as a telecommunication system, where the port has at least two operating modes, each of which corresponding to a different data rate. The port may be a serial or a parallel port. Communication with the system is provided by operating the port in one of the operating modes. Whenever a predetermined mode switching code is received through the port, the port is switched to another operating mode and communication with the system is continued in the other operating mode. Preferably, data communication through the port is controlled by a data transceiver, capable of operating in any mode. One of the modes may be a predetermined default mode.
Preferably, the operation of the system is controlled by modifying programmable parameters in the system via the data communication port. The programmable parameters are stored in an accessible database, linked to the system, such as an Open DataBase (ODB). One or more operating modes support ASCII text data rates, suitable for manual user programming and other modes support data rates being compatible with a TCP/IP protocol.
The present invention is also directed to a system, such as a telecommunication system, having data communication capability in a plurality of operating modes, each of which corresponding to a different data rate. The system comprises a port which is capable of communicating in each of the at least two operating modes, and circuitry for controlling the data communication through the port. The operation of the circuitry is switchable from any operating mode to another operating mode, according to a corresponding predetermined code received via the port. Preferably, the system further comprises a software operated computing device, linked to the serial port by a communication channel, for operating the serial port, circuitry for storing data received via the serial port and circuitry for setting the control circuitry to normally operate in a default mode, and for switching the control circuitry from any mode to another mode.