US9020121B1 - Method and apparatus for sharing data between devices - Google Patents
Method and apparatus for sharing data between devices Download PDFInfo
- Publication number
- US9020121B1 US9020121B1 US13/550,257 US201213550257A US9020121B1 US 9020121 B1 US9020121 B1 US 9020121B1 US 201213550257 A US201213550257 A US 201213550257A US 9020121 B1 US9020121 B1 US 9020121B1
- Authority
- US
- United States
- Prior art keywords
- server
- session
- connection
- data
- customer service
- 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.)
- Active, expires
Links
Images
Classifications
-
- 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
-
- 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/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5183—Call or contact centers with computer-telephony arrangements
- H04M3/5191—Call or contact centers with computer-telephony arrangements interacting with the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/0024—Services and arrangements where telephone services are combined with data services
- H04M7/0036—Services and arrangements where telephone services are combined with data services where the data service is an information service
Definitions
- the primary objective of a telephony connection is to communicate information.
- the information may be a simple “Hello” or may be more detailed information.
- the user may be asked to provide various pieces of information in order to authenticate their identity with the customer service call center. Examples of such information may include name, security code, account number, date of birth, etc.
- the customer service call center may provide a “call back” feature where the user provides a phone number to the customer service call center and then hangs up.
- the user's position in the queue is tracked and the customer service call center places an outgoing call to the user when the user's position in the queue comes up.
- the call back feature is wrought with security concerns. It is relatively simple for a malicious party to spoof the phone number of the customer service call center and call the user representing itself as the customer service call center. The malicious party could then obtain sensitive information from the user for illegal purposes, e.g., to steal the user's money. For this reason, users prefer to place outgoing calls to trusted phone numbers rather than accepting or trusting incoming calls from potentially malicious parties.
- One embodiment provides a method for exchanging information between endpoints of a telephony connection.
- the method includes obtaining from a remote server a unique identifier that uniquely identifies a first endpoint; communicating to the remote server user information associated with the first endpoint, wherein the user information is associated with the unique identifier; establishing a session ID between the endpoints via the telephony connection, wherein the telephony connection is established between the first endpoint and a customer service call center; communicating the session ID to the remote server via a communications connection separate from the telephony connection, wherein the user information is communicated from the remote server to a first agent of the customer service call center based on a first agent device providing the session ID to the remote server, and wherein, after the telephony connection is transferred from the first agent to a second agent, the user information is communicated from the remote server to the second agent based on a second agent device providing the session ID to the remote server.
- the apparatus comprising a first communications module and a second communications module.
- the first communications module is configured to obtain from a remote server a unique identifier that uniquely identifies the apparatus, where the apparatus comprises a first endpoint, and communicate information to the remote server, wherein the information is associated with the unique identifier.
- the second communications module is configured to establish a session ID at the endpoints of the telephony connection, where the first communications module communicates the session ID to the remote server via a communications connection separate from the telephony connection, and where the information is communicated from the remote server to a second endpoint based on the second endpoint providing the session ID to the remote server.
- the system comprises a server coupled to a data network, a first device, and a second device.
- the first device is configured to: obtain a unique identifier corresponding to the first device from the server, establish a session ID between the first device and a second device using an audio connection, and transmit data to the server via a data connection, wherein the server associates the data with the session ID.
- the second device configured to: obtain a unique identifier corresponding to the second device from the server, wherein the session ID associates the unique identifier corresponding to the first device and the unique identifier corresponding to the second device, and access the data from the server via the data network based on the session ID.
- FIG. 1 is a block diagram of an example communication environment, according to one embodiment.
- FIG. 2 is a block diagram of example functional components for one of the client devices in FIG. 1 , according to one embodiment.
- FIG. 3 is a schematic diagram of the arrangement of applications on a client device configured to communicate data with another client device, according to one embodiment.
- FIG. 4 is a schematic diagram of the arrangement of client device configured to receive an audio signal associated with digital content, according to one embodiment.
- FIG. 5 is a flowchart illustrating registering a client device with a server, according to one embodiment.
- FIG. 6 is a flowchart illustrating establishing a session ID between client devices, according to one embodiment.
- FIG. 7 is a flowchart illustrating communicating data between two client devices using a session ID, according to one embodiment.
- FIG. 8 is a schematic diagram of the arrangement of client device configured to communicate with a customer service call center, according to one embodiment.
- FIG. 9 is a flowchart illustrating a client device communicating with a customer service call center, according to one embodiment.
- a user registers the mobile phone and phone number with a trusted server.
- the trusted server assigns the mobile phone a unique identifier (ID) associated with the phone.
- Another party such as a customer service call center, also registers with the trusted server and receives a unique ID associated with the other party.
- the security features of this example embodiment enable a user call to be ended and securely returned instead of maintaining the user connection in a queue while other user connections are being serviced.
- a session ID is generated between the phone and the other party.
- a handshake protocol establishes the session ID. For example, a handshake similar to the SSL (Secure Socket Layer) protocol may be used. The handshake may occur over a low-bandwidth connection, such as the phone call itself. In one example, the handshake messages are sent as inaudible tones over the voice channel of the phone call.
- SSL Secure Socket Layer
- information is communicated between the mobile phone and the other party via the trusted server. For example, information is transmitted from the phone to the server, where the information is stored along with the session ID. In one embodiment, the information is transmitted to the server along a high-bandwidth connection, such as the Internet. The other party then retrieves the information from the server based on knowing the session ID via a second high-bandwidth connection. The information is retrieved from the server in either a “push” or “pull” manner in keeping with well known techniques.
- information is transmitted from the other party to the server, where the information is stored along with the session ID.
- the mobile phone can then retrieve the information from the server based on knowing the session ID.
- information can be securely communicated between the phone and the other party via the trusted server.
- the phone and the other party do not necessarily trust one another, but they both trust the server, which allows the transaction to be secure.
- One example use of the secure connection is within the context of a user calling a customer service call center.
- Relevant user information e.g., name, account number, credit card number, etc.
- the customer service call center then accesses this information from the server without the user having to repeatedly provide the information to the customer service call center during the call, e.g., as the call is transferred between customer service agents.
- the customer service call center provides games to the user while the user is on hold.
- the customer service call center can transmit the game data to the server and the user's device can access the game data via the server.
- the game data is stored on a third-party server and the customer service call center provides pointers to the game data, via the server, that are stored on the third-party server.
- the secure connection is a point-of-sale terminal.
- the user establishes a session with the terminal at checkout—e.g., via NFC (near field communication) or other protocol.
- the user device (and/or the user's registered credit card) and the POS terminal are communicatively coupled to the server and exchange information via the server.
- the user provides payment information to the server and the terminal accesses the payment information on the server.
- the server provides a sales receipt to the server that the user then retrieves from the server. Uploading the receipt by the POS terminal and accessing the receipt by the user both occur at a time after the transaction is complete—e.g., later that night or the next day.
- the communication environment includes client devices 100 A, 100 B, a data network 115 , a voice network 125 , and server(s) 300 .
- Each of the client devices 100 A, 100 B is in communication with the data network 115 and the voice network 125 .
- Server(s) 300 are also in communication with the data network 115 .
- client devices 100 A, 100 B include, but are not limited to, portable, mobile, and/or stationary devices such as landline telephones, mobile telephones (including mobile phones with advance computing capabilities, or “smartphones”), laptop computers, tablet computers, desktop computers, personal digital assistants (PDAs), portable gaming devices, portable media players, e-book readers, Internet-enabled televisions, or Internet-enabled appliances, among others.
- two or more client devices 100 A, 100 B comprise the same type of device.
- client devices 100 A and 100 B may both be mobile phones.
- the two or more client devices are different types of devices.
- client device 100 A may be a mobile phone and client device 100 B may be a telephone or computing device associated with a customer service call center.
- the client devices 100 A, 100 B communicate with a server(s) 300 via data network 115 .
- the data network 115 may comprise any type of network for communicating data, including a LAN (local area network), WAN (wide area network), cellular data network, VPN (virtual private network), enterprise network, or any other type of network that allows sharing of information and/or resources.
- the voice network 125 may be any type of network for voice communication, including a cellular phone network, a POTS (Plain Old Telephone Service) network, a conference call network, among others.
- the server(s) 300 may comprise multiple physical servers. According to various embodiments, each server can equivalently be a physically separate machine or can be different processes running within the same physical machine.
- the client device 100 A of FIG. 1 includes application(s) 120 , communications client 140 , output devices 160 (e.g., a display), and input devices 180 (e.g., keyboard, mouse, touch screen, video recording device, audio recording device, GPS (global positioning module), photo capture device, etc.).
- a device may act as both an output device and an input device.
- An example of application(s) 120 is a web browser application or a smartphone application (or “app”).
- Application(s) 120 provide the client device 100 A with a variety of functionalities. Examples include social media functionality, web browsing capabilities, calendars, contact information, games, document processing, photo editing, document sharing, among others.
- Application(s) 120 employ the output devices 160 to display information at a graphical user interface (GUI).
- GUI graphical user interface
- the communications client 140 includes a communications module 145 that enables output devices 160 to display information at the GUI.
- the communications module 145 also enables the communications client 140 to connect to the server(s) 300 .
- the communications module 145 is a network module that connects the client device 100 A to the data network 115 (e.g., Internet) and/or voice network 125 (e.g., cellular phone network) using one of a variety of available network protocols.
- the GUI is configured to display data (such as, for example, audio and video data) received from the server(s) 300 via the data network 115 and/or received over the voice network 125 .
- client device 100 B includes similar elements and functions as client device 100 A. In other embodiments, client device 100 B includes different, fewer, or more elements and functions as client device 100 A.
- Some embodiments provide for a first user, using client device 100 A, to register with the server(s) 300 and obtain a unique ID (identifier) associated with the client device 100 A.
- client device 100 B registers with the server(s) 300 and obtains a unique ID associated with the client device 100 B.
- the client devices 100 A, 100 B establishes a phone connection between one another over the voice network 125 .
- the client device 100 A is operated by a user and client device 100 B is associated with a customer service call center.
- a phone connection is established when the user operating client device 100 A calls the customer service call center.
- the client devices 100 A, 100 B communicates with one another to establish a session ID for the phone connection.
- the session ID is established between the client devices 100 A, 100 B by sending messages between the devices over the voice network 125 .
- inaudible tones are communicated between the devices over the voice network 125 to establish the session ID, as described in greater detail below.
- information in the form of machine-readable data can be communicated between the client devices 100 A, 100 B via the data network 115 and server(s) 300 .
- data is transmitted from the client device 100 A to the server(s) 300 via the data network, where the data is stored along with the session ID.
- the client device 100 B then retrieves the data from the server(s) 300 via the data network 115 based on knowing the session ID.
- the data is retrieved from the server(s) 300 in either a conventional “push” or “pull” manner. Therefore, in some embodiments, data can be securely communicated between the client devices 100 A, 100 B via the trusted server.
- the server to which the data is uploaded from client device 100 A is the same physical server from which the client device 100 B accesses the content.
- the server to which client device 100 A uploads the content is different from the server from which client devices 100 B or 100 C access the content, though they may be considered one virtual server.
- the different physical servers operate by separate mobile phone service providers, though they may act as a single virtual server.
- the client device 100 A includes one or more processor(s) 211 , memory 212 , a network interface 213 , one or more storage devices 214 , a power source 215 , output device(s) 160 , and input device(s) 180 .
- the client device 100 A also includes an operating system 218 and a communications client 140 that are executable by the client.
- Each of components 211 , 212 , 213 , 214 , 215 , 160 , 180 , 218 , and 140 is interconnected physically, communicatively, and/or operatively for inter-component communications in any operative manner.
- processor(s) 211 are configured to implement functionality and/or process instructions for execution within client device 100 A.
- processor(s) 211 execute instructions stored in memory 212 or instructions stored on storage devices 214 .
- Memory 212 which may be a non-transient, computer-readable storage medium, is configured to store information within client device 100 A during operation.
- memory 212 includes a temporary memory, area for information not to be maintained when the client device 100 A is turned OFF. Examples of such temporary memory include volatile memories such as random access memories (RAM), dynamic random access memories (DRAM), and static random access memories (SRAM).
- RAM random access memories
- DRAM dynamic random access memories
- SRAM static random access memories
- Storage devices 214 also include one or more non-transient computer-readable storage media. Storage devices 214 are generally configured to store larger amounts of information than memory 212 . Storage devices 214 may further be configured for long-term storage of information. In some examples, storage devices 214 include non-volatile storage elements. Non-limiting examples of non-volatile storage elements include magnetic hard disks, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.
- EPROM electrically programmable memories
- EEPROM electrically erasable and programmable
- the client device 100 A uses network interface 213 to communicate with external devices via one or more networks, such data network 115 and/or voice network 125 .
- Network interface 213 may be a network interface card, such as an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of device that can send and receive information.
- Other non-limiting examples of network interfaces include wireless network interface, Bluetooth®, 3 G and WiFi® radios in mobile computing devices, and USB (Universal Serial Bus).
- the client device 100 A uses network interface 213 to wirelessly communicate with an external device such as the server(s) 300 of FIG. 1 , a mobile phone, or other networked computing device.
- the client device 100 A includes one or more input devices 180 .
- Input devices 180 are configured to receive input from a user through tactile, audio, video, or other sensing feedback.
- Non-limiting examples of input device 180 include a presence-sensitive screen, a mouse, a keyboard, a voice responsive system, camera 202 , a video recorder 204 , a microphone 206 , a GPS module 208 , or any other type of device for detecting a command from a user or sensing the environment.
- a presence-sensitive screen includes a touch-sensitive screen.
- One or more output devices 160 are also included in client device 100 A.
- Output devices 160 are configured to provide output to a user using tactile, audio, and/or video stimuli.
- Output devices 160 may include a display screen (part of the presence-sensitive screen), a sound card, a video graphics adapter card, or any other type of device for converting a signal into an appropriate form understandable to humans or machines.
- Additional examples of output device 160 include a speaker, a cathode ray tube (CRT) monitor, a liquid crystal display (LCD), or any other type of device that can generate intelligible output to a user.
- a device may act as both an input device and an output device.
- the client device 100 A includes one or more power sources 215 to provide power to the client device 100 A.
- power source 215 include single-use power sources, rechargeable power sources, and/or power sources developed from nickel-cadmium, lithium-ion, or other suitable material.
- the client device 100 A includes an operating system 218 , such as the Android® operating system.
- the operating system 218 controls operations of the components of the client device 100 A.
- the operating system 218 facilitates the interaction of communications client 140 with processors 211 , memory 212 , network interface 213 , storage device(s) 214 , input device 180 , output device 160 , and power source 215 .
- the client device 100 A includes communications client 140 .
- Communications client 140 includes communications module 145 .
- Each of communications client 140 and communications module 145 includes program instructions and/or data that are executable by the client device 100 A.
- communications module 145 includes instructions causing the communications client 140 executing on the client device 100 A to perform one or more of the operations and actions described in the present disclosure.
- communications client 140 and/or communications module 145 form a part of operating system 218 executing on the client device 100 A.
- FIG. 3 is a conceptual diagram of the arrangement of applications on a client device configured to communicate data with another client device, according to one embodiment.
- a client device 300 includes an antenna 302 , a cellular network module 304 , a data communication module 306 , a memory 308 , a storage device 310 , and I/O (input/output) modules 312 .
- the memory 308 includes various applications that are executed by a processor (not shown), including installed applications 320 , an operating system 324 , an encoder/decoder application 326 , and phone audio software 328 .
- installed applications 320 may be downloaded and installed from an applications store, and may include applications 322 A, 322 B.
- the storage device 310 includes non-volatile storage where digital content and information can be stored on the client device 300 .
- the storage device 310 may store a unique device ID 332 associated with the client device 300 and/or a session ID 334 corresponding to a communication session between the client device 300 and another device.
- the unique device ID 332 and/or the session ID 334 are stored in the memory 308 .
- the operating system 324 is configured to communicate with a remote server via the data communications module 306 to obtain a unique device ID 332 for the client device 300 .
- the remote server acts as a certificate authority and the client device 300 is configured to establish a trust relationship with the certificate authority.
- the client device 300 is manipulated by a user to initiate a telephony connection between the client device and another device.
- the connection is initiated by the user dialing the phone number manually or selecting the phone number from a contact list in a conventional manner.
- the connection is initiated through one of the installed applications 320 after the user has been authenticated with the installed application.
- the connection is initiated after the user selects an advertisement presented to the user on a display device of the client device 300 (i.e., a “click-to-call” ad).
- the client device 300 After the telephony connection is established, the client device 300 enters into a communication session with the other device.
- a unique session ID 334 is associated with the communication session.
- the session ID 334 is established between the client device 300 and the other device by implementing a handshake protocol.
- the handshake protocol is performed by the client device 300 and the other device by way of exchanging tones over the voice channel of the telephony connection.
- the encoder/decoder application 326 is configured to encode and decode the messages corresponding to the handshake protocol into a series of tones and transmit the tones over the audio channel of the telephone call via the phone audio software application 328 and the cellular network module 304 .
- the encoder/decoder application 326 is configured to encode data into audio signals and/or decode audio signals into data.
- the frequency of the encoded audio signal is above or below the range of human hearing.
- the encoded audio signal is human recognizable, much like a fax machine or acoustic modem.
- a predefined start-of-message code is precedes the encoded audio signal and/or a predefined end-of-message code is appended after the encoded audio signal.
- Any tone generation method can be used to encode the data into an audio signal.
- One example includes dual-tone multi-frequency (DTMF) signaling used for signaling over analog telephone lines.
- DTMF dual-tone multi-frequency
- the encoded audio signal with preceding and/or appended start/end codes is communicated from the encoder/decoder application 326 to the phone audio software 328 that inserts the audio signal and/or codes into the audio stream of the voice conservation.
- the phone audio software 328 may comprise firmware for facilitating a phone conversion between two users.
- the phone audio software 328 may also be associated with an API (application programming interface) that allows additional audio information to be inserted into the phone conversation.
- the API inserts the encoded audio signal into the phone conversation between the two users.
- any other technologically feasible process is implemented to insert the audio of the encoded audio signal into the phone conversation.
- the encoded signal and/or codes is repeated one or more times so that the receiver device can properly receive the message.
- each of the installed applications 320 , the operating system 324 , the encoder/decoder application 326 , and the phone audio software 328 are shown as separate software applications.
- the functionality of the installed applications 320 , the operating system 324 , the encoder/decoder application 326 , and the phone audio software 328 can be combined into a single software application (e.g., mobile phone “app”).
- the functionality of the installed applications 320 , the encoder/decoder application 326 , and the phone audio software 328 may be included in the operating system 324 of the client device 300 .
- the same, similar, different, fewer, or more components shown in FIG. 3 may be included in the other client device with which the client device 300 communicates.
- FIG. 4 is a conceptual diagram of a system 400 for communicating data between two devices, according to one embodiment.
- the system 400 includes a first device 402 , a second device 404 , and a server 406 .
- the first device 402 is a user device
- the second device 404 is a device associated with a customer service call center
- the server 406 comprises a certificate authority.
- stage 1 the first device 402 registers with the server 406 .
- stage 2 the second device 404 registers with the server 406 .
- stage 1 is performed before stage 2.
- stage 2 is performed before stage 1.
- stages 1 and 2 are performed simultaneously.
- FIG. 5 One example of a method for the first device 402 and the second device 404 to register with server 406 is described below in FIG. 5 .
- the first device 402 and the second device 404 establish a session ID.
- the session ID is established by the first device 402 and the second device 404 performing a handshake protocol over a first communication channel, such as the audio channel of a telephony connection.
- a handshake protocol is described below in FIG. 6 .
- the first device 402 transmits data to the server 406 along with the session ID over a second communication channel, such as the Internet. In some embodiments, the first device 402 also transmits the unique ID associated with the first device 402 to the server 406 as a form of authenticating the first device 402 .
- the server 406 stores the data received from the first device 402 with the associated session ID. In one embodiment, the server 406 itself is configured to store the data and the associated session ID. In other embodiments, the server 406 communicates the data to another server (not shown) that stores the data and the session ID.
- the second device accesses the data from the server 406 using the session ID.
- the data is accessed by the second device using either a conventional “push” or “pull” technique.
- a push technique the server 406 pushes the data to the second device 404 whenever new data is available.
- a pull technique the second device 404 periodically polls the server 406 for new data.
- the first device receives a data access request from the server 406 .
- the first device 402 confirms that the second device 404 should be allowed to access the data, such as by providing a password.
- the second device 404 can access the data (i.e., at stage 6) after the communication session between the first device 402 and the second device 404 has been discontinued.
- the first device 402 is a point-of-sale terminal and the second device is a user's mobile phone or registered credit card.
- a session ID is established between the terminal and the phone/card at the point-of-sale.
- the session ID may be a transaction ID of the credit card transaction.
- the POS terminal transmits a full receipt for the transaction IDs completed that day to the server 406 .
- the user logs in via a web interface and authenticates with the server, from which the user can obtain the full receipt data uploaded by the POS terminal.
- FIG. 7 One example of the method for performing stages 4-6 in FIG. 4 is described below in FIG. 7 .
- FIG. 5 is a flowchart illustrating registering a client device with a server, according to one embodiment.
- a software application executing on a client device such as the operating system, sends an initiation message to the server.
- the server sends a verification code to the client device.
- the verification code can be sent via any technically feasible data communication channel, including, for example, email, text message, social media update, etc.
- the software application on the client device returns the verification code to the server.
- the server delivers a unique ID to the client device that corresponds to the client device.
- the server maintains a listing of client devices and the corresponding unique IDs.
- the unique ID corresponds to an identity of an individual and not to a particular client device. For example, a person (e.g., “John Doe”) may own five different client devices, including a desktop computer, a laptop computer, a mobile phone, a tablet computer, and a video game console. Each of the five client devices is associated with John Doe.
- the unique ID corresponds to John Doe, such that any time that John Doe communicates with the server 406 using any one of the devices associated with John Doe's identity, the server 406 can recognize that the communication is being received from John Doe.
- the server acts as a certificate authority and the messages transmitted at stages 502 , 504 , 506 , 508 are encrypted.
- the certificate authority may be associated with a public key and a private key. Messages that are sent to the server from the client device can be encoded by the client device using the certificate authority's public key. In this manner, only the certificate authority can properly decode the messages since only the certificate authority knows the private key.
- FIG. 6 is a flowchart illustrating establishing a session ID between client devices, according to one embodiment.
- device A is associated with a public key (i.e., A public ) and a private key (i.e., A private ).
- device B is associated with a public key (i.e., B public ) and a private key (i.e., B private ).
- a software application executing on device A transmits a message encrypted with device B's public key (B public ) to device B over a first communication channel, such as the audio channel of a telephone call.
- the message includes a session ID and information about the certificate authority/server that communicates the data associated with the session ID.
- the session ID may be have been randomly generated by device A at the time of establishing the communication session.
- the message includes a timestamp.
- the first communication channel comprises an audio channel associated with a telephone call between device A and device B.
- the message is encoded as a series of audible or inaudible tones.
- a listener application on device B is configured to listen to the audio stream of the phone conversation via phone audio software (e.g., phone audio software 328 ).
- phone audio software e.g., phone audio software 328
- an API into the phone audio software 328 allows other applications, such as the listener application, to listen to the audio stream of the phone conversation.
- the listener application detects a start-of-message code in the audio stream, the listener application begins recording the encoded audio signal that follows the start-of-message code.
- the listener application stops recording when an end-of-message code is detected.
- the listener application provides the received encoded audio signal to the encoder/decoder application 326 , which is configured to decode the audio signal into another data format.
- the decoded data format can then be decrypted, as described below.
- start-of-message and end-of-message codes are not appended to the encoded audio signal.
- the listener application detects the audio signal itself and extracts the audio signal from the audio stream of the phone conversation.
- a software application executing on device B decrypts the message received from device A using device B's private key (B private ).
- device B is able to ascertain the session ID, the certificate authority/server, and/or the timestamp included in the message from device A.
- the software application executing on device B transmits a message encrypted with device A's public key (A public ) to device A over the first communication channel.
- the encrypted message at stage 606 includes the session ID.
- the software application executing on device A decrypts the message received from device B using device A's private key (A private ). In this manner, device A is now aware that device B successfully received the session ID from device A. Therefore, both device A and device B are now aware of the session ID.
- additional acknowledgement messages are transmitted between device A and device B to confirm that both devices are properly aware of the session ID.
- FIG. 7 is a flowchart illustrating communicating data between two client devices using a session ID, according to one embodiment.
- each of a device A and device B has previously registered with a server/certificate authority, e.g., using the method 500 of FIG. 5 .
- Devices A and B have also established a session ID, e.g., using the method 600 of FIG. 6 .
- a software application executing on device A transmits data to the server along with the session ID established between device A and device B.
- the data transmitted at stage 702 is transmitted over a different communication channel than the communication channel used to establish the session ID.
- the software application also transmits device A's unique ID as a form of authenticating device A with the server.
- a software application executing on device B attempts to access the data from the server using the session ID.
- the attempt to access the data may be based on a data push from the server to device B or a data pull from device B to the server.
- the software application executing on device A confirms that device B is allowed to access the data.
- the server transmits a message to device A asking device A to approve the data access attempt by device B.
- the server asks for a password of other confirmation code to be entered into device A and communicated to the server.
- stage 706 is optional and is omitted, as depicted by the dotted lines around stage 706 and the dotted arrows to and from stage 706 .
- the software application executing on device B accesses the data from the server using the session ID.
- the method 700 occurs in reverse, with device B transmitting data to the server, the data then being accessed by device A.
- Device A and device B do not necessarily “trust” one another, but they both trust the server, which allows the transaction to be secure.
- a customer service call center agent can access the user information from the server using a session ID for the telephony connection. If the call is transferred to another agent, the other agent is also able to access the user information from the server without requiring the user/mobile phone to re-enter the information.
- FIG. 8 is a schematic diagram of the arrangement of client device 802 configured to communicate with a customer service call center 812 , according to one embodiment.
- the client device 802 can establish a telephony connection with the customer service call center 812 via a voice network and PBX (private branch exchange).
- PBX private branch exchange
- a PBX is oftentimes used by customer service call centers as a telephone exchange between agents 810 A, 810 B of the customer service call center 812 .
- the client device 802 and the customer service call center 812 can register with a server 804 via a data network 115 .
- Relevant user information 806 (e.g., name, account number, credit card number, etc.) is stored by the client device 802 onto the server 804 or may have been previously stored by the client device 802 onto the server 804 .
- a first agent 810 A can access the user information 806 from the server 804 via the data network 115 using a session ID for the telephony connection. If the call is transferred to another agent, i.e., agent 810 B, then agent 810 B accesses the user information from the server 804 in a similar manner to agent 810 A, without requiring the user/client device 802 to re-enter the information.
- FIG. 9 is a flowchart illustrating a client device communicating with a customer service call center, according to one embodiment.
- the method 900 begins at stage 902 where a user device establishes a telephony call with a customer service call center.
- a user device establishes a telephony call with a customer service call center.
- both the user device and the customer service call center are registered with a trusted server, and the user device and the customer service call center have established a session ID for the particular telephony connection.
- the user device provides personal information about the user to the server (“user info”).
- user info is provided in real-time by the user to the client device which forwards the information to the server.
- the user information was previously stored onto the client device and the client device forwards the information to the server.
- the server associates the user info with the session ID between the user device and the customer service call center.
- a first agent of the customer service call center receives the telephony call to service the customer.
- a computing device used by the first agent retrieves the user information from the server based on the session ID.
- the telephony call is transferred from the first agent to a second agent.
- a computing device used by the second agent retrieves the user information from the server based on the session ID.
- both agents are able to retrieve the user information from the server based on knowledge of the session ID. Therefore, the user/client device does not need to repeat the user information each time that the call is transferred to a different agent.
- the user/client device may not need to provide the user information to any of the agents since the agents are able to retrieve the information from the server using the session ID.
- the customer service call center provides games to the user while the user is on hold.
- the customer service call center transmits the game data to the server that stores the game data.
- the user accesses the game data via the server.
- the user device and the customer service call center both register with a trusted server, but the game data is stored on a third-party server.
- the customer service call center provides pointers to the game data such that the pointers are stored on the trusted server.
- POS point-of-sale
- the user establishes a session with the terminal at checkout (e.g., via NFC or other protocol).
- the user device and the terminal are both communicatively coupled to the server and exchange data via the server.
- the user provides payment information to the server and the terminal accesses the payment information on the server.
- the server provides a sales receipt to the server that the user then retrieves from the server.
- the various applications can be configured on any distributed or embedded platform within a single physical location or multiple locations.
- embodiments contemplate that applications, resources, managers, servers, etc. may be joined or separated without diverging from their identities and functions.
- a “server device” may equivalently include a single server platform or multiple server platforms.
- One embodiment of the disclosure may be implemented as a program product for use with a computer system.
- the program(s) of the program product define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media.
- Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, flash memory, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or any type of solid-state random-access semiconductor memory) on which alterable information is stored.
- non-writable storage media e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, flash memory, ROM
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/550,257 US9020121B1 (en) | 2012-07-16 | 2012-07-16 | Method and apparatus for sharing data between devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/550,257 US9020121B1 (en) | 2012-07-16 | 2012-07-16 | Method and apparatus for sharing data between devices |
Publications (1)
Publication Number | Publication Date |
---|---|
US9020121B1 true US9020121B1 (en) | 2015-04-28 |
Family
ID=52987050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/550,257 Active 2033-04-28 US9020121B1 (en) | 2012-07-16 | 2012-07-16 | Method and apparatus for sharing data between devices |
Country Status (1)
Country | Link |
---|---|
US (1) | US9020121B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150244809A1 (en) * | 2012-09-12 | 2015-08-27 | Zte Corporation | Inter-agent cross-blade-server calling method and system |
US20150271163A1 (en) * | 2014-03-18 | 2015-09-24 | Ca, Inc. | Secure data transmission using multi-channel communication |
US10270865B1 (en) * | 2018-01-29 | 2019-04-23 | Eckoh Uk Limited | Method for handing off a communications session |
US10594685B2 (en) * | 2017-10-19 | 2020-03-17 | Salesforce.Com, Inc. | User selected key authentication |
US20210281568A1 (en) * | 2014-10-17 | 2021-09-09 | Advanced New Technologies Co., Ltd. | Systems and methods for interaction among terminal devices and servers |
US11223726B1 (en) * | 2019-09-30 | 2022-01-11 | United Services Automobile Association (Usaa) | Call center data transfer system |
US11471771B2 (en) * | 2020-10-07 | 2022-10-18 | Verint Americas Inc. | System and method for information gathering games for customer queues |
US11924204B1 (en) * | 2018-06-08 | 2024-03-05 | Wells Fargo Bank, N.A. | Two-way authentication system and method |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030027591A1 (en) * | 2001-05-15 | 2003-02-06 | Corbett Wall | Method and apparatus for creating and distributing real-time interactive media content through wireless communication networks and the internet |
US20030147514A1 (en) | 2002-02-01 | 2003-08-07 | Young-Gyu Ryu | Method for serving character message transmission during telephone call over PSTN |
US7026926B1 (en) * | 2002-08-15 | 2006-04-11 | Walker Iii Ethan A | System and method for wireless transmission of security alarms to selected groups |
US20060168074A1 (en) * | 2003-03-17 | 2006-07-27 | Epostal Services, Inc. | Messaging and document management system and method |
US20070197203A1 (en) | 2006-02-23 | 2007-08-23 | Min-Tza Hu | Method for remotely controlling a mobile communication device |
US20080247525A1 (en) | 2007-04-06 | 2008-10-09 | Leblanc Christopher C | Game-on-hold |
US7725540B2 (en) * | 1996-05-07 | 2010-05-25 | Cisco Technology, Inc. | Method and apparatus for coordinating internet multi-media content with telephone and audio communications |
US20110081900A1 (en) | 2009-10-07 | 2011-04-07 | Echostar Technologies L.L.C. | Systems and methods for synchronizing data transmission over a voice channel of a telephone network |
US20110086593A1 (en) | 2009-10-14 | 2011-04-14 | Sony Corporation | System and method for transmitting data over an audio communication link |
US20120042066A1 (en) * | 2010-08-11 | 2012-02-16 | Gilat Satellite Networks Ltd | Managed Network Device |
-
2012
- 2012-07-16 US US13/550,257 patent/US9020121B1/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725540B2 (en) * | 1996-05-07 | 2010-05-25 | Cisco Technology, Inc. | Method and apparatus for coordinating internet multi-media content with telephone and audio communications |
US20030027591A1 (en) * | 2001-05-15 | 2003-02-06 | Corbett Wall | Method and apparatus for creating and distributing real-time interactive media content through wireless communication networks and the internet |
US20030147514A1 (en) | 2002-02-01 | 2003-08-07 | Young-Gyu Ryu | Method for serving character message transmission during telephone call over PSTN |
US7026926B1 (en) * | 2002-08-15 | 2006-04-11 | Walker Iii Ethan A | System and method for wireless transmission of security alarms to selected groups |
US20060168074A1 (en) * | 2003-03-17 | 2006-07-27 | Epostal Services, Inc. | Messaging and document management system and method |
US20070197203A1 (en) | 2006-02-23 | 2007-08-23 | Min-Tza Hu | Method for remotely controlling a mobile communication device |
US20080247525A1 (en) | 2007-04-06 | 2008-10-09 | Leblanc Christopher C | Game-on-hold |
US20110081900A1 (en) | 2009-10-07 | 2011-04-07 | Echostar Technologies L.L.C. | Systems and methods for synchronizing data transmission over a voice channel of a telephone network |
US20110086593A1 (en) | 2009-10-14 | 2011-04-14 | Sony Corporation | System and method for transmitting data over an audio communication link |
US20120042066A1 (en) * | 2010-08-11 | 2012-02-16 | Gilat Satellite Networks Ltd | Managed Network Device |
Non-Patent Citations (1)
Title |
---|
Bump Technologies, "Frequently Asked Questions," available at "http://web.archive.org/web/20110518183929/http://bu.mp/faq", dated May 18, 2011 (retrieved on Aug. 7, 2012). |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150244809A1 (en) * | 2012-09-12 | 2015-08-27 | Zte Corporation | Inter-agent cross-blade-server calling method and system |
US9723084B2 (en) * | 2012-09-12 | 2017-08-01 | Zte Corporation | Inter-agent cross-blade-server calling method and system |
US20150271163A1 (en) * | 2014-03-18 | 2015-09-24 | Ca, Inc. | Secure data transmission using multi-channel communication |
US9628459B2 (en) * | 2014-03-18 | 2017-04-18 | Ca, Inc. | Secure data transmission using multi-channel communication |
US20210281568A1 (en) * | 2014-10-17 | 2021-09-09 | Advanced New Technologies Co., Ltd. | Systems and methods for interaction among terminal devices and servers |
US11665160B2 (en) * | 2014-10-17 | 2023-05-30 | Advanced New Technologies Co., Ltd. | Systems and methods for interaction among terminal devices and servers |
US10594685B2 (en) * | 2017-10-19 | 2020-03-17 | Salesforce.Com, Inc. | User selected key authentication |
US10270865B1 (en) * | 2018-01-29 | 2019-04-23 | Eckoh Uk Limited | Method for handing off a communications session |
US11924204B1 (en) * | 2018-06-08 | 2024-03-05 | Wells Fargo Bank, N.A. | Two-way authentication system and method |
US11223726B1 (en) * | 2019-09-30 | 2022-01-11 | United Services Automobile Association (Usaa) | Call center data transfer system |
US11471771B2 (en) * | 2020-10-07 | 2022-10-18 | Verint Americas Inc. | System and method for information gathering games for customer queues |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9020121B1 (en) | Method and apparatus for sharing data between devices | |
US20220060467A1 (en) | Systems and methods for phone number certification and verification | |
US20090025075A1 (en) | On-demand authentication of call session party information during a telephone call | |
JP4713667B2 (en) | Method and system for maintaining anonymity of mobile radio terminal | |
AU2015201690C1 (en) | User authentication | |
US9185214B2 (en) | Method and apparatus for providing enhanced communications | |
WO2017000476A1 (en) | Voice verification method, device and system | |
US8340637B2 (en) | Securely establishing presence on telecommunication devices | |
US20140364092A1 (en) | Method and Apparatus for Sharing Digital Content Employing Audible or Inaudible Signals | |
WO2014067367A1 (en) | Method, apparatus and device for establishing call | |
US20130202097A1 (en) | Priority telephonic communications | |
CN104137625B (en) | Method and apparatus for selecting network insertion to order | |
US11589203B2 (en) | Method and system for requesting and sharing information between mobile devices and phone systems | |
US20170195327A1 (en) | Peer-to-peer communication based on device identifiers | |
KR20170019981A (en) | Communication server and method for connecting call service and web service | |
JP2009290282A (en) | Authentication system and method | |
JP6434099B1 (en) | Terminal authentication system, terminal authentication method, user terminal, and program for user terminal | |
US10063596B2 (en) | Devices for managing data associated with an audio communication | |
US10063530B1 (en) | Voice-over-internet protocol credentials | |
US20140364090A1 (en) | Gateway for voice communication | |
KR101542829B1 (en) | Method of authenticating the sender using the server | |
JP2001148741A (en) | System and method for position information service and storage medium stored with position information service program | |
JP2019041403A (en) | Terminal authentication system, terminal authentication method, user terminal and program for user terminal | |
WO2023079625A1 (en) | Authentication system, authentication method, and program | |
JP2005284431A (en) | Server device and service method for electronic settlement using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DHANDA, SANJEEV;REEL/FRAME:028722/0692 Effective date: 20120716 |
|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DHANDA, SANJEEV;REEL/FRAME:028746/0627 Effective date: 20120716 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044334/0466 Effective date: 20170929 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |