US20210051188A1 - Instant communications system having established communication channels between communication devices - Google Patents
Instant communications system having established communication channels between communication devices Download PDFInfo
- Publication number
- US20210051188A1 US20210051188A1 US17/087,461 US202017087461A US2021051188A1 US 20210051188 A1 US20210051188 A1 US 20210051188A1 US 202017087461 A US202017087461 A US 202017087461A US 2021051188 A1 US2021051188 A1 US 2021051188A1
- Authority
- US
- United States
- Prior art keywords
- user
- communication device
- talk
- button
- communication
- 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
Links
Images
Classifications
-
- H04L65/4092—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1073—Registration or de-registration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
- H04L65/4038—Arrangements for multi-party communication, e.g. for conferences with floor control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/56—Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
- H04M3/567—Multimedia conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/142—Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1822—Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
Definitions
- the present disclosure relates to the technical field of voice or video communications using electronic devices connected by wireless and wired networks. More specifically, the disclosure is directed to the technical field of voice or video communications using portable electronic devices connected by a wireless network (e.g., WiFi, Bluetooth, the cellular network, ultra wide band, WiMax) or a wired network (e.g., Ethernet, DSL).
- a wireless network e.g., WiFi, Bluetooth, the cellular network, ultra wide band, WiMax
- a wired network e.g., Ethernet, DSL.
- push-to-talk calls are only half duplex, meaning communication is one way at any time, therefore only one party can talk at a time by seizing the floor first.
- instant messaging software systems that indicate the status of the other users and allow users to send instant messages to each other, but these systems don't provide instant voice or video services.
- a conventional phone call consists of two call legs: one call leg going from the caller to the callee and the other call leg going from the callee to the caller. Basically, both call legs have to be set up before the caller and callee can communicate. Callers and callees don't have control of the call legs separately.
- a caller may only need to speak to a callee without any expectation of any response from the callee. Therefore only an outgoing call leg from the caller to the callee is needed.
- a callee may only want to listen in on a call. Therefore there no need to set up a call leg from the callee to the caller.
- traditional phones there is no option for a caller or a callee to control the call legs.
- VoIP Voice over IP
- This disclosure provides for a communication system in which a communication channel is first established between two communication devices before any calls are placed. Minimal maintenance signaling messages are used to keep the channel up and alive. When a call is placed by a user, there is no call set up.
- One advantage of this setup is that it delivers the instant communications experience to users by removing unnecessary call set up and by providing intuitive user interface that mimics the natural ways people interact with one another. The end result is that users can communicate with one another as if they were all physically present in the same room.
- this disclosure provides for one or more servers and portable communications devices connected via networks for instant communications.
- these devices may be connected to a wide area network, such as the Internet, via a wireless network such as a WiFi, Bluetooth, a cellular network, and the like.
- the devices may also be connected via a wired network, such as Ethernet, or combinations of wired and wireless networks.
- This system facilitates instant communications among users via voice or video with a simple push of a button on corresponding devices.
- there may be no dial tone or ringtone.
- There may be no picking up the call by the callee either.
- one or more incoming and/or outgoing communication may be separately controlled by the users through button operations. The communication may be relatively instant and direct as if the users were physically present in the same room.
- the instant communication system of this disclosure may include several operational modes. These operational modes are discussed below.
- One-way communications means one person can speak to another person, but not vice versa.
- Two-way communications means two people can talk with each other.
- One-to-one means the communication is between two people.
- One-to-many means the communication is between one person and multiple people at the same time but separately.
- An example may be a dispatcher communicating with the taxi drivers that the dispatcher manages. The tax drivers can hear the dispatcher and talk with the dispatcher, but the taxi drivers cannot communicate with each other.
- Many-to-many means the communication is among multiple people at the same time, like in a traditional conference call.
- Voice means only voice communications may be used.
- Video means both voice and video communications may be used.
- Users of the system can control the selection of the communication mode through the user interface of the disclosed device. For instance, a user may select the mode of a one-way one-to-one voice call. Alternatively, the user may select the mode of a one-way one-to-many video call.
- the devices that support video calls may include a display in addition to other components, such as a speaker and a microphone.
- voice may also refers to any audio signals. Therefore, throughout this disclosure, “voice” and “audio” may be used interchangeably.
- the system may also be extended to support video communications.
- FIG. 1 illustrates an aerial view of an exemplary communication device according to aspects of this disclosure.
- FIG. 2 illustrates an example of a Talk Button and a Silence Button of the communication device according to aspects of this disclosure.
- FIG. 3 illustrates a side view of the communication device according to aspects of this disclosure.
- FIG. 4 illustrates an exemplary hardware diagram of the communication device according to aspects of this disclosure
- FIG. 5 illustrates multiple communication devices in communication with each other and a communication server according to aspects of this disclosure.
- FIG. 6 illustrates an example of configuring the channels of the communication device according to aspects of this disclosure.
- FIG. 7 illustrates a conference call among multiple communication devices according to aspects of this disclosure.
- FIG. 8 illustrates an example of a daisy-chained conference call among multiple communication devices according to aspects of this disclosure.
- FIG. 9 illustrates a loop that may be formed by multiple connected communication devices according to aspects of this disclosure.
- FIG. 10 illustrates an example of dropping a second host from a conference call according to aspects of this disclosure.
- FIG. 11 illustrates logic flow for recording a voicemail according to aspects of this disclosure.
- FIG. 12 illustrates a bottom-up view of the communication device according to aspects of this disclosure.
- FIG. 13 illustrates another example of configuring the channels of the communication device according to aspects of this disclosure.
- FIG. 14 illustrates an exemplary call flow for adding a channel to the communication device according to aspects of this disclosure.
- FIG. 15 illustrates an exemplary call flow for talk initiation and talk termination according to aspects of this disclosure.
- FIG. 16 illustrates an exemplary call flow for broadcasting a call according to aspects of this disclosure.
- FIG. 17 illustrates an exemplary call flow for a conference call activation according to aspects of this disclosure.
- FIG. 18 illustrates an exemplary call flow for dropping a conference call participant by the host of the conference call according to aspects of this disclosure.
- FIG. 19 illustrates an exemplary call flow for dropping a conference call by a participant of the conference call according to aspects of this disclosure.
- FIGS. 20A-20B illustrates an exemplary call flow for activating a conference call to all connected devices according to aspects of this disclosure.
- FIG. 21 illustrates an exemplary call flow for terminating a conference call to all connected devices according to aspects of this disclosure.
- FIG. 22 illustrates an exemplary call flow for adding a participant to a conference call by a second host according to aspects of this disclosure.
- FIG. 23 illustrates an exemplary call flow for dropping a second host of a conference call by the host of the conference call according to aspects of this disclosure.
- FIG. 24 illustrates an exemplary graphical user interface for a touch-screen embodiment of the communication device according to aspects of this disclosure.
- FIG. 25 illustrates another exemplary graphical user interface for a touch-screen embodiment of the communication device according to aspects of this disclosure.
- FIG. 1 illustrates an aerial view of an exemplary communication device 102 according to aspects of this disclosure.
- the communication device 102 includes one or multiple microphones 104 , speakers 106 , Talk Buttons 108 , Silence Buttons 110 .
- the communication device 102 may also have a Talk to All Button 112 , Silence All Button 114 , Voicemail Button 116 , Away Button 118 and the Instant Call Add 120 and Drop Buttons 122 . While this disclosure references the controls of the communication device 102 as “buttons,” any type of user control may be substituted for the disclosed buttons, such as knobs, switches, levers, or other such user controls.
- the communication device 102 may have various light indicators including a Channel Light 124 , a Connectivity Light 126 , a Talk Light 128 , a Silence Light 130 , a Talk to All Light 132 , a Silence All Light 134 , a Voicemail Light 136 and an Away Light 138 .
- the exemplary communication device 102 may be equipped with more than one of each of the light indicators and/or user controls.
- the communication device 102 may have multiple Talk Buttons, Silence Buttons, Channel Lights, Talk Lights, Silence Lights, and multiple other such user controls and light indicators.
- the device 102 may also have a volume control 140 , an On/Off Button 142 , an audio line input/output 146 , and a USB port 144 .
- a communications channel on the device 102 may be a bi-directional physical or logical connection to another device through which information flows.
- Such information may include multimedia streams, system signaling messages, and other such information.
- a multimedia stream may include audio, such as speech, music, sound, or other types of audio, video, such as a movie, webcam recording, or other types of video, or combinations thereof.
- a multimedia stream may also contain only type of multimedia content (e.g., an audio-only multimedia stream or a video-only multimedia stream).
- the pair of Talk and Silence Button 108 & 110 is used to operate on a channel. There is a one-to-one mapping between a channel and a pair of Talk and Silence Buttons 108 & 110 .
- One or more Channel Lights 124 may indicate the status of the channels.
- the device 102 is connected to other devices (the “connected devices”) via one or more communication channels. Accordingly, the device 102 may be in communication with multiple connected devices. On the device 102 , each channel may be associated with an identifier that maps one-to-one an identifier of a connected device, such as an IP address. This mapping information may be configured and stored in a memory of the device 102 .
- the Talk Button 108 When the Talk Button 108 is pressed down, the corresponding channel is in a talk mode. The corresponding Talk Light 128 turns red. When the button 108 is up, the corresponding channel is in the mute mode. The Talk Light 128 turns off. Pressing down the same button 108 repeatedly allows a user to alternate between talk and mute modes.
- a one-to-one multimedia stream from the caller to the callee is initiated.
- the multimedia stream may include the caller's voice which is sent to the callee's device. If the callee responds by pressing down the Talk Button 108 on his device, then another one-to-one multimedia stream from the callee to the caller is initiated. Pairing these two multimedia streams of opposite directions creates the two-way one-to-one communications between the two devices.
- the Silence Button 110 When the Silence Button 110 is up, it is in listen mode. The corresponding Silence Light 130 is dark. When the Silence Button 110 is down, it is in silence mode. The Silence Light 130 turns on. An incoming multimedia stream on the corresponding channel is silenced. Pressing down the same button repeatedly allows a user to alternate between listen and silence modes.
- the placement of the Talk Button 108 and Silence Button 110 is designed to conveniently allow a user to press on the buttons individually or together.
- the communication device 102 may forego audio mixing and may transmit multimedia streams containing only audio, such as the user's voice.
- the user is able to talk to all the users of the connected devices (the “connected users”).
- the connected users can hear the user.
- the Talk to All Light 132 and all the Talk Lights turn on.
- the user presses on the Talk to All Button 112 again he releases the Talk to All Button 112 as well as all the Talk Buttons on the device.
- This operation deactivates all the outgoing audio streams.
- the Talk to All Light 132 and all the Talk Lights turn off. In this case, the connected users can't hear the user anymore.
- the Instant Call Add/Drop Button 120 - 122 is used to add or drop calls.
- the Call Add Light turns on when the Call Add Button is down.
- Away Button 118 If a user is walking away from his device, he can press down the Away Button 118 .
- the Channel Lights on the connected devices corresponding to the user/device turn flashing green. This informs the users of the connected devices that this user is away.
- the Away Button 118 When the Away Button 118 is down, the Away Light 138 turns on.
- the Connectivity Light 126 indicates whether the device is connected to the Instant Communications Servers or not.
- the On/Off Button 142 serves several purposes.
- buttons that may be up by default will be returned to the up position.
- the buttons that may be down by default will be returned to the down position. This feature allows a user to return buttons to their default position with one push of a button.
- the volume control 140 adjusts the volume of the speakers.
- the audio line is for the audio input and output connected with a headset.
- a lithium-ion battery can be charged through the USB port 144 .
- the USB port 144 can be used for the device to connect to other machines such as a laptop via a USB cable.
- FIG. 3 illustrates a side view of the communication device 102 according to aspects of this disclosure.
- the device 102 may take on the shape of a dome.
- FIG. 4 illustrates an exemplary hardware diagram of the communication device 102 according to aspects of this disclosure.
- a processor such as a Complex Instruction Set Computing (“CISC”) or a Reduce Instruction Set Computing (“RISC”) processor, may control one or more aspects of the device.
- Audio CODEC encodes analog audio as digital signals and converts digital signals back into analog signals. Even though the device may use a wired network such as the Ethernet, or a cellular network, the device 102 may also use a wireless network interface that is cellular, WiFi or Bluetooth.
- the processor may further include additional sub-modules, such as an audio mixer, echo cancellation, and noise reduction.
- Echo Cancellation and Noise Reduction functions are used to enhance the voice quality by removing echo and reducing noise in the speech.
- the Audio mixer function is leveraged for a conference call where multiple audio streams from conference call participants are mixed into a composite audio stream of multiple voices.
- FIG. 5 illustrates multiple communication devices in communication with each other and a communication server according to aspects of this disclosure.
- the device may be connected via one or more wireless networks to the Internet.
- One or more communication servers may communicate with the devices.
- This system architecture supports both instant voice and video communications.
- FIG. 5 illustrates four devices
- the system architecture may support any number of devices. Each device supports certain number of channels. If the channel operation uses physical buttons, then the number of channels on a device is limited by the number of Talk Button 108 and Silence Button 110 pairs. In another implementation, where the channel operation uses virtual buttons on touch screen, then the number of channels supported on the touch screen may be nearly unlimited.
- a user of a device can use the device for instant communications with another user of another device. Additionally a group of users can communicate with each other by using their devices. But first, they need to configure the channels on their devices to correspond to the other users or devices.
- FIG. 6 illustrates an example of configuring the channels of the communication device according to aspects of this disclosure.
- User_ 1 is the user of Device 1
- User_ 2 is the user of Device_ 2
- User_ 3 is the user of Device_ 3
- User_ 4 is the user of Device 4 .
- channel 1 , 2 and 3 on a device refer to the three channels.
- the three channels are denoted by Channel 1 , Channel 2 and Channel 3 , respectively.
- the Talk Button of Channel 1 on Device_ 1 is referred to as “Talk 1 ”
- the Silence Button of Channel 1 on Device 1 is referred to as “Silence 1 ”.
- the Channel Light of Channel 1 on Device_ 1 is referred to as “Channel Light 1 ”.
- FIG. 6 shows the mapping between a channel and another device.
- user_ 1 configures Channel 1 , Channel 2 and Channel 3 on Device_ 1 to connect to three devices respectively: Device_ 2 , Device_ 3 and Device 4 .
- Channel 4 isn't configured on Device 1 .
- Device_ 2 , Device_ 3 and Device 4 are called “connected Devices” to Device 1 .
- Channel 2 of Device_ 2 is connected to Device_ 3
- Channel 3 of Device 4 is connected to Device_ 3 .
- users can program each channel on his device by speaking a nickname into the microphone during the configuration process. For instance, on Device 1 , Channel 1 connects to User 2 whose nickname is John. User 1 of Device 1 can configure Channel 1 by speaking “John” to the microphone during the configuration process. This way, when User_ 1 speaks to Device_ 1 by saying a command “Call John”, Device_ 1 will initiate a audio stream from Device 1 to Device 2 . Command “Call John” is equivalent to User_ 1 pressing down the Talk_ 1 button.
- the voice communications from a caller to a callee is instant. By simply pressing down the Talk Button 108 , the caller can speak to a callee directly. There may be no dialing of digits and there may be no dial tone.
- the callee may first hear a sound to indicate an incoming audio stream.
- a Channel Light corresponding to the caller's device flashes a red light to indicate which channel the caller is coming though.
- the callee may then hear the voice of the caller instantly on speaker without any need to do anything. It may appear like two people communicate with each other as if they were physically present in the same room.
- the callee can then decide whether to respond or not. If the callee decides to respond, he/she can simply press down the Talk Button next to the flashing red light and speak directly to the caller. Now the caller and callee can speak with each other.
- a user can talk to all the channels connected to a pre-configured set of devices. By simply pressing down the Talk to All Button 112 , the user can speak to a group of users directly. The group of users can hear the user instantly on speaker.
- a user can toggle between Talk Buttons including the Talk to All Button 112 seamlessly and effortlessly. For instance, a caller can speak to a first callee by pressing down the corresponding Talk Button (the first Talk Button), then she presses down another Talk Button (the second Talk Button) to switch to speak to a second callee. At this time, the first Talk Button is released and the paired Silence Button goes down and stays down. Since the second Talk Button is pressed down, she can talk to the second callee. Then she can switch back to the first callee by pressing down the first Talk Button.
- Silence Button 110 Using the Silence Button 110 , a user can control what he hears. By pressing down the Silence Button 110 of a channel, he can silence the channel. By pressing down the Silence All Button 114 , he can silence all the channels.
- a user can indicate his availability via an Away Button 118 .
- By pressing down the Away Button 118 he indicates to the other connected devices that he is away.
- multiple modes of communications are supported. They include one way one-to-one and one-to-many communications. They also include two way one-to-one, and one-to-many communications. Furthermore, an instant conference call can be supported among multiple users.
- the basic one way one-to-one communication channel is used as a basic building block to construct more complex communications modes.
- LAN Local Area Network
- IP Internet Protocol
- the Talk Button 108 operation including the Talk to All Button 112 on a device follows these operation rules:
- the button stays down when the user stops pressing.
- the Talk to All Button 112 When a user presses down the Talk to All Button 112 on the device, the Talk to All Button 112 stays down when the user stops pressing. Additionally all the Talk Buttons on the device go down and stay down. The user's voice is sent to all the connected devices.
- Talk Button 108 If a user presses on a Talk Button 108 that is already down, then the Talk Button 108 is released. Releasing the Talk Button 108 stops sending the user's voice over the corresponding channel. It is similar to the mute feature on a traditional phone.
- buttons When a user presses down two or more Talk Buttons simultaneously, then these buttons stay down together when the user stops pressing.
- Talk Buttons are down on a device, and the user presses down another Talk Button that is up, then all the Talk Buttons that were down are released, and this Talk Button remains down. Additionally, the Silence Buttons pairing with the previously down Talk Buttons go down and stay down.
- a user can press on the Talk to All Button 112 again. This will release the Talk to All Button 112 as well as all the Talk Buttons. Alternatively he can press on a Talk Button which may be down already. Pressing on this Talk Button 108 will release this Talk Button as well as the Talk to All Button 112 . If any one of the Talk Buttons on the device is up, then the Talk to All Button 112 will be released. However, the other Talk Buttons remain down.
- a Talk Button 108 has a Talk Light 128 that can light up when the Talk Button 108 is down, and the Talk Light 128 turns off when the Talk Button 108 is released.
- the Talk Button 108 When the Talk Button 108 is pressed down on one device, it causes a corresponding Channel Light on the connected device to turn flashing red light on.
- the Silence Button 110 operation including the Silence All Button 114 on a device follows these operation rules:
- buttons stay down when the user stops pressing.
- the Silence All Button 114 When a user presses down the Silence All Button 114 on the device, the Silence All Button 114 stays down when the user stops pressing. Additionally all the Silence Buttons go down and stay down.
- a Silence Button 110 has a Silence Light 130 that can light up when it is pressed down, and the light turns off when the Silence Button 110 is released. However the operation on the Silence Button 110 on one device doesn't change the Channel Light on the corresponding connected device. So the user of the connected device doesn't know he is being silenced.
- a Silence Button 110 on a device If a Silence Button 110 on a device is down, a user presses on the Talk Button 108 corresponding to the same channel, then the Silence Button 110 is released. For example, when the Silence_ 1 button on Device_ 1 is pressed down, User_ 1 can't hear User_ 2 . Then if User_ 1 presses down Talk_ 1 button on Device 1 , then Silence_ 1 button is released. At this time, User_ 1 and User_ 2 can hear each other. Note that the Channel Light of the corresponding channel on Device_ 2 behaves independently from the Silence Button 110 actions on Device 1 .
- a first Talk Button on a device If a first Talk Button on a device is down, then a user presses on a second Talk Button that is up, then the first Talk Button 108 is released. Additionally, the Silence Button paired with the first Talk Button goes down and stays down. This feature allows a user to toggle between two channels with minimal operation.
- the Voicemail Light indicates the existence of new voicemail messages. Pressing down the Voicemail button, a user can listen to voicemail messages starting with the most recent ones first. Pressing on the button again, the user deletes the current message and skips to the next voicemail message. The current message is deleted even if it is not completely listened to. Instead of pressing the Voicemail Button once, if a user quickly presses the button twice, the user can save the current message and skips to the next message.
- a Call Add Button is used to add another user to an existing call, creating essentially an instant conference call.
- To add a user press the Call Add Button first, then press down the Talk Button 108 corresponding to the added user.
- the Call Add Button does not stay down when pressed.
- the Call Add Light will turn red to indicate the existence of a conference call.
- the corresponding Talk Button 108 stays down and the Talk Light 128 turns red.
- On the connected device of the added user he will hear a sound alert for the incoming audio stream. Additionally, the corresponding Channel Light on his device flashes red light.
- a user can also add all the users on his device to the conference call at once by pressing the Call Add Button first, then press down the Talk to All Button 112 .
- the Call Add Button does not stay down when pressed.
- the Call Add Light will turn red to indicate the existence of a conference call.
- the Talk to All Button 112 as well as all the Talk Buttons on the device stay down.
- the corresponding Talk to All Light 132 as well as all the Talk Lights turn red.
- On the devices of the corresponding users they will hear a sound alert for the incoming audio stream. Additionally, the corresponding Channel Lights on their devices flash red light.
- a Call Drop Button is used to terminate a call with another user.
- a Call Drop Button has no light indicator.
- the conference call host presses the Call Drop Button first, and then presses the already down Talk Button 108 corresponding to the participant to be dropped. The Talk Button 108 will be released.
- the call between the host and the participant is terminated. Both devices stop sending audio streams to each other. Both users will hear a sound alert indicating the termination of the call. Additionally, the corresponding Talk Button 108 on the participant's device is released as well. The corresponding Channel Lights on both devices turn green.
- a conference call host can first press the Call Drop Button, and then presses the Talk to All Button 112 . All the Talk Buttons will be released. The call between the host and all the participants is terminated. The participating devices of the conference call stop sending out audio streams. All parties involved will hear a sound alert on the conference call indicating the termination of the conference call. Additionally, the corresponding Talk Buttons on participants' devices are released as well. The corresponding Channel Lights on all the participating devices turn green. Note that the Talk to All Button 112 stays up after the Call Drop Button is pressed first and then the Talk to All Button 112 is pressed next.
- a Channel Light of a channel on a device indicates the status of the channel connected to another device or user. For instance, the Channel Light of Channel 1 on Device_ 1 (Channel Light 1 ) indicates the channel status with Device_ 2 or User_ 2 .
- a Channel Light may have these colors: dark, green, red, flashing red, and flashing green. Alternative or additional colors may also be used.
- Green indicates there is network connectivity between two devices. For instance, Channel Light_ 1 on Device_ 1 and Channel Light_ 1 on Device_ 2 both turn green if a connection between Device 1 and Device 2 is established.
- Flashing green indicates that the user of the other device corresponding to the channel is away. For instance, when Channel Light_ 1 on Device_ 1 is flashing green light, it means that User_ 2 of Device_ 2 is away. There is an Away Button 118 on Device_ 2 . If User_ 2 presses down the Away Button 118 , then the corresponding Channel Lights of Channel 1 on Device 1 , Channel 2 on Device_ 3 and Channel 2 on Device_ 4 are all flashing green. Pressing down the Away Button 118 again, User_ 2 releases the button, and the corresponding Channel Lights of Channel 1 on Device 1 , Channel 2 on Device_ 3 and Channel 2 on Device_ 4 all become green.
- a flashing red light indicates an incoming audio stream on the corresponding channel that hasn't been answered. For instance, if there is an incoming audio stream from Device_ 2 to Device 1 , then Channel Light_ 1 on Device_ 1 turns flashing red. A flashing red light is used to tell the user on which channel the call is coming in from.
- the Channel Light turns steady red.
- the corresponding Channel Light turns steady red.
- the Channel Light is flashing red if there is an incoming multimedia stream.
- the Channel Light is steady red if there are incoming and outgoing multimedia streams on the channel.
- the Channel Light is neither color when there is only an outgoing stream on the channel. For instance, the Channel Light on a device will turn from red light to flashing red light if the user releases the Talk Button 108 of the channel.
- the Channel Light of a channel may be configured to display one color at any given time.
- each of the colors of the Channel Light may be assigned a priority.
- the display priority may be in the order of high to low: red, flashing red light, flashing green light, and green light.
- the Channel Light For instance, if a user is away, and the user presses down a Talk Button 108 , then the Channel Light on the connected devices may indicate flashing red light. Or if a user is away, and the connectivity between the two devices is good, then the flashing green light on the connected devices may be on.
- the Talk to All Light 132 When the Talk to All Button 112 is not pressed down, the Talk to All Light 132 remains dark. If a user presses down the Talk to All Button 112 , the Talk to All Light 132 turns steady red. The Talk to All Light 132 may be embedded inside the Talk to All Button 112 . One-way one-to-many audio streams may be initiated from a first device to the other connected devices.
- the Talk Light 128 When a Talk Button 108 is not pressed down, the Talk Light 128 remains dark. If a user presses down the Talk Button 108 , the Talk Light 128 turns steady red.
- the Talk Light 128 may be embedded inside the Talk Button 108 .
- the Silence All Light 134 When the Silence All Button 114 is not pressed down, the Silence All Light 134 remains dark. If a user presses down the Silence All Button 114 , the Silence All Light 134 turns steady red. The Silence All Light 134 may be embedded inside the Silence All Button 114 .
- the Silence Light 130 When a Silence Button 110 is not pressed down, the Silence Light 130 remains dark. If a user presses down the Silence Button 110 , the Silence Light 130 turns steady red. The Silence Light 130 may be embedded inside the Silence Button 110 .
- a sound may be played to indicate the incoming audio stream on the receiving device.
- a different sound may be played on both ends of the channel, whenever a channel is terminated using the call drop feature.
- FIG. 6 is a diagrammatic representation of FIG. 6 .
- the Talk_ 1 button on Device_ 1 is pressed down, the audio stream from Device 1 to Device 2 is initiated.
- User_ 1 can speak to User_ 2 and User_ 2 can hear User 1 .
- User_ 1 can't yet hear from User_ 2 .
- pressing down Talk_ 1 initiates the audio stream from Device_ 2 to Device 1 . Pairing these two channels of opposite directions forms the two-way one-to-one communication between Device 1 and Device 2 . Therefore User 1 and User 2 can hear each other.
- a user of a device can deactivate a audio stream by releasing a Talk Button 108 .
- a Talk Button 108 There are multiple ways to release a Talk Button 108 as described by the Talk Button 108 Operation Rules.
- the audio stream is deactivated. For instance, on Device 1 , if both Talk 1 and Talk_ 2 buttons are already down and User 1 releases the Talk 1 button by pressing on it, the Talk_ 2 button stays down. In this case, the audio stream from Device 1 to Device_ 2 is deactivated, but the audio stream from Device 1 to Device_ 3 stays on.
- Users of Device 1 , Device_ 2 , Device_ 3 , and Device_ 4 can establish different types of calls by pressing down different combinations of Talk Buttons. For instance, User 1 can press down the Talk to All Button 112 on Device 1 . As a result, all the Talk Buttons on Device 1 go down and stay down. Now User 1 can be heard by User_ 2 , User_ 3 and User 4 . User_ 2 can press down Talk_ 1 button on Device 2 , and User_ 3 can press down Talk_ 1 button on Device 3 . User_ 1 can hear User_ 2 and User_ 3 . At this time, if User_ 1 presses on the Talk_ 1 button on Device 1 , then the Talk to All Button 112 and Talk 1 button on Device 1 are released. User 2 can't hear User_ 1 anymore. User_ 1 and User_ 3 can still hear each other. User 1 can still hear User 2 .
- a callee may get an incoming audio stream while his device is idle, meaning there is no active channels.
- the Channel Light of the channel flashes red light.
- the voice of the caller is immediately played out via the speaker.
- the callee doesn't need to do anything in order to hear the caller because the Silence Button 110 of the channel is up by default.
- the Talk Button 108 on the callee's device turns red.
- the Channel Lights on both the caller's and the callee's devices will turn red. Additionally, a sound alert is played on the caller's device. The caller will first hear a sound alert and then the callee's voice.
- a callee may get an incoming audio stream while talking to and/or listening to one or more users on certain channels (“the active channels”).
- An incoming audio stream from another caller causes the corresponding Channel Light to flash red light assuming this channel is different from the active channels.
- the callee decides to pick up the call by pushing down the Talk Button 108 of the incoming audio stream channel, then the voice of the incoming audio streamer can be heard by the callee.
- Pushing down the Talk Button 108 of the incoming audio stream channel causes the down Talk Buttons of the active channels to be released, therefore muting the callee on these channels. It also causes the Silence Buttons of the active channels to go down and stay down, thus silencing the active channels.
- User_ 1 of Device_ 1 may speak to User_ 2 and User_ 3 by pressing down Talk_ 1 and Talk_ 2 buttons simultaneously.
- An incoming audio stream comes in on Channel 3 of Device_ 1 from User 4 .
- Channel Light_ 3 flashes red light on Device 1 .
- a sound alert is played on Device 1 .
- User 1 can't hear User_ 4 . If User 1 presses down Talk 3 , then User 1 will hear User_ 4 , and User_ 4 can hear User 1 .
- Essentially two-way audio streams between User 1 and User_ 4 are initiated. Additionally Talk 1 and Talk_ 2 buttons are released, and the Silence 1 and Silence_ 2 buttons go down and stay down.
- An Instant Conference Call may be defined as having more than two parties on a call where all parities can hear each other like on a traditional conference call.
- the difference between the instant conference call and the traditional conference call is that the instant conference call has the instant voice feature. There is no dialing of digits. There is no dial tone or ringtone. It gives users full control of the call through a combination of button operations such as add and drop, Talk and Silence, and Talk to All and Silence All.
- button operations such as add and drop, Talk and Silence, and Talk to All and Silence All.
- Several combinations of the instant conference call operations result in new call features that are not supported by the traditional conference call.
- instant conference calls and conference calls are used interchangeably in this document.
- Traditional conference calls as people know it today are specifically referred to as “traditional conference calls”.
- the host For a user (“the host”) to start an instant conference call, he may use the Call Add Button. He first presses down the Talk Button corresponding to a first participant. He then presses the Call Add Button. Then he presses down a second Talk Button corresponding to a second participant. Note that when the Call Add Button is pressed, it doesn't stay down. Also the Call Add Light turns on when it is pressed and stays on until the conference call is completed. The corresponding Talk Lights also turn red.
- the host presses on the Call Drop Button. Then he presses the Talk Button corresponding to the participant that he intends to drop.
- the Call Drop Button is pressed, it doesn't stay down.
- the corresponding Talk Button is released on the host device and the Talk Light turns off.
- the corresponding Talk Button on the participant's device is also released and the Talk Light 128 turns off.
- a sound alert is played on the conference call to indicate the termination of the call with this participant. Now the participant can't be heard on the conference call.
- the corresponding Channel Lights and the Talk Lights on both the host and the participant's devices turn off.
- the participant For a participant to drop himself off a conference call, the participant presses on the Call Drop Button. Then he presses the Talk Button corresponding to the conference call. When the Call Drop Button is pressed, it doesn't stay down. The corresponding Talk Button is released on the participant's device and the Talk Light turns off. The corresponding Talk Button on the host's device is also released and the Talk Light turns off. Additionally, a sound alert is played on the conference call to indicate the termination of the call with the participant. Now the participant can't be heard on the conference call.
- the host can first press the Call Add Button, then he can simply press the Talk to All Button 112 .
- the Talk to All Button 112 Like a Talk Button 108 , if a Talk to All Button 112 is pressed down, it remains down. The Talk to All Light 132 also turns on. The Talk to All Button 112 represents all the Talk Buttons on the device. Therefore, all the Talk Buttons go down with it and the Talk Lights turn red. The users of all the connected devices are added to the conference call.
- the host can first press the Call Drop Button, then he can simply press Talk to All Button 112 .
- the Talk to All Button 112 represents all the Talk Buttons on the device. Therefore, all the Talk Buttons along with the Talk to All Button 112 on the host's device will be released and the conference call is terminated at once. Additionally, all the corresponding Talk Buttons on the participants' devices are also released.
- a sound alert is played on the conference call to notify all parties that the conference call is terminated.
- the Call Add Light turns off. In other words, the Call Add Light indicates if there is an ongoing conference call hosted by the device or not.
- Audio mixing may be required for a conference call.
- the audio mixing function is provided by the device of the conference call host. Assume that User 1 is the host. Consider two voice calls between the host (User 1 ) and two participants (User_ 2 and 3 ). Without audio mixing, User_ 2 and _ 3 can talk to User 1 , but not to each other. When audio mixing is enabled on Device 1 , Device_ 1 mixes the audio streams as described below, which enables 3-way conferencing, and all three can talk to each other.
- Device_ 1 mixes the voices of User 1 , User_ 2 and User_ 3 and plays out the mixed voices via its speaker.
- Device_ 1 mixes User 1 's voice with the audio stream that it receives from User_ 2 , and sends the mixed voices to User_ 3 .
- And Device_ 1 mixes User 1 's voice with the audio stream that it receives from User_ 3 , and sends the mixed voices to User 2 .
- User_ 2 can hear User_ 3 , and User_ 3 can also hear User_ 2 even though User_ 2 and User_ 3 are not directly connected with each other. All three users can hear each other on the conference call.
- FIG. 7 illustrates a conference call among multiple communication devices according to aspects of this disclosure.
- FIG. 7 illustrates a step-by step process for User_ 1 to start a conference call with User_ 2 and User_ 3 sequentially.
- Step 1 User_ 1 presses down Talk 1 . Now an audio stream from Device 1 to Device 2 is initiated. User 2 can hear User 1 .
- Step 2 User_ 1 presses the Call Add Button, then presses Talk 2 . Now an audio stream from Device_ 1 to Device_ 3 is initiated. User_ 3 can hear User 1 . Now on Device 1 , both Talk_ 1 and Talk_ 2 buttons are down, and the corresponding Talk Lights are red. Additionally, the Call Add Light is turned
- Step 3 User_ 2 hears a sound alert for an incoming audio stream. User_ 2 can also see a flashing red light to indicate on which channel the call is coming in. User_ 2 responds by pressing down Talk 1 , now an audio stream from Device 2 to Device 1 is initiated. User 1 can hear User 2 .
- Step 4 Device 1 mixes User 2 's voice with User 1 's voice and sends the mixed voices to User 3 . Now User 3 can hear User 1 and User_ 2 due to the audio mixing by Device 1 .
- Step 5 User_ 3 hears a sound alert for an incoming audio stream. User_ 3 can also see a flashing red light to indicate on which channel the call is coming in. User_ 3 responds by pressing down Talk 1 button, now an audio stream from Device 3 to Device 1 is initiated.
- Step 6 Device 1 mixes the voices of User_ 2 and User_ 3 and plays it via the speaker. User 1 can hear User_ 3 in addition to User_ 2 . Additionally, Device 1 mixes User 3 's voice with User 1 's voice and sends the mixed voices to User 2 . audio mix Now User 1 , _ 2 , and 3 can all hear each other.
- the host device of an instance conference call is responsible for remembering the structure of the conference call until the last participant leaves the conference call.
- Device_ 1 is responsible for remembering and maintaining the conference call structure.
- Talk Buttons that are already down on the host device. If the host presses on a Talk Button 108 that is already down without pressing the Call Add or Drop Button first, then it releases the Talk Button 108 . Essentially the host mutes the conference call to the corresponding participant so that the participant can't hear the conference call. To un-mute the conference call to the participant, the host presses down the Talk Button 108 again. Again the host device remembers the conference call structure, and adds the participant back to the conference call.
- a Silence Button 110 corresponding to a participant
- it silences the participant on the conference call.
- the participant can still listen in on the conference call.
- User 1 , _ 2 and_ 3 are on a conference call and User 1 is the host of the instant conference call. If User_ 1 presses down Silence_ 1 on Device 1 , then User_ 1 silences User_ 2 on the conference call. However, User_ 2 can still listen in on the conference call.
- a participant of the conference call can also add a new participant by pressing down the Call Add Button, and then pressing down another Talk Button 108 .
- the device of the second host acts as a second audio mixer for the incoming voice streams and sends the mixed voices streams out only to the participants that it hosts.
- the audio mixers of the first host device and the second host device are daisy-chained to support the conference call co-hosted by the host and the second host.
- FIG. 8 illustrates an example of a daisy-chained conference call among multiple communication devices according to aspects of this disclosure.
- FIG. 8 shows a step-by-step activation process of a daisy-chained conference call.
- Step 1 and 2 User_ 1 initiates an instant conference call with User_ 2 and_ 3 by pressing down Talk_ 1 on Device_ 1 first, then Call Add Button, and then Talk_ 2 on Device_ 1 .
- Step 3 and 4 User_ 2 and User_ 3 respond to the conference call by pressing down Talk_ 1 on Device_ 2 and Talk_ 1 on Device_ 3 , respectively.
- Step 5 User_ 3 now adds User_ 4 into the conference call by pressing the Call Add Button and then Talk 3 on Device 3 .
- Step 6 User_ 4 responds to the conference call by pressing down Talk_ 3 on Device 4 .
- Device_ 1 Since Device_ 1 invited Device_ 2 and Device_ 3 to the conference call, Device_ 1 is responsible for providing the audio mixing function to Device_ 2 and Device_ 3 .
- Device_ 1 mixes the incoming audio stream from Device_ 2 with User 1 's voice into a composite audio stream (# 2 ) as shown in FIG. 8
- Device_ 1 then sends the composite Audio Stream # 2 to User_ 3 .
- Device_ 1 mixes the incoming audio stream from Device_ 3 and User 1 's voice into a composite audio stream (# 1 ).
- Device_ 1 then sends the composite Audio Stream # 1 to User_ 2 .
- Device_ 3 receives the audio stream # 2 which contains the voices of User 1 and User 2 .
- Device 3 mixes Audio Stream # 2 with User 3 's voice into Audio Stream # 5 and sends it to Device 4 .
- Device 3 also receives the audio stream # 6 which contains User 4 's voice.
- Device 3 mixes Audio Stream # 6 with User 3 's voice into Audio Stream # 4 and sends it to Device 1 .
- Device 3 also mixes Audio Stream # 2 and # 6 , and plays it out via its speaker.
- Audio Stream # 5 contains the voices of User 1 , User_ 2 and User_ 3
- User_ 4 can hear all parties.
- Audio Stream # 1 contains voices from User 1 , User_ 3 and User_ 4 , User_ 2 can hear all participants and the host.
- Audio Stream # 1 voices of User 1 , _ 3 , and _ 4
- Audio Stream # 2 voices of User 1 and_ 2
- Audio Stream # 3 voices of User_ 2
- Audio Stream # 4 voices of User_ 3 and _ 4
- Audio Stream # 5 voices of User 1 , _ 2 and _ 3
- Audio Stream # 6 voices User_ 4
- FIG. 9 illustrates a loop that may be formed by multiple connected communication devices according to aspects of this disclosure.
- a participant can't add the host to the conference call because if the participant presses the Talk Button 108 corresponding to the host, the Talk Button 108 is released. This prevents a direct loop from forming between the host and the participant. Despite this, there is still the possibility of loop forming in an indirect way.
- User 1 , _ 2 , _ 3 and _ 4 are on a conference call as shown in FIG. 9 .
- User_ 1 is the first host and User 3 is the second host. If User 4 adds User_ 1 into the conference call, then a loop among User 1 , _ 3 and _ 4 could potentially be formed.
- Device_ 4 mixes Audio Stream # 5 (note User 1 's voice and User 2 's voice are not present) with User_ 4 's voice, and sends it to User 1 .
- Device_ 4 also mixes stream # 8 (User 1 's voice) with User_ 4 's voice, and sends it to User_ 3 .
- Essentially Device 3 , _ 4 and Device_ 1 are having a conference call hosted by Device_ 4 .
- Audio Stream # 1 no voice
- Audio Stream # 2 no voice
- Audio Stream # 3 voice of User_ 2 (silenced by Device 1 )
- Audio Stream # 4 voices of User_ 3 , _ 4 and 1 (silenced by Device 1 )
- Audio Stream # 5 voices of User_ 3
- Audio Stream # 6 voice of User_ 4 and User_ 1
- Audio Stream # 7 voices of User_ 3 and 4
- Audio Stream # 8 voice of User_ 1
- User_ 4 can hear User 1 and _ 3 .
- User_ 3 can hear User_ 4 and User 1 .
- User 1 can hear User_ 4 and _ 3 .
- Essentially a conference call among User 1 , User_ 3 and User_ 4 is initiate initiated and is hosted by Device 4 . A potential loop is avoided in this case.
- a loop forms during a conference call, it can be confusing to participants.
- One way to handle it is to let the participants handle it. They can try to sort it out by dropping the participant that caused the loop. Or they can terminate the conference call entirely and restart the conference call.
- the second participants when there are multiple hosts for a conference call, when one host drops a participant who is a second host for other participants (“the second participants”), then the second host and the second participants are dropped from the conference call portion hosted by the first host. However, the second host and the second participants can continue with the conference call amongst themselves.
- FIG. 10 illustrates an example of dropping a second host from a conference call according to aspects of this disclosure.
- User_ 3 is dropped from the original conference call from FIG. 8
- User_ 3 and User 4 are still on a call between themselves. Note that the host can only drop the portion of the conference call that he started, but he can't drop the portion that was started by another host.
- a Voicemail Light on a device flashes red as soon as a voice message arrives. If the user of the device presses the Voicemail button, then he will start hearing the voicemail messages with the newly recorded message being played first. The Voicemail button doesn't stay down when pressed. Before each message is played, the device will announce the channel from which the message came in on. Pressing the Voicemail button again, the user skips from the current message to the next message. Voicemail messages are automatically deleted after they are listened to even if the user doesn't finish listening to the message.
- FIG. 11 illustrates logic flow for recording a voicemail according to aspects of this disclosure.
- Talk_ 1 corresponds to a channel connected to Device 2 .
- Device 1 sends a “Talk Initiation” message to Device 2 .
- the Channel Light on Device_ 2 corresponding to the incoming audio stream flashes red light.
- Device_ 2 sends a NACK message to Device_ 1 to indicate that Device_ 2 is busy or unavailable. If there is at least one active channel on Device_ 2 , then Device_ 2 is busy. An active channel may have an incoming audio stream, outgoing audio stream, or both. If either a Silence Button 110 or a Talk Button 108 or both are down on Device_ 2 , then Device_ 2 is unavailable.
- Device_ 2 After sending the NACK message, Device_ 2 also starts to record User 1 's voice. Upon receiving an NACK, Device_ 1 plays a message like “Callee isn't available, please leave a message.” User_ 1 continues talking to leave a message. User_ 1 presses Talk_ 1 to release the button. Device_ 1 sends a Talk Termination message to Device_ 2 . Device_ 2 then sends an ACK and stops recording User 1 's voice.
- the sender can log into his account on a website through the Internet. In his account, there is a calendar. The sender can specify a specific time for the streaming content to be delivered. He also specifies the sender's name and the recipient's Device Name(s). There might be one or multiple recipients. The recipients may have given permission to receive streaming web content.
- the streaming content can be the recorded voice of the user or a song or a combination of various audio contents.
- the website is hosted by a web server as part of the Instant Communications System.
- the streaming content is stored on the Media Server.
- the Media Server can be a third party server. Additionally, the Media Server has its own streaming contents from which a user can select from (e.g., radio stations, pod cast).
- the Media Server When the scheduled time arrives, the Media Server will send the streaming content the recipient's device.
- the recipient's device will play the stream content on the channel of the sender's device.
- the recipient's device will play the streaming content immediately if the Silence Button 110 for the sender isn't down and the speaker isn't busy.
- This feature could also be used as a reminder or an alarm.
- a user can pre-program some streaming content (e.g., voice message or music) to serve as a reminder or an alarm.
- some streaming content e.g., voice message or music
- Streaming content playing on a device has a lower priority. It is preempted by user activities. For instance, when an incoming audio stream comes into the device, it preempts the streaming content. Or if a user presses the Talk Button 108 , it preempts the streaming content. Or if a user presses the voicemail message button, it preempts the streaming content.
- IP packets There are two types of IP packets in the call flows:
- Signaling messages include Talk Initiation, Talk Termination, Call Add, Call Drop, ACK, NACK, Request IP Address, Return IP Address, Add Connection, Add Connection Accepted, etc.
- Signaling messages can use either TCP/IP or UDP/IP protocol.
- each signaling message sent by a device to another device there contain the Device Names of the sender and the receiver.
- the hardware ID and the Device Name of the sender In each message sent by a device to the Instant Voice Server, there contain the hardware ID and the Device Name of the sender. In each message sent by the Instant Voice Server to a device, there contain the hardware ID and the Device Name of the receiver.
- Bearer traffic packets carrying multimedia content including audio and video typically use UDP/IP protocol.
- Each bearer traffic packet may be time stamped with the accuracy on the order of millisecond by the device generating the packets.
- the timestamps will be used to sort packets that are out of order and to discard late packets.
- FIG. 12 illustrates a bottom-up view of the communication device according to aspects of this disclosure.
- a device 102 may or may not have a screen 1202 or data entry mechanism 1204 (e.g., a keyboard). If the device has a screen 1202 and a data entry mechanism 1204 as shown in FIG. 12 , then configuration of the device can be done through these interfaces.
- a screen 1202 or data entry mechanism 1204 e.g., a keyboard
- the configuration may be done through a configuration machine such as PC, a laptop, a tablet, or a smartphone that has a display and data entry mechanism.
- the configuration machine is connected to the device locally either via a cable (e.g., a USB cable) or via a wireless connection (e.g., infrared).
- the configuration machine needs to have the configuration software installed on the machine to manage the device.
- the software can be downloaded from the Internet or an application store, or copied from a disk.
- Event Indicator that tells the user that there is an incoming event that needs to be handled. For instance, if the device receives a request to connect from another user, the Event Indicator will turn on. The user will then know to handle the request through one of the three ways to configure the device.
- Two or more devices are typically sold as a package. After plugging in the power, the user first needs to connect the devices to the network. For instance, if there is a WiFi network, then the user will select the Access Point ID and enter the WEP key on each of those devices. The configuration interface will indicate that the WiFi Connection is successful.
- Each device is pre-configured to connect with the Instant Communications Server as soon as it establishes a Internet connection. For instance, each device is pre-configured to contact a certain Universal Resource Locator (URL) or a certain IP address where the Instant Communications Server is located. If the connection from the device to the Instant Communications Server is successful, then the Connectivity Light 126 will turn green. At this point, the Instant Communications Server has obtained the device's IP address. Since this is a portable device, the IP address of the device may change from time to time and the device will update the Instant Communications Server with the new IP address.
- URL Universal Resource Locator
- IP address IP address
- the Instant Communications Server is not available for various reasons.
- One reason could be that the devices reside on a LAN that isn't connected to the Internet. Therefore this group of devices can't connect to the Instant Communications Server.
- the system may still allow the devices on the same LAN to communicate with each other in the absence of the Instant Communications Server.
- the devices on the same LAN needs to discover each other and establish connectivity with each other.
- Each device has a globally unique hardware ID that is hardwired in the device by the manufacturer.
- the hardware ID uniquely identifies the device.
- Each device may have a globally unique name configured by a user and approved by the system. This unique name is called the Device Name. Associated with the Device Name is the password.
- a user might label his device with a Device Name representing a person or a location. Depending on the application, the Device Name of a device might be person's name, such as John. Alternatively, if the device is distributed in a big house and functions like an intercom system, then the Device Name for the device might be “Living Room”.
- the Device Name and password may be configured for the device. This may bind the hardware ID with the Device Name.
- the Device Name and password, along with the device's hardware ID and IP address are sent to the Instant Communications Server The Instant Communications Server grants the selection of Device Name and password, and the binding of Device Name with the hardware ID.
- the Instant Communications Server maintains the information of all the devices, such information includes hardware ID, the Device Name and password, the IP address of the device, network configuration parameters, and channel configuration.
- FIG. 13 shows an example of the configuration.
- a user may be an administrator of multiple devices.
- the user can create a globally unique User Name for all the devices that he manages.
- the User Name is used as a login name for the user's account accessed via the web site provided by the Instant Communications Server. Associated with the User Name is the password. Once logged in, the user can manage multiple devices under one account via the Internet if these devices are already configured to connect the Instant Communications Server.
- the hardware ID of the device is bound with the Device Name.
- a user can change the Device Name of a device to another Device Name.
- the device will update the Instant Communications Server with the new Device Name.
- the next step is to configure each device to connect to other devices.
- the connection to another device is called a channel.
- FIG. 13 illustrates an example of configuring the channel of the communication device according to aspects of this disclosure. For instance, in FIG. 13 , a user can configure each channel on a device in the following way.
- the device in FIG. 13 is called Device 1 .
- the user of the device is called User 1 .
- Channel 1 on Device 1 refers to the connection with Device 2 whose user is User 2 .
- Channel 2 on Device 1 refers to the connection with Device 3 whose user is User 3 .
- Channel 3 on Device 1 refers to the connection with Device 3 whose user is User 4 .
- Talk_ 1 and Silence_ 1 buttons are also included in the connections with Device 2 , _ 3 and _ 4 . If the connections with Device 2 , _ 3 and _ 4 are good, then Channel Light 1 , _ 2 and _ 3 on Device 1 are green. Note that Channel 4 is not configured, therefore Channel Light_ 1 is dark.
- the device can be configured remotely via the Internet by logging in with the User Name and password combination.
- a user can remotely add wireless connections such as a new WiFi access point.
- a user can configure channels as well.
- a user can also accept or reject a request to add another user.
- FIG. 14 illustrates an exemplary call flow for establishing a channel between two devices according to aspects of this disclosure.
- User_ 1 configures Channel 1 to correspond to Device_ 2 by entering the Device Name “Device 2 ”.
- Device 1 then sends a “Request for IP Address for Device_ 2 ” message to the Instant Communications Server.
- the Instant Communications Server returns with an IP address for Device_ 2 .
- Device 1 then sends an “Add Connection” message to Device_ 2 using Device 2 's IP address as destination.
- the message also includes the Device Name “Device_ 2 ” as the destination device, and the Device Name “Device 1 ” as the source device.
- User_ 2 of Device_ 2 can accept or deny the request. User_ 2 can also block any further requests from the user. If User_ 2 accepts the request, Device_ 2 sends an “Add Connection Accepted” message back to Device 1 . Additionally, User_ 2 needs to select a channel that corresponds to Device 1 .
- Channel Light 1 on Device 1 and Channel Light 1 on Device_ 2 both turn green.
- both devices can identify each other by the device names and know how to communicate with each other by knowing the IP addresses of each other.
- the connected device is mapped to a specific channel.
- Each channel on the device has a channel identifier. All of this configuration information including channel identifier, device name corresponding to the channel, and the IP address corresponding to the connected device is stored at the device.
- FIG. 6 shows an example of the mapping between channels and devices among multiple connected devices.
- the call flow for adding a channel can be altered so that the IP Address of Device 2 is not sent to Device_ 1 because Device_ 1 isn't approved yet by User_ 2 of Device_ 2 .
- the Instant Communications Server acts as an intermediary.
- the Instant Communications Server will not return with an IP address for Device 2 .
- Device 1 sends an “Add Connection” message to the Instant Communications Server instead.
- the Instant Communications Server forwards the message to Device_ 2 . If User_ 2 accepts the request, Device_ 2 sends an “Add Connection Accepted” message back to the Instant Communications Server which forwards the message to Device 1 .
- Now Device_ 1 and Device_ 2 are connected and configured on each other's devices. After Device_ 1 is accepted by Device_ 2 , the Instant Communications Server will return the IP address of Device_ 2 when requested.
- a user of a first device wants to remove a connection with a second device
- the user can reconfigure the corresponding channel to None (no one), or to a third device.
- the user's device sends a “Drop Connection” message to the second device.
- the second device responds with a confirmation to the first device. Now the corresponding Channel Lights on both the first and the second devices go dark.
- a device will update the Instant Communications Server with the following information on a periodic basis:
- Network connectivity parameters e.g., WiFi Access Point ID and WEP key
- Device 1 , Device_ 2 , Device_ 3 and Device 4 are configured as shown in FIG. 6 .
- the configuration information is stored in the memory of each device. Furthermore, each device is connected to the other three devices.
- FIG. 15 illustrates an exemplary call flow for talk initiation and talk termination according to aspects of this disclosure.
- User_ 1 presses down Talk_ 1 button.
- the processor of Device_ 1 maps Talk_ 1 to Device_ 2 based on the configuration information stored in memory. Additionally the processor maps Device_ 2 to its IP address.
- Device_ 1 uses the IP address of the Device_ 2 as an IP packet destination, Device_ 1 sends a Talk Initiation message to Device_ 2 .
- Device_ 1 starts sending User 1 's voice in the form of IP packets to Device_ 2 .
- Device_ 2 acknowledges the receipt of the message.
- Device_ 2 plays a sound alert to indicate the incoming audio stream from User 1 .
- Device_ 2 receives User 1 's audio stream and plays User 1 's voice stream on the speaker. Additionally, Channel Light_ 1 on Device_ 2 flashes red light to indicate the incoming audio stream from User_ 1 on Channel 1 . Now User_ 2 can hear User_ 1 without taking any action.
- Device_ 2 presses Talk_ 1 button next to the flashing red light.
- the processor of Device_ 2 maps Talk_ 1 to Device_ 1 based on the configuration information stored in memory.
- Device_ 2 uses the IP address it just received in the IP packet, Device_ 2 sends a Talk Initiation message to Device 1 .
- Device_ 2 starts sending User_ 2 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert to indicate the incoming audio stream from User_ 2 .
- Device_ 1 receives User_ 2 's audio stream and plays User_ 2 's voice on the speaker. Additionally, Channel Light_ 1 on Device_ 1 and Device_ 2 turn red. Now User_ 1 can hear User_ 2 .
- the Talk Initiation message may include one or more of the following information: message type, source device name, destination device name, audio encoding format, video encoding format, rich text format, encryption information, etc.
- the Talk Initiation message may be one type of initiation message transmitted by the communication device.
- the communication device may transmit other types of initiation messages, such as a Video Initiation message, Music Initiation message, or other types of initiation messages.
- the initiation message transmitted by the communication device may inform the receiving communication device of the type of information the receiving communication device should expect.
- the IP packets of an audio stream may include source and destination device names in addition to digitized audio content.
- the IP packets may be encrypted for security and privacy reasons.
- User_ 1 wants to mute himself on the call. User_ 1 releases the Talk 1 button by pressing on it again. Device_ 1 stops recording User 1 's voice and stops sending User 1 's audio stream to Device_ 2 . Additionally, Device_ 1 sends a Talk Termination message to Device_ 2 . Device_ 2 acknowledges the receipt of the message and stops processing the audio stream from Device 1 . A sound alert for the Talk Termination is played by Device_ 2 .
- Channel Light_ 1 on Device_ 2 turns green.
- Channel Light_ 1 on Device_ 1 turns flashing red. Now User_ 2 can't hear User 1 .
- User_ 1 can still hear User_ 2 .
- User_ 1 presses down Silence_ 1 button.
- Device_ 1 stops playing User_ 2 's voice on the speaker.
- the Talk_ 1 button on Device_ 2 is still down. At some point, User_ 2 will release the Talk_ 1 button by pressing on it again. Device_ 2 stops recording User_ 2 's voice and stops sending User_ 2 's audio stream to Device 1 . Additionally, Device_ 2 sends a Talk Termination message to Device 1 . Device_ 1 acknowledges the receipt of the message. A sound alert for the Talk Termination is played by Device 1 . However, since the Silence Button 110 is down, the sound alert is suppressed. Channel Light_ 1 on Device_ 1 turns green.
- FIG. 16 illustrates an exemplary call flow for broadcasting a call according to aspects of this disclosure.
- User_ 1 presses the Talk to All Button 112 . Since Talk to All on Device_ 1 corresponds to all the connected devices, Device_ 1 sends Talk Initiation messages to Device_ 2 , Device_ 3 and Device_ 4 .
- Device_ 1 starts sending User 1 's voice in the form of IP packets to Device_ 2 , Device_ 3 and Device_ 4 .
- Device_ 2 , Device_ 3 and Device_ 4 acknowledge the receipt of the messages.
- Device_ 2 , _ 3 and_ 4 play a sound alert to indicate the incoming audio stream from User 1 .
- Device_ 2 , Device_ 3 and Device_ 4 receive User 1 's audio stream and play User 1 's voice on the speakers. Additionally, Channel Light_ 1 on Device_ 2 , Channel Light_ 1 on Device_ 3 and Channel Light 1 on Device 4 flash red light to indicate the incoming audio stream from User_ 1 on Channel 1 . With audio mixing, now User_ 2 , _ 3 and_ 4 can hear User_ 1 .
- Device_ 2 presses Talk_ 1 button.
- Device_ 2 sends a Talk Initiation message to Device 1 .
- Device_ 2 starts sending User_ 2 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert to indicate the incoming audio stream from User_ 2 .
- Channel Light_ 1 on Device_ 1 and Device_ 2 turn red.
- Device_ 1 receives User_ 2 's audio stream and plays User_ 2 's voice on the speaker. Now User_ 1 can hear User_ 2 .
- Device_ 3 presses Talk_ 1 button.
- Device_ 3 sends a Talk Initiation message to Device 1 .
- Device_ 3 starts sending User 3 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert to indicate the incoming audio stream from User_ 3 .
- Channel Light_ 2 on Device_ 1 and Channel Light_ 1 on Device_ 3 turn red.
- Device 1 receives User 3 's audio stream.
- Device 1 also receives User 2 's voice.
- Device 1 mixes the voices of User_ 2 and User_ 3 , and plays the mixed voices on the speaker. Now User_ 1 can hear both User_ 2 and User 3 . But User 2 and User 3 can't hear each other.
- Device_ 4 presses Talk_ 1 button.
- Device_ 4 sends a Talk Initiation message to Device 1 .
- Device_ 4 starts sending User 4 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert to indicate the incoming audio stream from User_ 4 .
- Channel Light_ 3 on Device_ 1 and Channel Light_ 1 on Device 4 turn red.
- Device 1 receives User 4 's voice.
- Device 1 also receives User 2 's and User 3 's voices.
- Device_ 1 mixes the voices of User_ 2 , User_ 3 and User_ 4 , and plays the mixed voices on the speaker. Now User_ 1 can hear User_ 2 , User_ 3 and User_ 4 . But User_ 2 , User 3 and User 4 can't hear each other.
- User_ 1 is having separate conversations with User_ 2 , _ 3 and_ 4 simultaneously.
- FIG. 17 illustrates an exemplary call flow for a conference call activation according to aspects of this disclosure.
- User_ 1 presses Talk_ 1 button. Since Talk 1 on Device_ 1 corresponds to Device_ 2 as indicated by FIG. 6 , Device_ 1 sends a Talk Initiation message to Device_ 2 .
- Device_ 1 starts sending User 1 's voice in the form of IP packets to Device_ 2 .
- Device_ 2 acknowledges the receipt of the message.
- Device_ 2 plays a sound alert to indicate the incoming audio stream from User 1 .
- Device_ 2 receives User 1 's audio stream and plays User 1 's voice on the speaker. Additionally, Channel Light_ 1 on Device_ 2 flashes red light to indicate the incoming audio stream from User_ 1 on Channel 1 . Now User_ 2 can hear User 1 .
- Device_ 1 presses the Call Add Button. Then User_ 1 presses Talk_ 2 button. Since Talk_ 2 on Device_ 1 corresponds to Device_ 3 as indicated by FIG. 6 , Device_ 1 sends a Talk Initiation message to Device_ 3 .
- Device_ 1 starts sending User 1 's voice in the form of IP packets to Device_ 3 .
- Device_ 3 acknowledges the receipt of the message.
- Device_ 3 plays a sound alert to indicate the incoming audio stream from User 1 .
- Device_ 3 receives User 1 's audio stream and plays User 1 's voice on the speaker. Additionally, Channel Light_ 1 on Device_ 3 flashes red light to indicate the incoming audio stream from User_ 1 on Channel 1 . Now User_ 3 can hear User 1 .
- Device_ 2 presses Talk_ 1 button.
- Device_ 2 sends a Talk Initiation message to Device 1 .
- Device_ 2 starts sending User_ 2 's audio stream in the form of IP packets to Device 1 .
- Device 1 acknowledges the receipt of the message.
- Device 1 plays a sound alert to indicate the incoming audio stream from User_ 2 .
- Device 1 receives User_ 2 's audio stream and plays User_ 2 's voice on the speaker. Additionally, Channel Light 1 on Device 1 and Device 2 turn red. Now User 1 can hear User_ 2 .
- Device 1 Since Device 1 is the host of the conference call, it mixes the incoming voices and sending the mixed voices to each participant. In this case, Device 1 mixes the voices of User 1 and User_ 2 , and sends the mixed voices to Device_ 3 . Now User_ 3 can hear User 1 and User_ 2 .
- Device_ 3 presses Talk 1 button.
- Device_ 3 sends a Talk Initiation message to Device 1 .
- Device_ 3 starts sending User_ 3 's audio stream in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert to indicate the incoming audio stream from User 3 .
- Device 1 receives User 3 's audio stream.
- Device 1 also receives User 2 's voice.
- Device 1 mixes the voices of User_ 2 and User_ 3 , and plays the mixed voices on the speaker of Device 1 . Now User_ 1 can hear both User_ 2 and User_ 3 . Additionally, Channel Light_ 1 on Device_ 1 and Device 3 turn red.
- Device_ 1 mixes the voices of User_ 1 and User_ 3 , and sends the mixed voices to Device 2 . Now User 2 can hear User 1 and User 3 .
- FIG. 18 illustrates an exemplary call flow for dropping a conference call participant by the host of the conference call according to aspects of this disclosure.
- User 1 is hosting a conference call with User_ 2 and User_ 3 .
- User 1 , User_ 2 and User_ 3 can all hear each other.
- Talk 1 and Talk 2 buttons on Device 1 are down.
- Talk 1 button on Device 2 and Talk 1 button on Device 3 are down.
- User 1 In order to drop User_ 2 from the conference call, User 1 first presses the Call Drop Button, and then presses the Talk 1 button to release it. A sound alert for the Call Drop of Device_ 2 is played on the conference call so all parties can hear it. Device 1 stops sending any audio stream to Device_ 2 . Device 1 also stops mixing User_ 2 's voice. Additionally, Device 1 sends a Call Drop messages to Device_ 2 . Device_ 2 acknowledges the receipt of the message. Device_ 2 automatically releases Talk 1 button, and Device_ 2 stops sending User_ 2 's voice to Device 1 . Additionally, Device_ 2 stops processing any audio stream from Device 1 . Channel Light_ 1 on Device_ 1 and Device_ 2 turn green. Now User_ 2 is completely dropped off the conference call while the conference call continues on.
- FIG. 19 illustrates an exemplary call flow for dropping a conference call by a participant of the conference call according to aspects of this disclosure.
- User_ 1 is hosting a conference call with User_ 2 and User_ 3 .
- User 1 , User_ 2 and User_ 3 can all hear each other.
- User_ 2 may or may not even know he is on a conference call. If he wants to drop out of the call, he first presses the Call Drop Button, and then presses the Talk_ 1 button to release it. Device_ 2 stops sending User_ 2 's audio stream to Device 1 . Additionally, Device_ 2 sends a Call Drop message to Device 1 . Device_ 1 acknowledges the receipt of the message. Since Device_ 1 remembers the conference call structure, it knows that this user is a conference call participant. Device_ 1 automatically releases Talk_ 1 button, and Device_ 1 stops sending any audio stream to Device_ 2 . Device_ 1 also stops mixing User_ 2 's voice. A sound alert for the Call Drop is played on the conference call so everyone can hear it. Channel Light_ 1 on Device_ 1 and Device_ 2 turn green. User_ 2 is completely dropped off the conference call while the conference call continues on.
- FIGS. 20A-20B illustrates an exemplary call flow for activating a conference call according to aspects of this disclosure.
- User_ 1 first pushes the Call Add Button, then he presses the Talk to All Button 112 . Since Talk to All on Device_ 1 corresponds to all the connected devices, Device_ 1 sends Talk Initiation messages to Device_ 2 , Device_ 3 and Device_ 4 .
- Device_ 1 starts sending User 1 's voice in the form of IP packets to Device_ 2 , Device_ 3 and Device_ 4 .
- Device_ 2 , Device_ 3 and Device_ 4 acknowledge the receipt of the messages.
- Device_ 2 , _ 3 and _ 4 play a sound alert to indicate the incoming audio stream from User 1 .
- Device_ 2 , Device_ 3 and Device_ 4 receive User 1 's audio stream and play User 1 's voice on the speakers. Additionally, Channel Light 1 on Device_ 2 , Device_ 3 and Device 4 flash red light to indicate the incoming audio stream from User 1 on Channel 1 . Now User_ 2 , _ 3 and _ 4 can hear User 1 .
- Device_ 2 presses Talk_ 1 button.
- Device_ 2 sends a Talk Initiation message to Device 1 .
- Device_ 2 starts sending User_ 2 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert on the conference call to indicate the incoming audio stream from User_ 2 .
- Device_ 1 receives User_ 2 's audio stream and plays User_ 2 's voice on the speaker. Additionally, Channel Light_ 1 on Device_ 1 and Device_ 2 turn red. Now User 1 can hear User 2 .
- Device_ 3 presses Talk_ 1 button.
- Device_ 3 sends a Talk Initiation message to Device 1 .
- Device_ 3 starts sending User 3 's voice in the form of IP packets to Device 1 .
- Device_ 1 acknowledges the receipt of the message.
- Device_ 1 plays a sound alert on the conference call to indicate the incoming audio stream from User_ 3 .
- Channel Light_ 2 on Device_ 1 and Channel Light_ 1 on Device_ 3 turn red.
- Device 1 receives User 3 's audio stream.
- Device 1 also receives User 2 's voice.
- Device 1 mixes the voices of User_ 2 and User_ 3 , and plays the mixed voices on the speaker. Now User_ 1 can hear both User_ 2 and User_ 3 .
- Device_ 1 mixes the voices of User 1 and User 2 and sends it to User 3 .
- Device 1 also mixes the voices of User 1 and User 3 and sends it to User 2 .
- Now User 2 and User 3 can hear each other.
- FIG. 21 illustrates an exemplary call flow for terminating a conference call according to aspects of this disclosure.
- User_ 1 is hosting a conference call with users of all the connected devices.
- all the connected devices are Device_ 2 , Device_ 3 and Device 4 .
- User 1 , User_ 2 , User_ 3 and User_ 4 can all hear each other.
- the Talk 1 , Talk_ 2 and Talk 3 buttons and the Talk to All Button 112 on Device 1 are down.
- Talk 1 button on Device_ 2 , Talk 1 button on Device 3 and Talk 1 button on Device 4 are down.
- User_ 1 To terminate the conference call at once, User_ 1 first presses the Call Drop Button, and then presses the Talk to All Button 112 to release it. A sound alert is played on the conference call to indicate the dropping of a participant.
- Device_ 1 stops sending any audio stream to all connected devices.
- Device_ 1 also stops processing audio stream from any devices.
- Device_ 1 sends a Call Drop message to all the connected devices.
- the connected devices acknowledge the receipt of the message.
- the connected devices automatically release the corresponding Talk Buttons respectively, and they stops sending its user's voice to Device 1 . Additionally, the connected devices stop processing any audio stream from Device 1 .
- Channel Light_ 1 on Device 1 , Device 2 , Device_ 3 and Device_ 4 turn green. Now the conference call is completely terminated at once.
- FIG. 22 illustrates an exemplary call flow for adding a participant to a conference call by a second host according to aspects of this disclosure.
- User_ 1 is hosting a conference call with User_ 2 and User_ 3 .
- User 1 , User_ 2 and User_ 3 can all hear each other.
- User_ 3 wants to add User_ 4 to the conference call. So User_ 3 presses the Call Add Button. Then User_ 3 presses Talk_ 3 button. Since Talk_ 3 on Device_ 3 corresponds to Device_ 4 as indicated by FIG. 6 , Device_ 3 sends a Talk Initiation message to Device_ 4 . Device_ 4 acknowledges the receipt of the message.
- Device_ 3 Since Device_ 3 is the second host of the conference call, it provides the audio mixing function for new participants that it adds to the conference call.
- the incoming audio stream from Device 1 contains the mixed voices of User 1 and User 2 .
- Device 3 mixes the incoming voices from Device_ 1 with User 3 's voice, producing the mixed voices of User 1 , User_ 2 and User_ 3 .
- Device_ 3 sends the mixed voices to User_ 4 . Now User_ 4 can hear User 1 , User_ 2 and User_ 3 .
- Device_ 4 plays a sound alert to indicate the incoming audio stream from User_ 3 . Additionally, Channel Light_ 3 on Device_ 4 flashes red light to indicate the incoming audio stream from User_ 3 on Channel 3 . Now User_ 4 presses Talk_ 3 button. Since Talk_ 3 on Device_ 4 corresponds to Device_ 3 as indicated by FIG. 6 , Device_ 4 sends a Talk Initiation message to Device_ 3 . Device_ 4 starts sending User_ 4 's voice in the form of IP packets to Device_ 3 . Device_ 3 acknowledges the receipt of the message. Device_ 3 receives User 4 's voice. Note that Device 3 also receives the audio stream from Device 1 . Device 3 mixes the voices from Device_ 1 with User_ 4 's voice, and plays the mixed voices on the speaker. Now User_ 3 can hear User 1 , User_ 2 and User_ 4 .
- Device_ 3 mixes the voices of User_ 3 and User_ 4 , and sends the mixed voices to Device 1 .
- Device 1 also receives User 2 's voice.
- Device 1 mixes the incoming voice from Device_ 2 with the voices from Device_ 3 , and plays the mixed voices on the speaker. Now User_ 1 can hear User_ 2 , User_ 3 and User_ 4 .
- Device_ 1 mixes the audio stream from Device_ 3 with User 1 's voice, and sends the mixed voices to Device_ 2 .
- Device_ 2 receives the voices of User 1 , User_ 3 and User_ 4 . Now User_ 2 can hear User 1 , User_ 3 and User_ 4 .
- the conference call is initiate initiated using two audio mixers: Device 1 and Device 3 .
- FIG. 23 illustrates an exemplary call flow for dropping a second host of a conference call by the host of the conference call according to aspects of this disclosure.
- User_ 1 is hosting a conference call with User_ 2 and User_ 3 .
- User_ 3 acting as a second host, has added User_ 4 to the conference call.
- User 1 , User_ 2 , User_ 3 and User_ 4 can all hear each other.
- User_ 1 wants to drop User_ 3 from the conference call.
- User_ 1 first presses the Call Drop button, and then releases the Talk_ 2 button by pressing on it again.
- Device_ 1 stops sending audio stream to Device_ 3 .
- Device_ 1 sends a Call Drop message to Device_ 3 .
- Device_ 3 acknowledges the receipt of the message and stops processing the audio stream from Device 2 .
- This audio stream contain the mixed voices of User 1 and User 2 . Now User 3 can't hear User_ 1 or User_ 2 . Additionally, Device_ 3 automatically releases the Talk_ 1 button, and Device_ 3 stops sending any audio stream to Device 1 .
- the client device can be implemented via a software client installed on an existing device with touch screen. Such devices may have the necessary hardware to support the client software including the touch screen, Internet connectivity, microphone and speaker. Touch screen smartphones, e-book readers, and tablet computers typically are already equipped with the necessary hardware.
- the client software can be downloaded and installed on such a device.
- the client software runs as an application on such a device.
- the client device is a physical device that is equipped with a touch screen. This device is specifically designed to be an Instant Voice Device.
- GUI Graphic User Interface
- FIGS. 24-25 represent different layout of the GUIs.
- a first GUI 2402 bears the resemblance of the physical device 102 as shown in FIG. 1 , thus giving users the familiarity of the communication device 102 with physical buttons.
- the first GUI design 2402 may include a Voicemail Button 2404 and a Voicemail Light 2406 , a Talk to All Button 2408 and a Talk to All Light 2410 , a Silence All Button 2412 and a Silence All Light 2414 , a Call Add Button 2416 with a Call Add Light 2418 , a Call Drop Button 2420 , a Talk Button 2422 with a Talk Light 2424 , a Silence Button 2426 and a Silence Light 2428 , an Away Button 2430 with an Away Light 2432 , a Channel Light 2434 , an On/Off Button 2436 , and a Connectivity Indicator 2438 .
- GUI has to be modified.
- a second GUI design 2502 allows for many more channels to be supported.
- the second GUI design 2502 may include one or more of the buttons of the first GUI design 2504 .
- a user may also use next 2504 and last page 2506 buttons to flip back and forth through multiple channels.
- the second GUI design 2502 may mimic the design of the physical device 102 to result in similar user experience.
- the software clients may have full interoperability with the physical devices via the Internet Protocol (IP).
- IP Internet Protocol
- a physical communication device may have a hardware ID, but the client software does not.
- the client software can emulate a hardware ID by generating a software ID similar to the hardware ID that is unique among all hardware and software ID after the client software is first installed.
- the software ID identifies the specific installation of the client.
- the user can then configure the Device Name for the specific installation of the software client during configuration.
- the Device Name must be unique globally.
- Configuration of a software client is similar to that of configuring a physical device. Data entry and display can now be done on the touch screen instead of using a configuration machine. Configuring connectivity of a software client probably isn't needed if an existing device is already configured to connect to the Internet. Through touch screen, a user can configure the Channel List.
- the communication may be implemented via software on a computer without the touch screen.
- a software client may be installed a computer with a screen and a keyboard.
- the GUIs are similar to that of a touch screen. The operation of the GUI relies on the keyboard and the screen.
- This system has broad applications in communications. A few applications are outlined below, but the system is not limited to these applications.
- a large house may have many rooms, it might be tough to speak with family members who are in different rooms. Put a device in each of those rooms.
- a mom wants to call her children to sit down for dinner. She simply presses down the Talk to All Button 112 on the device in the kitchen and say “Time for dinner!”. All her kids in their rooms can hear her and come to sit down for dinner.
- the mom wants to speak with one of her children, she presses down the Talk Button 108 corresponding to the room of the child, and speaks to him.
- control center manager can speak to people throughout the workshops at the same time. If the call is picked up by a workshop, the control center manager can switch to one-to-one communications with that workshop.
- a group of co-workers need to work late at night to finish a joint project. They are at home working on their own piece of the project, but need to have real time communications with each other from time to time over a period of several hours.
- the most effective way is for these co-workers to be on a conference call.
- One way to do this is for one of the co-workers to host a conference call with all the other co-workers. Once all the co-workers are on the conference call, then they can hear each other as if they were in a room together.
- the conference call can be left on for as long as needed. In this scenario, the co-workers might need to be in the listening mode most of the time while they work on their own piece. Every so often, a co-worker may need to speak with another co-worker.
- the mute feature of the instant conference call is quite useful. The users put themselves on mute. They can un-mute themselves, and speak to another person when needed.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
A communication server and accompanying communication devices allow near instantaneous communication between users of the communication devices. A communication device may be configured with multiple channels, where each channel is assigned a corresponding communication device. As the communication devices are registered with the communication server, each communication device has knowledge of other registered communication devices. Thus, communication devices may communicate nearly instantaneously with each other. Furthermore, as the communication device is equipped with multiple channels, a single communication device may host a conference call with other communication devices. In addition, communication device may include multiple buttons to control the communication device, and indicator lights to indicate the status of calls with other communication devices
Description
- The present application is a continuation of U.S. patent application Ser. No. 16/417,489, filed May 20, 2019, which is a continuation of U.S. patent application Ser. No. 14/954,693, filed Nov. 30, 2015 (now U.S. Pat. No. 10,298,644), which is a continuation of U.S. patent application Ser. No. 13/804,854, filed Mar. 14, 2013 (now U.S. Pat. No. 9,204,095), which is a non-provisional application claiming the benefit of U.S. Provisional Patent Application No. 61/642,616, filed May 4, 2012, each of which is hereby incorporated by reference in its entirety.
- The present disclosure relates to the technical field of voice or video communications using electronic devices connected by wireless and wired networks. More specifically, the disclosure is directed to the technical field of voice or video communications using portable electronic devices connected by a wireless network (e.g., WiFi, Bluetooth, the cellular network, ultra wide band, WiMax) or a wired network (e.g., Ethernet, DSL).
- Conventional communications devices such as phones typically don't offer the instant communications feature with a push of a button. On a typical phone, a user needs to press several buttons to dial a phone number. Then there is the ringtone waiting for the callee to pick up the call. So the communication is not instant and it requires pushing multiple buttons. A callee is the person who receives an incoming call. On the callee's end, a callee has to push at least a button to be able to hear the caller. Some cell phones have the push-to-talk feature that offers the instant voice with a push of button. However, push-to-talk on a cell phone is mainly designed for one-to-many type of group calls. Additionally, these push-to-talk calls are only half duplex, meaning communication is one way at any time, therefore only one party can talk at a time by seizing the floor first. There are instant messaging software systems that indicate the status of the other users and allow users to send instant messages to each other, but these systems don't provide instant voice or video services.
- Additionally, a conventional phone call consists of two call legs: one call leg going from the caller to the callee and the other call leg going from the callee to the caller. Basically, both call legs have to be set up before the caller and callee can communicate. Callers and callees don't have control of the call legs separately.
- In real life, a caller may only need to speak to a callee without any expectation of any response from the callee. Therefore only an outgoing call leg from the caller to the callee is needed. Similarly, a callee may only want to listen in on a call. Therefore there no need to set up a call leg from the callee to the caller. With traditional phones, there is no option for a caller or a callee to control the call legs.
- Furthermore, the need for call set up on a broadband network is obviated as the network bandwidth grows. Call setup causes delay which hinders instant communications. The concept of call set up originates from the circuit switched networks where resources are scare and need to be allocated. As the voice communications evolve from circuit switched network to packet switched network, Voice over IP (VoIP) technologies were developed. VoIP also requires call setup due to the limited network resources at the time of its development. In today's wireless and fixed networks, resources are abundant relatively speaking in consideration of the bandwidth requirements of the real-time voice and video communications.
- Given the advances of today's technologies, there is little need for the traditional call setup in today's broadband networks. The current call setup process hinders the natural ways in which people interact with one another. This disclosure provides for a communication system in which a communication channel is first established between two communication devices before any calls are placed. Minimal maintenance signaling messages are used to keep the channel up and alive. When a call is placed by a user, there is no call set up. One advantage of this setup is that it delivers the instant communications experience to users by removing unnecessary call set up and by providing intuitive user interface that mimics the natural ways people interact with one another. The end result is that users can communicate with one another as if they were all physically present in the same room.
- Accordingly, this disclosure provides for one or more servers and portable communications devices connected via networks for instant communications. Furthermore, these devices may be connected to a wide area network, such as the Internet, via a wireless network such as a WiFi, Bluetooth, a cellular network, and the like. The devices may also be connected via a wired network, such as Ethernet, or combinations of wired and wireless networks.
- This system facilitates instant communications among users via voice or video with a simple push of a button on corresponding devices. In contrast to a traditional phone call, there may be no dial tone or ringtone. There may be no picking up the call by the callee either. Additionally, one or more incoming and/or outgoing communication may be separately controlled by the users through button operations. The communication may be relatively instant and direct as if the users were physically present in the same room.
- To support instant communications, or relatively instant communications, among a plurality of users, the instant communication system of this disclosure may include several operational modes. These operational modes are discussed below.
- One-Way or Two-Way Communications
- One-way communications means one person can speak to another person, but not vice versa. Two-way communications means two people can talk with each other.
- One-to-One, One-to-Many, or Many-to-Many Communications
- One-to-one means the communication is between two people. One-to-many means the communication is between one person and multiple people at the same time but separately. An example may be a dispatcher communicating with the taxi drivers that the dispatcher manages. The tax drivers can hear the dispatcher and talk with the dispatcher, but the taxi drivers cannot communicate with each other. Many-to-many means the communication is among multiple people at the same time, like in a traditional conference call.
- Voice or Video
- Voice means only voice communications may be used. Video means both voice and video communications may be used.
- Any Combination of the Above
- Users of the system can control the selection of the communication mode through the user interface of the disclosed device. For instance, a user may select the mode of a one-way one-to-one voice call. Alternatively, the user may select the mode of a one-way one-to-many video call. The devices that support video calls may include a display in addition to other components, such as a speaker and a microphone.
- While this disclosure is directed to an instant voice system with instant voice devices, the term “voice” may also refers to any audio signals. Therefore, throughout this disclosure, “voice” and “audio” may be used interchangeably. The system may also be extended to support video communications.
-
FIG. 1 illustrates an aerial view of an exemplary communication device according to aspects of this disclosure. -
FIG. 2 illustrates an example of a Talk Button and a Silence Button of the communication device according to aspects of this disclosure. -
FIG. 3 illustrates a side view of the communication device according to aspects of this disclosure. -
FIG. 4 illustrates an exemplary hardware diagram of the communication device according to aspects of this disclosure -
FIG. 5 illustrates multiple communication devices in communication with each other and a communication server according to aspects of this disclosure. -
FIG. 6 illustrates an example of configuring the channels of the communication device according to aspects of this disclosure. -
FIG. 7 illustrates a conference call among multiple communication devices according to aspects of this disclosure. -
FIG. 8 illustrates an example of a daisy-chained conference call among multiple communication devices according to aspects of this disclosure. -
FIG. 9 illustrates a loop that may be formed by multiple connected communication devices according to aspects of this disclosure. -
FIG. 10 illustrates an example of dropping a second host from a conference call according to aspects of this disclosure. -
FIG. 11 illustrates logic flow for recording a voicemail according to aspects of this disclosure. -
FIG. 12 illustrates a bottom-up view of the communication device according to aspects of this disclosure. -
FIG. 13 illustrates another example of configuring the channels of the communication device according to aspects of this disclosure. -
FIG. 14 illustrates an exemplary call flow for adding a channel to the communication device according to aspects of this disclosure. -
FIG. 15 illustrates an exemplary call flow for talk initiation and talk termination according to aspects of this disclosure. -
FIG. 16 illustrates an exemplary call flow for broadcasting a call according to aspects of this disclosure. -
FIG. 17 illustrates an exemplary call flow for a conference call activation according to aspects of this disclosure. -
FIG. 18 illustrates an exemplary call flow for dropping a conference call participant by the host of the conference call according to aspects of this disclosure. -
FIG. 19 illustrates an exemplary call flow for dropping a conference call by a participant of the conference call according to aspects of this disclosure. -
FIGS. 20A-20B illustrates an exemplary call flow for activating a conference call to all connected devices according to aspects of this disclosure. -
FIG. 21 illustrates an exemplary call flow for terminating a conference call to all connected devices according to aspects of this disclosure. -
FIG. 22 illustrates an exemplary call flow for adding a participant to a conference call by a second host according to aspects of this disclosure. -
FIG. 23 illustrates an exemplary call flow for dropping a second host of a conference call by the host of the conference call according to aspects of this disclosure. -
FIG. 24 illustrates an exemplary graphical user interface for a touch-screen embodiment of the communication device according to aspects of this disclosure. -
FIG. 25 illustrates another exemplary graphical user interface for a touch-screen embodiment of the communication device according to aspects of this disclosure. -
FIG. 1 illustrates an aerial view of anexemplary communication device 102 according to aspects of this disclosure. In one embodiment, thecommunication device 102 includes one ormultiple microphones 104, speakers 106, TalkButtons 108,Silence Buttons 110. Thecommunication device 102 may also have a Talk to AllButton 112,Silence All Button 114,Voicemail Button 116,Away Button 118 and theInstant Call Add 120 and DropButtons 122. While this disclosure references the controls of thecommunication device 102 as “buttons,” any type of user control may be substituted for the disclosed buttons, such as knobs, switches, levers, or other such user controls. - Additionally, the
communication device 102 may have various light indicators including aChannel Light 124, aConnectivity Light 126, aTalk Light 128, aSilence Light 130, a Talk to AllLight 132, aSilence All Light 134, a Voicemail Light 136 and anAway Light 138. - Furthermore, the
exemplary communication device 102 may be equipped with more than one of each of the light indicators and/or user controls. Thus, thecommunication device 102 may have multiple Talk Buttons, Silence Buttons, Channel Lights, Talk Lights, Silence Lights, and multiple other such user controls and light indicators. - The
device 102 may also have avolume control 140, an On/Off Button 142, an audio line input/output 146, and aUSB port 144. - A communications channel on the
device 102 may be a bi-directional physical or logical connection to another device through which information flows. Such information may include multimedia streams, system signaling messages, and other such information. In general, a multimedia stream may include audio, such as speech, music, sound, or other types of audio, video, such as a movie, webcam recording, or other types of video, or combinations thereof. A multimedia stream may also contain only type of multimedia content (e.g., an audio-only multimedia stream or a video-only multimedia stream). - In one embodiment, the pair of Talk and
Silence Button 108 & 110 is used to operate on a channel. There is a one-to-one mapping between a channel and a pair of Talk andSilence Buttons 108 & 110. One ormore Channel Lights 124 may indicate the status of the channels. - The
device 102 is connected to other devices (the “connected devices”) via one or more communication channels. Accordingly, thedevice 102 may be in communication with multiple connected devices. On thedevice 102, each channel may be associated with an identifier that maps one-to-one an identifier of a connected device, such as an IP address. This mapping information may be configured and stored in a memory of thedevice 102. - When the
Talk Button 108 is pressed down, the corresponding channel is in a talk mode. The correspondingTalk Light 128 turns red. When thebutton 108 is up, the corresponding channel is in the mute mode. TheTalk Light 128 turns off. Pressing down thesame button 108 repeatedly allows a user to alternate between talk and mute modes. - When a caller presses down a
Talk Button 108, a one-to-one multimedia stream from the caller to the callee is initiated. The multimedia stream may include the caller's voice which is sent to the callee's device. If the callee responds by pressing down theTalk Button 108 on his device, then another one-to-one multimedia stream from the callee to the caller is initiated. Pairing these two multimedia streams of opposite directions creates the two-way one-to-one communications between the two devices. When theSilence Button 110 is up, it is in listen mode. Thecorresponding Silence Light 130 is dark. When theSilence Button 110 is down, it is in silence mode. TheSilence Light 130 turns on. An incoming multimedia stream on the corresponding channel is silenced. Pressing down the same button repeatedly allows a user to alternate between listen and silence modes. - Often times, a user may need to press on both the
Talk Button 108 and theSilence Button 110 simultaneously. As shown inFIG. 2 , the placement of theTalk Button 108 andSilence Button 110 is designed to conveniently allow a user to press on the buttons individually or together. - When a user presses down the Talk to All
Button 112, then all the Talk Buttons on the device go down with it. This operation initiates the transmission of the audio streams going to all the connected devices. In one embodiment, thecommunication device 102 may forego audio mixing and may transmit multimedia streams containing only audio, such as the user's voice. The user is able to talk to all the users of the connected devices (the “connected users”). The connected users can hear the user. The Talk to AllLight 132 and all the Talk Lights turn on. When the user presses on the Talk to AllButton 112 again, he releases the Talk to AllButton 112 as well as all the Talk Buttons on the device. This operation deactivates all the outgoing audio streams. The Talk to AllLight 132 and all the Talk Lights turn off. In this case, the connected users can't hear the user anymore. - When a user presses down the
Silence All Button 114, then all the Silence Buttons on the device are pressed down with it. This operation silences all the incoming audio streams on his device. All the Silence Lights and theSilence All Light 134 turn on. When the caller presses on theSilence All Button 114 again, he releases theSilence All Button 114 as well as all the Silence Buttons on the device. This operation un-silences all the channels, therefore the user can hear all the channels again. All the Silence Lights and theSilence All Light 134 turn off. - The Instant Call Add/Drop Button 120-122 is used to add or drop calls. The Call Add Light turns on when the Call Add Button is down.
- If a user is walking away from his device, he can press down the
Away Button 118. The Channel Lights on the connected devices corresponding to the user/device turn flashing green. This informs the users of the connected devices that this user is away. When theAway Button 118 is down, theAway Light 138 turns on. - The
Connectivity Light 126 indicates whether the device is connected to the Instant Communications Servers or not. - The On/
Off Button 142 serves several purposes. - Reset the device buttons to the original positions. When the
device 102 is on, quickly pressing the Off button once will trigger this type of reset. The buttons that may be up by default will be returned to the up position. The buttons that may be down by default will be returned to the down position. This feature allows a user to return buttons to their default position with one push of a button. - Completely reset the
device 102 to the factory default settings such as button position, channel configurations. When thedevice 102 is on, quickly pressing the Off button twice will trigger this type of reset. - Turn off the
device 102, or power off thedevice 102. When thedevice 102 is on, pressing the Off button and holding it down for 5 seconds or more will turn thedevice 102 off. - Turn on the
device 102, or power on the device. When thedevice 102 is off, pressing the On button will turn thedevice 102 off. - The
volume control 140 adjusts the volume of the speakers. - The audio line is for the audio input and output connected with a headset.
- For power, a lithium-ion battery can be charged through the
USB port 144. Additionally, theUSB port 144 can be used for the device to connect to other machines such as a laptop via a USB cable. -
FIG. 3 illustrates a side view of thecommunication device 102 according to aspects of this disclosure. In one embodiment, thedevice 102 may take on the shape of a dome. -
FIG. 4 illustrates an exemplary hardware diagram of thecommunication device 102 according to aspects of this disclosure. A processor, such as a Complex Instruction Set Computing (“CISC”) or a Reduce Instruction Set Computing (“RISC”) processor, may control one or more aspects of the device. Audio CODEC encodes analog audio as digital signals and converts digital signals back into analog signals. Even though the device may use a wired network such as the Ethernet, or a cellular network, thedevice 102 may also use a wireless network interface that is cellular, WiFi or Bluetooth. The processor may further include additional sub-modules, such as an audio mixer, echo cancellation, and noise reduction. - Echo Cancellation and Noise Reduction functions are used to enhance the voice quality by removing echo and reducing noise in the speech. There may be multiple microphones that could form a microphone array to help further enhance the speech quality.
- The Audio mixer function is leveraged for a conference call where multiple audio streams from conference call participants are mixed into a composite audio stream of multiple voices.
-
FIG. 5 illustrates multiple communication devices in communication with each other and a communication server according to aspects of this disclosure. In one embodiment, the device may be connected via one or more wireless networks to the Internet. One or more communication servers may communicate with the devices. This system architecture supports both instant voice and video communications. - While
FIG. 5 illustrates four devices, the system architecture may support any number of devices. Each device supports certain number of channels. If the channel operation uses physical buttons, then the number of channels on a device is limited by the number ofTalk Button 108 andSilence Button 110 pairs. In another implementation, where the channel operation uses virtual buttons on touch screen, then the number of channels supported on the touch screen may be nearly unlimited. - A user of a device can use the device for instant communications with another user of another device. Additionally a group of users can communicate with each other by using their devices. But first, they need to configure the channels on their devices to correspond to the other users or devices.
-
FIG. 6 illustrates an example of configuring the channels of the communication device according to aspects of this disclosure. As illustrated inFIG. 6 , User_1 is the user ofDevice 1, User_2 is the user of Device_2, User_3 is the user of Device_3, User_4 is the user ofDevice 4. - In one embodiment, there may be multiple channels on a device. These channels are configured by its user to connect to a specific set of devices.
- As shown in
FIG. 6 ,channel Channel 1,Channel 2 andChannel 3, respectively. The Talk Button ofChannel 1 on Device_1 is referred to as “Talk 1”, and the Silence Button ofChannel 1 onDevice 1 is referred to as “Silence 1”. Additionally, the Channel Light ofChannel 1 on Device_1 is referred to as “Channel Light 1”. - Additionally,
FIG. 6 shows the mapping between a channel and another device. Ondevice 1, user_1 configuresChannel 1,Channel 2 andChannel 3 on Device_1 to connect to three devices respectively: Device_2, Device_3 andDevice 4.Channel 4 isn't configured onDevice 1. Device_2, Device_3 andDevice 4 are called “connected Devices” toDevice 1. SimilarlyChannel 2 of Device_2 is connected to Device_3, andChannel 3 ofDevice 4 is connected to Device_3. - Additionally, in order to support voice-activated calling, users can program each channel on his device by speaking a nickname into the microphone during the configuration process. For instance, on
Device 1,Channel 1 connects toUser 2 whose nickname is John.User 1 ofDevice 1 can configureChannel 1 by speaking “John” to the microphone during the configuration process. This way, when User_1 speaks to Device_1 by saying a command “Call John”, Device_1 will initiate a audio stream fromDevice 1 toDevice 2. Command “Call John” is equivalent to User_1 pressing down the Talk_1 button. - The voice communications from a caller to a callee is instant. By simply pressing down the
Talk Button 108, the caller can speak to a callee directly. There may be no dialing of digits and there may be no dial tone. - The callee may first hear a sound to indicate an incoming audio stream. At the same time, a Channel Light corresponding to the caller's device flashes a red light to indicate which channel the caller is coming though. The callee may then hear the voice of the caller instantly on speaker without any need to do anything. It may appear like two people communicate with each other as if they were physically present in the same room.
- The callee can then decide whether to respond or not. If the callee decides to respond, he/she can simply press down the Talk Button next to the flashing red light and speak directly to the caller. Now the caller and callee can speak with each other.
- A user can talk to all the channels connected to a pre-configured set of devices. By simply pressing down the Talk to All
Button 112, the user can speak to a group of users directly. The group of users can hear the user instantly on speaker. - A user can toggle between Talk Buttons including the Talk to All
Button 112 seamlessly and effortlessly. For instance, a caller can speak to a first callee by pressing down the corresponding Talk Button (the first Talk Button), then she presses down another Talk Button (the second Talk Button) to switch to speak to a second callee. At this time, the first Talk Button is released and the paired Silence Button goes down and stays down. Since the second Talk Button is pressed down, she can talk to the second callee. Then she can switch back to the first callee by pressing down the first Talk Button. - Using the
Silence Button 110, a user can control what he hears. By pressing down theSilence Button 110 of a channel, he can silence the channel. By pressing down theSilence All Button 114, he can silence all the channels. - A user can indicate his availability via an
Away Button 118. By pressing down theAway Button 118, he indicates to the other connected devices that he is away. - As discussed previously, multiple modes of communications are supported. They include one way one-to-one and one-to-many communications. They also include two way one-to-one, and one-to-many communications. Furthermore, an instant conference call can be supported among multiple users. The basic one way one-to-one communication channel is used as a basic building block to construct more complex communications modes.
- There is no limit to the number of devices in the system. It can be a self-contained home system that resides on a Local Area Network (LAN) that contains only a few devices. Or it can be connected to millions of other devices via the Internet.
- There is no constraints to the location of devices as long as they can communicate with each other via a networking protocol, such as the Internet Protocol (IP).
- 2.1. Talk
Button 108 Operation Rules - The
Talk Button 108 operation including the Talk to AllButton 112 on a device follows these operation rules: - When a
Talk Button 108 is down, the corresponding user's voice is sent over the corresponding channel. - When multiple Talk Buttons are down, the user's voice is sent over the corresponding multiple channels.
- When a user presses down a Talk Button on the device, the button stays down when the user stops pressing.
- When a user presses down the Talk to All
Button 112 on the device, the Talk to AllButton 112 stays down when the user stops pressing. Additionally all the Talk Buttons on the device go down and stay down. The user's voice is sent to all the connected devices. - If a user presses on a
Talk Button 108 that is already down, then theTalk Button 108 is released. Releasing theTalk Button 108 stops sending the user's voice over the corresponding channel. It is similar to the mute feature on a traditional phone. - When a user presses on the Talk to All
Button 112 that is already down, the Talk to AllButton 112 is released. Additionally all the Talk Buttons are released. - When a user presses down two or more Talk Buttons simultaneously, then these buttons stay down together when the user stops pressing.
- Where one or more Talk Buttons are down on a device, and the user presses down another Talk Button that is up, then all the Talk Buttons that were down are released, and this Talk Button remains down. Additionally, the Silence Buttons pairing with the previously down Talk Buttons go down and stay down.
- If two or more Talk Buttons are already down, and the user presses down on one or more of the Talk Buttons that are down, then only those pressed buttons are released. The other down buttons remain down.
- To release a Talk to All
Button 112, a user can press on the Talk to AllButton 112 again. This will release the Talk to AllButton 112 as well as all the Talk Buttons. Alternatively he can press on a Talk Button which may be down already. Pressing on thisTalk Button 108 will release this Talk Button as well as the Talk to AllButton 112. If any one of the Talk Buttons on the device is up, then the Talk to AllButton 112 will be released. However, the other Talk Buttons remain down. - A
Talk Button 108 has aTalk Light 128 that can light up when theTalk Button 108 is down, and theTalk Light 128 turns off when theTalk Button 108 is released. When theTalk Button 108 is pressed down on one device, it causes a corresponding Channel Light on the connected device to turn flashing red light on. - 2.2. The
Silence Button 110 Operation Rules - The
Silence Button 110 operation including theSilence All Button 114 on a device follows these operation rules: - When a
Silence Button 110 is pressed down, the incoming audio stream on the corresponding channel to the device is silenced. - When a
Silence All Button 114 is pressed down, all the incoming audio streams to the device are silenced. - When a user presses down any one or multiple Silence Buttons on the device, the buttons stay down when the user stops pressing.
- When a user presses down the
Silence All Button 114 on the device, theSilence All Button 114 stays down when the user stops pressing. Additionally all the Silence Buttons go down and stay down. - If a user presses on a
Silence Button 110 that is already down, then theSilence Button 110 is released. - If a user presses on a
Silence All Button 114 that is already down, then theSilence All Button 114 is released. Additionally, all the Silence Buttons are released. - If a
Silence Button 110 including theSilence All Button 114 is already down, and the user presses on anotherSilence Button 110 that is up, then the both Silence Buttons remain down. - When a user presses down two or more Silence Buttons including the
Silence All Button 114 simultaneously, then these buttons stay down together when the user stops pressing. - If two or more Silence Buttons including the
Silence All Button 114 are already down, and the user presses down one or more of the Silence Buttons that are already down, then the pressed buttons are released. The other down buttons remain down. - A
Silence Button 110 has aSilence Light 130 that can light up when it is pressed down, and the light turns off when theSilence Button 110 is released. However the operation on theSilence Button 110 on one device doesn't change the Channel Light on the corresponding connected device. So the user of the connected device doesn't know he is being silenced. - 2.3. Interaction Between
Talk Button 108 and Silence Button 110: - If a
Silence Button 110 on a device is down, a user presses on theTalk Button 108 corresponding to the same channel, then theSilence Button 110 is released. For example, when the Silence_1 button on Device_1 is pressed down, User_1 can't hear User_2. Then if User_1 presses down Talk_1 button onDevice 1, then Silence_1 button is released. At this time, User_1 and User_2 can hear each other. Note that the Channel Light of the corresponding channel on Device_2 behaves independently from theSilence Button 110 actions onDevice 1. - If a
Talk Button 108 on a device is down, then a user presses down thepairing Silence Button 110, then theSilence Button 110 stays down. - If a first Talk Button on a device is down, then a user presses on a second Talk Button that is up, then the
first Talk Button 108 is released. Additionally, the Silence Button paired with the first Talk Button goes down and stays down. This feature allows a user to toggle between two channels with minimal operation. - 2.4. Voicemail Button and Voicemail Light
- The Voicemail Light indicates the existence of new voicemail messages. Pressing down the Voicemail button, a user can listen to voicemail messages starting with the most recent ones first. Pressing on the button again, the user deletes the current message and skips to the next voicemail message. The current message is deleted even if it is not completely listened to. Instead of pressing the Voicemail Button once, if a user quickly presses the button twice, the user can save the current message and skips to the next message.
- 2.5. Call Add and Call Drop Button Operation Rules
- A Call Add Button is used to add another user to an existing call, creating essentially an instant conference call. To add a user, press the Call Add Button first, then press down the
Talk Button 108 corresponding to the added user. The Call Add Button does not stay down when pressed. The Call Add Light will turn red to indicate the existence of a conference call. The correspondingTalk Button 108 stays down and theTalk Light 128 turns red. On the connected device of the added user, he will hear a sound alert for the incoming audio stream. Additionally, the corresponding Channel Light on his device flashes red light. - A user can also add all the users on his device to the conference call at once by pressing the Call Add Button first, then press down the Talk to All
Button 112. The Call Add Button does not stay down when pressed. The Call Add Light will turn red to indicate the existence of a conference call. The Talk to AllButton 112 as well as all the Talk Buttons on the device stay down. The corresponding Talk to AllLight 132 as well as all the Talk Lights turn red. On the devices of the corresponding users, they will hear a sound alert for the incoming audio stream. Additionally, the corresponding Channel Lights on their devices flash red light. - A Call Drop Button is used to terminate a call with another user. A Call Drop Button has no light indicator. To terminate a conference call, the conference call host presses the Call Drop Button first, and then presses the already down
Talk Button 108 corresponding to the participant to be dropped. TheTalk Button 108 will be released. - The call between the host and the participant is terminated. Both devices stop sending audio streams to each other. Both users will hear a sound alert indicating the termination of the call. Additionally, the corresponding
Talk Button 108 on the participant's device is released as well. The corresponding Channel Lights on both devices turn green. - A conference call host can first press the Call Drop Button, and then presses the Talk to All
Button 112. All the Talk Buttons will be released. The call between the host and all the participants is terminated. The participating devices of the conference call stop sending out audio streams. All parties involved will hear a sound alert on the conference call indicating the termination of the conference call. Additionally, the corresponding Talk Buttons on participants' devices are released as well. The corresponding Channel Lights on all the participating devices turn green. Note that the Talk to AllButton 112 stays up after the Call Drop Button is pressed first and then the Talk to AllButton 112 is pressed next. - Note that if the host presses the Call Drop Button first, and then presses a
Talk Button 108 that is up. Then theTalk Button 108 stays up. In other words, aTalk Button 108 stays up after the Call Drop Button is pressed first and theTalk Button 108 is pressed next. - In addition, note that the Call Add Light on the device that initiated the conference call will turn dark once the conference call is completely terminated, meaning no active channels of the conference call on the device remains.
- 2.6. Channel Lights:
- A Channel Light of a channel on a device indicates the status of the channel connected to another device or user. For instance, the Channel Light of
Channel 1 on Device_1 (Channel Light 1) indicates the channel status with Device_2 or User_2. - A Channel Light may have these colors: dark, green, red, flashing red, and flashing green. Alternative or additional colors may also be used.
- Dark
- Dark lights indicate no network connectivity between two devices. For instance, when Device_1 and_2 are not connected, then Channel Light_1 on Device_1 and Channel Light_1 on Device_2 are both dark. First, if the channel corresponding to a
Talk Button 108 is not configured, the Channel Light is dark. Second, when a Channel Light is dark, the corresponding communications channel cannot be established. For instance, if Channel Light_1 on Device_1 is dark, then a communications channel cannot be established between Device_1 and Device_2. Usually if there is no connectivity, it goes both ways. So both Channel Lights on Device_1 andDevice 2 are dark. - Green
- Green indicates there is network connectivity between two devices. For instance, Channel Light_1 on Device_1 and Channel Light_1 on Device_2 both turn green if a connection between
Device 1 andDevice 2 is established. - Flashing Green
- Flashing green indicates that the user of the other device corresponding to the channel is away. For instance, when Channel Light_1 on Device_1 is flashing green light, it means that User_2 of Device_2 is away. There is an
Away Button 118 on Device_2. If User_2 presses down theAway Button 118, then the corresponding Channel Lights ofChannel 1 onDevice 1,Channel 2 on Device_3 andChannel 2 on Device_4 are all flashing green. Pressing down theAway Button 118 again, User_2 releases the button, and the corresponding Channel Lights ofChannel 1 onDevice 1,Channel 2 on Device_3 andChannel 2 on Device_4 all become green. - Flashing Red
- A flashing red light indicates an incoming audio stream on the corresponding channel that hasn't been answered. For instance, if there is an incoming audio stream from Device_2 to
Device 1, then Channel Light_1 on Device_1 turns flashing red. A flashing red light is used to tell the user on which channel the call is coming in from. - Red
- If a channel has a flashing red light and the user presses down the
Talk Button 108 of the channel, then the Channel Light turns steady red. When there are both incoming and outgoing multimedia streams on a channel, the corresponding Channel Light turns steady red. - In summary, the Channel Light is flashing red if there is an incoming multimedia stream. The Channel Light is steady red if there are incoming and outgoing multimedia streams on the channel. The Channel Light is neither color when there is only an outgoing stream on the channel. For instance, the Channel Light on a device will turn from red light to flashing red light if the user releases the
Talk Button 108 of the channel. - In one embodiment, the Channel Light of a channel may be configured to display one color at any given time. Moreover, each of the colors of the Channel Light may be assigned a priority. In terms of priority, the display priority may be in the order of high to low: red, flashing red light, flashing green light, and green light. In other words, if two states are both true, the one with a high priority will be indicated by the Channel Light. For instance, if a user is away, and the user presses down a
Talk Button 108, then the Channel Light on the connected devices may indicate flashing red light. Or if a user is away, and the connectivity between the two devices is good, then the flashing green light on the connected devices may be on. - 2.7. Other Light Indicators:
- Talk to All
Light 132 - When the Talk to All
Button 112 is not pressed down, the Talk to AllLight 132 remains dark. If a user presses down the Talk to AllButton 112, the Talk to AllLight 132 turns steady red. The Talk to AllLight 132 may be embedded inside the Talk to AllButton 112. One-way one-to-many audio streams may be initiated from a first device to the other connected devices. -
Talk Light 128 - When a
Talk Button 108 is not pressed down, theTalk Light 128 remains dark. If a user presses down theTalk Button 108, theTalk Light 128 turns steady red. TheTalk Light 128 may be embedded inside theTalk Button 108. -
Silence All Light 134 - When the
Silence All Button 114 is not pressed down, theSilence All Light 134 remains dark. If a user presses down theSilence All Button 114, theSilence All Light 134 turns steady red. TheSilence All Light 134 may be embedded inside theSilence All Button 114. -
Silence Light 130 - When a
Silence Button 110 is not pressed down, theSilence Light 130 remains dark. If a user presses down theSilence Button 110, theSilence Light 130 turns steady red. TheSilence Light 130 may be embedded inside theSilence Button 110. - 2.8 Sound Indicators
- Whenever there is an incoming audio stream, a sound may be played to indicate the incoming audio stream on the receiving device.
- A different sound may be played on both ends of the channel, whenever a channel is terminated using the call drop feature.
- 2.9. Use Cases:
- All of the following use cases assume that the devices are configured as shown in
-
FIG. 6 . - If the Talk_1 button on Device_1 is pressed down, the audio stream from
Device 1 toDevice 2 is initiated. User_1 can speak to User_2 and User_2 can hearUser 1. However, User_1 can't yet hear from User_2. Similarly, on Device_2, pressing down Talk_1 initiates the audio stream from Device_2 toDevice 1. Pairing these two channels of opposite directions forms the two-way one-to-one communication betweenDevice 1 andDevice 2. ThereforeUser 1 andUser 2 can hear each other. - When a user of a device presses down two Talk Buttons simultaneously, one-way one-to-two audio streams are initiated. For instance, on
Device 1, if User_1 presses down both Talk_1 and _3. In this case, User_1 can be heard byUser User 1 can't hearUser 2 orUser 4.User 2 andUser 4 can't hear each other. - On
Device 1, three out of the four available channels are configured to connect to Device_2, _3, and _4. When the Talk to AllButton 112 on Device_1 is pressed down, one-way one-to-three audio streams are initiated. In this case, User_1 can speak to all channels. User_2, _3, and _4 can hearUser 1, butUser 1 can't hear from User_2, _3 or _4. - Similarly, a user of a device can deactivate a audio stream by releasing a
Talk Button 108. There are multiple ways to release aTalk Button 108 as described by theTalk Button 108 Operation Rules. Once theTalk Button 108 is released, the audio stream is deactivated. For instance, onDevice 1, if bothTalk 1 and Talk_2 buttons are already down andUser 1 releases theTalk 1 button by pressing on it, the Talk_2 button stays down. In this case, the audio stream fromDevice 1 to Device_2 is deactivated, but the audio stream fromDevice 1 to Device_3 stays on. - Users of
Device 1, Device_2, Device_3, and Device_4 can establish different types of calls by pressing down different combinations of Talk Buttons. For instance,User 1 can press down the Talk to AllButton 112 onDevice 1. As a result, all the Talk Buttons onDevice 1 go down and stay down. NowUser 1 can be heard by User_2, User_3 andUser 4. User_2 can press down Talk_1 button onDevice 2, and User_3 can press down Talk_1 button onDevice 3. User_1 can hear User_2 and User_3. At this time, if User_1 presses on the Talk_1 button onDevice 1, then the Talk to AllButton 112 andTalk 1 button onDevice 1 are released.User 2 can't hear User_1 anymore. User_1 and User_3 can still hear each other.User 1 can still hearUser 2. - 2.10. Handling of Incoming Audio Streams
- A callee may get an incoming audio stream while his device is idle, meaning there is no active channels. When an incoming audio stream comes in on a channel, the Channel Light of the channel flashes red light. There is also a sound notification to alert the callee. The voice of the caller is immediately played out via the speaker. The callee doesn't need to do anything in order to hear the caller because the
Silence Button 110 of the channel is up by default. When the callee presses down theTalk Button 108 of the channel, theTalk Button 108 on the callee's device turns red. The Channel Lights on both the caller's and the callee's devices will turn red. Additionally, a sound alert is played on the caller's device. The caller will first hear a sound alert and then the callee's voice. - A callee may get an incoming audio stream while talking to and/or listening to one or more users on certain channels (“the active channels”). An incoming audio stream from another caller causes the corresponding Channel Light to flash red light assuming this channel is different from the active channels. There is also a sound alert played on callee's device. However the voice of the incoming audio streamer can't be heard because the device is not idle. If the callee decides to pick up the call by pushing down the
Talk Button 108 of the incoming audio stream channel, then the voice of the incoming audio streamer can be heard by the callee. Pushing down theTalk Button 108 of the incoming audio stream channel causes the down Talk Buttons of the active channels to be released, therefore muting the callee on these channels. It also causes the Silence Buttons of the active channels to go down and stay down, thus silencing the active channels. - For instance, User_1 of Device_1 may speak to User_2 and User_3 by pressing down Talk_1 and Talk_2 buttons simultaneously. An incoming audio stream comes in on
Channel 3 of Device_1 fromUser 4. Channel Light_3 flashes red light onDevice 1. A sound alert is played onDevice 1.User 1 can't hear User_4. IfUser 1 presses downTalk 3, thenUser 1 will hear User_4, and User_4 can hearUser 1. Essentially two-way audio streams betweenUser 1 and User_4 are initiated. Additionally Talk 1 and Talk_2 buttons are released, and theSilence 1 and Silence_2 buttons go down and stay down. - In another case where
User 1 ofDevice 1 is listening to (instead of speaking to) User_2 and User_3, an incoming audio stream comes in onChannel 3 from User_4. Channel Light_3 flashes red light onDevice 1. A sound alert is played onDevice 1.User 1 can't hear User_4 yet. IfUser 1 presses downTalk 3, thenSilence 1 and Silence_2 go down. NowUser 1 and User_4 can talk to each other, butUser 1 can't hear User_2 or User_3 anymore. If there are any Talk Buttons that are currently down, they are released as well. This operation effectively deactivated the streams betweenUser 1 and User_2, and also betweenUser 1 and User_3. It initiates the two-way streams betweenUser 1 and User_4. - 2.11. Conference Call
- An Instant Conference Call may be defined as having more than two parties on a call where all parities can hear each other like on a traditional conference call. However, the difference between the instant conference call and the traditional conference call is that the instant conference call has the instant voice feature. There is no dialing of digits. There is no dial tone or ringtone. It gives users full control of the call through a combination of button operations such as add and drop, Talk and Silence, and Talk to All and Silence All. Several combinations of the instant conference call operations result in new call features that are not supported by the traditional conference call. For simplicity, instant conference calls and conference calls are used interchangeably in this document. Traditional conference calls as people know it today are specifically referred to as “traditional conference calls”.
- For a user (“the host”) to start an instant conference call, he may use the Call Add Button. He first presses down the Talk Button corresponding to a first participant. He then presses the Call Add Button. Then he presses down a second Talk Button corresponding to a second participant. Note that when the Call Add Button is pressed, it doesn't stay down. Also the Call Add Light turns on when it is pressed and stays on until the conference call is completed. The corresponding Talk Lights also turn red.
- To drop a participant from a conference call, the host presses on the Call Drop Button. Then he presses the Talk Button corresponding to the participant that he intends to drop. When the Call Drop Button is pressed, it doesn't stay down. The corresponding Talk Button is released on the host device and the Talk Light turns off. The corresponding Talk Button on the participant's device is also released and the
Talk Light 128 turns off. Additionally, a sound alert is played on the conference call to indicate the termination of the call with this participant. Now the participant can't be heard on the conference call. The corresponding Channel Lights and the Talk Lights on both the host and the participant's devices turn off. - For a participant to drop himself off a conference call, the participant presses on the Call Drop Button. Then he presses the Talk Button corresponding to the conference call. When the Call Drop Button is pressed, it doesn't stay down. The corresponding Talk Button is released on the participant's device and the Talk Light turns off. The corresponding Talk Button on the host's device is also released and the Talk Light turns off. Additionally, a sound alert is played on the conference call to indicate the termination of the call with the participant. Now the participant can't be heard on the conference call.
- In order to host a conference call with users of all the connected devices, the host can first press the Call Add Button, then he can simply press the Talk to All
Button 112. Like aTalk Button 108, if a Talk to AllButton 112 is pressed down, it remains down. The Talk to AllLight 132 also turns on. The Talk to AllButton 112 represents all the Talk Buttons on the device. Therefore, all the Talk Buttons go down with it and the Talk Lights turn red. The users of all the connected devices are added to the conference call. - In order to terminate a conference call at once, the host can first press the Call Drop Button, then he can simply press Talk to All
Button 112. The Talk to AllButton 112 represents all the Talk Buttons on the device. Therefore, all the Talk Buttons along with the Talk to AllButton 112 on the host's device will be released and the conference call is terminated at once. Additionally, all the corresponding Talk Buttons on the participants' devices are also released. When the conference call is terminated for all the parties, a sound alert is played on the conference call to notify all parties that the conference call is terminated. - When the conference call is terminated completely on the device, the Call Add Light turns off. In other words, the Call Add Light indicates if there is an ongoing conference call hosted by the device or not.
- 11.1. Audio Mixing
- Audio mixing may be required for a conference call. The audio mixing function is provided by the device of the conference call host. Assume that
User 1 is the host. Consider two voice calls between the host (User 1) and two participants (User_2 and 3). Without audio mixing, User_2 and _3 can talk toUser 1, but not to each other. When audio mixing is enabled onDevice 1, Device_1 mixes the audio streams as described below, which enables 3-way conferencing, and all three can talk to each other. - Device_1 mixes the voices of
User 1, User_2 and User_3 and plays out the mixed voices via its speaker. - Device_1 mixes
User 1's voice with the audio stream that it receives from User_2, and sends the mixed voices to User_3. - And Device_1 mixes
User 1's voice with the audio stream that it receives from User_3, and sends the mixed voices toUser 2. - As a result of audio mixing, User_2 can hear User_3, and User_3 can also hear User_2 even though User_2 and User_3 are not directly connected with each other. All three users can hear each other on the conference call.
-
FIG. 7 illustrates a conference call among multiple communication devices according to aspects of this disclosure. In particular,FIG. 7 illustrates a step-by step process for User_1 to start a conference call with User_2 and User_3 sequentially. - Step 1: User_1 presses down
Talk 1. Now an audio stream fromDevice 1 toDevice 2 is initiated.User 2 can hearUser 1. Step 2: User_1 presses the Call Add Button, then pressesTalk 2. Now an audio stream from Device_1 to Device_3 is initiated. User_3 can hearUser 1. Now onDevice 1, both Talk_1 and Talk_2 buttons are down, and the corresponding Talk Lights are red. Additionally, the Call Add Light is turned Step 3: User_2 hears a sound alert for an incoming audio stream. User_2 can also see a flashing red light to indicate on which channel the call is coming in. User_2 responds by pressing downTalk 1, now an audio stream fromDevice 2 toDevice 1 is initiated.User 1 can hearUser 2. - Step 4:
Device 1 mixesUser 2's voice withUser 1's voice and sends the mixed voices toUser 3. NowUser 3 can hearUser 1 and User_2 due to the audio mixing byDevice 1. - Step 5: User_3 hears a sound alert for an incoming audio stream. User_3 can also see a flashing red light to indicate on which channel the call is coming in. User_3 responds by pressing down
Talk 1 button, now an audio stream fromDevice 3 toDevice 1 is initiated. - Step 6:
Device 1 mixes the voices of User_2 and User_3 and plays it via the speaker.User 1 can hear User_3 in addition to User_2. Additionally,Device 1 mixesUser 3's voice withUser 1's voice and sends the mixed voices toUser 2. audio mix NowUser 1, _2, and 3 can all hear each other. - 2.11.2. Conference Call Mute and Silence
- During an instant conference call, if a participant wants to mute himself, he can press on the
Talk Button 108 on his device corresponding to the conference call to release the button. Now this participant can't be heard, but he can still hear everyone else on the conference call. This action is equivalent to pressing the mute button on a traditional phone. For instance, if User_3 presses onTalk 1, he deactivates the audio stream fromUser 3 toUser 1. NowUser 3 can't be heard byUser 1 or_2. Essentially User_3 muted himself from the conference call. - For User_3 to un-mute himself, User_3 can press down
Talk 1 again. Now User_3 can be heard again on the conference call. The question here is: how does the system know that User_3 is part of the original conference call instead of a caller of a new and independent one-way call? The answer lies in the host device, namelyDevice 1.Device 1 remembers the original conference call structure, and adds User_3 back to the conference call as long as the conference call is still active. - The host device of an instance conference call is responsible for remembering the structure of the conference call until the last participant leaves the conference call. In the case of
FIG. 7 , Device_1 is responsible for remembering and maintaining the conference call structure. - During an instant conference call, if a participant presses down the
Silence Button 110 on his device corresponding to the conference call. The conference call is silenced on the participant's device. - During an instant conference call, there are Talk Buttons that are already down on the host device. If the host presses on a
Talk Button 108 that is already down without pressing the Call Add or Drop Button first, then it releases theTalk Button 108. Essentially the host mutes the conference call to the corresponding participant so that the participant can't hear the conference call. To un-mute the conference call to the participant, the host presses down theTalk Button 108 again. Again the host device remembers the conference call structure, and adds the participant back to the conference call. - During an instant conference call, if the host presses down a
Silence Button 110 corresponding to a participant, then it silences the participant on the conference call. However, the participant can still listen in on the conference call. For instance,User 1, _2 and_3 are on a conference call andUser 1 is the host of the instant conference call. If User_1 presses down Silence_1 onDevice 1, then User_1 silences User_2 on the conference call. However, User_2 can still listen in on the conference call. - During an instant conference call, there are Talk Buttons that are already down on the host device. If the host presses down a
Talk Button 108 that is currently up without pressing the Call Add Button first, it releases all the Talk Buttons that were down, it also makes all the paired Silence Buttons go down and stay down. Through this action, the host just initiated a new audio stream to a new user. This also causes the conference call to be muted to all participants. This also silences all the participants on the conference call. No one on the conference call can hear each other. Essentially this operation puts the conference call on hold. - During an instant conference call, if a participant instead of the host presses down a
Talk Button 108 that is currently up without pressing the Call Add Button first, it releases thedown Talk Button 108 corresponding to the conference call, it also makes the pairedSilence Button 110 go down and stay down. Through this operation, the participant just initiated a new audio stream to a new user. This also causes this participant to be muted on the conference call, it also silences the conference call to the participant. - 2.11.3. Daisy-Chaining of Audio Mixers
- After a conference call is initiated by a host, a participant of the conference call (the “second host”) can also add a new participant by pressing down the Call Add Button, and then pressing down another
Talk Button 108. In this case, the device of the second host acts as a second audio mixer for the incoming voice streams and sends the mixed voices streams out only to the participants that it hosts. Essentially the audio mixers of the first host device and the second host device are daisy-chained to support the conference call co-hosted by the host and the second host. In theory, there is no limit as to how many levels of daisy-chaining the system can support. Practically, with each level of daisy-chaining, the quality of service of the conference call would deteriorate due to increased noise and delay. -
FIG. 8 illustrates an example of a daisy-chained conference call among multiple communication devices according to aspects of this disclosure. In particular,FIG. 8 shows a step-by-step activation process of a daisy-chained conference call. -
Step 1 and 2: User_1 initiates an instant conference call with User_2 and_3 by pressing down Talk_1 on Device_1 first, then Call Add Button, and then Talk_2 on Device_1. -
Step 3 and 4: User_2 and User_3 respond to the conference call by pressing down Talk_1 on Device_2 and Talk_1 on Device_3, respectively. - Now
User - Step 5: User_3 now adds User_4 into the conference call by pressing the Call Add Button and then Talk 3 on
Device 3. - Step 6: User_4 responds to the conference call by pressing down Talk_3 on
Device 4. - Since Device_1 invited Device_2 and Device_3 to the conference call, Device_1 is responsible for providing the audio mixing function to Device_2 and Device_3. Device_1 mixes the incoming audio stream from Device_2 with
User 1's voice into a composite audio stream (#2) as shown inFIG. 8 Device_1 then sends the compositeAudio Stream # 2 to User_3. Similarly, Device_1 mixes the incoming audio stream from Device_3 andUser 1's voice into a composite audio stream (#1). Device_1 then sends the compositeAudio Stream # 1 to User_2. - Device_3 receives the
audio stream # 2 which contains the voices ofUser 1 andUser 2.Device 3 mixesAudio Stream # 2 withUser 3's voice into Audio Stream #5 and sends it toDevice 4.Device 3 also receives the audio stream #6 which containsUser 4's voice.Device 3 mixes Audio Stream #6 withUser 3's voice intoAudio Stream # 4 and sends it toDevice 1.Device 3 also mixesAudio Stream # 2 and #6, and plays it out via its speaker. - Since Audio Stream #5 contains the voices of
User 1, User_2 and User_3, User_4 can hear all parties. SinceAudio Stream # 1 contains voices fromUser 1, User_3 and User_4, User_2 can hear all participants and the host. - Through audio mixing, all participants and the host each other. Here is the content of each stream in
FIG. 8 for the conference call. - Audio Stream #1: voices of
User 1, _3, and _4 - Audio Stream #2: voices of
User 1 and_2 - Audio Stream #3: voices of User_2
- Audio Stream #4: voices of User_3 and _4
- Audio Stream #5: voices of
User 1, _2 and _3 - Audio Stream #6: voices User_4
-
FIG. 9 illustrates a loop that may be formed by multiple connected communication devices according to aspects of this disclosure. In order to prevent loop from forming, a participant can't add the host to the conference call because if the participant presses theTalk Button 108 corresponding to the host, theTalk Button 108 is released. This prevents a direct loop from forming between the host and the participant. Despite this, there is still the possibility of loop forming in an indirect way. For instance,User 1, _2, _3 and _4 are on a conference call as shown inFIG. 9 . User_1 is the first host andUser 3 is the second host. IfUser 4 adds User_1 into the conference call, then a loop amongUser 1, _3 and _4 could potentially be formed. User_1 will see an incoming audio stream coming in onChannel 3. If User_1 presses downTallk 3, then all the down Talk Buttons will be released and all the pairing Silence Buttons will go down. In this case, Talk_1 and Talk_2 buttons are released. Therefore, the conference call portion hosted by Device_1 is muted to User_2 and User_3.Silence 1 and Silence_2 buttons go down, bothUser 2 andUser 3 are silenced on the conference call portion hosted byDevice 1. However, User_1 and User_4 can talk to each other. The audio mixer ofDevice 3 is still functioning. Since User_4 is the third host, Device_4 acts as a audio mixer for the incoming stream. Device_4 mixes Audio Stream #5 (note User 1's voice andUser 2's voice are not present) with User_4's voice, and sends it toUser 1. Device_4 also mixes stream #8 (User 1's voice) with User_4's voice, and sends it to User_3. EssentiallyDevice 3, _4 and Device_1 are having a conference call hosted by Device_4. - Here is the content of each stream in
FIG. 9 for loop forming. - Audio Stream #1: no voice
- Audio Stream #2: no voice
- Audio Stream #3: voice of User_2 (silenced by Device 1)
- Audio Stream #4: voices of User_3, _4 and 1 (silenced by Device 1)
- Audio Stream #5: voices of User_3
- Audio Stream #6: voice of User_4 and User_1
- Audio Stream #7: voices of User_3 and 4
- Audio Stream #8: voice of User_1
- User_4 can hear
User 1 and _3. User_3 can hear User_4 andUser 1.User 1 can hear User_4 and _3. Essentially a conference call amongUser 1, User_3 and User_4 is initiate initiated and is hosted byDevice 4. A potential loop is avoided in this case. - If a loop forms during a conference call, it can be confusing to participants. One way to handle it is to let the participants handle it. They can try to sort it out by dropping the participant that caused the loop. Or they can terminate the conference call entirely and restart the conference call.
- If there are multiple hosts for a conference call, when one host drops a participant who is a second host for other participants (“the second participants”), then the second host and the second participants are dropped from the conference call portion hosted by the first host. However, the second host and the second participants can continue with the conference call amongst themselves.
-
FIG. 10 illustrates an example of dropping a second host from a conference call according to aspects of this disclosure. After User_3 is dropped from the original conference call fromFIG. 8 , User_3 andUser 4 are still on a call between themselves. Note that the host can only drop the portion of the conference call that he started, but he can't drop the portion that was started by another host. - 2.12. Sending and Receiving Voicemail
- A Voicemail Light on a device flashes red as soon as a voice message arrives. If the user of the device presses the Voicemail button, then he will start hearing the voicemail messages with the newly recorded message being played first. The Voicemail button doesn't stay down when pressed. Before each message is played, the device will announce the channel from which the message came in on. Pressing the Voicemail button again, the user skips from the current message to the next message. Voicemail messages are automatically deleted after they are listened to even if the user doesn't finish listening to the message.
- In order to save a voicemail message, the user can press the Voicemail button twice quickly, this will save the current message and skip to the next message.
FIG. 11 illustrates logic flow for recording a voicemail according to aspects of this disclosure. - In
FIG. 11 , User_1 presses down Talk_1 button. According toFIG. 6 , Talk_1 corresponds to a channel connected toDevice 2.Device 1 sends a “Talk Initiation” message toDevice 2. Upon receiving “Talk Initiation”, the Channel Light on Device_2 corresponding to the incoming audio stream flashes red light. Device_2 sends a NACK message to Device_1 to indicate that Device_2 is busy or unavailable. If there is at least one active channel on Device_2, then Device_2 is busy. An active channel may have an incoming audio stream, outgoing audio stream, or both. If either aSilence Button 110 or aTalk Button 108 or both are down on Device_2, then Device_2 is unavailable. Alternatively if User_2 is listening on a channel, thenDeivice 2 is unavailable. After sending the NACK message, Device_2 also starts to recordUser 1's voice. Upon receiving an NACK, Device_1 plays a message like “Callee isn't available, please leave a message.” User_1 continues talking to leave a message. User_1 presses Talk_1 to release the button. Device_1 sends a Talk Termination message to Device_2. Device_2 then sends an ACK and stopsrecording User 1's voice. - 2.13. Sending and Receiving Streaming Web Content
- The sender can log into his account on a website through the Internet. In his account, there is a calendar. The sender can specify a specific time for the streaming content to be delivered. He also specifies the sender's name and the recipient's Device Name(s). There might be one or multiple recipients. The recipients may have given permission to receive streaming web content. The streaming content can be the recorded voice of the user or a song or a combination of various audio contents. The website is hosted by a web server as part of the Instant Communications System.
- The streaming content is stored on the Media Server. The Media Server can be a third party server. Additionally, the Media Server has its own streaming contents from which a user can select from (e.g., radio stations, pod cast).
- When the scheduled time arrives, the Media Server will send the streaming content the recipient's device. The recipient's device will play the stream content on the channel of the sender's device. The recipient's device will play the streaming content immediately if the
Silence Button 110 for the sender isn't down and the speaker isn't busy. - This feature could also be used as a reminder or an alarm. A user can pre-program some streaming content (e.g., voice message or music) to serve as a reminder or an alarm.
- Streaming content playing on a device has a lower priority. It is preempted by user activities. For instance, when an incoming audio stream comes into the device, it preempts the streaming content. Or if a user presses the
Talk Button 108, it preempts the streaming content. Or if a user presses the voicemail message button, it preempts the streaming content. - 2.14. IP Packets
- There are two types of IP packets in the call flows:
- Signaling Messages
- Signaling messages include Talk Initiation, Talk Termination, Call Add, Call Drop, ACK, NACK, Request IP Address, Return IP Address, Add Connection, Add Connection Accepted, etc.
- Signaling messages can use either TCP/IP or UDP/IP protocol.
- In each signaling message sent by a device to another device, there contain the Device Names of the sender and the receiver. In each message sent by a device to the Instant Voice Server, there contain the hardware ID and the Device Name of the sender. In each message sent by the Instant Voice Server to a device, there contain the hardware ID and the Device Name of the receiver.
- Bearer Traffic Packets
- Bearer traffic packets carrying multimedia content including audio and video typically use UDP/IP protocol.
- Each bearer traffic packet may be time stamped with the accuracy on the order of millisecond by the device generating the packets. The timestamps will be used to sort packets that are out of order and to discard late packets.
- Additionally, all signaling messages and bearer traffic packets are encrypted to protect the privacy of users and the content of communications.
- 3. Configuring Devices
-
FIG. 12 illustrates a bottom-up view of the communication device according to aspects of this disclosure. Adevice 102 may or may not have ascreen 1202 or data entry mechanism 1204 (e.g., a keyboard). If the device has ascreen 1202 and adata entry mechanism 1204 as shown inFIG. 12 , then configuration of the device can be done through these interfaces. - Where a device does not have a
display 1202 and adata entry mechanism 1204, then the configuration may be done through a configuration machine such as PC, a laptop, a tablet, or a smartphone that has a display and data entry mechanism. The configuration machine is connected to the device locally either via a cable (e.g., a USB cable) or via a wireless connection (e.g., infrared). The configuration machine needs to have the configuration software installed on the machine to manage the device. The software can be downloaded from the Internet or an application store, or copied from a disk. Once the configuration machine and the device are connected and the configuration software running, a user can configure the device via the configuration machine. After a device establishes connection with the Instant Communications Server, the device can be configured via a web site provided by the Instant Communications Server. - In the case where the device doesn't have a screen display, there needs to be an Event Indicator that tells the user that there is an incoming event that needs to be handled. For instance, if the device receives a request to connect from another user, the Event Indicator will turn on. The user will then know to handle the request through one of the three ways to configure the device.
- 3.1. Configuring Connectivity
- Two or more devices are typically sold as a package. After plugging in the power, the user first needs to connect the devices to the network. For instance, if there is a WiFi network, then the user will select the Access Point ID and enter the WEP key on each of those devices. The configuration interface will indicate that the WiFi Connection is successful.
- Each device is pre-configured to connect with the Instant Communications Server as soon as it establishes a Internet connection. For instance, each device is pre-configured to contact a certain Universal Resource Locator (URL) or a certain IP address where the Instant Communications Server is located. If the connection from the device to the Instant Communications Server is successful, then the
Connectivity Light 126 will turn green. At this point, the Instant Communications Server has obtained the device's IP address. Since this is a portable device, the IP address of the device may change from time to time and the device will update the Instant Communications Server with the new IP address. - There is a special case where the Instant Communications Server is not available for various reasons. One reason could be that the devices reside on a LAN that isn't connected to the Internet. Therefore this group of devices can't connect to the Instant Communications Server. In this case, the system may still allow the devices on the same LAN to communicate with each other in the absence of the Instant Communications Server. The devices on the same LAN needs to discover each other and establish connectivity with each other.
- 3.2. Naming of Devices
- Each device has a globally unique hardware ID that is hardwired in the device by the manufacturer. The hardware ID uniquely identifies the device.
- Each device may have a globally unique name configured by a user and approved by the system. This unique name is called the Device Name. Associated with the Device Name is the password. A user might label his device with a Device Name representing a person or a location. Depending on the application, the Device Name of a device might be person's name, such as John. Alternatively, if the device is distributed in a big house and functions like an intercom system, then the Device Name for the device might be “Living Room”.
- The Device Name and password may be configured for the device. This may bind the hardware ID with the Device Name. The Device Name and password, along with the device's hardware ID and IP address are sent to the Instant Communications Server The Instant Communications Server grants the selection of Device Name and password, and the binding of Device Name with the hardware ID.
- The Instant Communications Server maintains the information of all the devices, such information includes hardware ID, the Device Name and password, the IP address of the device, network configuration parameters, and channel configuration.
FIG. 13 shows an example of the configuration. - A user may be an administrator of multiple devices. The user can create a globally unique User Name for all the devices that he manages. The User Name is used as a login name for the user's account accessed via the web site provided by the Instant Communications Server. Associated with the User Name is the password. Once logged in, the user can manage multiple devices under one account via the Internet if these devices are already configured to connect the Instant Communications Server.
- Once a device is configured with a Device Name, the hardware ID of the device is bound with the Device Name. A user can change the Device Name of a device to another Device Name. The device will update the Instant Communications Server with the new Device Name.
- 3.3. Channel Configuration
- The next step is to configure each device to connect to other devices. The connection to another device is called a channel.
FIG. 13 illustrates an example of configuring the channel of the communication device according to aspects of this disclosure. For instance, inFIG. 13 , a user can configure each channel on a device in the following way. - The device in
FIG. 13 is calledDevice 1. The user of the device is calledUser 1. In further detail,Channel 1 onDevice 1 refers to the connection withDevice 2 whose user isUser 2.Channel 2 onDevice 1 refers to the connection withDevice 3 whose user isUser 3.Channel 3 onDevice 1 refers to the connection withDevice 3 whose user isUser 4. Corresponding toChannel 1, there are Talk_1 and Silence_1 buttons, andChannel Light 1. If the connections withDevice 2, _3 and _4 are good, thenChannel Light 1, _2 and _3 onDevice 1 are green. Note thatChannel 4 is not configured, therefore Channel Light_1 is dark. - 3.4. Remote Configuration
- Once a device connects to the Instant Communications Server, then the device can be configured remotely via the Internet by logging in with the User Name and password combination. A user can remotely add wireless connections such as a new WiFi access point. A user can configure channels as well. A user can also accept or reject a request to add another user.
- 3.5. Channel Establishment
-
FIG. 14 illustrates an exemplary call flow for establishing a channel between two devices according to aspects of this disclosure. Referring toFIG. 14 , User_1 configuresChannel 1 to correspond to Device_2 by entering the Device Name “Device 2”. -
Device 1 then sends a “Request for IP Address for Device_2” message to the Instant Communications Server. The Instant Communications Server returns with an IP address for Device_2.Device 1 then sends an “Add Connection” message toDevice_2 using Device 2's IP address as destination. The message also includes the Device Name “Device_2” as the destination device, and the Device Name “Device 1” as the source device. User_2 of Device_2 can accept or deny the request. User_2 can also block any further requests from the user. If User_2 accepts the request, Device_2 sends an “Add Connection Accepted” message back toDevice 1. Additionally, User_2 needs to select a channel that corresponds toDevice 1. NowDevice 1 and Device_2 are connected and are configured on each other's devices.Channel Light 1 onDevice 1 andChannel Light 1 on Device_2 both turn green. After the channel is established, both devices can identify each other by the device names and know how to communicate with each other by knowing the IP addresses of each other. Additionally, on a device, the connected device is mapped to a specific channel. Each channel on the device has a channel identifier. All of this configuration information including channel identifier, device name corresponding to the channel, and the IP address corresponding to the connected device is stored at the device. - When the user finishes configuring all the devices,
FIG. 6 shows an example of the mapping between channels and devices among multiple connected devices. - For safety reasons, the call flow for adding a channel can be altered so that the IP Address of
Device 2 is not sent to Device_1 because Device_1 isn't approved yet by User_2 of Device_2. In this case, the Instant Communications Server acts as an intermediary. The Instant Communications Server will not return with an IP address forDevice 2.Device 1 sends an “Add Connection” message to the Instant Communications Server instead. The Instant Communications Server forwards the message to Device_2. If User_2 accepts the request, Device_2 sends an “Add Connection Accepted” message back to the Instant Communications Server which forwards the message toDevice 1. Now Device_1 and Device_2 are connected and configured on each other's devices. After Device_1 is accepted by Device_2, the Instant Communications Server will return the IP address of Device_2 when requested. - Similarly, when a user of a first device wants to remove a connection with a second device, the user can reconfigure the corresponding channel to None (no one), or to a third device. And the user's device sends a “Drop Connection” message to the second device. The second device responds with a confirmation to the first device. Now the corresponding Channel Lights on both the first and the second devices go dark.
- 3.6. Device Information Collection
- A device will update the Instant Communications Server with the following information on a periodic basis:
- Device Name and password
- Channel configurations
- Network connectivity parameters (e.g., WiFi Access Point ID and WEP key)
- 4. Call Flows of Instance Voice Functions
- The following use cases assume that
Device 1, Device_2, Device_3 andDevice 4 are configured as shown inFIG. 6 . The configuration information is stored in the memory of each device. Furthermore, each device is connected to the other three devices. -
FIG. 15 illustrates an exemplary call flow for talk initiation and talk termination according to aspects of this disclosure. Referring toFIG. 15 , User_1 presses down Talk_1 button. The processor of Device_1 maps Talk_1 to Device_2 based on the configuration information stored in memory. Additionally the processor maps Device_2 to its IP address. Using the IP address of the Device_2 as an IP packet destination, Device_1 sends a Talk Initiation message to Device_2. Device_1 starts sendingUser 1's voice in the form of IP packets to Device_2. Device_2 acknowledges the receipt of the message. - Device_2 plays a sound alert to indicate the incoming audio stream from
User 1. Device_2 receivesUser 1's audio stream and playsUser 1's voice stream on the speaker. Additionally, Channel Light_1 on Device_2 flashes red light to indicate the incoming audio stream from User_1 onChannel 1. Now User_2 can hear User_1 without taking any action. - User_2 presses Talk_1 button next to the flashing red light. The processor of Device_2 maps Talk_1 to Device_1 based on the configuration information stored in memory. Using the IP address it just received in the IP packet, Device_2 sends a Talk Initiation message to
Device 1. Device_2 starts sending User_2's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert to indicate the incoming audio stream from User_2. Device_1 receives User_2's audio stream and plays User_2's voice on the speaker. Additionally, Channel Light_1 on Device_1 and Device_2 turn red. Now User_1 can hear User_2. - The Talk Initiation message may include one or more of the following information: message type, source device name, destination device name, audio encoding format, video encoding format, rich text format, encryption information, etc. The Talk Initiation message may be one type of initiation message transmitted by the communication device. Depending on the type of content being transmitted, the communication device may transmit other types of initiation messages, such as a Video Initiation message, Music Initiation message, or other types of initiation messages. In this manner, the initiation message transmitted by the communication device may inform the receiving communication device of the type of information the receiving communication device should expect.
- The IP packets of an audio stream may include source and destination device names in addition to digitized audio content. The IP packets may be encrypted for security and privacy reasons.
- User_1 wants to mute himself on the call. User_1 releases the
Talk 1 button by pressing on it again. Device_1 stopsrecording User 1's voice and stops sendingUser 1's audio stream to Device_2. Additionally, Device_1 sends a Talk Termination message to Device_2. Device_2 acknowledges the receipt of the message and stops processing the audio stream fromDevice 1. A sound alert for the Talk Termination is played by Device_2. Channel Light_1 on Device_2 turns green. Channel Light_1 on Device_1 turns flashing red. Now User_2 can't hearUser 1. - Note that User_1 can still hear User_2. In order to silence User_2, User_1 presses down Silence_1 button. Device_1 stops playing User_2's voice on the speaker.
- In addition, note that the Talk_1 button on Device_2 is still down. At some point, User_2 will release the Talk_1 button by pressing on it again. Device_2 stops recording User_2's voice and stops sending User_2's audio stream to
Device 1. Additionally, Device_2 sends a Talk Termination message toDevice 1. Device_1 acknowledges the receipt of the message. A sound alert for the Talk Termination is played byDevice 1. However, since theSilence Button 110 is down, the sound alert is suppressed. Channel Light_1 on Device_1 turns green. - Note that after the Talk Initiation message was sent from Device_1 to Device_2, Device_1 doesn't wait for ACK to come back from Device_2 before sending out
User 1's audio stream.User 1's audio stream can be sent immediately after the Talk Initiation message was sent. This is an important aspect of the system. In the past, an end-to-end connection needs to be set up via signaling for both the circuit and packet voice before anyone's voice is transmitted. At the end of the conversation, the connection has to be torn down. As the disclosed systems and methods bypass all of these set up and tear down procedures at the time when a user initiates communications with another user, the disclosed systems and methods effectively provide instant communications. -
FIG. 16 illustrates an exemplary call flow for broadcasting a call according to aspects of this disclosure. InFIG. 16 , User_1 presses the Talk to AllButton 112. Since Talk to All on Device_1 corresponds to all the connected devices, Device_1 sends Talk Initiation messages to Device_2, Device_3 and Device_4. Device_1 starts sendingUser 1's voice in the form of IP packets to Device_2, Device_3 and Device_4. Device_2, Device_3 and Device_4 acknowledge the receipt of the messages. Device_2, _3 and_4 play a sound alert to indicate the incoming audio stream fromUser 1. Device_2, Device_3 and Device_4 receiveUser 1's audio stream and playUser 1's voice on the speakers. Additionally, Channel Light_1 on Device_2, Channel Light_1 on Device_3 andChannel Light 1 onDevice 4 flash red light to indicate the incoming audio stream from User_1 onChannel 1. With audio mixing, now User_2, _3 and_4 can hear User_1. - User_2 presses Talk_1 button. Device_2 sends a Talk Initiation message to
Device 1. Device_2 starts sending User_2's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert to indicate the incoming audio stream from User_2. Channel Light_1 on Device_1 and Device_2 turn red. Device_1 receives User_2's audio stream and plays User_2's voice on the speaker. Now User_1 can hear User_2. - User_3 presses Talk_1 button. Device_3 sends a Talk Initiation message to
Device 1. Device_3 starts sendingUser 3's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert to indicate the incoming audio stream from User_3. Channel Light_2 on Device_1 and Channel Light_1 on Device_3 turn red.Device 1 receivesUser 3's audio stream. Note thatDevice 1 also receivesUser 2's voice.Device 1 mixes the voices of User_2 and User_3, and plays the mixed voices on the speaker. Now User_1 can hear both User_2 andUser 3. ButUser 2 andUser 3 can't hear each other. - User_4 presses Talk_1 button. Device_4 sends a Talk Initiation message to
Device 1. Device_4 starts sendingUser 4's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert to indicate the incoming audio stream from User_4. Channel Light_3 on Device_1 and Channel Light_1 onDevice 4 turn red.Device 1 receivesUser 4's voice. Note thatDevice 1 also receivesUser 2's andUser 3's voices. Device_1 mixes the voices of User_2, User_3 and User_4, and plays the mixed voices on the speaker. Now User_1 can hear User_2, User_3 and User_4. But User_2,User 3 andUser 4 can't hear each other. - Essentially, User_1 is having separate conversations with User_2, _3 and_4 simultaneously.
-
FIG. 17 illustrates an exemplary call flow for a conference call activation according to aspects of this disclosure. InFIG. 17 , User_1 presses Talk_1 button. SinceTalk 1 on Device_1 corresponds to Device_2 as indicated byFIG. 6 , Device_1 sends a Talk Initiation message to Device_2. Device_1 starts sendingUser 1's voice in the form of IP packets to Device_2. Device_2 acknowledges the receipt of the message. Device_2 plays a sound alert to indicate the incoming audio stream fromUser 1. Device_2 receivesUser 1's audio stream and playsUser 1's voice on the speaker. Additionally, Channel Light_1 on Device_2 flashes red light to indicate the incoming audio stream from User_1 onChannel 1. Now User_2 can hearUser 1. - User_1 presses the Call Add Button. Then User_1 presses Talk_2 button. Since Talk_2 on Device_1 corresponds to Device_3 as indicated by
FIG. 6 , Device_1 sends a Talk Initiation message to Device_3. Device_1 starts sendingUser 1's voice in the form of IP packets to Device_3. Device_3 acknowledges the receipt of the message. Device_3 plays a sound alert to indicate the incoming audio stream fromUser 1. Device_3 receivesUser 1's audio stream and playsUser 1's voice on the speaker. Additionally, Channel Light_1 on Device_3 flashes red light to indicate the incoming audio stream from User_1 onChannel 1. Now User_3 can hearUser 1. - User_2 presses Talk_1 button. Device_2 sends a Talk Initiation message to
Device 1. Device_2 starts sending User_2's audio stream in the form of IP packets toDevice 1.Device 1 acknowledges the receipt of the message.Device 1 plays a sound alert to indicate the incoming audio stream from User_2.Device 1 receives User_2's audio stream and plays User_2's voice on the speaker. Additionally,Channel Light 1 onDevice 1 andDevice 2 turn red. NowUser 1 can hear User_2. - Since
Device 1 is the host of the conference call, it mixes the incoming voices and sending the mixed voices to each participant. In this case,Device 1 mixes the voices ofUser 1 and User_2, and sends the mixed voices to Device_3. Now User_3 can hearUser 1 and User_2. - User_3 presses
Talk 1 button. Device_3 sends a Talk Initiation message toDevice 1. Device_3 starts sending User_3's audio stream in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert to indicate the incoming audio stream fromUser 3.Device 1 receivesUser 3's audio stream. Note thatDevice 1 also receivesUser 2's voice.Device 1 mixes the voices of User_2 and User_3, and plays the mixed voices on the speaker ofDevice 1. Now User_1 can hear both User_2 and User_3. Additionally, Channel Light_1 on Device_1 andDevice 3 turn red. - Additionally, Device_1 mixes the voices of User_1 and User_3, and sends the mixed voices to
Device 2. NowUser 2 can hearUser 1 andUser 3. - Now
User 1, User_2 and User_3 can all hear each other. The conference call activation is completed. -
FIG. 18 illustrates an exemplary call flow for dropping a conference call participant by the host of the conference call according to aspects of this disclosure. InFIG. 18 ,User 1 is hosting a conference call with User_2 and User_3.User 1, User_2 and User_3 can all hear each other.Talk 1 andTalk 2 buttons onDevice 1 are down.Talk 1 button onDevice 2 andTalk 1 button onDevice 3 are down. - In order to drop User_2 from the conference call,
User 1 first presses the Call Drop Button, and then presses theTalk 1 button to release it. A sound alert for the Call Drop of Device_2 is played on the conference call so all parties can hear it.Device 1 stops sending any audio stream to Device_2.Device 1 also stops mixing User_2's voice. Additionally,Device 1 sends a Call Drop messages to Device_2. Device_2 acknowledges the receipt of the message. Device_2 automatically releasesTalk 1 button, and Device_2 stops sending User_2's voice toDevice 1. Additionally, Device_2 stops processing any audio stream fromDevice 1. Channel Light_1 on Device_1 and Device_2 turn green. Now User_2 is completely dropped off the conference call while the conference call continues on. - On
Device 1, only Talk_2 is down. On Device_2, no button is down. OnDevice 3, only Talk_1 button is down.Device 1 andDevice 3 can still talk with each other. -
FIG. 19 illustrates an exemplary call flow for dropping a conference call by a participant of the conference call according to aspects of this disclosure. InFIG. 19 , User_1 is hosting a conference call with User_2 and User_3.User 1, User_2 and User_3 can all hear each other. - User_2 may or may not even know he is on a conference call. If he wants to drop out of the call, he first presses the Call Drop Button, and then presses the Talk_1 button to release it. Device_2 stops sending User_2's audio stream to
Device 1. Additionally, Device_2 sends a Call Drop message toDevice 1. Device_1 acknowledges the receipt of the message. Since Device_1 remembers the conference call structure, it knows that this user is a conference call participant. Device_1 automatically releases Talk_1 button, and Device_1 stops sending any audio stream to Device_2. Device_1 also stops mixing User_2's voice. A sound alert for the Call Drop is played on the conference call so everyone can hear it. Channel Light_1 on Device_1 and Device_2 turn green. User_2 is completely dropped off the conference call while the conference call continues on. -
FIGS. 20A-20B illustrates an exemplary call flow for activating a conference call according to aspects of this disclosure. InFIG. 20A , User_1 first pushes the Call Add Button, then he presses the Talk to AllButton 112. Since Talk to All on Device_1 corresponds to all the connected devices, Device_1 sends Talk Initiation messages to Device_2, Device_3 and Device_4. Device_1 starts sendingUser 1's voice in the form of IP packets to Device_2, Device_3 and Device_4. Device_2, Device_3 and Device_4 acknowledge the receipt of the messages. Device_2, _3 and _4 play a sound alert to indicate the incoming audio stream fromUser 1. Device_2, Device_3 and Device_4 receiveUser 1's audio stream and playUser 1's voice on the speakers. Additionally,Channel Light 1 on Device_2, Device_3 andDevice 4 flash red light to indicate the incoming audio stream fromUser 1 onChannel 1. Now User_2, _3 and _4 can hearUser 1. - User_2 presses Talk_1 button. Device_2 sends a Talk Initiation message to
Device 1. Device_2 starts sending User_2's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert on the conference call to indicate the incoming audio stream from User_2. Device_1 receives User_2's audio stream and plays User_2's voice on the speaker. Additionally, Channel Light_1 on Device_1 and Device_2 turn red. NowUser 1 can hearUser 2. - Referring to
FIG. 20B , User_3 presses Talk_1 button. Device_3 sends a Talk Initiation message toDevice 1. Device_3 starts sendingUser 3's voice in the form of IP packets toDevice 1. Device_1 acknowledges the receipt of the message. Device_1 plays a sound alert on the conference call to indicate the incoming audio stream from User_3. Channel Light_2 on Device_1 and Channel Light_1 on Device_3 turn red.Device 1 receivesUser 3's audio stream. Note thatDevice 1 also receivesUser 2's voice.Device 1 mixes the voices of User_2 and User_3, and plays the mixed voices on the speaker. Now User_1 can hear both User_2 and User_3. Additionally, Device_1 mixes the voices ofUser 1 andUser 2 and sends it toUser 3.Device 1 also mixes the voices ofUser 1 andUser 3 and sends it toUser 2. NowUser 2 andUser 3 can hear each other. - User_4 presses Talk_1 button. Similarly, through the audio mixing by
Device 1,User 1, User_2, User_3 and User_4 can hear each other. -
FIG. 21 illustrates an exemplary call flow for terminating a conference call according to aspects of this disclosure. InFIG. 21 , User_1 is hosting a conference call with users of all the connected devices. In this case, all the connected devices are Device_2, Device_3 andDevice 4.User 1, User_2, User_3 and User_4 can all hear each other. TheTalk 1, Talk_2 andTalk 3 buttons and the Talk to AllButton 112 onDevice 1 are down.Talk 1 button on Device_2,Talk 1 button onDevice 3 andTalk 1 button onDevice 4 are down. - To terminate the conference call at once, User_1 first presses the Call Drop Button, and then presses the Talk to All
Button 112 to release it. A sound alert is played on the conference call to indicate the dropping of a participant. Device_1 stops sending any audio stream to all connected devices. Device_1 also stops processing audio stream from any devices. Additionally, Device_1 sends a Call Drop message to all the connected devices. The connected devices acknowledge the receipt of the message. The connected devices automatically release the corresponding Talk Buttons respectively, and they stops sending its user's voice toDevice 1. Additionally, the connected devices stop processing any audio stream fromDevice 1. Channel Light_1 onDevice 1,Device 2, Device_3 and Device_4 turn green. Now the conference call is completely terminated at once. -
FIG. 22 illustrates an exemplary call flow for adding a participant to a conference call by a second host according to aspects of this disclosure. InFIG. 22 , User_1 is hosting a conference call with User_2 and User_3.User 1, User_2 and User_3 can all hear each other. - User_3 wants to add User_4 to the conference call. So User_3 presses the Call Add Button. Then User_3 presses Talk_3 button. Since Talk_3 on Device_3 corresponds to Device_4 as indicated by
FIG. 6 , Device_3 sends a Talk Initiation message to Device_4. Device_4 acknowledges the receipt of the message. - Since Device_3 is the second host of the conference call, it provides the audio mixing function for new participants that it adds to the conference call. In this case, the incoming audio stream from
Device 1 contains the mixed voices ofUser 1 andUser 2.Device 3 mixes the incoming voices from Device_1 withUser 3's voice, producing the mixed voices ofUser 1, User_2 and User_3. Device_3 sends the mixed voices to User_4. Now User_4 can hearUser 1, User_2 and User_3. - Device_4 plays a sound alert to indicate the incoming audio stream from User_3. Additionally, Channel Light_3 on Device_4 flashes red light to indicate the incoming audio stream from User_3 on
Channel 3. Now User_4 presses Talk_3 button. Since Talk_3 on Device_4 corresponds to Device_3 as indicated byFIG. 6 , Device_4 sends a Talk Initiation message to Device_3. Device_4 starts sending User_4's voice in the form of IP packets to Device_3. Device_3 acknowledges the receipt of the message. Device_3 receivesUser 4's voice. Note thatDevice 3 also receives the audio stream fromDevice 1.Device 3 mixes the voices from Device_1 with User_4's voice, and plays the mixed voices on the speaker. Now User_3 can hearUser 1, User_2 and User_4. - Additionally, Device_3 mixes the voices of User_3 and User_4, and sends the mixed voices to
Device 1. Note thatDevice 1 also receivesUser 2's voice.Device 1 mixes the incoming voice from Device_2 with the voices from Device_3, and plays the mixed voices on the speaker. Now User_1 can hear User_2, User_3 and User_4. - Device_1 mixes the audio stream from Device_3 with
User 1's voice, and sends the mixed voices to Device_2. Device_2 receives the voices ofUser 1, User_3 and User_4. Now User_2 can hearUser 1, User_3 and User_4. - Now
User 1, User_2, User_3 and User_4 can all hear each other. The conference call is initiate initiated using two audio mixers:Device 1 andDevice 3. -
FIG. 23 illustrates an exemplary call flow for dropping a second host of a conference call by the host of the conference call according to aspects of this disclosure. InFIG. 23 , User_1 is hosting a conference call with User_2 and User_3. User_3 acting as a second host, has added User_4 to the conference call.User 1, User_2, User_3 and User_4 can all hear each other. - User_1 wants to drop User_3 from the conference call. User_1 first presses the Call Drop button, and then releases the Talk_2 button by pressing on it again. Device_1 stops sending audio stream to Device_3. Additionally, Device_1 sends a Call Drop message to Device_3. Device_3 acknowledges the receipt of the message and stops processing the audio stream from
Device 2. This audio stream contain the mixed voices ofUser 1 andUser 2. NowUser 3 can't hear User_1 or User_2. Additionally, Device_3 automatically releases the Talk_1 button, and Device_3 stops sending any audio stream toDevice 1. - Now Device_1 and Device_2 can hear each other.
Device 3 andDevice 4 can hear each other. - 5. Touch Screen Implementation of Instant Voice Device
- Two ways of using the touch screen are described below:
- The client device can be implemented via a software client installed on an existing device with touch screen. Such devices may have the necessary hardware to support the client software including the touch screen, Internet connectivity, microphone and speaker. Touch screen smartphones, e-book readers, and tablet computers typically are already equipped with the necessary hardware. The client software can be downloaded and installed on such a device. The client software runs as an application on such a device.
- The client device is a physical device that is equipped with a touch screen. This device is specifically designed to be an Instant Voice Device.
- The Graphic User Interface (GUI) of the touch screen can have different layout.
FIGS. 24-25 represent different layout of the GUIs. - In
FIG. 24 , afirst GUI 2402 bears the resemblance of thephysical device 102 as shown inFIG. 1 , thus giving users the familiarity of thecommunication device 102 with physical buttons. In one embodiment, thefirst GUI design 2402 may include a Voicemail Button 2404 and a Voicemail Light 2406, a Talk to AllButton 2408 and a Talk to AllLight 2410, aSilence All Button 2412 and aSilence All Light 2414, a Call Add Button 2416 with a Call Add Light 2418, aCall Drop Button 2420, a Talk Button 2422 with aTalk Light 2424, aSilence Button 2426 and aSilence Light 2428, an Away Button 2430 with an Away Light 2432, aChannel Light 2434, an On/Off Button 2436, and aConnectivity Indicator 2438. - However, in order to support flexible number of channels, the GUI has to be modified.
- In
FIG. 25 , asecond GUI design 2502 allows for many more channels to be supported. Thesecond GUI design 2502 may include one or more of the buttons of thefirst GUI design 2504. Moreover, a user may also use next 2504 andlast page 2506 buttons to flip back and forth through multiple channels. Thesecond GUI design 2502 may mimic the design of thephysical device 102 to result in similar user experience. - The software clients may have full interoperability with the physical devices via the Internet Protocol (IP). In general, a physical communication device may have a hardware ID, but the client software does not. The client software can emulate a hardware ID by generating a software ID similar to the hardware ID that is unique among all hardware and software ID after the client software is first installed. The software ID identifies the specific installation of the client. The user can then configure the Device Name for the specific installation of the software client during configuration. The Device Name must be unique globally.
- Configuration of a software client is similar to that of configuring a physical device. Data entry and display can now be done on the touch screen instead of using a configuration machine. Configuring connectivity of a software client probably isn't needed if an existing device is already configured to connect to the Internet. Through touch screen, a user can configure the Channel List.
- Alternatively, the communication may be implemented via software on a computer without the touch screen. For instance, a software client may be installed a computer with a screen and a keyboard. In this case, the GUIs are similar to that of a touch screen. The operation of the GUI relies on the keyboard and the screen.
- 6. Applications
- This system has broad applications in communications. A few applications are outlined below, but the system is not limited to these applications.
- Baby Monitor
- Put a device in the baby's room and press down the Talk to All
Button 112. Put one or multiple devices in different rooms throughout the house. Now a parent can hear every sound in the baby's room throughout the rooms where such devices are placed. - Senior/Disabled/Sick Patient Monitor
- Put a device in the room of a patient and press down the Talk to All
Button 112. Put one or multiple devices in different rooms throughout the house. Now a care taker can hear every sound in the patient's room throughout the rooms where such devices are placed. If the care taker needs to speak to the patient, he can then press down theTalk Button 108 corresponding to the device of the patient. Now they can talk to each other. - Manager and Secretary
- Put a device in the room of the secretary. Put a device in the room of the manager. When the manager wants something from the secretary, he presses down the
Talk Button 108 to speak to the secretary. The secretary presses down theTalk Button 108 with a flashing red light and responds to the manager. - Intercom at Home
- A large house may have many rooms, it might be tough to speak with family members who are in different rooms. Put a device in each of those rooms. A mom wants to call her children to sit down for dinner. She simply presses down the Talk to All
Button 112 on the device in the kitchen and say “Time for dinner!”. All her kids in their rooms can hear her and come to sit down for dinner. Alternatively, if the mom wants to speak with one of her children, she presses down theTalk Button 108 corresponding to the room of the child, and speaks to him. - Control Center
- Put a device in the control center. Put a device in each of the workshops that are scattered throughout the factory. A control center manager can speak to people throughout the workshops at the same time. If the call is picked up by a workshop, the control center manager can switch to one-to-one communications with that workshop.
- Work Group
- A group of co-workers need to work late at night to finish a joint project. They are at home working on their own piece of the project, but need to have real time communications with each other from time to time over a period of several hours. The most effective way is for these co-workers to be on a conference call. One way to do this is for one of the co-workers to host a conference call with all the other co-workers. Once all the co-workers are on the conference call, then they can hear each other as if they were in a room together. The conference call can be left on for as long as needed. In this scenario, the co-workers might need to be in the listening mode most of the time while they work on their own piece. Every so often, a co-worker may need to speak with another co-worker. The mute feature of the instant conference call is quite useful. The users put themselves on mute. They can un-mute themselves, and speak to another person when needed.
- Although the invention herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims.
Claims (20)
1. A device-implemented method comprising:
receiving, by a first communication device, a spoken command for initiating communication with a second communication device, the spoken command indicating the second communication device;
responsive to receiving the spoken command:
determining, by the first communication device, a device identifier associated with the second communication device based upon the spoken command;
initiating, by the first communication device, a communication channel with the second communication device using the device identifier associated with the second communication device, the communication channel configured to support one or more media streams over an Internet Protocol (IP) network with the second communication device;
receiving, by the first communication device, a media stream input; and
transmitting, by the first communication device, an outgoing media stream containing the media stream input to the second communication device via the communication channel.
2. The method according to claim 1 , further comprising receiving, by the first communication device, configuration information for the second communication device, the configuration information comprising the device identifier for the second communication device.
3. The method according to claim 2 , further comprising storing, by the first communication device, the configuration information for the second communication device in a memory of the first communication device.
4. The method according to claim 1 , further comprising configuring, by the first communication device, the communication channel to support the one or more multimedia streams with the second communication device based upon the device identifier of the second communication device and at least part of the spoken command.
5. The method according to claim 1 , wherein determining the device identifier of the second communication device comprises:
transmitting, by the first communication device, to a communication server a request for the device identifier associated with the second communication device, wherein the request is generated according to the spoken command; and
receiving, by the first communication device, the device identifier returned from the communication server.
6. The method according to claim 1 , further comprising receiving, by the first communication device, an incoming media stream from the second communication device via the communication channel.
7. The method according to claim 6 , further comprising displaying, by an indicator light of the first communication device, an indication of the incoming media stream.
8. The method according to claim 6 , wherein the incoming media stream includes an audio component, the method further comprising playing, by the first communication device, the audio component of the incoming media stream via a speaker of the first communication device.
9. The method according to claim 6 , wherein the incoming media stream includes a video component, the method further comprising displaying, by the first communication device, the video component of the incoming media stream via a graphical user interface of the first communication device.
10. The method according to claim 1 , wherein the media stream input of the outgoing media stream includes a video component.
11. A first communication device comprising:
a processor configured to:
receive from a user a spoken command for initiating communication with a second communication device, the spoken command indicating the second communication device;
determine a device identifier associated with the second communication device based upon the spoken command;
initiate a communication channel with the second communication device using the device identifier associated with the second communication device, the communication channel configured to support one or more media streams over an Internet Protocol (IP) network with the second communication device;
receive a media stream input; and
transmit an outgoing media stream containing the media stream input to the second communication device via the communication channel.
12. The first communication device according to claim 11 , wherein the processor is further configured to receive configuration information for the second communication device, the configuration information comprising the device identifier for the second communication device.
13. The first communication device according to claim 12 , further comprising a memory configured to store the configuration information for the second communication device.
14. The first communication device according to claim 11 , wherein the processor is further configured to configure the communication channel to support the one or more multimedia streams with the second communication device based upon the device identifier of the second communication device and at least part of the spoken command.
15. The first communication device according to claim 11 , wherein the processor is further configured to:
transmit to a communication server a request for the device identifier associated with the second communication device, wherein the request is generated according to the spoken command; and
receive the device identifier returned from the communication server.
16. The first communication device according to claim 11 , wherein the processor is further configured to receive an incoming media stream from the second communication device via the communication channel.
17. The first communication device according to claim 16 , further comprising an indicator light controlled by the processor, wherein the processor is further configured to control the indicator light to display an indication of the incoming media stream.
18. The first communication device according to claim 16 , further comprising a speaker configured to play an audio component of the incoming media stream received from the second communication device.
19. The first communication device according to claim 16 , further comprising a graphical user interface configured to display a video component of the incoming media stream received from the second communication device.
20. The first communication device according to claim 11 , further comprising a webcam configured to receive video input, and wherein the media stream input of the outgoing media stream includes a video component.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/087,461 US20210051188A1 (en) | 2012-05-04 | 2020-11-02 | Instant communications system having established communication channels between communication devices |
US17/585,337 US20220321631A1 (en) | 2012-05-04 | 2022-01-26 | Instant communications system having established communication channels between communication devices |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261642616P | 2012-05-04 | 2012-05-04 | |
US13/804,854 US9204095B2 (en) | 2012-05-04 | 2013-03-14 | Instant communications system having established communication channels between communication devices |
US14/954,693 US10298644B2 (en) | 2012-05-04 | 2015-11-30 | Instant communications system having established communication channels between communication devices |
US16/417,489 US10826957B2 (en) | 2012-05-04 | 2019-05-20 | Instant communications system having established communication channels between communication devices |
US17/087,461 US20210051188A1 (en) | 2012-05-04 | 2020-11-02 | Instant communications system having established communication channels between communication devices |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/417,489 Continuation US10826957B2 (en) | 2012-05-04 | 2019-05-20 | Instant communications system having established communication channels between communication devices |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/585,337 Continuation US20220321631A1 (en) | 2012-05-04 | 2022-01-26 | Instant communications system having established communication channels between communication devices |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210051188A1 true US20210051188A1 (en) | 2021-02-18 |
Family
ID=49512237
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/804,854 Active 2033-08-13 US9204095B2 (en) | 2012-05-04 | 2013-03-14 | Instant communications system having established communication channels between communication devices |
US14/954,693 Active 2034-10-01 US10298644B2 (en) | 2012-05-04 | 2015-11-30 | Instant communications system having established communication channels between communication devices |
US16/417,489 Active US10826957B2 (en) | 2012-05-04 | 2019-05-20 | Instant communications system having established communication channels between communication devices |
US17/087,461 Abandoned US20210051188A1 (en) | 2012-05-04 | 2020-11-02 | Instant communications system having established communication channels between communication devices |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/804,854 Active 2033-08-13 US9204095B2 (en) | 2012-05-04 | 2013-03-14 | Instant communications system having established communication channels between communication devices |
US14/954,693 Active 2034-10-01 US10298644B2 (en) | 2012-05-04 | 2015-11-30 | Instant communications system having established communication channels between communication devices |
US16/417,489 Active US10826957B2 (en) | 2012-05-04 | 2019-05-20 | Instant communications system having established communication channels between communication devices |
Country Status (1)
Country | Link |
---|---|
US (4) | US9204095B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9204095B2 (en) * | 2012-05-04 | 2015-12-01 | Hong Jiang | Instant communications system having established communication channels between communication devices |
US9351060B2 (en) * | 2014-02-14 | 2016-05-24 | Sonic Blocks, Inc. | Modular quick-connect A/V system and methods thereof |
US10237317B2 (en) | 2015-06-22 | 2019-03-19 | Loose Cannon Systems, Inc. | Portable group communication device and method of use |
US10451719B2 (en) | 2016-06-22 | 2019-10-22 | Loose Cannon Systems, Inc. | System and method to indicate relative location of nodes in a group |
CN106649174B (en) * | 2016-10-11 | 2020-07-03 | 广州视睿电子科技有限公司 | USB device and USB communication method |
CN108377474A (en) * | 2016-11-14 | 2018-08-07 | 展讯通信(上海)有限公司 | A kind of multi-path terminal call transfer method and device |
US10467510B2 (en) | 2017-02-14 | 2019-11-05 | Microsoft Technology Licensing, Llc | Intelligent assistant |
US11100384B2 (en) | 2017-02-14 | 2021-08-24 | Microsoft Technology Licensing, Llc | Intelligent device user interactions |
US11010601B2 (en) | 2017-02-14 | 2021-05-18 | Microsoft Technology Licensing, Llc | Intelligent assistant device communicating non-verbal cues |
US10897374B2 (en) * | 2017-11-06 | 2021-01-19 | Computime Ltd. | Scalable smart environment for controlling a plurality of controlled apparatuses using a connection hub to route a processed subset of control data received from a cloud computing resource to terminal units |
US11605385B2 (en) * | 2019-10-31 | 2023-03-14 | International Business Machines Corporation | Project issue tracking via automated voice recognition |
US20230064462A1 (en) * | 2021-08-24 | 2023-03-02 | International Business Machines Corporation | Cognitive core network selection for conference calling |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6512823B2 (en) * | 1998-10-16 | 2003-01-28 | Lucent Technologies Inc. | Multiline telephone including interacting call appearances |
US7738407B2 (en) * | 2001-08-03 | 2010-06-15 | At&T Intellectual Property Ii, L.P. | Method and apparatus for delivering IPP2T (IP-push-to-talk) wireless LAN mobile radio service |
US7567575B2 (en) * | 2001-09-07 | 2009-07-28 | At&T Corp. | Personalized multimedia services using a mobile service platform |
US7103392B2 (en) | 2002-01-15 | 2006-09-05 | 3M Innovative Properties Company | Wireless intercom system |
US6937712B2 (en) | 2002-02-22 | 2005-08-30 | Marc S. Lemchen | Network-based intercom system and method for simulating a hardware based dedicated intercom system |
US6792281B2 (en) * | 2002-06-28 | 2004-09-14 | Motorola, Inc. | Method and system for patching dispatch calling parties together |
KR100877745B1 (en) * | 2003-05-08 | 2009-01-12 | 빔플리시티 엘티디. | Methods and systems for instant voice messaging and instant voice message retrieval |
US7668157B2 (en) * | 2003-07-25 | 2010-02-23 | Verizon Patent And Licensing Inc. | Presence based telephony |
US20050169223A1 (en) * | 2004-01-16 | 2005-08-04 | Crocker Ronald T. | Method and apparatus for facilitating a PTT session initiation using an IP-based protocol |
US20050169252A1 (en) * | 2004-02-03 | 2005-08-04 | Andrew Riggs | Game controller including an integrated communicator |
US8027335B2 (en) * | 2004-05-05 | 2011-09-27 | Prodea Systems, Inc. | Multimedia access device and system employing the same |
CN1985477B (en) * | 2004-05-13 | 2012-11-07 | 高通股份有限公司 | Method and apparatus for allocation of information to channels of a communication system |
US7881235B1 (en) * | 2004-06-25 | 2011-02-01 | Apple Inc. | Mixed media conferencing |
US7630328B2 (en) * | 2004-08-18 | 2009-12-08 | At&T Intellectual Property, I,L.P. | SIP-based session control |
US20070019571A1 (en) | 2004-09-01 | 2007-01-25 | Scott Stogel | Apparatus and method for audio communications |
US7760721B2 (en) | 2004-09-01 | 2010-07-20 | Scott Stogel | Method and system for computer based intercom control and management |
US7853279B2 (en) * | 2006-04-26 | 2010-12-14 | Kodiak Networks, Inc. | Advanced features on a real-time exchange system |
US7446795B2 (en) * | 2004-12-03 | 2008-11-04 | Motorola Inc | Push to video service mode selection using device settings |
GB2422506A (en) | 2005-01-20 | 2006-07-26 | Peter Blacklock | A wireless, internet connected doorbell and intercom system |
DE602005004507T2 (en) * | 2005-03-08 | 2009-01-29 | Alcatel Lucent | Press-to-Speak procedure and server |
US8095665B1 (en) * | 2005-06-30 | 2012-01-10 | Google Inc. | User-friendly features for real-time communications |
US7970425B2 (en) * | 2005-08-30 | 2011-06-28 | Alcatel-Lucent Usa Inc. | Push-to-talk group call system using CDMA 1x-EVDO cellular network |
WO2007026320A2 (en) * | 2005-08-30 | 2007-03-08 | Yoomba Ltd. | Immediate communication system |
US7924820B2 (en) * | 2005-12-07 | 2011-04-12 | Marron Interconnect Llc | Method and system for facilitating communications |
US7698437B2 (en) | 2006-01-18 | 2010-04-13 | Digital Acoustics L.L.C. | Method and apparatus for multiple audio connections over networks |
US7573837B1 (en) * | 2006-04-19 | 2009-08-11 | Sprint Spectrum L.P. | Establishment of multicast Push-to-X over Cellular (PoC) communication |
CN1917537B (en) * | 2006-09-22 | 2010-08-11 | 华为技术有限公司 | Method and system for realizing services through one key pushed |
TWI334568B (en) * | 2006-12-20 | 2010-12-11 | Asustek Comp Inc | Apparatus for operating multimedia streaming and method for transmitting multimedia streaming |
TWI335178B (en) * | 2006-12-20 | 2010-12-21 | Asustek Comp Inc | Apparatus, system and method for remotely opearting multimedia streaming |
US20090010193A1 (en) * | 2007-07-06 | 2009-01-08 | Santosh Kolenchery | System and method of multicasting multimedia streams |
EP2176987B1 (en) | 2007-07-27 | 2012-09-19 | Clear-Com Research Inc. | Multi-point to multi-point intercom system |
CN101217534A (en) * | 2007-12-27 | 2008-07-09 | 腾讯科技(深圳)有限公司 | Network game communication method, system and network game realization method, system |
US8141115B2 (en) * | 2008-12-17 | 2012-03-20 | At&T Labs, Inc. | Systems and methods for multiple media coordination |
US8355691B2 (en) * | 2009-03-09 | 2013-01-15 | E.F. Johnson Company | Land mobile radio dispatch console |
US20100281108A1 (en) * | 2009-05-01 | 2010-11-04 | Cohen Ronald H | Provision of Content Correlated with Events |
US20120151012A1 (en) * | 2010-12-09 | 2012-06-14 | Shakeel Mustafa | Internet delivery of scheduled multimedia content |
US20130097333A1 (en) * | 2011-06-12 | 2013-04-18 | Clearone Communications, Inc. | Methods and apparatuses for unified streaming communication |
CN102340599B (en) | 2011-10-26 | 2017-01-25 | 中兴通讯股份有限公司 | Processing method for call of terminal, terminal and processing system |
US9204095B2 (en) * | 2012-05-04 | 2015-12-01 | Hong Jiang | Instant communications system having established communication channels between communication devices |
US9516269B2 (en) * | 2014-06-04 | 2016-12-06 | Apple Inc. | Instant video communication connections |
-
2013
- 2013-03-14 US US13/804,854 patent/US9204095B2/en active Active
-
2015
- 2015-11-30 US US14/954,693 patent/US10298644B2/en active Active
-
2019
- 2019-05-20 US US16/417,489 patent/US10826957B2/en active Active
-
2020
- 2020-11-02 US US17/087,461 patent/US20210051188A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20130293666A1 (en) | 2013-11-07 |
US20190306213A1 (en) | 2019-10-03 |
US10826957B2 (en) | 2020-11-03 |
US9204095B2 (en) | 2015-12-01 |
US10298644B2 (en) | 2019-05-21 |
US20160088043A1 (en) | 2016-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826957B2 (en) | Instant communications system having established communication channels between communication devices | |
US20220321631A1 (en) | Instant communications system having established communication channels between communication devices | |
US7283154B2 (en) | Systems and methods for videoconference and/or data collaboration initiation | |
US7751348B2 (en) | Method and system for providing a push-to-talk communication session | |
US8145249B2 (en) | Method and system for providing a proxy media service | |
US7023821B2 (en) | Voice over IP portable transreceiver | |
US7742587B2 (en) | Telecommunications and conference calling device, system and method | |
US8150450B1 (en) | System and method for two-way radio and telephone conferencing and collaboration | |
CN110012366B (en) | Wide-narrow band converged communication system and method used under public and private network IP interconnection | |
US8364153B2 (en) | Mobile interoperability workstation controller having video capabilities within an incident communications network | |
US8095665B1 (en) | User-friendly features for real-time communications | |
WO2017129129A1 (en) | Instant call method, device, and system | |
CA2482273C (en) | Wireless teleconferencing system | |
US20070105578A1 (en) | Method and system for providing a push-to-talk communication session using a control endpoint | |
US7885209B1 (en) | Alternatively enabling and disabling the talk paths of endpoints that share a virtual address | |
WO2015131709A1 (en) | Method and device for participants to privately chat in video conference | |
CN1968316B (en) | Telephony system and method for providing enhanced whisper feature | |
CN103475499A (en) | Voice intercom method and system based on internet teleconference | |
JP2009536497A (en) | Method and apparatus for virtual conferencing | |
KR100630125B1 (en) | Method for mediating call of push to talk | |
US12003672B1 (en) | Methods of duplex transfer of voice streams between mobile subscribers and clients of IM/VOIP with the corresponding implementation of PBX and of the VOIP-cell gateway based on smartphones | |
WO2003094383A1 (en) | Wireless conferencing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |