Patent ID: 12244652

DETAILED DESCRIPTION

The present disclosure provides systems and methods for providing hosted confidential discussions. The disclosure provides techniques that allow a computer system provider to host confidential discussions where participation is limited to invited participants. The participants may be provided a randomized name that allows temporary identification without breaching confidentiality. A facilitator is able to guide the participants through a series of programed questions. Participant responses may be viewed by the facilitator and may be selectively shared with other participants or third party observers. The system may provide real-time analysis of the responses and generate reports.

Referring now toFIG.1, an example session hosting system100includes a central computer device110and a plurality of user devices including at least one host device120, a plurality of participant devices130, and optional observer devices140and administrator devices190. The central computer device110may be, for example, any mobile or fixed computer device including but not limited to a computer server, desktop or laptop or tablet computer, a cellular telephone, a personal digital assistant (PDA), a handheld device, any other computer device having wired and/or wireless connection capability with one or more other devices, or any other type of computerized device capable of processing communications related data. In an aspect, the central computer device110may be implemented as one or more virtual machines hosted by a web services provider.

In an aspect, the session hosting system100may include a session hosting application160executed by the computer device110. The session hosting system100may host a confidential multi-party session. In some implementations, the confidential multi-party session may be used for communications among a focus group. The session hosting application160may include a registration module170configured to invite participants172to a session182. The participants172may each use a participant device130to register for and participate in the session182, as described in further detail below. The registration module170may send an invitation including registration fields174to each invited participant172. The registration module170may collect joining fields176when a participant172joins a session182. The session hosting application160may include a session component180configured to host one or more sessions182. Each session182may be programmed with screens184, each including questions186.

The computer device110may include a central processing unit (CPU)114that executes instructions stored in memory116. For example, the CPU114may execute an operating system150and one or more applications152, which may include the session hosting application160. The computer device110may also include a network interface112for communication with external devices via a communications network154. For example, the computer device110may communicate with a plurality of user devices including the host device120, participant devices130, and observer device140.

Memory116may be configured for storing data and/or computer-executable instructions defining and/or associated with an operating system150and/or applications152, and CPU114may execute operating system150and/or applications152. Memory116may represent one or more hardware memory devices accessible to computer device110. An example of memory116can include, but is not limited to, a type of memory usable by a computer, such as random access memory (RAM), read only memory (ROM), tapes, magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination thereof. Memory116may store local versions of applications being executed by CPU114. In an implementation, the memory116may include or communicate with a storage device118, which may be a non-volatile memory.

The CPU114may include one or more processors for executing instructions. An example of CPU114can include, but is not limited to, any processor specially programmed as described herein, including a controller, microcontroller, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on chip (SoC), or other programmable logic or state machine. The CPU114may include other processing components such as an arithmetic logic unit (ALU), registers, and a control unit. The CPU114may include multiple cores and may be able to process different sets of instructions and/or data concurrently using the multiple cores to execute multiple threads. In an aspect, a graphics processing unit (GPU) may perform some operations of the CPU114. For example, for blockchain operations, a GPU may be utilized for mining blocks (e.g., finding hash keys).

The operating system150may include instructions (such as applications152) stored in memory116and executable by the CPU114. The applications152may include a session hosting application160configured to communicate with user devices via a respective interface (e.g., host interface122, participant interface132, and observer interface142, administrator interface192). The session hosting application160may provide the host interface122that may be in communication with or otherwise operate in conjunction with a host device120. The host interface122may be any user interface with which an end user may interact. For example, the host interface122may be a web-page that is accessed through a browser application executed on the host device120. By loading the web-page, the browser application may effectively operate as a user interface for an application executed on the computer device110(e.g., in the case of a web server). As another example, the host interface122may be an application or operating system that runs on the host device120.

The session hosting application160may also provide the participant interface132that may be in communication with or otherwise operate in conjunction with a participant device130. The participant interface132may be any user interface with which an end user may interact. For example, the participant interface132may be a web-page that is accessed through a browser application executed on the participant device130. By loading the web-page, the browser application may effectively operate as a user interface for an application executed on the computer device110(e.g., in the case of a web server). Such an implementation may allow various types of user devices to serve as a participant device130and participate in a communication session. For example, a communication session may include different types of participant devices130such as desktop computers, laptop computers, tablets, and smart phones. In an aspect, the participant interface132may acquire responses of a participant172. For example, the participant interface132may display a session182that may include multiple screens184each including questions186that may be completed directly by a participant operating the participant device130.

The session hosting application160may also provide the observer interface142that may be in communication with or otherwise operate in conjunction with an observer device140. Similar to the participant interface132, the observer interface142may be a web-page that is accessed through a browser application executed on the observer device140. The observer interface142may allow an observer to view responses but not provide responses. In an implementation, the observer interface142may provide a private chat window with the host interface122.

The session hosting application160may also provide the administrator interface192that may be in communication with or otherwise operate in conjunction with an administrator device190. Similar to the participant interface132, the administrator interface192may be a web-page that is accessed through a browser application executed on the administrator device190. The administrator interface192may allow for multiple registered administrators to schedule, start, and/or facilitate sessions182. A project may include multiple sessions with a same set of questions.

Alternatively or additionally, the session hosting application160may also provide a super-administrator interface194that may be in communication with or otherwise operate in conjunction with an administrator device190. Similar to the participant interface132, the super-administrator interface194may be a web-page that is accessed through a browser application executed on the administrator device190. The super-administrator interface194may allow for making system-level changes to the session hosting application160, such as managing (e.g., adding, removing, modifying) users registered as administrators. In an aspect, the super-administrator interface194may allow for purging of configuration and/or data of the session hosting application160, such as deleting configuration and/or data related to projects, sessions, and/or reports. For example, the super-administrator interface194may allow for removal of non-anonymous participant data from reports. That is, the super-administrator interface194may facilitate compliance with one or more privacy standards and/or regulations of one or more regions (e.g., general data protection regulations (GDPR), California privacy laws and regulations).

FIG.2is an example user interface200for creating a session. The user interface200may be provided by the host interface122. The user interface200may include fields for a session name202, client name204, user prefix206, email reminder frequency208, message on pause session210, and message on end session212. The session name may uniquely identify a session182. The client name may identify an organization associated with the session. For example, the organization may be an employer of the participants, a research organization, or a business where the participants are potential customers. The user prefix may be used to generate randomized display names for the participants. The message on pause screen may be displayed when the session182is paused. The message on end screen may be displayed when the session182is stopped. The user interface200may include an option to enable a confidential background214that includes a watermark indicating that the session182is confidential. The user interface200may include an option to add a registration form message216to be included on the participant registration interface300(FIG.3) and/or add a joining form message218to be included on the participant joining interface400(FIG.4).

The user interface200may include options for selecting a registration type220for the session182. The available registration types may include anonymous, domain verified, and match registration details on joining. An anonymous session may not collect registration information from participants172. A domain verified session may require registration with a particular domain name (e.g., the client domain). The user interface200may include a domain name field222. In other implementations, a domain name may be extracted from an email address for an invitation. The domain verified session may require confirmation of association with the particular domain name upon joining. For example, a domain verified session may send a participant specific code to an email address associated with the domain name to be used to join the session. A session using match registration details on joining may verify that information provided when joining matches information provided when registering.

The user interface200may include options for selecting registration fields174. The registration fields174may be included on the participant registration interface300(FIG.3). Example registration fields174may include email address, age, gender, first name, and last name. The user interface200may include options for selecting joining fields176. The joining fields176may be included on the participant joining interface400(FIG.4). Example joining fields176may include email address, age, gender, first name, and last name and may be the same as the registration fields174. If or when the match registration details on joining registration type is selected, the user interface200may require that the joining fields176be the same as the registration fields174.

FIG.3is an example participant registration interface300. The participant registration interface300may be provided by the participant interface132. The participant registration interface300may include the registration fields174selected in the user interface200. For example, as illustrated, participant registration interface300includes an email address field. A participant172may enter information in the registration fields174and select the registration button302to register.

FIG.4is an example participant joining interface400. The participant joining interface400may be provided by the participant interface132. The participant joining interface400may include the joining fields176selected in the user interface200. For example, as illustrated, participant joining interface400includes an email joining field. A participant172may enter information in the joining field176and select the join button402to join the session. In an implementation, the session hosting system100may provide audio and/or video communications to the session participants via a conference call. The participants may be muted and only the host may speak to guide participants through the questions. In other implementations, the computer device110and/or the session hosting application160may include a voice over internet protocol (VoIP) component, a soft internet protocol (IP) telephone, an application for streaming audio and/or video, and/or an application for facilitating real-time communications that may provide audio and/or video communications to the session participants.

FIG.5is an example user interface500for scheduling a session. The user interface500may be provided by the host interface122. The user interface500may include fields for entering a date502, start time504, end time506, and a number of members508. The number of members may be a limit on a number of participants172that may register for the session182. In an aspect, a session182may have multiple parts. A host may select the + icon510to add an additional part. The user interface500may include a next button512. In response to a host user selecting the next button512, the session hosting application160may generate a session object including the information provided in the user interface200and the information provided in the user interface500.

FIG.6is an example user interface600for managing scheduled sessions. The user interface600may display the schedule date602, number of registered members604, start time606, end time608, and status609of a session. An icon605next to the number of registered members or participants may cause the user interface600to display a complete list of the registered members or participants. The status may be one of a new session, completed session, in-progress session, or cancelled session. The user interface600may include a play icon610, an edit icon620, a download icon630, a registration link640(MR), a joining link650(MJ), and an observer link660(OJ). Selection of the play icon610may start a host session interface1300(FIG.13). The edit icon620may return to the user interface500. The download icon630may download a report for a completed session. The registration link may provide a hyperlink to the participant registration interface300. The joining link650may provide a hyperlink to the participant joining interface400. The observer link660may provide a link to an observer interface.

FIG.7is an example user interface700for generating a question screen. A session182may include a plurality of screens184, each screen including a plurality of questions. The user interface700may include a field702for receiving an indication of a start of a question sequence on the screen. The user interface700may include a save icon710, a preview icon720, a library icon730, and an add icon740. The save icon710may save any changes to the screen. The preview icon720may render the screen as if viewed on a participant interface132. The library icon730may provide a link to a library of saved question objects. The add icon740may open a user interface800(FIG.8). The user interface700may also include an edit screen button750that allows for editing of the screen title (e.g., Demographics). The user interface700may include a delete screen button760that deletes the current screen.

FIG.8is an example user interface800for editing a question. The user interface800may be provided by the host interface122, for example, in response to a user selecting the add icon740. The user interface800may include fields for entering a question prefix802, question text804, a question type806, a response chart type808, and one or more question tags810. The question prefix802may add a prefix before a sequential question number. The question text804may include any text entered by a host. The question type806may be one of: multiple choice, multiple response, or open box. The question type806may control display of response options and logical rules for selection of response options by a participant. The response chart type808may allow selection of a type of chart to display responses to the question. Examples of chart types may include a pie chart, donut chart, bar chart, or line chart. The question tags810may be associated with a saved question and may be used to search the question library for the saved question. The user interface800may include an option812to use question data for reports.

FIG.9is an example user interface900for generating response options. The user interface900may include choices for an option prefix902. For example, the option prefix902may be a numeric prefix, an alphabetical prefix, or no prefix. The user interface900may include an option entry field904for entering option text. In an aspect, the response options for a question may be entered as text. A special character may be designated to separate the response options. In some implementations, the special character may be the pipe “|” character. The use of a special character may provide flexibility in the content of the response options. The user interface900may include a convert button906. In response to the host selecting the convert button906, the session hosting application160may convert the text in the option entry field904into a plurality of response objects.

FIG.10is an example user interface1000for editing response options. The user interface1000may be the user interface900after the convert button has been selected. The user interface1000may include a plurality of response objects1010. Each response object1010may include an option prefix1002, an option text1004, a deselect all option1006, and a delete icon1008. The deselect all option1006may control whether a participant is allowed to select other options in addition to the response object. In the illustrated example, the response option “None of the above” has the deselect all option selected. Accordingly, the participant interface132may deselect all other responses in the list of responses in response to the response being selected by the participant.

FIG.11is an example user interface1100for managing a question screen. The user interface1100may be similar to the user interface700. For example, the user interface1100may include the field for receiving an indication of a start of a question sequence702on the screen, the save icon710, the preview icon720, the library icon730, and the add icon740. The user interface1100may include a list of questions1110for the screen. Each question may include a prefix1102, number1104, and question text1106. The user interface1100may include an edit icon1108for each question. For example, the session hosting application160may open the user interface800for the corresponding question in response to the edit icon1108being selected. The user interface1100may include a delete question icon1109. The session hosting application160may delete a corresponding question from the screen in response to the delete question icon1109being selected.

FIG.12is an example user interface1200for managing a session. The user interface1200may include a publish button1202and a back to session grid button1204. The session hosting application160may change the status of the session from new session to published in response to the publish button1202being selected. The session hosting application160may return to the user interface600in response to the back to session grid button1204being selected. The user interface1200may also include an edit session button1206, an add/edit schedule button1208, and an add screens button1210. The edit session button1206may be a link to the user interface200. The add/edit schedule button1208may be a link to the user interface500. The add screens button1210may be a link to the user interface700. The user interface1200may also include a list of screen objects for the screens184. The session hosting application160may display the questions186in response to a screen object being selected.

FIG.13is an example host session interface1300for guiding a live session. The host session interface1300may be provided by the host interface122. The host session interface1300may allow a host to control a live session. The host session interface1300may include a navigation panel1310that displays a name of each of the plurality of programed screens184. The navigation panel1310may also indicate a current screen displayed to the participants. The host session interface1300may include a participant panel1320indicating how many of the questions each participant has completed. The host session interface1300may include an observer panel1330configured to display a private chat between an observer and the host.

The host session interface1300may also include session controls including a play button1340, a pause button1342, a stop button1344, an end button1346, and a timer1348. The session hosting application160may make the session active in response to selection of the play button1340. When the session is active, participants may provide responses via their respective participant interface132. The session hosting application160may place the session in a pause state in response to selection of the pause button1342. In the pause state, the participants may not be able to enter responses. In some aspects, if or when the session is in the pause state, the participant interface132may display a pause message entered into the message on pause session field210of user interface200. The session hosting application160may stop the session in response to selection of the stop button1344. When the session is stopped, the session hosting application160may determine quantitative measures of the responses. The session hosting application160may generate a session record including the responses to each question for each participant. The session record for multiple response questions may include a column for each response option including a binary indication of whether each participant selected the response option and a column indicating whether the participant answered the question. The session record may be output as a known file type such as a comma-separated value (CSV) file.

In some aspects, the session record may also include a quantitative analysis of the responses to each question. For example, the session record may include an average value, a mean value, and/or other statistical calculations of the responses to one or more questions. In another example, the session record may indicate a distribution of the responses to a question (e.g., histogram).

In other optional or additional aspects, the session record may comprise a combined transcript of the multi-party session. The combined transcript may indicate the randomized display name corresponding to each entry in the combined transcript. Alternatively or additionally, the session record may include audio and/or video recordings corresponding to the multi-party session.

The session hosting application160may end the session in response to selection of the end button1346. When the session ends, the participants may be disconnected and the respective participant interface132may display a message on session end entered in the user interface200(e.g., message on end session field212). In some implementations, the stop button1344and the end button1346may be a single button. The timer1348may display a total time of the session.

The host session interface1300may include a response panel1350. The response panel1350may indicate, for each question, selected responses of the participants. For example, for multiple choice questions, the response panel1350may display a percentage for each response option. As another example, for a freeform response, the response panel1350may include a display area1352configured to show responses to the question from other participants. The display area1352may act as a chat window and display multiple responses from participants.

FIG.14is an example participant session interface1400for participating during a session. The participant session interface1400may be provided by the participant interface132. The participant session interface1400may display a programmed screen184. The screen184may include a plurality of questions186. Each question186may include at least one selectable response1410. For example, question Q1 may be a multiple choice question and questions Q2 and Q3 may be multiple response questions allowing selection of multiple options. Question Q4 may be a freeform question including a text box1420configured to receive a freeform response and a display area1422configured to show responses to the question from other participants. Each participant may be identified by a randomized name.

FIG.15is a flowchart of an example method1500of controlling access to a real-time session, in accordance with an implementation of the present disclosure. The method1500may be performed by the computer device110including the CPU114executing the session hosting application160.

At block1510, the method1500may include displaying, on a host interface, a session scheduling form. For example, the computer device110and/or CPU114may execute the session hosting application160and/or registration module170to display, on the host interface122, a session scheduling form such as the user interface200.

At block1520, the method1500may include receiving, from a host via the session scheduling form, email addresses of invited participants, an indication of a registration type, a selection of one or more registration fields required for one or more of the invited participants to register for a session, and a selection of one or more joining fields required for one or more registered participants to join a session. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to receive, from a host via the session scheduling form, email addresses of invited participants, an indication of a registration type, a selection of one or more registration fields174required for one or more of the invited participants to register for a session, and a selection of one or more joining fields176required for one or more registered participants172to join a session.

At block1530, the method1500may include generating, for each invited participant, an email including a hyperlink with a session-specific URL for joining the session. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to generate, for each invited participant172, an email including a hyperlink with a session-specific URL for joining the session. For example, the session-specific URL may be a link to the participant joining interface400.

At block1540, the method1500may include receiving, from a participant device, a request to join the session-specific URL. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to receive, from a participant device130, a request to join the session specific URL.

At block1550, the method1500may include serving a session joining page to the participant device in response to the request for the session-specific URL, the session joining page including one or more joining fields. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to serve a session joining page (e.g., participant joining interface400) to the participant device in response to the request for the session-specific URL, the session joining page including one or more joining fields (e.g., email address).

At block1560, the method1500may include receiving, from the participant device via the session joining page, the one or more joining fields. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to receive, from the participant device130via the session joining page (e.g., participant joining interface400), the one or more joining fields176.

At block1570, the method1500may include verifying that the one or more joining fields match registration information of the invited participant. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to verify that the one or more joining fields176match registration information of the invited participant. For example, the registration module170may verify that the email address on the participant joining interface400matches the email address from the participant registration interface300. As another example, at sub-block1572, the block1570may include verifying that an email address in the joining fields176matches a required domain. As yet another example, at sub-block1574, the block1570may include sending another email with a single-use code to the email address at the required domain in response to receiving the email address in the one or more joining fields.

At block1580, the method1500may include admitting the invited participant into the real-time session in response to the verifying. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the registration module170to admit the invited participant into the real-time session in response to the verifying.

In some aspects, the admitting at block1580may include providing audio and/or video communications to the invited participant via a conference call corresponding to the real-time session. For example, the computer device110and/or the session hosting application160may include a VoIP component, a soft IP telephone, an application for streaming audio and/or video, and/or an application for facilitating real-time communications that may provide audio and/or video communications to the session participants. Alternatively or additionally, the invited participant may be muted and only the host may speak to guide participants through the questions.

FIG.16is a flowchart of an example method1600of programming a real-time multi-party session. The method1600may be performed by the computer device110including the CPU114executing the session hosting application160.

At block1605, the method1600may include receiving, via a host interface, a selection of a new screen icon from a host. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive, via a host interface122, a selection of a new screen icon (e.g., edit icon620and/or add screens button1210) from a host.

At block1610, the method1600may include receiving, via the host interface, an indication of a question start sequence, a selection of a question type, question text, a selection of a response chart type, and a list of response options, each response option separated by a designated symbol. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive the completed fields of the user interface800and user interface900via the host interface122.

At block1615, the method1600may include generating, for each response option, a response object including: an option prefix, option text, a deselect option, and a delete option. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to generate the response objects of user interface1000.

At block1620, the method1600may include generating a question object including: a question number based on the question start sequence, the question text, and the response objects for each response. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to generate the question object including: the question number based on the question start sequence, the question text, and the response objects for each response.

At block1625, the method1600may include adding the question object to the new screen. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to add the question object to the new screen.

At block1630, the method1600may optionally include receiving, via the host interface, a selection of the deselect option for a single response object. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive, via the host interface122and/or user interface1000, a selection of the deselect option for a single response object. At block1635, the method1600may optionally include configuring the question object to deselect all other response objects for the question object in response to the single response object being selected. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to configure the question object to deselect all other response objects for the question object in response to the single response object being selected by a participant via participant interface132.

At block1640, the method1600may optionally include receiving, via the host interface, a selection of a text box option for a single response object. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive, via the host interface122, a selection of a text box option for a single response object. At block1645, the method1600may optionally include configuring the question object to display a text entry field on a participant interface in response to the single response object being selected via the participant interface. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to configuring the question object to display a text box1420on a participant interface132and/or participant session interface1400in response to the single response object being selected via the participant interface.

At block1650, the method1600may optionally include receiving, via the host interface, an indication of a question tag for the question object. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive, via the host interface122and/or the user interface800, an indication of a question tag for the question object. At block1655, the method1600may optionally include adding the question object to a question repository accessible for other sessions. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to add the question object to a question repository accessible for other sessions. The method1600may further include receiving, via the host interface, an indication of an update option; receiving, via the host interface, one or more changes to the questions; and updating the question object in the question repository based on the one or more changes.

FIG.17is a flowchart of an example method1700of providing a live multi-party session. The method1700may be performed by the computer device110including the CPU114executing the session hosting application160.

At block1710, the method1700may include loading a programmed session including a plurality of screens, each screen including a plurality of questions. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to load a programmed session182including the plurality of screens184, each screen184including the plurality of questions186.

At block1720, the method1700may include receiving join requests from a plurality of participants, each join request originating from a session-specific URL provided to registrants and associated with the programmed session. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive join requests from a plurality of participants172, each join request originating from a session-specific URL provided to registrants and associated with the programmed session182.

At block1730, the method1700may optionally include verifying, for each of the plurality of participants, that the join request matches a registered participant. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to verify, for each of the plurality of participants172, that the join request matches a registered participant. For instance, for a domain verified session, the session component180may verify that a domain of an email of the participant matches a required domain. As another example, the session component180may compare the joining fields176with the registration fields174.

In other optional or additional aspects, the verifying at block1730may include providing audio and/or video communications (e.g., VoIP) to the verified participant via a conference call corresponding to the real-time session. Alternatively or additionally, the verified participant may be muted and only the host may speak to guide participants through the questions.

At block1740, the method1700may include assigning each participant a randomized display name. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to assign each participant a randomized display name.

At block1750, the method1700may include presenting, on a respective user interface for each participant, a first screen of the plurality of screens in response to a command received via a host interface. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to present, on a respective user interface (e.g., participant interface132and/or participant session interface1400) for each participant, a first screen of the plurality of screens in response to a command (e.g., play button1340) received via a host session interface1300.

At block1760, the method1700may include receiving responses to the plurality of questions from the participants. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to receive responses to the plurality of questions from the participants via the participant session interface1400.

At block1770, the method1700may include displaying, on a host interface, an indication of a number of questions answered by each participant according to the randomized display name. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to display, on a host session interface1300, an indication of a number of questions answered by each participant according to the randomized display name.

At block1780, the method1700may include displaying, on the user interface and the host interface, an indication of the response to each question. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to display, on the host session interface1300and the participant session interface1400, the indication of the response to each question. For example, in sub-block1782, the session component180may display a chart of the responses from all of the participants. As another example, in sub-block1784, the session component180may display a display area1352or1422with a response associated with the randomized display name for a participant.

At block1790, the method1700may include generating a session record including the responses to each question for each participant. For example, the computer device110and/or CPU114may execute the session hosting application160and/or the session component180to generate a session record including the responses to each question for each participant. The session record for multiple response questions may include a column for each response option including a binary indication of whether each participant selected the response option and a column indicating whether the participant answered the question. The session record may be output as a known file type such as a comma-separated value (CSV) file.

In some aspects, the session record may also include a quantitative analysis of the responses to each question. For example, the session record may include an average value, a mean value, and/or other statistical calculations of the responses to one or more questions. In another example, the session record may indicate a distribution of the responses to a question (e.g., histogram).

In other optional or additional aspects, the session record may comprise a combined transcript of the multi-party session. The combined transcript may indicate the randomized display name corresponding to each entry in the combined transcript. Alternatively or additionally, the session record may include audio and/or video recordings corresponding to the multi-party session.

Referring now toFIG.18, illustrated is an example computer device110in accordance with an implementation, including additional component details as compared toFIG.1. In one example, computer device110may include processor1810for carrying out processing functions associated with one or more of components and functions described herein. Processor1810can include a single or multiple set of processors or multi-core processors. Moreover, processor1810can be implemented as an integrated processing system and/or a distributed processing system. In an implementation, for example, processor1810may include CPU114.

In an example, computer device110may include memory1820for storing instructions executable by the processor1810for carrying out the functions described herein. In an implementation, for example, memory1820may include memory116. The memory1820may include instructions for executing the session hosting application160.

Further, computer device110may include a communications component1830that provides for establishing and maintaining communications with one or more parties utilizing hardware, software, and services as described herein. Communications component1830may carry communications between components on computer device110, as well as between computer device110and external devices, such as devices located across the communications network154and/or devices serially or locally connected to computer device110. For example, communications component1830may include one or more buses, and may further include transmit chain components and receive chain components associated with a transmitter and receiver, respectively, operable for interfacing with external devices. In an implementation, for example, communications component1830may include network interface112ofFIG.1. In another optional or additional implementation, the communications component1830may include a VoIP component, a soft IP telephone, an application for streaming audio and/or video, and/or an application for facilitating real-time communications that may provide audio and/or video communications to the session participants.

Additionally, computer device110may include a data store1840, which can be any suitable combination of hardware and/or software, that provides for mass storage of information, databases, and programs employed in connection with implementations described herein. For example, data store1840may be a data repository for operating system150and/or applications152. The data store may include memory116and/or storage device118.

Computer device110may also include a user interface component1850operable to receive inputs from a user of computer device110and further operable to generate outputs for presentation to the user. User interface component1850may include one or more input devices, including but not limited to a keyboard, a number pad, a mouse, a touch-sensitive display, a digitizer, a navigation key, a function key, a microphone, a voice recognition component, any other mechanism capable of receiving an input from a user, or any combination thereof. Further, user interface component1850may include one or more output devices, including but not limited to a display, a speaker, a haptic feedback mechanism, a printer, any other mechanism capable of presenting an output to a user, or any combination thereof.

In an implementation, user interface component1850may transmit and/or receive messages corresponding to the operation of operating system150and/or applications152. In addition, processor1810may execute operating system150and/or applications152, and memory1820or data store1840may store them.

As used in this application, the terms “component,” “system” and the like are intended to include a computer-related entity, such as but not limited to hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computer device and the computer device can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets, such as data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal.

Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.

Various implementations or features may have been presented in terms of systems that may include a number of devices, components, modules, and the like. A person skilled in the art should understand and appreciate that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches may also be used.

The various illustrative logics, logical blocks, and actions of methods described in connection with the embodiments disclosed herein may be implemented or performed with a specially-programmed one of a general purpose processor, a GPU, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computer devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Additionally, at least one processor may comprise one or more components operable to perform one or more of the steps and/or actions described above.

Further, the steps and/or actions of a method or procedure described in connection with the implementations disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor, such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. Further, in some implementations, the processor and the storage medium may reside in an ASIC. Additionally, the ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal. Additionally, in some implementations, the steps and/or actions of a method or procedure may reside as one or any combination or set of codes and/or instructions on a machine readable medium and/or computer readable medium, which may be incorporated into a computer program product.

In one or more implementations, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Computer-readable media includes may be referred to as non-transitory computer-readable media. Non-transitory computer-readable media may exclude transitory signals. A storage medium may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs usually reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

While implementations of the present disclosure have been described in connection with examples thereof, it will be understood by those skilled in the art that variations and modifications of the implementations described above may be made without departing from the scope hereof. Other implementations will be apparent to those skilled in the art from a consideration of the specification or from a practice in accordance with examples disclosed herein.