US20080219240A1 - Digital browser phone - Google Patents

Digital browser phone Download PDF

Info

Publication number
US20080219240A1
US20080219240A1 US11/545,381 US54538106A US2008219240A1 US 20080219240 A1 US20080219240 A1 US 20080219240A1 US 54538106 A US54538106 A US 54538106A US 2008219240 A1 US2008219240 A1 US 2008219240A1
Authority
US
United States
Prior art keywords
telephone
server
digital
phone
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/545,381
Inventor
Edwin M. Dylag
Robert H. Fritzinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to US11/545,381 priority Critical patent/US20080219240A1/en
Publication of US20080219240A1 publication Critical patent/US20080219240A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42314Systems providing special services or facilities to subscribers in private branch exchanges
    • H04M3/42323PBX's with CTI arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • H04M1/2473Telephone terminals interfacing a personal computer, e.g. using an API (Application Programming Interface)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • H04M1/2478Telephone terminals specially adapted for non-voice services, e.g. email, internet access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/253Telephone sets using digital voice transmission
    • H04M1/2535Telephone sets using digital voice transmission adapted for voice communication over an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0012Details of application programming interfaces [API] for telephone networks; Arrangements which combine a telephonic communication equipment and a computer, i.e. computer telephony integration [CPI] arrangements
    • H04M7/0015First party call control architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • H04M7/1205Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks

Definitions

  • This invention relates generally to telephone communication systems, and more particularly to a new and improved system wherein all the functions of a digital telephone are usable on a computer.
  • Digital computers in particular personal computers, are playing an ever increasing role in telephone systems.
  • the personal computer plays a central role in voice processing systems utilizing computer telephony integration wherein the personal computer is interposed functionally between the telephone switch such as a private branch exchange (PBX) and the telephone set.
  • PBX private branch exchange
  • the digital telephone itself represents an advance in the additional features and functions it provides over and above those provided by conventional telephones.
  • a PBX is connected through a computer telephony interface to a personal computer which, in turn, is connected through another interface to a telephone set, such as a digital advantageous to provide a telephone system wherein all the functions of a digital telephone can be accessed and implemented on a personal computer alone, thereby eliminating the need for a telephone set.
  • a telephone set such as a digital advantageous to provide a telephone system wherein all the functions of a digital telephone can be accessed and implemented on a personal computer alone, thereby eliminating the need for a telephone set.
  • a user could access and implement all digital telephone functions without the physical telephone set, the personal computer also providing the audio function.
  • a significant advantage of such a system is computer access to and utilization of digital telephone functions from a remote location with communication via internet, LAN, WAN, RAS or other mediums.
  • FIG. 1 is a block diagram of the system of the present invention
  • FIG. 2 is a schematic diagram illustrating operation of the system of the present invention
  • FIG. 3 is a schematic diagram further illustrating an aspect of the operation of the system of the present invention.
  • FIG. 4 is a schematic diagram further illustrating another aspect of the operation of the system of the present invention.
  • FIG. 5 is a flow chart illustrating operation of the system of the present invention.
  • FIGS. 6-9 are schematic block diagrams illustrating applications of the system of the present invention.
  • a system 10 according to the present invention is summarized briefly in FIG. 1 .
  • a PBX or other standard telephone switch is represented at 12 and lines 14 , 16 are standard interface lines which connect PBX 12 to a user's telephone network.
  • a standard personal computer (PC) 20 in the present illustration is operated by a mouse 22 .
  • PC 20 in the system of the present invention can be operated by a keyboard or some other input device.
  • a graphical representation 26 of a digital telephone is provided on the display of PC 20 .
  • Various telephone functions are accessed by manipulating mouse 22 to place the cursor (not shown) on a particular component of the phone image 26 and then clicking the mouse. For example, to place a call the first step is to remove the headset or receiver from the phone console.
  • image 26 can have other telephone-related forms such as listing of telephone numbers which the user would have occasion to dial, a menu of telephone features such as conferencing, park and pick, etc. and other forms.
  • the system of FIG. 1 further includes a phone server generally designated 30 which couples PBX 12 and PC 20 .
  • Lines 14 and 16 from PBX 12 are connected to server 30 .
  • a communications link 32 connects server 30 and PC 20 and can be a LAN, WAN, RAS, internet or a modem accessed telephone line to mention a few.
  • the signals associated with PBX 12 and the signals on lines 14 , 16 are characterized by synchronous timing which is a standard requirement of PBX operation.
  • the signals on link 32 and associated with PC 20 are asynchronous which is required for the needed flexibility in timing of the operation of PC 20 and communications link 32 .
  • server 30 makes possible communications between the synchronous operation of PBX 12 and the asynchronous operation of communications link 32 and PC 20 .
  • Server 30 allows an asynchronous client such as a web browser operatively associated with PC 20 to communicate via link 32 with a synchronous device such as telephone switch, i.e. PBX, 12.
  • phone server 30 includes a digital phone emulation interface 34 , an application program interface 36 and logic 38 which ties link 32 with the interfaces 34 and 36 .
  • Interface 34 by way of example is commercially available from Voice Technologies Group, Inc. under the designation VoiceBridge-PC and VoiceBridge 2000.
  • Interface 34 provides a direct digital connection between various PBXs and computer telephony application computers, i.e. PC 20 , and their processing cards and increases the amount of integration information that can be utilized from the PBX.
  • Application program interface 36 develops a command set from signals provided by interface 34 which the software in PC 20 can understand.
  • Logic 38 provides the synchronous/asynchronous conversion mentioned above.
  • logic 38 serves as an intermediary between synchronous switching on the PBX side of server 30 and asynchronous packet switching on the other side of server 30 .
  • logic 38 will packetize a request from interface 34 so that it can travel over link 32 and be utilized by PC 20 . This enables telephony events from interface 34 to be converted in a way that the object, i.e. the ActiveX program mentioned above, can utilize them in connection with phone image 26 .
  • a preferred program is commercially available from Microsoft Corporation and known as ActiveX control.
  • ActiveX control enables one to develop sophisticated controls based on the common object model (COM) that can be installed in dialog boxes or any ActiveX control container application.
  • ActiveX control is a COM-based object that can draw itself in its own window, respond to events like mouse clicks, and be managed through an interface that includes certain properties and methods.
  • An ActiveX control is implemented as an in-process server, typically a small object, that can be used in a control container.
  • the control container operates the ActiveX control by using the control's properties and methods, and receives notification from the ActiveX control in the form of events.
  • a control is described completely by properties, methods and events, and ActiveX is a means of implementing a control. While ActiveX is utilized in the present illustration of the invention, other graphical interface implementations can be employed such as JAVA-APPLET and even lower level software such as C or C++ to name a few.
  • FIG. 2 illustrates application of the principles of the system 10 of FIG. 1 to performing digital call control over internet protocol (IP).
  • IP internet protocol
  • PBX 12 ′, PC 20 ′, mouse 22 ′, digital phone emulation interface 34 ′ and application program interface 36 ′ are similar to the corresponding components in the system 10 of FIG. 1 .
  • some of the control components are actually the same C++ object, but behave differently based on whether the control is configured as the client or as the server. For this reason, the following description is separated into client and server sections.
  • the components within the broken line region 50 all reside within the same control which has methods, properties and events which will be described in further detail presently.
  • the server control object 54 is responsible for the following functions. Object 54 translates VoiceBridge light events and display updates from the VoiceBridge Thread 56 into graphical user interface (GUI) representations of these events for display on a server monitor 58 .
  • GUI graphical user interface
  • the GUI representation 60 is a soft phone that looks like the actual digital station set that the VoiceBridge interface 34 ′ emulates. In this implementation, the soft phone provides a mirror image of what the client is seeing on his/her PC 20 ′. The mirror image is a means to provide status of client activity.
  • Server control object 54 also translates key press and hook state commands from the TCP/IP Socket Thread 62 into GUI representations of these commands for display on the server monitor 58 . This completes the mirror image described above.
  • Object 54 translates key press and hook state commands from the TCP/IP Socket Thread 62 into VoiceBridge API commands for execution and interaction with the PBX 12 ′.
  • Object 54 also translates VoiceBridge light events and display updates from the VoiceBridge Event Thread 56 into a format suitable for subsequent packetization by the TCP/IP Socket Thread 62 .
  • the TCP/IP Socket Thread 62 has the following responsibilities when the control 50 is acting as a server. It packetizes light events and display updates from the Server Control Object 54 for transmission over a socket to the client, and it accepts packetized key press and hook state commands from the client, unpacketizes these commands and submits them to the Server Control Object 54 for execution using VoiceBridge API Commands or display on the GUI.
  • the VoiceBridge Event Thread 56 is responsible for monitoring the VoiceBridge event Queue for incoming light events and display changes using the VoiceBridge API 36 ′ and submitting these events to the Server Control Object 54 for further processing.
  • the VoiceBridge API 36 ′ and the VoiceBridge Card 34 ′ together provide a suitable interface to the PBX 12 ′.
  • the VoiceBridge Card 34 ′ handles all low-level interactions with the PBX 12 ′ over synchronous digital station links.
  • the VoiceBridge API 36 ′ provides a means for the rest of the control 50 to interact with the PBX 12 ′ using the VoiceBridge internal virtual phone.
  • the client control object 64 is responsible for the following functions. Object 64 translates mouse clicks and key strokes from the client machine 20 ′ into the commands suitable for subsequent packetization by the TCP/IP Socket Thread 66 . The mouse clicks and key strokes are input by the user from a GUI representation of a soft phone 68 as previously described. Similar to the server GUI 60 , the client GUI 68 is a soft phone that looks like the actual digital station set that the VoiceBridge 34 ′ emulates. Client control object 64 also translates light events and display updates from the TCP/IP Socket Thread 66 into graphical representations on the client monitor 20 . These events are displayed on the GUI soft phone 68 described above.
  • the TCP/IP Socket Thread 66 has the same responsibilities as described in the server section, but in reverse. That is to say, key press and hook state commands come from the client object and are packetized and sent to the server. Light updates and display updates are taken from the server, unpacketized and passed to the client object for further processing.
  • FIGS. 3 and 4 illustrate architectures of the control that include voice and digital control over internet protocol (IP).
  • IP internet protocol
  • the control is used in a client/server environment to provide access over IP to digital station set features from a remote location.
  • the voice component of the control is handled in one of two ways.
  • the method of FIG. 3 uses a WAV interface available from Dialogic or Natural Microsystems (NMS) or other means in conjunction with the Microsoft NetMeeting version 2.1 SDK to provide an H.323 protocol stack with audio capabilities.
  • NMS Natural Microsystems
  • the method of FIG. 4 uses an H.323 protocol stack (middleware) provided by the Dialogic DM3 platform, NMS Fusion platform or other means. Both methods employ the NetMeeting version 2.1 SDK on the client side.
  • a PBX 80 is connected via digital lines collectively designated 82 to a digital phone emulation interface 84 in a manner similar to PBX 12 , lines 14 , 16 and interface 34 in the arrangements illustrated in FIGS. 1 and 2 .
  • Interface 84 is connected via a voice bus 86 to a digital signal processor (DSP) 88 included in the server control 90 .
  • DSP digital signal processor
  • Control 90 also includes WAV interface 92 and protocol stack 94 .
  • the client control 100 also includes a protocol stack 102 , and the server and client controls 90 and 100 , respectively, are connected by an IP communications link 106 .
  • the voice over IP method of FIG. 3 uses a WAV interface provided by Dialogic, NMS or other means.
  • the controls 90 and 100 use NetMeeting version 2.1 API calls to handle all connection establishment and capabilities negotiation on both the server and the client side.
  • the audio channel is left open throughout the duration of the client/server session. Silence is transmitted until the VoiceBridge interface 84 opens an audio channel with the PBX 80 (i.e. when a phone call is made or answered). This provides the desired effect that audio is “cut through” when a call is initiated or answered.
  • the arrow 110 in FIG. 3 shows the audio path.
  • the PBX 80 provides audio to the VoiceBridge interface 84 , which drives voice data onto the voice bus 86 .
  • This voice data is taken from the voice bus by the DSP card 88 and provided to the server PC (not shown) through WAV interface 92 .
  • the NetMeeting software 94 , 102 utilizes this WAV interface 92 to implement the H.323 protocol which includes specifications for connection negotiation (H.245) and for voice packetization and transmission (Real Time Protocol—RTP).
  • Server control 120 includes middleware 122 and arrow 124 indicates audio path.
  • the client implementation does not change for this method.
  • the server does change and now uses middleware 122 such as DM/3 IPLINK from Dialogic or Fusion from NMS to provide the interface on the client side.
  • middleware provides the H.323 protocol stack in place of the NetMeeting SDK.
  • the voice path indicated by arrow is very similar to that in the method of FIG. 3 .
  • the system of FIG. 2 is illustrated further by the following example transactions.
  • the first illustrative example is establishing a client/server connection. Before the client can establish a connection with the server, the server must be waiting for a client connection.
  • a control method designated StartRemote ( ) with a parameter of FALSE is executed to start the server waiting for a client connection. Start Remote and other control methods and parameters will be described in further detail presently.
  • the client control's RemoteHostName parameter is set to the IP address of the server (i.e. 204.242.28.197).
  • the control method StartRemote ( ) is executed with a parameter of TRUE. This will start the initial handshaking sequence between the client and the server.
  • the initial handshake sequence is outlined in FIG. 5 .
  • the next illustrative example is a client key press transaction.
  • the following sequence describes an entire key press transaction, from the client machine to the PBX for execution in reference to the components of FIG. 2 .
  • a hook state transaction is identical to the following sequence, only the data transmitted is different.
  • the client user presses a GUI phone key on image 68 using his/her mouse 22 ′.
  • the Client Control Object 64 is notified on the mouse press and determines the key number (ID) of the GUI phone key that was pressed and tells the TCP/IP Socket Thread 66 to transmit the key press command to the server.
  • the client's TCP/IP Socket Thread 66 builds a key press packet with the appropriate key number and supporting information and sends this data to the server via a socket command.
  • the server's TCP/IP Socket Thread 62 receives the key press command packet, un-packetizes the command and tells the Server Control Object 54 to press the key.
  • the Server Control Object 54 then issues a vb_press_key ( ) command to the VoiceBridge API 36 ′.
  • the press key command will be described in further detail presently.
  • the Server Control Object 54 shows the key press on the server GUI 60 for the purpose of activity trace.
  • the VoiceBridge API 36 ′ passes the command to the VoiceBridge card 34 ′, which sends the command along to the PBX 12 ′ over the synchronous digital data link.
  • the PBX 12 ′ then acts on the key press appropriately.
  • the next illustrative example is a light update sequence.
  • the following describes an entire light update transaction. This sequence is very similar to the key press sequence described above, but this time is initiated by the PBX 12 ′ and terminates on the client GUI phone 68 . Note also that a display update sequence is identical to the following sequence, only the data transmitted is different.
  • the PBX 12 ′ sends a light update data packet over the digital data link to the VoiceBridge card 34 ′.
  • the VoiceBridge Event Thread 56 receives the light update via an event generated by the VoiceBridge card 34 ′ and passed through by the VoiceBridge API 36 ′.
  • the VoiceBridge Event Thread 56 passes the light update event to the Server Control Object 54 .
  • the server control tells the server's TCP/IP Socket Thread 62 to transmit the light event to the client.
  • the server's TCP/IP Socket Thread 62 packetizes the light event information, including the light number and new state, and transmits this information to the client via socket commands.
  • the client's TCP/IP Socket Thread 66 receives the light update packet, un-packetizes the update and notifies the Client Control Object 64 of the light update.
  • the Client Control Object 64 then displays the new light state on the lamp image in the GUI phone 68 .
  • the various properties, methods and events of the control associated with the system of FIGS. 2-4 now will be described.
  • the methods and properties of the control allow its container to press keys (using the mouse or a method), set and get light states, set and get the hook state and set and get the display information for the phone.
  • multiple phone types and sizes can be configured.
  • the capability to interact with the VoiceBridge card 34 is provided inside the ActiveX control. This allows full control of a single VoiceBridge channel from within a web page, Visual Basic program or even within a Power Point presentation.
  • Client/server capabilities are included in the control. This allows for complete remote operation (call control) of the ActiveX control over a TCP/IP socket.
  • a client computer i.e.
  • a laptop connects to a server using a TCP/IP socket.
  • the server machine contains a VoiceBridge card that is connected to a PBX.
  • the server control accepts key press and hook state commands from the client, allowing a remote user to interact with the VoiceBridge channel.
  • the client accepts lamp updates, display updates and gain/loss of carrier events from the server, thereby providing full status of the VoiceBridge line from a remote location.
  • DummyCaps BSTR This is a dummy parameter used to help serialize (store) all of the key information for the control. The contents of this parameter can not be set or seen by the user.
  • DisplayText BSTR This is the test contained in the display. The string can be any length and will auto wrap at a column break. Strings that are too long will be truncated when displayed, but stored at full length. To output to the second row, pad with spaces. DO NOT USE A NEWLINE CHARACTER OR CONTROL CHARACTER.
  • controlID Short This ID is used for identifying phone events in a recorded event file. It is a tab that is associated with each recorded event. This allows recording and subsequent playback of multiple sets of data into a single file. This ID is also used as the VoiceBridge channel number when the control is used to drive a VoiceBridge Channel.
  • RemoteHostName BSTR This identifies the IP address of the remote host. This parameter must be set before the client is put into remote mode with the StartRemote( ) method.
  • the custom methods of the control are set forth in Table II.
  • the parameters in the middle column indicate the actions to be taken.
  • the definitions in the right-hand column are part of the ActiveX definitions.
  • the container of the ActiveX control can interact with the methods set forth in Table II.
  • the StartActivePCMode method is used when the communications link is not IP.
  • the StartRemote method is used when the communications link is with IP.
  • GetLightState If an invalid light number is passed into GetLightState, it will return UNKNOWN. GetHookstate NONE Returns the current state of the hook switch. TRUE means the phone is off hook. FALSE means the phone is on hook.
  • SetKeyCaption Short keyNum Sets the caption text of BSTR caption the specified key. Strings that are too long are simply truncated when displayed. GetPhoneSize Long*sizeX Returns the size of the Long*sizeY control in HIMETRIC units. GetKeyCaption Short keyNum Returns the caption of the key specified by keyNUM. IsValidKey Short keyNum Returns TRUE if the key specified by keyNUM is a valid key (i.e. if the key number is on the phone).
  • StartActivePC Long Use this method to start Mode password controlling a VoiceBridge channel.
  • the channel number is specified in the controlID property which must be set before calling this method.
  • Active PC phone mode is only supported in Windows NT.
  • a VoiceBridge SDK must be installed on the system and the VoiceBridge card must be loaded before going into active mode.
  • StartRemote BOOL The meaning of this clientOrHost command varies slightly depending on the value of clientOrHost. To be a host, set the clientOrHost parameter to FALSE.
  • the control then waits for a client to connect on socket number 333 of the machine. Once connected, the host then starts active PC mode automatically and negotiates channel number and PBX type with the client.
  • Host mode is only supported in Windows NT.
  • a VoiceBridge SDK must be installed on the system and the VoiceBridge card must be loaded before connecting in host mode.
  • To be a client set the clientOrHost parameter to TRUE.
  • the control will then try to establish a connection with a shot waiting at the IP address specified in the RemoteHostName property. If no host is waiting, or if another network error occurs, the error is reported to the application.
  • Client mode is supported under Windows NT and Windows 95.
  • the controlID of the client should be set to the desired VoiceBridge channel before connecting.
  • the controlID of the client is sent to the host during negotiation and is ultimately used by the host to open the appropriate VoiceBridge channel.
  • the custom events of the control are set forth in Table III.
  • the events occur from the control to the container to indicate what happened, i.e. they provide a notification.
  • the six status events in Table III are related to the record/playback methods of Table II and tell the container what to do, i.e. enable or disable keys.
  • FIG. 6 illustrates utilizing the foregoing capability to provide full digital station features to telecommuters.
  • PBX 150 and phone server 152 are similar to PBX 12 and server 30 in the system of FIG. 1 .
  • a remote access server (RAS) 154 is connected to a local area network (LAN) 156 which, in turn, is connected to phone server 152 of the present invention.
  • RAS 154 provides a dial-in connection to the LAN 156 .
  • the personal computer 158 of the telecommuter is connected to RAS 154 via the respective modems 160 and 162 and the telephone network, 164 .
  • a telecommuter can connect to the office Local Area Network (LAN) 156 using Remote Access Software (RAS) 154 and use all of the capabilities of a digital station set while at home. And if the telecommuter also has a phone at the office, the control can be set up to ring when the office phone rings (i.e. the telecommuter's desk phone can be bridged onto the control). This allows callers to use the telecommuter's normal office number to reach the telecommuter when they are working at home. In addition, the telecommuter can simultaneously access data (i.e. e-mail, file servers etc.) over his RAS line.
  • data i.e. e-mail, file servers etc.
  • the foregoing also allows creation of remote call centers. Because the control provides all PBX features to remote users, the ACD features of the PBX can be extended remotely. This allows call center agents to be a part of the same ACD queue—even though they may be thousands of miles apart. This saves money on office space and also provides a tremendous increase in flexibility in providing call center overflow scenarios.
  • FIG. 7 shows an arrangement similar to FIG. 6 but wherein the telecommuter connects to the office LAN 156 ′ via a web server 170 through internet access.
  • PBX 180 and phone server 182 are similar to PBX 12 and server 30 in the system of FIG. 1 .
  • Dedicated lines 184 and 186 of a wide area network (WAN) connect branch office or location 188 and 190 , respectively to the main office or location.
  • WAN wide area network
  • FIG. 9 illustrates an application which provides toll free calls and voice mail boxes to preferred vendors and customers.
  • PBX 200 and phone server 202 are similar to PBX 12 and server 30 in the system of FIG. 1 .
  • a web server 204 is operatively connected to phone server 202 .
  • Vendors 206 , 208 and 210 through their PCs 212 , 214 and 216 , respectively, and the internet 220 access web server 222 and ultimately phone server 202 .
  • Vendors and customers can be given an extension on the PBX 200 by giving them a personal web page containing the control on the company's Intranet or Internet web site 222 .
  • client applications are enabled through the client control such as a voice mail application and a telephone device.
  • the client control described above makes use of a mouse, keyboard or other input devices to direct commands to the server control.
  • a voice mail application is another input device that can be connected as a remote client control. As calls are directed from the PBX to the server control, these events are delivered to the voice mail client control. In response to these events, a voice mail application will typically answer the incoming call, take input from the calling party and record a message or redirect the call to another telephone extension. These actions taken by the voice mail application are presented as input to the client control which are then delivered to the server control as previously described.
  • the present invention thereby eliminates the need for the voice mail application to be located within the distance restrictions of the PBX, and furthermore enables alternate connection means to this PBX similar to link 32 in FIG. 1 .
  • a telephone can also act as the input/output device of the client control. Key presses of the telephone are used as input by the client control and directed to the server control. Commands from the PBX are directed to the client control through the server control and presented to the telephone attached to the client control for interpretation by a user.

Abstract

A telephone system wherein all the functions of a digital telephone can be accessed and implemented on a personal computer alone, thereby eliminating the need for a telephone set. By means of the computer display and mouse, keyboard or other input/output command devices, a user accesses and implement all digital telephone functions without the physical telephone set, the personal computer also providing the audio function.
A graphical representation of a telephone set or other telephone-related form is provided on the computer display and accessed by the mouse, keyboard or other command device, this being accomplished by a computer program providing graphical interface implementation. A significant advantage of the system is computer access to and utilization of digital telephone functions from a remote location with communication via Internet, LAN, WAN, RAS or other mediums.

Description

    CROSS REFERENCE TO A RELATED APPLICATION
  • This application is a continuation application of U.S. patent application Ser. No. 09/513,660 filed Feb. 25, 2000 now U.S. Pat. No. 7,120,140 which claims priority to U.S. Provisional Application No. 60/121,755 filed Feb. 26, 1999 and entitled “Digital Browser Phone”, both of which are incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • This invention relates generally to telephone communication systems, and more particularly to a new and improved system wherein all the functions of a digital telephone are usable on a computer.
  • Digital computers, in particular personal computers, are playing an ever increasing role in telephone systems. For example, the personal computer plays a central role in voice processing systems utilizing computer telephony integration wherein the personal computer is interposed functionally between the telephone switch such as a private branch exchange (PBX) and the telephone set. In addition, the digital telephone itself represents an advance in the additional features and functions it provides over and above those provided by conventional telephones.
  • SUMMARY OF THE INVENTION
  • In a basic computer telephone integration, a PBX is connected through a computer telephony interface to a personal computer which, in turn, is connected through another interface to a telephone set, such as a digital advantageous to provide a telephone system wherein all the functions of a digital telephone can be accessed and implemented on a personal computer alone, thereby eliminating the need for a telephone set. In other words, by means of the computer display and mouse, keyboard or other input/output command devices, a user could access and implement all digital telephone functions without the physical telephone set, the personal computer also providing the audio function. A significant advantage of such a system is computer access to and utilization of digital telephone functions from a remote location with communication via internet, LAN, WAN, RAS or other mediums.
  • BRIEF DESCRIPTION OF THE DRAWING FIGURES
  • FIG. 1 is a block diagram of the system of the present invention;
  • FIG. 2 is a schematic diagram illustrating operation of the system of the present invention;
  • FIG. 3 is a schematic diagram further illustrating an aspect of the operation of the system of the present invention;
  • FIG. 4 is a schematic diagram further illustrating another aspect of the operation of the system of the present invention;
  • FIG. 5 is a flow chart illustrating operation of the system of the present invention; and
  • FIGS. 6-9 are schematic block diagrams illustrating applications of the system of the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • A system 10 according to the present invention is summarized briefly in FIG. 1. A PBX or other standard telephone switch is represented at 12 and lines 14, 16 are standard interface lines which connect PBX 12 to a user's telephone network. A standard personal computer (PC) 20 in the present illustration is operated by a mouse 22. Alternatively, PC 20 in the system of the present invention can be operated by a keyboard or some other input device. In accordance with the present invention, a graphical representation 26 of a digital telephone is provided on the display of PC 20. Various telephone functions are accessed by manipulating mouse 22 to place the cursor (not shown) on a particular component of the phone image 26 and then clicking the mouse. For example, to place a call the first step is to remove the headset or receiver from the phone console. This is done by moving mouse 22 so that the cursor is on the representation of the receiver at the left-hand portion of the image 26 and clicking mouse 22. This results in an appropriate command being issued to the remainder of the system to indicate initiation of a call as will be described in detail presently. The foregoing is accomplished by means of a computer program known as ActiveX or other programs providing graphical interface implementation in a manner which will be described in detail presently. By way of further illustration, the next step in the call is dialing the number which is carried out by moving the cursor using mouse 22 sequentially to each of the button graphical representations in image 26 and clicking on each button representation. Each time an appropriate command is issued to the remainder of the system for actual dialing of the telephone number as will be described. While the present illustration includes the preferred image 26 as a representation of a digital telephone, image 26 can have other telephone-related forms such as listing of telephone numbers which the user would have occasion to dial, a menu of telephone features such as conferencing, park and pick, etc. and other forms.
  • In accordance with the present invention, the system of FIG. 1 further includes a phone server generally designated 30 which couples PBX 12 and PC 20. Lines 14 and 16 from PBX 12 are connected to server 30. A communications link 32 connects server 30 and PC 20 and can be a LAN, WAN, RAS, internet or a modem accessed telephone line to mention a few. The signals associated with PBX 12 and the signals on lines 14, 16 are characterized by synchronous timing which is a standard requirement of PBX operation. The signals on link 32 and associated with PC 20 are asynchronous which is required for the needed flexibility in timing of the operation of PC 20 and communications link 32. Accordingly server 30 makes possible communications between the synchronous operation of PBX 12 and the asynchronous operation of communications link 32 and PC 20. Server 30 allows an asynchronous client such as a web browser operatively associated with PC 20 to communicate via link 32 with a synchronous device such as telephone switch, i.e. PBX, 12.
  • Briefly, and as shown in FIG. 1, phone server 30 includes a digital phone emulation interface 34, an application program interface 36 and logic 38 which ties link 32 with the interfaces 34 and 36. Interface 34 by way of example is commercially available from Voice Technologies Group, Inc. under the designation VoiceBridge-PC and VoiceBridge 2000. Interface 34 provides a direct digital connection between various PBXs and computer telephony application computers, i.e. PC 20, and their processing cards and increases the amount of integration information that can be utilized from the PBX. Application program interface 36 develops a command set from signals provided by interface 34 which the software in PC 20 can understand. Logic 38 provides the synchronous/asynchronous conversion mentioned above. Thus, logic 38 serves as an intermediary between synchronous switching on the PBX side of server 30 and asynchronous packet switching on the other side of server 30. For example, logic 38 will packetize a request from interface 34 so that it can travel over link 32 and be utilized by PC 20. This enables telephony events from interface 34 to be converted in a way that the object, i.e. the ActiveX program mentioned above, can utilize them in connection with phone image 26.
  • The selection and performance of various digital telephone functions utilizing the graphical phone image 26 and cursor of PC 20 is accomplished by means of a program providing graphical interface implementation. A preferred program is commercially available from Microsoft Corporation and known as ActiveX control. ActiveX control enables one to develop sophisticated controls based on the common object model (COM) that can be installed in dialog boxes or any ActiveX control container application. ActiveX control is a COM-based object that can draw itself in its own window, respond to events like mouse clicks, and be managed through an interface that includes certain properties and methods.
  • An ActiveX control is implemented as an in-process server, typically a small object, that can be used in a control container. The control container operates the ActiveX control by using the control's properties and methods, and receives notification from the ActiveX control in the form of events. Thus, a control is described completely by properties, methods and events, and ActiveX is a means of implementing a control. While ActiveX is utilized in the present illustration of the invention, other graphical interface implementations can be employed such as JAVA-APPLET and even lower level software such as C or C++ to name a few.
  • FIG. 2 illustrates application of the principles of the system 10 of FIG. 1 to performing digital call control over internet protocol (IP). In other words, by virtue of the system of FIG. 2 all the call control features of a digital telephone are provided to a user on a PC wherein the features are accessed by the PC via the internet and selection and use of those features is via the graphical image of the phone or the like with mouse or keyboard interaction.
  • In the system illustrated in FIG. 2, PBX 12′, PC 20′, mouse 22′, digital phone emulation interface 34′ and application program interface 36′ are similar to the corresponding components in the system 10 of FIG. 1. In the system of FIG. 2, some of the control components are actually the same C++ object, but behave differently based on whether the control is configured as the client or as the server. For this reason, the following description is separated into client and server sections. The components within the broken line region 50 all reside within the same control which has methods, properties and events which will be described in further detail presently.
  • The server control object 54 is responsible for the following functions. Object 54 translates VoiceBridge light events and display updates from the VoiceBridge Thread 56 into graphical user interface (GUI) representations of these events for display on a server monitor 58. The GUI representation 60 is a soft phone that looks like the actual digital station set that the VoiceBridge interface 34′ emulates. In this implementation, the soft phone provides a mirror image of what the client is seeing on his/her PC 20′. The mirror image is a means to provide status of client activity.
  • Server control object 54 also translates key press and hook state commands from the TCP/IP Socket Thread 62 into GUI representations of these commands for display on the server monitor 58. This completes the mirror image described above. Object 54 translates key press and hook state commands from the TCP/IP Socket Thread 62 into VoiceBridge API commands for execution and interaction with the PBX 12′. Object 54 also translates VoiceBridge light events and display updates from the VoiceBridge Event Thread 56 into a format suitable for subsequent packetization by the TCP/IP Socket Thread 62.
  • The TCP/IP Socket Thread 62 has the following responsibilities when the control 50 is acting as a server. It packetizes light events and display updates from the Server Control Object 54 for transmission over a socket to the client, and it accepts packetized key press and hook state commands from the client, unpacketizes these commands and submits them to the Server Control Object 54 for execution using VoiceBridge API Commands or display on the GUI. The VoiceBridge Event Thread 56 is responsible for monitoring the VoiceBridge event Queue for incoming light events and display changes using the VoiceBridge API 36′ and submitting these events to the Server Control Object 54 for further processing.
  • The VoiceBridge API 36′ and the VoiceBridge Card 34′ together provide a suitable interface to the PBX 12′. The VoiceBridge Card 34′ handles all low-level interactions with the PBX 12′ over synchronous digital station links. The VoiceBridge API 36′ provides a means for the rest of the control 50 to interact with the PBX 12′ using the VoiceBridge internal virtual phone.
  • The client control object 64 is responsible for the following functions. Object 64 translates mouse clicks and key strokes from the client machine 20′ into the commands suitable for subsequent packetization by the TCP/IP Socket Thread 66. The mouse clicks and key strokes are input by the user from a GUI representation of a soft phone 68 as previously described. Similar to the server GUI 60, the client GUI 68 is a soft phone that looks like the actual digital station set that the VoiceBridge 34′ emulates. Client control object 64 also translates light events and display updates from the TCP/IP Socket Thread 66 into graphical representations on the client monitor 20. These events are displayed on the GUI soft phone 68 described above.
  • The TCP/IP Socket Thread 66 has the same responsibilities as described in the server section, but in reverse. That is to say, key press and hook state commands come from the client object and are packetized and sent to the server. Light updates and display updates are taken from the server, unpacketized and passed to the client object for further processing.
  • To one skilled in the art, it is apparent that programming methods other than socket and threads, as well as protocols other than TCP, IP and H.323 (such as ATM, MGCP or SIP) can be utilized to implement the client and server control objects described herein.
  • FIGS. 3 and 4 illustrate architectures of the control that include voice and digital control over internet protocol (IP). The control is used in a client/server environment to provide access over IP to digital station set features from a remote location. In the architecture of FIGS. 3 and 4 the voice component of the control is handled in one of two ways. The method of FIG. 3 uses a WAV interface available from Dialogic or Natural Microsystems (NMS) or other means in conjunction with the Microsoft NetMeeting version 2.1 SDK to provide an H.323 protocol stack with audio capabilities. The method of FIG. 4 uses an H.323 protocol stack (middleware) provided by the Dialogic DM3 platform, NMS Fusion platform or other means. Both methods employ the NetMeeting version 2.1 SDK on the client side.
  • Referring first to FIG. 3 a PBX 80 is connected via digital lines collectively designated 82 to a digital phone emulation interface 84 in a manner similar to PBX 12, lines 14, 16 and interface 34 in the arrangements illustrated in FIGS. 1 and 2. Interface 84 is connected via a voice bus 86 to a digital signal processor (DSP) 88 included in the server control 90. Control 90 also includes WAV interface 92 and protocol stack 94. The client control 100 also includes a protocol stack 102, and the server and client controls 90 and 100, respectively, are connected by an IP communications link 106.
  • Thus, the voice over IP method of FIG. 3 uses a WAV interface provided by Dialogic, NMS or other means. With this method, the controls 90 and 100 use NetMeeting version 2.1 API calls to handle all connection establishment and capabilities negotiation on both the server and the client side. The audio channel is left open throughout the duration of the client/server session. Silence is transmitted until the VoiceBridge interface 84 opens an audio channel with the PBX 80 (i.e. when a phone call is made or answered). This provides the desired effect that audio is “cut through” when a call is initiated or answered.
  • The arrow 110 in FIG. 3 shows the audio path. The PBX 80 provides audio to the VoiceBridge interface 84, which drives voice data onto the voice bus 86. This voice data is taken from the voice bus by the DSP card 88 and provided to the server PC (not shown) through WAV interface 92. The NetMeeting software 94, 102 utilizes this WAV interface 92 to implement the H.323 protocol which includes specifications for connection negotiation (H.245) and for voice packetization and transmission (Real Time Protocol—RTP).
  • Referring now to FIG. 4, which illustrates voice over IP using middleware, components similar to those of the architecture of FIG. 3 are identified by the same reference numerals provided with a prime designation. Server control 120 includes middleware 122 and arrow 124 indicates audio path. The client implementation does not change for this method. The server does change and now uses middleware 122 such as DM/3 IPLINK from Dialogic or Fusion from NMS to provide the interface on the client side. This middleware provides the H.323 protocol stack in place of the NetMeeting SDK. The voice path indicated by arrow is very similar to that in the method of FIG. 3.
  • The system of FIG. 2 is illustrated further by the following example transactions. The first illustrative example is establishing a client/server connection. Before the client can establish a connection with the server, the server must be waiting for a client connection. A control method designated StartRemote ( ) with a parameter of FALSE is executed to start the server waiting for a client connection. Start Remote and other control methods and parameters will be described in further detail presently. Next, the client control's RemoteHostName parameter is set to the IP address of the server (i.e. 204.242.28.197). Then the control method StartRemote ( ) is executed with a parameter of TRUE. This will start the initial handshaking sequence between the client and the server. The initial handshake sequence is outlined in FIG. 5.
  • The next illustrative example is a client key press transaction. The following sequence describes an entire key press transaction, from the client machine to the PBX for execution in reference to the components of FIG. 2. A hook state transaction is identical to the following sequence, only the data transmitted is different.
  • 1. The client user presses a GUI phone key on image 68 using his/her mouse 22′.
  • 2. The Client Control Object 64 is notified on the mouse press and determines the key number (ID) of the GUI phone key that was pressed and tells the TCP/IP Socket Thread 66 to transmit the key press command to the server.
  • 3. The client's TCP/IP Socket Thread 66 builds a key press packet with the appropriate key number and supporting information and sends this data to the server via a socket command.
  • 4. The server's TCP/IP Socket Thread 62 receives the key press command packet, un-packetizes the command and tells the Server Control Object 54 to press the key.
  • 5. The Server Control Object 54 then issues a vb_press_key ( ) command to the VoiceBridge API 36′. The press key command will be described in further detail presently. At the same time, the Server Control Object 54 shows the key press on the server GUI 60 for the purpose of activity trace.
  • 6. The VoiceBridge API 36′ passes the command to the VoiceBridge card 34′, which sends the command along to the PBX 12′ over the synchronous digital data link. The PBX 12′ then acts on the key press appropriately.
  • The next illustrative example is a light update sequence. The following describes an entire light update transaction. This sequence is very similar to the key press sequence described above, but this time is initiated by the PBX 12′ and terminates on the client GUI phone 68. Note also that a display update sequence is identical to the following sequence, only the data transmitted is different.
  • 1. The PBX 12′ sends a light update data packet over the digital data link to the VoiceBridge card 34′.
  • 2. The VoiceBridge Event Thread 56 receives the light update via an event generated by the VoiceBridge card 34′ and passed through by the VoiceBridge API 36′.
  • 3. The VoiceBridge Event Thread 56 passes the light update event to the Server Control Object 54. The server control tells the server's TCP/IP Socket Thread 62 to transmit the light event to the client.
  • 4. The server's TCP/IP Socket Thread 62 packetizes the light event information, including the light number and new state, and transmits this information to the client via socket commands.
  • 5. The client's TCP/IP Socket Thread 66 receives the light update packet, un-packetizes the update and notifies the Client Control Object 64 of the light update.
  • 6. The Client Control Object 64 then displays the new light state on the lamp image in the GUI phone 68.
  • The various properties, methods and events of the control associated with the system of FIGS. 2-4 now will be described. The methods and properties of the control allow its container to press keys (using the mouse or a method), set and get light states, set and get the hook state and set and get the display information for the phone. In addition, multiple phone types and sizes can be configured. The capability to interact with the VoiceBridge card 34 is provided inside the ActiveX control. This allows full control of a single VoiceBridge channel from within a web page, Visual Basic program or even within a Power Point presentation. Client/server capabilities are included in the control. This allows for complete remote operation (call control) of the ActiveX control over a TCP/IP socket. As previously described, a client computer (i.e. a laptop) connects to a server using a TCP/IP socket. The server machine contains a VoiceBridge card that is connected to a PBX. The server control accepts key press and hook state commands from the client, allowing a remote user to interact with the VoiceBridge channel. The client, in turn, accepts lamp updates, display updates and gain/loss of carrier events from the server, thereby providing full status of the VoiceBridge line from a remote location.
  • The custom properties of the control are set forth in Table I. In the right-hand column various characteristics are described. When the container changes the properties, changes occur in the characteristics.
  • TABLE I
    Property
    Property Name Type Description
    PhoneType Short Changes the type of phone
    displayed.
    1 (LUCENT7434),
    2 (MITELSS430),
    3 (NORTEL2616),
    4 (SIEMENSROLMPHONE400)
    SizePercent Short Percentage full scale.
    Using this value will scale
    the phone and maintain the
    original aspect ratio.
    Set this value to (−1) if
    the control is to be sized
    by other means - i.e. using
    the container's object
    handles.
    Min - 25%
    Max - 600%
    KeyUpDownDelay Short The time in milliseconds
    that a key will be pressed
    when using the PressKey( )
    method (keys automatically
    pop back up when using
    PressKey( )).
    Min - 0 msec
    Max - 1000 msec
    InteractiveMode BOOL TRUE - User can press keys
    and go on and off hook
    using the mouse.
    FALSE - No input is
    accepted from the user via
    mouse clicks.
    DummyCaps BSTR This is a dummy parameter
    used to help serialize
    (store) all of the key
    information for the
    control. The contents of
    this parameter can not be
    set or seen by the user.
    DisplayText BSTR This is the test contained
    in the display.
    The string can be any
    length and will auto wrap
    at a column break.
    Strings that are too long
    will be truncated when
    displayed, but stored at
    full length.
    To output to the second
    row, pad with spaces. DO
    NOT USE A NEWLINE
    CHARACTER OR CONTROL
    CHARACTER.
    EnableToolTips BOOL TRUE - pop up tool tips
    enabled.
    FALSE - pop up tool tips
    disabled.
    controlID Short This ID is used for
    identifying phone events in
    a recorded event file. It
    is a tab that is associated
    with each recorded event.
    This allows recording and
    subsequent playback of
    multiple sets of data into
    a single file.
    This ID is also used as the
    VoiceBridge channel number
    when the control is used to
    drive a VoiceBridge
    Channel.
    RemoteHostName BSTR This identifies the IP
    address of the remote host.
    This parameter must be set
    before the client is put
    into remote mode with the
    StartRemote( ) method.
  • The custom methods of the control are set forth in Table II. The parameters in the middle column indicate the actions to be taken. The definitions in the right-hand column are part of the ActiveX definitions. The container of the ActiveX control can interact with the methods set forth in Table II. The StartActivePCMode method is used when the communications link is not IP. The StartRemote method is used when the communications link is with IP.
  • TABLE II
    Property
    Property Name Type Description
    PressKey INT keyNum Press the key specified
    by keyNumber
    The key automatically
    releases after
    “KeyUpDownDelay”
    milliseconds.
    SetLightState INT lightNum Set the specified lamp
    INT newState to a new flash state.
    The rates of flashing
    are predetermined by the
    phone type and can not
    be modified by the user.
    Valid states are:
    DARK 0
    STEADY 1
    FLASH 2
    BLINK 3
    WINK 4
    SetHookstate BOOL state TRUE take the phone off
    hook.
    FALSE put the phone on
    hook.
    GetLightState INT lightNum Returns the light state
    as a short. The states
    are described in
    SetLightState above.
    One additional return
    has been added.
    UNKNOWN 99
    If an invalid light
    number is passed into
    GetLightState, it will
    return UNKNOWN.
    GetHookstate NONE Returns the current
    state of the hook
    switch.
    TRUE means the phone is
    off hook.
    FALSE means the phone is
    on hook.
    SetKeyCaption Short keyNum Sets the caption text of
    BSTR caption the specified key.
    Strings that are too
    long are simply
    truncated when
    displayed.
    GetPhoneSize Long*sizeX Returns the size of the
    Long*sizeY control in HIMETRIC
    units.
    GetKeyCaption Short keyNum Returns the caption of
    the key specified by
    keyNUM.
    IsValidKey Short keyNum Returns TRUE if the key
    specified by keyNUM is a
    valid key (i.e. if the
    key number is on the
    phone). Otherwise
    returns FALSE.
    IsValidLight Short Returns TRUE if the
    lightNum light specified by
    lightNUM is a valid
    light (i.e. if the light
    number is on the phone).
    Otherwise, returns
    FALSE.
    StartActivePC Long Use this method to start
    Mode password controlling a
    VoiceBridge channel.
    The channel number is
    specified in the
    controlID property which
    must be set before
    calling this method.
    NOTE: Active PC phone
    mode is only supported
    in Windows NT. A
    VoiceBridge SDK must be
    installed on the system
    and the VoiceBridge card
    must be loaded before
    going into active mode.
    StartRemote BOOL The meaning of this
    clientOrHost command varies slightly
    depending on the value
    of clientOrHost.
    To be a host, set the
    clientOrHost parameter
    to FALSE. The control
    then waits for a client
    to connect on socket
    number 333 of the
    machine. Once
    connected, the host then
    starts active PC mode
    automatically and
    negotiates channel
    number and PBX type with
    the client.
    NOTE: Host mode is only
    supported in Windows NT.
    A VoiceBridge SDK must
    be installed on the
    system and the
    VoiceBridge card must be
    loaded before connecting
    in host mode.
    To be a client, set the
    clientOrHost parameter
    to TRUE. The control
    will then try to
    establish a connection
    with a shot waiting at
    the IP address specified
    in the RemoteHostName
    property. If no host is
    waiting, or if another
    network error occurs,
    the error is reported to
    the application.
    NOTE: Client mode is
    supported under Windows
    NT and Windows 95. The
    controlID of the client
    should be set to the
    desired VoiceBridge
    channel before
    connecting. The
    controlID of the client
    is sent to the host
    during negotiation and
    is ultimately used by
    the host to open the
    appropriate VoiceBridge
    channel.
  • The custom events of the control are set forth in Table III. The events occur from the control to the container to indicate what happened, i.e. they provide a notification. The six status events in Table III are related to the record/playback methods of Table II and tell the container what to do, i.e. enable or disable keys.
  • TABLE III
    KeyPressed int The user pressed a key
    keyNumber with the mouse.
    KeyReleased int The user released a
    keyNumber key previously pressed
    with mouse.
    OffHook NONE The user took the
    phone off hook using
    the mouse.
    OnHook NONE The user put the phone
    on hook using the
    mouse.
    KeyCaptionChanged Int The caption of the key
    keyNumber specified by keyNumber
    was changed by the
    user.
    KeyPressed int The user pressed a key
    keyNumber with the mouse.
    LightChange Short The light specified by
    lightNum lightNum changed flash
    states.
  • The architecture of the system of the present invention described in connection with FIG. 2-5 performs digital call control over IP. As previously mentioned, the control can be used in a client/server environment to provide access to digital station set features from a remote location. A number of highly useful and desirable applications can result from this capability. FIG. 6 illustrates utilizing the foregoing capability to provide full digital station features to telecommuters. PBX 150 and phone server 152 are similar to PBX 12 and server 30 in the system of FIG. 1. A remote access server (RAS) 154 is connected to a local area network (LAN) 156 which, in turn, is connected to phone server 152 of the present invention. RAS 154 provides a dial-in connection to the LAN 156. The personal computer 158 of the telecommuter is connected to RAS 154 via the respective modems 160 and 162 and the telephone network, 164.
  • Thus, a telecommuter can connect to the office Local Area Network (LAN) 156 using Remote Access Software (RAS) 154 and use all of the capabilities of a digital station set while at home. And if the telecommuter also has a phone at the office, the control can be set up to ring when the office phone rings (i.e. the telecommuter's desk phone can be bridged onto the control). This allows callers to use the telecommuter's normal office number to reach the telecommuter when they are working at home. In addition, the telecommuter can simultaneously access data (i.e. e-mail, file servers etc.) over his RAS line.
  • The foregoing also allows creation of remote call centers. Because the control provides all PBX features to remote users, the ACD features of the PBX can be extended remotely. This allows call center agents to be a part of the same ACD queue—even though they may be thousands of miles apart. This saves money on office space and also provides a tremendous increase in flexibility in providing call center overflow scenarios.
  • FIG. 7 shows an arrangement similar to FIG. 6 but wherein the telecommuter connects to the office LAN 156′ via a web server 170 through internet access.
  • The application illustrated in FIG. 8 provides linking of remote offices back to the corporate PBX and mail system. PBX 180 and phone server 182 are similar to PBX 12 and server 30 in the system of FIG. 1. Dedicated lines 184 and 186 of a wide area network (WAN) connect branch office or location 188 and 190, respectively to the main office or location. Thus, since many remote offices already have dedicated data tie lines for accessing corporate databases, e-mail etc., the control of the present invention can extend PBX connectivity to remote branches. And because the remote offices are all using the same PBX, a single company voice mail system can be deployed. This eliminates all of the difficulties and expense of trying to tie together many disparate phone systems and/or voice mail systems into a single seamless system.
  • FIG. 9 illustrates an application which provides toll free calls and voice mail boxes to preferred vendors and customers. PBX 200 and phone server 202 are similar to PBX 12 and server 30 in the system of FIG. 1. A web server 204 is operatively connected to phone server 202. Vendors 206, 208 and 210 through their PCs 212, 214 and 216, respectively, and the internet 220 access web server 222 and ultimately phone server 202. Vendors and customers can be given an extension on the PBX 200 by giving them a personal web page containing the control on the company's Intranet or Internet web site 222. When a vendor/customer needs to be contacted or needs to place a call in to the company, their three of four digit extension is dialed—instead of their long distance PSTN number. Since the call takes place over the Internet, no toll charges are applied. And because they are an extension on the PBX 200, the vendor or customer can be given a company voice mail box and can be left messages, replied to and put on voice mail distribution lists.
  • As further examples, other client applications are enabled through the client control such as a voice mail application and a telephone device. The client control described above makes use of a mouse, keyboard or other input devices to direct commands to the server control. A voice mail application is another input device that can be connected as a remote client control. As calls are directed from the PBX to the server control, these events are delivered to the voice mail client control. In response to these events, a voice mail application will typically answer the incoming call, take input from the calling party and record a message or redirect the call to another telephone extension. These actions taken by the voice mail application are presented as input to the client control which are then delivered to the server control as previously described. The present invention thereby eliminates the need for the voice mail application to be located within the distance restrictions of the PBX, and furthermore enables alternate connection means to this PBX similar to link 32 in FIG. 1. A telephone can also act as the input/output device of the client control. Key presses of the telephone are used as input by the client control and directed to the server control. Commands from the PBX are directed to the client control through the server control and presented to the telephone attached to the client control for interpretation by a user.
  • It is therefore apparent that the present invention accomplishes its intended objectives. While embodiments of the present invention have been described in detail, that has been done for purposes of illustration, not limitation.

Claims (20)

1. A communication system comprising:
at least one telephone switching mechanism;
at least one computing device including software configured to display a virtual telephone;
a phone server configured to couple the telephone switching mechanism and the at least one computing device;
a digital phone emulation interface, configured to provide a digital connection between the at least one telephone switching mechanism and the at least one computing device;
an application program interface configured to develop a command set from signals provided by the digital phone emulation interface, the command set configured to communicate with the software of the at least one computing device; and
logic to convert between a synchronous and an asynchronous link.
2. The system of claim 1 wherein the application program interface includes a plurality of features found on digital telephones including dial, transfer, conference, hold, display information, multiple appearances, redial, message waiting indication, disconnect call, hook switch control, handset, speaker and microphone.
3. The system of claim 1 wherein the synchronous link connects the at least one telephone switching mechanism and the digital phone emulation interface.
4. The system of claim 1 wherein the asynchronous link connects the logic and the at least one computing device, the logic located within the phone server.
5. The system of claim 1 wherein the at least one telephone switching mechanism is a PBX.
6. The system of claim 1 wherein the digital phone emulation interface connects voice information to a voice packetization mechanism for delivery over a computer link.
7. A communication system comprising:
at least one telephone switching mechanism;
at least one computing device including software configured to display a virtual telephone;
a mouse coupled to the at least one computing device, the mouse configured to provide access to a plurality of features of the virtual telephone;
at least one phone server including a digital phone emulation interface, an application interface and logic;
first and second control objects operatively connected via a first and a second socket thread, the first and second socket thread configured to transmit packetized light events and display information; and
an event thread operatively connected with the first control object, the event thread configured to transmit events from the application program interface to the first control object.
8. The system of claim 7 wherein the first control object translates events for use on the at least one computing device and transmits commands to the application program interface.
9. The system of claim 7 wherein the second control object translates mouse clicks and key strokes from the at least one computing device into commands.
10. The system of claim 9 wherein the commands are subsequently packetized by the second socket thread.
11. A method of communication comprising:
selecting a feature on a virtual phone;
notifying a client control object of the selection;
allowing a client's socket thread to transmit the selection to a server;
building a packet and sending the packet to the server via a socket command;
receiving the packet at the server's socket thread and unpacketizing the command;
issuing a command from a server to an application program interface;
passing the command from the application program interface to a digital phone emulation interface; and
sending the command to at least one telephone switching mechanism over a synchronous digital data link.
12. The method according to claim 11 wherein the step of selecting involves a client key press transaction.
13. The method according to claim 11 wherein the step of selecting involves a hook state transaction.
14. A computer-readable storage medium including instructions that, when executed, cause a computer to:
display a virtual telephone;
send a light update data packet from a switching mechanism over a digital data link to an application program interface;
receive the light update data packet via an event generated by the digital phone emulation interface and passed through by an application program interface;
pass the light update data packet from an event thread to a control object;
packetize the light update data packet and transmit the packet to a client;
receive and unpacketize the light update data packet; and
display a new light state on the virtual telephone.
15. The computer-readable storage medium of claim 14 wherein the digital phone emulation interface is configured to communicate with software configured to display the virtual telephone.
16. The computer-readable storage medium of claim 14 wherein the virtual telephone includes a plurality of features including dial, transfer, conference, hold, display information, multiple appearances, redial, message waiting indication, disconnect call, hook switch control, handset, speaker and microphone.
17. The computer-readable storage medium of claim 14 wherein the virtual phone is located on at least one computing device, the computing device being accessible from a remote location.
18. A method comprising:
displaying a virtual telephone;
sending a light update data packet from a switching mechanism over a digital data link to a digital phone emulation interface;
receiving the light update data packet via an event generated by the digital phone emulation interface and passed through by an application program interface;
passing the light update data packet from an event thread to a control object;
packetizing the light update data packet and transmitting the packet to a client;
receiving and unpacketizing the light update data packet; and
displaying a new light state on the virtual telephone.
19. The method of claim 18 further comprising;
activating one of a plurality of features with a mouse click.
20. The method of claim 18 wherein said packetizing is performed using a TCP/IP thread.
US11/545,381 1999-02-26 2006-10-10 Digital browser phone Abandoned US20080219240A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/545,381 US20080219240A1 (en) 1999-02-26 2006-10-10 Digital browser phone

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12175599P 1999-02-26 1999-02-26
US09/513,660 US7120140B1 (en) 1999-02-26 2000-02-25 Digital browser phone
US11/545,381 US20080219240A1 (en) 1999-02-26 2006-10-10 Digital browser phone

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/513,660 Continuation US7120140B1 (en) 1999-02-26 2000-02-25 Digital browser phone

Publications (1)

Publication Number Publication Date
US20080219240A1 true US20080219240A1 (en) 2008-09-11

Family

ID=37072468

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/513,660 Expired - Fee Related US7120140B1 (en) 1999-02-26 2000-02-25 Digital browser phone
US11/545,381 Abandoned US20080219240A1 (en) 1999-02-26 2006-10-10 Digital browser phone

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/513,660 Expired - Fee Related US7120140B1 (en) 1999-02-26 2000-02-25 Digital browser phone

Country Status (1)

Country Link
US (2) US7120140B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080020750A1 (en) * 2006-07-21 2008-01-24 Sunplus Technology Co., Ltd. System for simulating mobile phone and method thereof
US20100198872A1 (en) * 2009-01-25 2010-08-05 Thomas Norwin Walter System for the Management of Files
US20100198973A1 (en) * 2009-02-02 2010-08-05 Jung Myung-June Electronic apparatus, virtual machine providing appartatus, and method of using virtual machine service
US20110137854A1 (en) * 2008-07-31 2011-06-09 Thomas Walter System for the management of files
US20130031482A1 (en) * 2011-07-28 2013-01-31 Microsoft Corporation Multi-Touch Remoting
US20130227272A1 (en) * 2012-02-29 2013-08-29 Microsoft Corporation Dynamic Selection of Security Protocol
US9509817B1 (en) * 2015-10-01 2016-11-29 Global Tel*Link Corporation Communication device enclosure
US20190065015A1 (en) * 2017-08-25 2019-02-28 Salesforce.Com, Inc. System and method for notifying a softphone of navigation change events
US11889028B2 (en) 2021-04-26 2024-01-30 Zoom Video Communications, Inc. System and method for one-touch split-mode conference access
US11916979B2 (en) 2021-10-25 2024-02-27 Zoom Video Communications, Inc. Shared control of a remote client

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120140B1 (en) * 1999-02-26 2006-10-10 Intel Corporation Digital browser phone
US6967947B1 (en) * 2001-03-29 2005-11-22 At&T Corp. Method and system for providing controllable enhanced call service features at mobile locations
US7031443B2 (en) * 2001-11-19 2006-04-18 Inter-Tel, Inc. System and method for remote access to a telephone
US8897426B2 (en) * 2007-06-07 2014-11-25 Microsoft Corporation User interface architecture and protocol for rich client controlled voicemail
US8169898B2 (en) * 2009-09-28 2012-05-01 Avaya Inc. Modular telephone

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763356A (en) * 1986-12-11 1988-08-09 AT&T Information Systems, Inc. American Telephone and Telegraph Company Touch screen form entry system
US5657378A (en) * 1995-04-11 1997-08-12 M Power Corporation Digital screen phone terminal with graphical user interface
US5754636A (en) * 1994-11-01 1998-05-19 Answersoft, Inc. Computer telephone system
US5764628A (en) * 1993-01-08 1998-06-09 Muti-Tech Systemns, Inc. Dual port interface for communication between a voice-over-data system and a conventional voice system
US5892764A (en) * 1996-09-16 1999-04-06 Sphere Communications Inc. ATM LAN telephone system
US6018571A (en) * 1997-09-30 2000-01-25 Mitel Corporation System for interactive control of a computer and telephone
US6263370B1 (en) * 1997-09-04 2001-07-17 Mci Communications Corporation TCP/IP-based client interface to network information distribution system servers
US20010043234A1 (en) * 2000-01-03 2001-11-22 Mallik Kotamarti Incorporating non-native user interface mechanisms into a user interface
US6373857B1 (en) * 1998-11-13 2002-04-16 Nortel Networks Ltd. Gatekeeper transport address determination in an internet telephony system using a domain alias
US6385192B1 (en) * 1998-03-24 2002-05-07 Siemens Information And Communication Networks, Inc. Method and apparatus for DTMF signaling on compressed voice networks
US6393120B1 (en) * 1998-02-06 2002-05-21 Telefonaktiebolaget Lm Ericsson Arrangement in a network structure
US6498791B2 (en) * 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6519251B1 (en) * 1998-06-08 2003-02-11 Samsung Electronics Co., Ltd. Apparatus and method for interconnecting private exchange system to the internet
US6563814B2 (en) * 1998-04-07 2003-05-13 Northern Telecom Limited Method and apparatus for controlling the operation of a digital telephone switchboard
US6587433B1 (en) * 1998-11-25 2003-07-01 3Com Corporation Remote access server for multiple service classes in IP networks
US6594269B1 (en) * 1996-09-24 2003-07-15 Intervoice Limited Partnership Interactive information transaction processing system on IP telephony platform
US6600733B2 (en) * 1997-02-06 2003-07-29 Verizon Laboratories Inc. System for interconnecting packet-switched and circuit-switched voice communications
US6721306B1 (en) * 1997-03-11 2004-04-13 Verizon Services Corp. Public wireless/cordless internet gateway
US20050249198A1 (en) * 1997-10-08 2005-11-10 At&T Corp. POTS/Packet Bridge
US7120140B1 (en) * 1999-02-26 2006-10-10 Intel Corporation Digital browser phone

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI955093A0 (en) 1995-10-25 1995-10-25 Finland Telecom Oy Datornaetelettelefonsystem och foerfarande Foer styrning av det
SE506775C2 (en) 1996-06-04 1998-02-09 Ericsson Telefon Ab L M Ways and devices for simultaneous telephone and Internet connection on a telephone line
AU4146797A (en) 1996-08-08 1998-02-25 Intelligence At Large, Inc. Teleserver for interconnection of communications networks
US6170011B1 (en) * 1998-09-11 2001-01-02 Genesys Telecommunications Laboratories, Inc. Method and apparatus for determining and initiating interaction directionality within a multimedia communication center

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763356A (en) * 1986-12-11 1988-08-09 AT&T Information Systems, Inc. American Telephone and Telegraph Company Touch screen form entry system
US5764628A (en) * 1993-01-08 1998-06-09 Muti-Tech Systemns, Inc. Dual port interface for communication between a voice-over-data system and a conventional voice system
US5754636A (en) * 1994-11-01 1998-05-19 Answersoft, Inc. Computer telephone system
US5657378A (en) * 1995-04-11 1997-08-12 M Power Corporation Digital screen phone terminal with graphical user interface
US5892764A (en) * 1996-09-16 1999-04-06 Sphere Communications Inc. ATM LAN telephone system
US6594269B1 (en) * 1996-09-24 2003-07-15 Intervoice Limited Partnership Interactive information transaction processing system on IP telephony platform
US6600733B2 (en) * 1997-02-06 2003-07-29 Verizon Laboratories Inc. System for interconnecting packet-switched and circuit-switched voice communications
US6721306B1 (en) * 1997-03-11 2004-04-13 Verizon Services Corp. Public wireless/cordless internet gateway
US6263370B1 (en) * 1997-09-04 2001-07-17 Mci Communications Corporation TCP/IP-based client interface to network information distribution system servers
US6018571A (en) * 1997-09-30 2000-01-25 Mitel Corporation System for interactive control of a computer and telephone
US20050249198A1 (en) * 1997-10-08 2005-11-10 At&T Corp. POTS/Packet Bridge
US6393120B1 (en) * 1998-02-06 2002-05-21 Telefonaktiebolaget Lm Ericsson Arrangement in a network structure
US6385192B1 (en) * 1998-03-24 2002-05-07 Siemens Information And Communication Networks, Inc. Method and apparatus for DTMF signaling on compressed voice networks
US6498791B2 (en) * 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6563814B2 (en) * 1998-04-07 2003-05-13 Northern Telecom Limited Method and apparatus for controlling the operation of a digital telephone switchboard
US6519251B1 (en) * 1998-06-08 2003-02-11 Samsung Electronics Co., Ltd. Apparatus and method for interconnecting private exchange system to the internet
US6373857B1 (en) * 1998-11-13 2002-04-16 Nortel Networks Ltd. Gatekeeper transport address determination in an internet telephony system using a domain alias
US6795867B1 (en) * 1998-11-13 2004-09-21 Nortel Networks Limited Load distribution in an internet telephony system using facility redirection of calls
US6587433B1 (en) * 1998-11-25 2003-07-01 3Com Corporation Remote access server for multiple service classes in IP networks
US7120140B1 (en) * 1999-02-26 2006-10-10 Intel Corporation Digital browser phone
US20010043234A1 (en) * 2000-01-03 2001-11-22 Mallik Kotamarti Incorporating non-native user interface mechanisms into a user interface

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974829B2 (en) * 2006-07-21 2011-07-05 Sunplus Technology Co., Ltd. System for simulating mobile phone and method thereof
US20080020750A1 (en) * 2006-07-21 2008-01-24 Sunplus Technology Co., Ltd. System for simulating mobile phone and method thereof
US20110137854A1 (en) * 2008-07-31 2011-06-09 Thomas Walter System for the management of files
US20100198872A1 (en) * 2009-01-25 2010-08-05 Thomas Norwin Walter System for the Management of Files
US20100198973A1 (en) * 2009-02-02 2010-08-05 Jung Myung-June Electronic apparatus, virtual machine providing appartatus, and method of using virtual machine service
US8639814B2 (en) 2009-02-02 2014-01-28 Samsung Electronics Co., Ltd. Electronic apparatus, virtual machine providing apparatus, and method of using virtual machine service
US9727227B2 (en) * 2011-07-28 2017-08-08 Microsoft Technology Licensing, Llc Multi-touch remoting
US20130031482A1 (en) * 2011-07-28 2013-01-31 Microsoft Corporation Multi-Touch Remoting
US10313399B2 (en) 2012-02-29 2019-06-04 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
US9537899B2 (en) * 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
US20130227272A1 (en) * 2012-02-29 2013-08-29 Microsoft Corporation Dynamic Selection of Security Protocol
US9509817B1 (en) * 2015-10-01 2016-11-29 Global Tel*Link Corporation Communication device enclosure
US20190065015A1 (en) * 2017-08-25 2019-02-28 Salesforce.Com, Inc. System and method for notifying a softphone of navigation change events
US10775969B2 (en) * 2017-08-25 2020-09-15 Salesforce.Com, Inc. System and method for notifying a softphone of navigation change events
US11889028B2 (en) 2021-04-26 2024-01-30 Zoom Video Communications, Inc. System and method for one-touch split-mode conference access
US11916979B2 (en) 2021-10-25 2024-02-27 Zoom Video Communications, Inc. Shared control of a remote client

Also Published As

Publication number Publication date
US7120140B1 (en) 2006-10-10

Similar Documents

Publication Publication Date Title
US20080219240A1 (en) Digital browser phone
US6259692B1 (en) Internet call waiting
US7995721B2 (en) System and method for remote access to a telephone
JP4804600B2 (en) Multimedia telecommunications automatic call distribution system
US6707811B2 (en) Internet telephony for ecommerce
US6785266B2 (en) Internet controlled telephone system
US6449260B1 (en) Multimedia automatic call distribution system
EP1240777B1 (en) A client-server network for managing internet protocol voice packets
US6445694B1 (en) Internet controlled telephone system
EP0721266A2 (en) Collaborative computer system
JP2001326737A (en) Message monitoring application and performance
AU5153200A (en) A system and method for controlling telephone calls through cross platform enabled internet browser
CA2364680C (en) Digital browser phone
WO2000051299A9 (en) Digital browser phone
WO2002039681A9 (en) Unified communications client
JP2000078184A (en) Lan telephone system with voice mail function

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION