Telephone recording and storing arbitrary keystrokes sequence with replay with a single stoke

A telephone is described that allows any arbitrary combination of key strokes, including numerical keys, extension keys, as well as function keys such as TRANSFER, CONFERENCE, etc., to be programmed such that the entire sequence of key strokes can be recalled with the touch of a single button. The phone can be programmed directly by operation of the telephone user interface on the phone (i.e., the keys, phone display, and speaker prompting the user) and a program button dedicated to the feature of programming a separate programmable button to map to the specified key sequence. The feature can be implemented in advanced telephones capable of voice over Internet Protocol networks, and supporting the Session Initiation Protocol. In these more advanced phones, the programming can be done by a system administrator or by the user of the phone via a computer with internet access.

BACKGROUND OF THE INVENTION

A. Field of the Invention

This invention relates to the field of telephones and more particularly to a programmable phone has a means for performing complex operations with the phone with a single key press.

B. Description of Related Art

Telephones used in businesses today may have one or more programmable buttons that provide features such as a speed dial for frequently called phone numbers. Examples of such phones are the 3Com NBX 3102 telephone from 3Com Corporation, the assignee of the present invention. Such phones now are beginning to support Voice over Internet Protocol networks (VoIP) technology and other advanced services and features. The 3Com NBX 3102 is one such phone. Other examples of business phones in the state of the art are the Avaya 4600 Series IP Telephones and the Cisco Systems IP Phones having model numbers 7940, 7960 and the 7970G.

Despite the advances in the telephony art and in particular in business telephones, complex operations using the telephone still require the user to provide multiple key press operations in order for the operations to execute. For example, consider a phone that functions as a switchboard that is answered by a receptionist. To transfer the call to party A, he or she may have to press the TRANSFER key and then the extension key for the person to whom the call should be transferred. As another example, a user may want to establish a conference call with a particular party, and to establish the conference call they may have to press the CONFERENCE key, dial the extension, and press CONFERENCE again. In these circumstances, the phones still require the use to press a function key (CONFERENCE, TRANSFER, VOICE MAIL TRANSFER, etc.), in addition to an extension button or, worse yet, one or more digits.

User interface devices for telephones and related equipment are described in Voois, U.S. Pat. No. 6,215,515; Chavez, Jr., U.S. Pat. No. 6,125,285; and Grant et al., U.S. Pat. No. 6,618,039. The art has lacked a telephone that provides universal programming capability together with one-touch replay of any arbitrary combination of function, extension, digit or other key strokes. This invention meets that need.

SUMMARY OF THE INVENTION

This invention provides a more versatile approach to programming a telephone that allows any arbitrary combination of button strokes (including numerical buttons, extension buttons, as well as function buttons) to be programmed such that the entire sequence of button strokes can be recalled with the touch of a single button (the “mapped” button herein). The phone can be programmed directly by the telephone user interface (TUI) on the phone, i.e., the keys, phone display, speaker, and a program button dedicated to the feature of programming other program buttons to map to any specified key sequence.

An example of the implementation of this invention would be a telephone used by a receptionist, and programming one of the programmable buttons to store the complex button stroke sequence of TRANSFER,102, and TRANSFER (a total of 5 strokes, including two function button strokes and 3 digit button strokes). Any time the receptionist receives a call that is supposed to be transferred to extension102, they simply press the one button that is mapped to transferring calls to extension102. Thus, only one press of a button is required in stead of 5.

The invention can be implemented in simple telephone devices that have a programmable button. Preferably a plurality of buttons are provided (e.g., 4 or 8 or more programmable buttons), and the user is provided with the option to program one or more than one of the buttons to simulate complex key stroke patterns, perhaps leaving the rest of the buttons for more traditional uses of programmable buttons such as speed dial numbers. The phone will include a users guide that explains to the user how to program the button stroke sequence. The phone will also typically have a guide or template next to the button that explains the operation that has been programmed for that button.

The invention can also be implemented in more complex and sophisticated telephones, such as for example the ones listed above or later generations of such phones, including phones that use VoIP technology and the Session Initiation Protocol (SIP) to initiate, conduct and terminate communication sessions. In these circumstances, the execution of the complex operation associated with the key strokes may involve equipment or entities that are located remotely from the telephone, such as a SIP proxy server serving a plurality of SIP phones for a particular telephone system (e.g., an enterprise phone system) and a back end server storing programmed button strokes. In this example, the phone can send the captured key sequence for the programmed button to a SIP proxy server, which forwards the key sequence to a back-end server maintaining a database of user profiles (including programmed button functions and other user information, e.g., IP address, user identification, extension number, etc.) for all the phones in the system. This information could be sent from the phone to the SIP proxy server in a SIP REGISTER message or other message at the time the phone is programmed. The button stroke sequence is forwarded to the back-end server for storage in a database.

Preferably the phone and the database are also synced with the SIP REGISTER messages on a pre-configured interval (e.g., every hour or every day) and at boot time, e.g., when the phone is booted up from cold or from a suspend mode.

In an embodiment where the phone is network accessible (e.g., has a SIP address or IP address), the system administrator could program the button remotely. The user preferably can also program the phone either directly via the TUI on the phone, or remotely via any computing device supporting Internet access. In one possible embodiment, an Internet provisioning interface is integrated with the back-end server so that users can remotely program their telephones e.g., from home using their home computer.

These and other details on the invention will be described in further detail in the following description and with reference to the appended drawings.

Referring now toFIG. 1, a typical business telephone10is shown with one or more programmable mapped buttons12that can be programmed in accordance with the features of the present invention. The telephone10includes a telephone user interface including a screen display14, handset16and a speaker18. The telephone user interface further includes a program button20, digit buttons22, and one or more function buttons24associated with telephone functions, including a speaker phone button26, redial button28, conference button30, transfer button32and a hold button34. The phone also includes extension buttons36for other extensions in the office or organization where the phone10is installed. The telephone is constructed and arranged with suitable processing hardware and software wherein the program button20permits a user to program a programmable mapped button12to invoke an arbitrary sequence of button strokes selected by the user. More than one mapped button12can be provided, such as four or eight or more. The arbitrary sequence of button strokes will typically include at least one function button24and at least one digit button22or extension button36.

For example, the user may program the mapped button12A such that it maps to the sequence TRANSFER (button32) and EXTENSION 1 (button36A). After programming the mapped button12A in this fashion, the sequence of button strokes TRANSFER and EXTENSION 1 is invoked by pressing the mapped button12. As another example, the user could program the mapped button12A to the sequence CONFERENCE (button30), 1 425 304 9771, CONFERENCE, to initiate a conference call with a party at telephone number 1 425 304 9771.

The phone includes a cover40that snaps over the function buttons24with legends to indicate the function of each button. Also, cover or template is placed in the region42that allows the user to indicate the sequence of actions associated with the programmable mapped buttons12.

FIG. 2shows an embodiment in which the telephone10comprises an attendant phone system for use by a telephone attendant. The phone10is attached to an attendant console50which includes a plurality of extension buttons. The right hand column of buttons52could be used as programmable mapped buttons to map the sequence TRANSFER and Extension 1, TRANSFER and Extension 2, etc., so that the attendant can effectuate transfers to the most frequently dialed parties with a touch of a single button.

In a preferred embodiment, the telephone10supports SIP protocol and voice over Internet Protocol telephony. An example of an environment in which such phones could be used is shown diagrammatically inFIG. 3. An enterprise, such as a small or mid-size business, or a branch office of a larger enterprise, is shown by the dashed line60. The enterprise60has a local area packet switched network61to which are connected telephones10A and10B and an attendant console10C. In this scenario, the phones10A,10B, and attendant phone10C contain programmable mapped buttons and a program button enabling any arbitrary sequence of button strokes to be mapped to a single mapped button.

The phones10A,10B and10C initiate and receive telephone calls over the network61using SIP signaling techniques, including SIP REGISTER messages. SIP messages are sent from the phones10to a SIP proxy server64in accordance with the teachings of the SIP protocol. In one possible embodiment, when the user programs their phone10in accordance with the teachings of this invention, the phone10sends information as the programmed sequence of button strokes and the mapped key associated with the programmed sequence via a SIP REGISTER message to the SIP proxy server. The SIP proxy server64forwards the SIP REGISTER message to a back-end server68. The back-end server68maintains a user profile database for the users of the telephone system and stores the new programmed sequence and the mapped key in the database memory.

The back-end server68and SIP proxy server64are shown as separate devices inFIG. 3but this is not necessary. In particular, the SIP proxy server could be integrated with the back-end server. When a user of the phone10A wishes to initiate a communication with another SIP enabled device, the SIP message exchange occurs via the SIP proxy server64, back-end server68and over an Internet Protocol network70to the SIP-enabled phone that is the intended recipient. This recipient could be a computer74with a telephone application, another business phone72supporting SIP protocol and voice over Internet Telephony, or the call could be routed through a cellular telephone network76and cellular infrastructure to a SIP-enabled wireless telephone76. The details on the exchange of SIP messages to support voice over Internet Telephony and SIP are known in the art. Reference is made to the following background references, the content of which is incorporated by reference herein: Request for Comments (RFC) 2543—Session Initiation Protocol, M. Handley et al., March 1999; Enterprising with SIP, A Technology Overview, White Paper, Avaya Inc. February 2004; See also the following patents showing the state of the art: Orton et al., U.S. Pat. No. 6,678,735; Gibson et al., U.S. Pat. No. 6,680,943; Xu et al., U.S. Pat. No. 6,738,390; McConnell, U.S. Pat. No. 6,741,695 and Jiang et al., U.S. Pat. No. 6,741,853 (see also col. 14 lines 4 et seq. describing a data entry service using shortcut keys which are interpreted by “wireless portal middleware”).

As shown inFIG. 4, the back-end server68is shown in block-diagram form. The SIP proxy server64is combined with a call processor server82as described below. The back-end server in the illustrated embodiment comprises a collection of several servers, including an authentication and authorization server80, a web server84providing internet access for terminals on the enterprise network and supporting web provisioning of programming functions as described herein; a database86for storing user profiles for the telephone users at the enterprise, a directory server88providing directory services for the enterprise, and a billing support server90that supports billing and accounting functions for the enterprise phone system. Back-end servers for enterprise SIP/VoIP telephone systems are known in the art and commercially available, see e.g., the VCX5.0 telephone system from 3Com Corporation.

In the embodiment ofFIG. 4, the call processor server82(call controller) runs in the same chassis as the SIP proxy server64. It is also possible to have the call processor server running in the back end server68for relatively low capacity environments. In other embodiments, particular high capacity applications such as headquarters and large branch offices, the call processor server82may be implemented in a separate chassis or device82and integrated with SIP proxy server functions as shown inFIG. 4. The call processor82typically communicates with the back end server via proprietary messaging formats that are unique to the vendor or the equipment, but use of standardized messaging formats is possible.

Referring toFIGS. 1 and 4, the phone10exchanges messages via the SIP proxy server and/or the call processor82. The call processor82exchanges messages with the authorization server80. The user can program the mapped buttons12remotely through the web provision feature in the web server84using a standard web browser such as Internet Explorer and any computing device with internet access. The changes to the user profile including newly programmed mapped buttons are stored in the database86. Alternatively, the user can program the mapped button using the telephone user interface, in which case the information as to the button sequence and mapped button are passed via a SIP REGISTER message from the SIP proxy server and/or the call processor server82, and the updated user profile is stored in the database86.

The illustrated embodiment of the call processor server82provides distributed call signaling and control. It includes a set of software-based components includes call control, session management, and device control functions for gateways and clients. These components mediate traffic between IP telephony networks using different protocols, enabling communications from disparate networks to reach their destination. The open standards-based call processor82supports the Session Initiation Protocol (SIP) specification, delivering both interoperability with other IP telephony networks and support for emerging protocols. The processor provides seamless integration of SIP and IP-based systems with many end-user devices, including all popular SIP phones. The system ofFIG. 4is not dependent on a particular manufacturer of the telephone and in fact that user programming of mapped buttons can be implemented independent of telephone hardware.

The call processor82translates a telephone number into an IP address (or DNS name) of the media gateway serving the specific calling area. It identifies legitimate users, centrally maintains access privileges and features that travel with a user for exceptional convenience, and offers a robust end-user and enterprise administrator web-based provisioning system.

The billing support server90ofFIG. 4provides a suite of software applications that helps analyze network performance and operation, and pinpoints customer calling patterns and inappropriate system use. Call detail records (CDRs) and other key mechanisms enable the call processor server82to serve as the bridge between the IP telephone network and the enterprise billing system. CDRs are generated at multiple times during a single call and unified into a single “super CDR” for a thorough account of telephone traffic. These comprehensive accounting services indicate successful and unsuccessful call attempts generated by end points, media gateways, or signaling elements of the system ofFIG. 4.

The back-end server68further includes an enterprise management suite of software applications that enable full control over IP-based voice networks. Powerful yet simple-to use software provides up-to-the minute details and graphical network displays. The SNMP-based management tool maps devices and connections so network managers can easily monitor congestion, set thresholds and alerts, view network events, generate reports in user-defined formats, and launch device configuration tools. Automated operations, intelligent defaults, and the ability to provide suggestions for optimization when misconfigurations are detected make this application ideal for managers with varied levels of experience.

A method of programming a phone is shown inFIG. 5. The method100allows for programming a telephone to invoke any arbitrary sequence of button strokes selected by the user with a single press of a mapped button. The method is suitable for use in a phone such as the phone ofFIG. 1orFIG. 2, which includes a program button20and one or mapped buttons12which can be mapped to any arbitrary combination of button strokes, including function buttons24, digit buttons22or extension buttons36. The method includes the step of providing in the telephone10, a program button20for programming the mapped button12to invoke the arbitrary sequence of button strokes. The term “program button” is intended to encompass either a dedicated hard button on the phone or, alternatively, a sequence of button strokes (e.g., #P) which invokes a programming function. The method continues, at step102with instructing the user to press the program button. This step could be by providing the instruction in the user manual, by a prompt appearing on the screen display14, or by audible instructions over the handset16. This action signifies that the user wishes to program one of the programmable mapped buttons12.

Next, at step104, the user is prompted to press the mapped button12that they wish to program.

Next, at step106, the user is instructed to press a sequence of digit, extension, function or other buttons provided on the phone in any arbitrary sequence; the sequence to be associated with the mapped button12that they pressed at step104. The sequence will typically include at least one digit and at least one non-digit button such as an extension button or a function button such as TRANSFER or CONFERENCE. The sequence can be any arbitrary sequence selected by the user.

Next, at step108, the user is instructed to press a predetermined button (such as the program button20) to indicate the end of the sequence.

At this point, the phone is programmed is a simple embodiment of the invention. In particular, the sequence is stored in memory local to the phone and when the phone is thereafter used, when the user presses the programmed mapped button12, the phone interprets that press as invoking the programmed sequence, and the sequence is invoked.

One additional button that can be programmed is a virtual PAUSE button for a default length of time delay in the button sequence. When the phone sees the PAUSE button, the phone will “sleep” or pause for a default length of time (e.g., 5 seconds) and process the rest of the button strokes after the delay, This feature can be used in an application such as a calling card or bank access application where after the call is connected the user needs to wait for a period of time for the call to be answered before they enter their calling card number, an account code or number sequence, respond to any other voice prompt. So, the user could program the following sequence to be recalled with a single button: 779-0001, PAUSE 180738462335#, where 770-0001 is the bank phone number, PAUSE is the period in which the call is answered and the user is prompted to input their account number, and 180738462335# is the user account number followed by the # sign. The PAUSE command could be provided as a distinct button on the face of the phone, or alternatively by pressing a dedicated Feature button on the phone and then the digits corresponding to a feature code assigned to the PAUSE feature. For example, all the features such as TRANSFER, CONFERENCE, PAUSE, etc, could be accessed by pressing a FEATURE button and a corresponding three digit code assigned to each features. This ability to recall features and functions using a FEATURE button and digits assigned to specific functions solves the problem of not enough hardware buttons for functions on a basic phone model.

In the environment ofFIGS. 3 and 4, several additional steps are performed in the method ofFIG. 5. In particular, at step110, a SIP REGISTER message is sent from the phone to the SIP proxy server64ofFIG. 3and the SIP REGISTER is forwarded to the back-end server68. The SIP REGISTER includes the programmed button identification and the sequence of button strokes. This information is stored in the user profile database86ofFIG. 4, as shown as step112.

FIG. 6is a call flow diagram message flow diagram showing the sequence of messages occurring when a user programs their phone with the telephone user interface. The first step is the execution of method steps102,104,108and108ofFIG. 6. Basically, the user programs the programmable mapped button on their phone. Then, a SIP REGISTER message is sent from the SIP phone10to the SIP proxy server64as shown at110(same as method step110ofFIG. 5). This message includes the button sequence and the programmable button12that is associated with the sequence.

Then at step2, a challenge message120is sent from the SIP proxy server to the SIP phone110. This can be a 401 UNAUTHORIZED message under the SIP protocol, and basically challenges the phone for a password. At step3, a SIP REGISTER message124with the user password is sent from the phone10to the SIP proxy server64and/or call processor server. This message may also contain the button sequence and the programmable mapped button information as well.

At step4, the SIP proxy64sends an Auth_Update message126to the back end server68. This message includes the username and password, the keystroke sequence and the programmable mapped button that was selected. Authentication of the user password occurs in the back-end server68, e.g., using the authentication server80.

The new programmed function (keystroke sequence and mapped button) is saved in the user profile database86in the back-end server68(step112ofFIG. 5), and at step127a message is generated sending the user profile with the new programmed function.

The back-end server68sends a SIP Auth_Resp message128with the user profile to the SIP proxy64. The SIP proxy then sends a SIP 200 OK message130to the phone10, which contains the latest user profile contained in the message128.

FIG. 7is a message flow diagram showing the sequence of messages occurring when a user programs their phone via a web interface from any computer with internet access. As an example, the user may program the phone from home.

At step140, the user accesses the web interface. After proceeding through suitable password or other authentication mechanisms, the user navigates to a menu or screen that shows their current user profile. The user is provided with the ability to program additional programmable mapped buttons using drop-down lists, dialog boxes, icons, or any other suitable technique, the details of which are not important. When they are finished and exit the web interface, the new information is saved in an updated user profile.

Then, at step142, the user logs on to their phone (e.g., the next day when they are at the office). The message flow of messages110,120,124,126,127,128and130proceeds as discussed above in conjunction withFIG. 6. In particular, the updated user profile is downloaded to the phone in steps127,128and130.

From the foregoing, it will be appreciated that we have described a method of programming a telephone10, the telephone incorporated into a telephone system including a back-end server68communicating with the telephone, comprising: providing a web interface (via web server84inFIG. 4) wherein a user of a telephone in the system can remotely program their telephone via the web interface; programming, via the web interface, a mapped button on the telephone to invoke any arbitrary sequence of button strokes, the button strokes including at least one function button associated with the telephone and at least one digit or extension button; and storing information as to the sequence of button strokes and the mapped button in a memory associated with the back-end server, such as the database86in the server68.

Preferably, the back-end server68and telephone10support a SIP and voice over Internet Protocol telephony.

It should be understood, of course, that the arrangements and processes described herein are set forth for purposes of example only, and other arrangements and elements (e.g., machines, interfaces, functions, orders of elements, etc.) can be added, combined or used instead and some elements may be omitted altogether. Further, those skilled in the art will appreciate that many of the elements described herein are functional entities that may be implemented as discrete components or in conjunction with other components, in any suitable combination and location, and by software, firmware and/or hardware.

Exemplary embodiments of the present invention have thus been illustrated and described. It will be understood, however, that changes and modifications may be made to the invention as described without deviating from the spirit and scope of the invention, as defined by the following claims.