The disclosure generally relates to the field of electronic communication, and more particularly to systems, methods, and user interfaces for controlling the information that is shared during electronic communication.
Communicating using electronic devices such as mobile devices is well known. A problem with mobile device communication is that it requires sharing contact information and other personal information, either willingly or unwillingly, to establish communication between two parties. This shared information includes, for example, a telephone number or email address. Once such information is shared, it is very difficult for the sharer to control or terminate the receiving party's ability to communicate with the sharer through the shared information. Consequently, mobile device users are often bombarded with unwanted communication without recourse.
One possible solution to cutting off unwarranted communication is to terminate the account associated with the shared information. However, this extremely burdensome and time-consuming. Moreover, it is disruptive as those that the user wishes to maintain communications with must be informed of the change in contact details and those informed must affirmatively update that information. Another solution is to use blocking features such as call blocking or spam reporting. However, the effectiveness of these features is limited even if they are established. In addition, for example, an unwarranted caller can call from an unblocked line and an unwarranted e-mailer can email from an unblocked email address.
To avoid this problem and the unfavorable solutions, many mobile device users are hesitant to share their contact information, which in turn reduces the amount of actual communication to below that which may actually be desired by the user.
The disclosed embodiments have advantages and features that will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below.
The Figures (FIGS.) and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.
Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
Disclosed by way of example embodiments is an information sharing control configuration. The information sharing control configuration can be implemented as a system, method and/or a computer program product (e.g., a computer readable storage medium that stores instructions executable by one or more processing units). The information sharing control configuration in one embodiment includes a server, a network, and one or more clients with associated users. Users use clients to access the server. The server facilitates communication between clients and users. The server is adapted to receive a request from a first client that includes a user identifier of a user of the first client and content handling instructions corresponding to another user with which the user of the first client wants to establish a connection. The server receives a connection message from a client of the second user, and transmits a confirmation message to the client of the second user that includes shared contact information of the first user. In response to receiving a communication message from the device of a sending user, the server determines content handling instructions for a recipient of the message. The server executes one or more of the content handling instructions, which may include transmitting (or sending) the message to a device of the second user.
Clients may be app clients or appless clients. App clients have a client application that facilitates communication with the server. Appless clients use messaging protocols such as SMS to communicate with the server. Users use clients to communicate with other users and access other users' content items. Content items include data associated with a user. Users may send content items to the server and choose which connected users have access to each content item. Users may update content items and connections via the server.
Controlled communication server 100 facilitates, via network 110, a controlled exchange of information between the users of information sharing control.
Network 110 is any suitable network and may include data and/or telecommunication networks (including mobile communication networks). In some configurations, clients 130, 135 communicate via a wired or wireless communication network to a local network service provider, and communicate with controlled communication server 100 through the Internet. In certain configurations, clients 130, 135 can communicate directly with one another without network 110 as indicated in
A client 130, 135 may be an app client 130 or an appless client 135. The app client 130 may be a smartphone or other computing device that includes a software application to facilitate communication with the controlled communication server 100. An appless client 135 does not have such a software application, and may be a feature phone or other computing device that is capable of communicating with the controlled communication server 100. In some configurations, clients 130, 135 communicate with the controlled communication server 100 using a client application on the client 130, 135 or a messaging protocol (e.g., SMS, iMessage, Google Messenger, etc.).
In some configurations, appless client 135 communicates with controlled communication server 100 through a cellular network. Appless client 135 may communicate with clients 130, 135 via a cellular network. Communication may occur through SMS messaging or a similar messaging protocol. Thus, appless client 135 does not require the capability to run a particular software application to communicate with controlled communication server 100.
A user 140, 145 interacts with a client 130, 135 through one or more input devices, including a touch screen, physical buttons, a pointing device (e.g., touchpad, stylus, or mouse), and a keypad (e.g., keyboard). A user 140 may interact directly with another user 145 to share information for connecting using information sharing control. Additional configurations for this environment are described in U.S. application Ser. No. 14/660,873 filed Mar. 17, 2015 and U.S. application Ser. No. 14/660,874 filed Mar. 17, 2015, the contents of which are incorporated by reference.
The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a smartphone, an internet of things (IoT) appliance, a network router, switch or bridge, or any machine capable of executing instructions 174 (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute instructions 174 to perform any one or more of the methodologies discussed herein.
The example computer system 150 includes one or more processing units (generally processor 152). The processor 152 is, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a state machine, one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these. The computer system 150 also includes a main memory 154. The computer system may include a storage unit 166. The processor 152, memory 154 and the storage unit 166 communicate via a bus 158.
In addition, the computer system 156 can include a static memory 156, a display driver 160 (e.g., to drive a plasma display panel (PDP), a liquid crystal display (LCD), or a projector). The computer system 150 may also include alphanumeric input device 162 (e.g., a keyboard), a cursor control device 164 (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), an audio input device (e.g., a microphone), a signal generation device 168 (e.g., a speaker), and a network interface device 170, which also are configured to communicate via the bus 158.
The storage unit 166 includes a machine-readable medium 172 on which is stored instructions 174 (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions 174 may also reside, completely or at least partially, within the main memory 104 or within the processor 102 (e.g., within a processor's cache memory) during execution thereof by the computer system 150, the main memory 154 and the processor 152 also constituting machine-readable media. The instructions 174 may be transmitted or received over a network 176 via the network interface device 170.
While machine-readable medium 172 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store the instructions 174. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions 174 for execution by the machine and that cause the machine to perform any one or more of the methodologies disclosed herein. The term “machine-readable medium” includes, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media.
Client interaction module 206 handles communications from clients 130, 135. In some embodiments, client communications may be received by message module 200, user interface module 214, or directly by client interaction module 206. In some embodiments, client interaction module 206 handles communications between clients 130, 135 and user content module 204, connection module 208, request module 210, and account module 212. Client interaction module 206 may interact with other modules in controlled communication server 100.
User interface module 214 generates and manages a user interface for the information sharing control. In one embodiment, a user can access information sharing control via a web interface generated by user interface module 214. For example, the user can navigate in a web browser on a client 130, 135 to a web address provided by controlled communication server 100.
User content module 204 receives and handles user content from clients 130, 135 and associated users of information sharing control. User content items include names, email addresses, phone numbers, physical addresses, web addresses, usernames, photographs, and important dates. In one embodiment, user content is stored in user content data store 222. User content module 204 retrieves some or all of the user content from user data store 222 when a retrieval request is received. In some embodiments, a retrieval request may come from a client 130, 135 of an owner of the user content. Alternatively, the retrieval request may come from a client 130, 135 of a user authorized by the owner to view some or all of the user content.
Account module 212 manages user account information. When using information sharing control, to facilitate various functions, a user can create an account. The account module 212 receives information associated with user accounts from clients 130, 135. User account information may include a user's personal information and a user identifier, and may be maintained in account data store 220, and is one means for performing this function. User account information Account data store 220 can store profile information for registered users. Each user is associated with a unique user identifier, such as a userID, a user name, or a user number. A user's user identifier is assigned by account module 212. Available user identifiers are stored in account data store 220. Alternatively, account module 212 may generate new user identifiers based on previously-assigned user identifiers.
In one embodiment, account information includes account management information, such as account type, e.g., free or paid; usage information for each user, e.g., security settings; personal configuration settings; etc. Account module 212 can be configured to update and/or obtain user account details in account data store 220. An account can be associated with multiple clients 130, 135. Account module 212 can be configured to interact with any number of other modules in controlled communication server 100. Account data store may include characteristics of clients 130,135. Characteristics include hardware model information, network capabilities, operating system information, messaging and notification capabilities and the like.
The request module facilitates connection requests by clients 130, 135 to connect one user account to another In some embodiments, request module 210 receives the connection request and stores it in request data store 224. A connection request includes content handling instructions. Content handling instructions include sharing instructions for which user content to share with the other user, as well as instructions for how the other user may communicate with the first user. Instructions may be stored in request data store 224 or in connection data store 226. Example instructions include instructions to share one or more user content items or data fields with a particular user, instructions to not share one or more user content items or data fields with a particular user, and instructions for how to handle communication from a particular user (i.e. instant messages, short message service (SMS), multimedia message service (MMS), phone calls, emails).
In some embodiments, request module 210 can also generate a connection request message to request authorization of the other user to connect accounts. The connection request message can be sent via SMS or other messaging protocol through message module 200. In some embodiments, message module 200 uses a service number retrieved from service number data store 228 to send the connection request message. In this embodiment, the recipient of the connection request message is able to send a reply message to the service number to accept the connection request.
In various embodiments, if both users are app users, the users initiate a connection via the user interface of the client application, as described in more detail below. In some embodiments, a client application initiates a connection request by using character recognition to read an image containing personal information (e.g., a picture of a business card) or an indication or reference to personal information (e.g., a QR code or other symbolic representation). Example methods for initiating a connection are described in more detail below.
When a connection is made, connection module 208 creates a connection record in connection data store 226. The connection record includes the unique identifiers of the connected users as well as content sharing instructions for both users. The connection record may also include a connection channel retrieved from connection channel data store 230. A connection channel is an address, such as a phone number or SMS short code, that is associated with message module 200. Each connection channel is only associated with one connection for each user. Accordingly when message module 200 receives a message from a user through a particular connection channel, connection module 208 can determine the intended recipient from connection records.
The stored user content can also include content groups of various types with different behaviors, or other user content item grouping methods. A content group includes one or more content items. Content groups may be stored in account data store 220.
A user may create content groups, choose which user content items are associated with each content group, and assign users to a content group. Users assigned to a content group have access to the content items assigned to that content group. For example, an account can include a public user content group that is accessible to any user by default. The public user content group can be assigned a web-accessible address. A link to the web-accessible address can be used to access the contents of the public content group. In another example, an account can include a private user content group that is accessible only to users assigned by the content owner. When a connection is made, the instructions for sharing content may assign zero, one, or more content groups to the connected user, thus giving the connected user access to the content in each such content group.
Message module 200 is configured to facilitate message exchange between users. Message module 200 uses network 110 to send and receive messages. Messages may be sent via a message service or other communication service (e.g., an SMS message service, a native device messaging system, etc.). Examples of a native device messaging system include iOS Push Notifications by APPLE, INC., Cupertino, Calif. and Android Notifications by GOOGLE INC., Mountain View, Calif. Messages may further be sent as internal messages, for example, when the message module of an app client has an active message-data connection with message module 200. An active message-data connection typically exists if the client application of the system is open and displayed on the app client.
Communication event module 202 handles requests to initiate communication events. Communication events include phone calls, phone tags, masked calls, video calls, etc. In some embodiments, communication event module 202 is part of client application 300. Communication event module 202 receives requests to initiate communication events and communicates with various modules of app clients 130 to initiate communication events. Data associated with communication event requests is stored in communication event data store 223.
Operating system 370 provides a local file management system and executes the various software modules such as client application 300, messaging application 375, and native notification module 380. Operating system 370 also displays information from applications executing on app client 130 to a user via display 350. Camera 360 may be used to capture images or video for upload.
Native notification modules 380 vary based on the app client, and facilitate delivery of notification messages to the app client user via a native device messaging system. A typical native notification module 380 includes a notification interface that enables client applications 300 and other sources to send notification messages to the app client for display to the user. Notifications may originate on app client 130 or on a server connected to app client 130 via network 110. Messaging application 375 allows the app client user to compose, read, send, and receive messages (e.g., SMS messages, etc.). The messaging application 375 includes a user interface for composing and reading SMS messages, and an SMS interface for transmitting and receiving SMS messages via network 110.
Client application 300 may be a dedicated application or module that provides access to the services of controlled communication server 100, providing user access to user content through a user interface and programmatic access for other applications. App client 130 may also access controlled communication server 100 through browser 365. Client application 300 may take various forms, such as a stand-alone application, an application plug-in, or a browser extension. Client application 300 includes user interface module 305, message module 310, connection module 315, user content module 320, and local data store 325.
User interface module 305 generates an interface to the content accessed by client application 300, as variously illustrated herein, and is one means for performing this function. The generated interface is provided to the user by display 350. Client application 300 may store content accessed from a data store at controlled communication server 100 in local data store 325.
In various embodiments, connection module 315 communicates with various modules of controlled communication server 100 to enable a user to create and manage connections. A user may initiate a connection request, including content sharing instructions, via a user interface element of app client 130. Connection module 315 handles the request and communicates with connection module 208 to create the connection. Connection module 315 may also access existing connections stored on controlled communication server 100 so that a user may view and modify existing connections using app client 130.
User content module 320 manages user content relating to a user's account. In various embodiments, a user can view and modify the user's own user content, content groups, and content sharing instructions via the user interface on device 130. User content module 320 also communicates with user content module 204 to access content items and content sharing instructions associated with a connected user. In some embodiments, user content module 320 is configured to communicate with messaging application 375 and other applications of app client 130. For example, if a connected user has shared a mobile phone number with a user, user content module 320 can communicate with messaging application 375 to open a window to compose an SMS message and automatically populate the recipient's phone number in the appropriate field.
In some embodiments, message module 310 is configured to allow a user of app client 130 to send, receive, compose, and read internal messages. Message module 310 communicates with message module 200 to provide internal messages to a user of app client 130 via the user interface.
User interface module 305 provides a user interface for display and interaction. User interface module 305 also accepts and manages user inputs to the user interface. User inputs are made to various user interface elements via a touchscreen or another user input device, for example, a mouse, trackpad or keyboard. The user interface for information sharing control may be provided to users on display 350 of app client 130.
Voice communication module 385 allows for electronic communication via network 110. In some embodiments, voice communication module 385 allows inter-device audio and/or video communication over a mobile communication network. In other embodiments, voice communication module 385 uses the Internet for inter-device audio and/or video communication. Voice communication module 385 may be, for example, a phone application of a smartphone.
In one embodiment, voice communication module 385 has an associated contact data store, such as a contacts list or application. The contact data store stores contact data on the app client 130. Voice communication module 385 may place calls using the contact data. In one embodiment, client application 300 may direct voice communication module 385 to place a call. This may be in response to a user input or some other action within information sharing control. Voice communication module 385 may also display contact information (e.g., a name) when a call is received from a number stored in the contact data store.
The information sharing control may facilitate masked calling between users. If a first user places a masked call to a second user, the client application 300 of the app client 130 of the first user directs the voice communication module 385 to place a call to a system number associated with communication event module 202. Communication event module 202 receives the call and initiates a second call to a phone number of the second user. The second call is placed via a masked number associated with communication event module 202 and not directly associated with the first user. The two calls are joined, enabling the users to communicate via a voice call. An advantage of masked calling is that there is no direct call from the phone number of the first user to the phone number of the second user, so the first user may place a voice call without sharing a phone number, which would prevent the second user from contacting the first user after the call.
In one embodiment of masked calling, the client application 300 of the second user's app client 130 receives a contact data entry from communication event module 202 prior to receiving the second call. The contact data entry associates the masked number with the first user. Client application 300 may store a name of the first user and the masked number in the contact data store such that voice communication module 385 displays the name of the first user when the masked call is received. In this embodiment, the second user knows that the first user is calling, but is still not provided with the first user's phone number. The second user has a better user experience because he or she knows who is calling, and may make a more informed decision whether to answer the call than if just the masked number was displayed.
Operating system 470 provides a local file management system and executes the various software modules such as messaging application 475. Operating system 470 also displays information from applications executing on appless client 135 to a user via display 450. As an example of one communication channel, messaging application 475 allows the appless client user to compose, read, send, and receive SMS messages SMS application includes a user interface for composing and reading SMS messages, and an SMS interface for transmitting and receiving SMS messages via network 110.
Request module 210 retrieves 520 a service number from service number data store 228. Request module 210 then sends 525 the connection code and the service number to the app client 130 for display to the app user 140. The app user 140 can share the connection code and service number to an appless user 145 of an appless client 135. Sharing may happen in person (e.g., visually or audibly), or via some other form of communication, as represented by the dashed line between users in
UI elements 809 may include a date associated with a communication event, for example, the most recent communication event. UI elements 809 may further include a profile picture 807 of the connected user.
Filter element 803 allows a viewing user to change which connected users are displayed in the list of communication event information. Communication element 805 allows a viewing user to initiate communication events with connected users and other users, as described in more detail with respect to
Content group elements 825A-D allows a viewing user to access a user interface for viewing and editing content group information. Content group information may include a list of which content items are shared with the content group, a list of members of the content group. An example user interface for viewing and editing content group information is described in more detail with respect to
Message module 200 receives 915 a connection request from the first appless client 135 to connect with a second appless user. The connection request may be a specific text string (e.g., “NEW”) sent to the service number, as shown in message screen 1003 of
Message module 200 sends 945 a confirmation message to the first appless user indicating that the request has been sent. The confirmation message sent to the first appless user may be sent from the service number, the first connection channel, or both, as illustrated in message screen 1003 of
Based on the connection record, messages received by message module 200 at the first connection channel from a number associated with the first appless user can be uniquely identified by message module 200 as being sent by the first appless user with the second appless user as the intended recipient. Similarly, messages received by message module 200 at the second connection channel from a number associated with the second appless user can be uniquely identified as being sent by the second appless user with the first appless user as the intended recipient. In this way, controlled communication server 100 may facilitate controlled communication between the first appless user and the second appless user, as illustrated in message screen 1011 of
The information sharing control as disclosed provides benefits and advantages that include allowing participants in electronic device communication to control information that is shared during communication. It further allows those participants to control future communication by allowing continuous changes by participants, including changes to whether any piece of information is shared and alterations to the information itself.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms, for example, as illustrated in
In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
The various operations of example methods described herein, e.g., with respect to
The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs).)
The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine but possibly deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.
As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other but still co-operate or interact with each other. The embodiments are not limited in this context.
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for controlling the information that is shared during electronic communication through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
This application claims a benefit of U.S. Application No. 62/188,434, filed Jul. 2, 2015, the content of which is incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62188434 | Jul 2015 | US |