Many modern businesses create software applications (e.g., mobile applications) meant to improve accessibility to the business and allow a user to perform some desired function or access information on a client device (e.g., mobile device, laptop, etc.). For example, some businesses, such as banks, may create a software application to provide customers a convenient alternative to visiting a brick-and-mortar branch of the business. To illustrate, software applications can include operations for exchanging information (e.g., documents), creating accounts, initiating transactions, or otherwise conducting business via digital communications. This allows the user flexibility in determining when and where to interact with the business.
Additionally, improvements to computer processing and networking technologies have led to significant advancements in the fields of video conferencing. For instance, many systems provide capabilities for users to engage in user-to-user or user-to-business video communications. Accordingly, integrating video communication options in software applications designed for users to interact with business provides the users with additional alternatives to in-person interactions. Specifically, digital video communications can provide an enhanced interaction experience over text or audio communications, thereby improving the abilities of businesses to assist consumers (or prospective customers).
While digital video communications provide improved communication options between users and businesses, conventional communication systems have several technological shortcomings. In particular, conventional systems that provide video communications (e.g., via two-way video or video conferencing software applications) lack safety and security protocols related to video communications. Specifically, especially for businesses, most video communications are in-bound video requests from unknown users, which results in recipient users not knowing who is requesting the video communication until a connection is established. While conventional systems typically allow recipients to reject calls from unknown users, such measures do not protect the recipients from seeing content that they may not want to see. For example, inattentive users or malicious users requesting to engage in video communications with recipients can result in the recipients seeing content such as requesting users in inappropriate stages of dress or offensive content. Thus, the conventional systems fail to provide a safe and secure communication environment for recipients of video communication requests.
This disclosure describes one or more embodiments of methods, non-transitory computer readable media, and systems that solve the foregoing problems (in addition to providing other benefits) by obscuring a digital video stream of a user to a recipient during a digital video communication. In particular, the disclosed systems determine that a first user client device is involved in an ongoing digital video communication with a second user client device in which the first client device is receiving a digital video stream from the second user client device. The disclosed systems provide, to the first user client device, an option to obscure the digital video stream from the second user client (e.g., via a “panic button” interface element). In response to a selection of the option, the disclosed systems then obscure the digital video stream at the first user client device while maintaining a connection corresponding to the digital video communication between the first user client device and the second user client device. Accordingly, the disclosed systems stop displaying (or otherwise obscure) a digital video stream in response to a user input while a digital video communication is ongoing without terminating the connection associated with the digital video communication.
Additional features and advantages of exemplary embodiments of the present disclosure will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of such exemplary embodiments. The features and advantages of such embodiments may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features will become more fully apparent from the following description and appended claims, or may be learned by the practice of such exemplary embodiments as set forth hereinafter. The foregoing summary is not an extensive overview, and it is not intended to identify key elements or indicate a scope. Rather the foregoing summary identifies aspects of embodiments as a prelude to the detailed description presented below.
The detailed description refers to the drawings briefly described below.
This disclosure describes one or more embodiments of a video obscuring system that improves computing systems that provide digital video communications between users by obscuring digital video streams while maintaining connections associated with the digital video communications. Specifically, in one or more embodiments, the video obscuring system first determines that at least two user client devices are involved in a digital video communication. Additionally, the video obscuring system provides, to a first user client device, an option (e.g., a “panic button”) to obscure a digital video stream received from second user client device during the digital video communication. In response to receiving a selection of the option, the video obscuring system can obscure the digital video stream at the first user client device while maintaining the connection between the user client devices. Thus, the video obscuring system can maintain the connection to resume presenting the digital video stream at the first user client device (e.g., in response to determining that the selection was accidental) or terminate the connection (e.g., upon confirmation that the selection was intended) to improve the security of digital video communications between a plurality of users.
As mentioned, in one or more embodiments, the video obscuring system determines that a first user client device is engaged in a digital video communication with a second user client device. For example, the video obscuring system establishes a connection between the first user client device and the second user client device in response to a request to initiate a digital video communication between the user client devices. Once the connection is established, the video obscuring system can provide at least one digital video stream via the connection from one user client device to the other (e.g., from the second user client device to the first user client device). The video obscuring system can also provide a digital audio stream in connection with the digital video stream.
Additionally, in connection with determining that user client devices are involved in a digital video communication, the video obscuring system can provide, for display at the first user client device, an option to obscure a digital video stream received from the second user client device. For instance, the video obscuring system can provide a graphical user interface element (e.g., a “panic button”) during ongoing digital video communications. In one or more embodiments, the video obscuring system enables the option to obscure the digital video stream at the first user client device based on an administrative setting.
In one or more embodiments, the video obscuring system receives a selection of an option to obscure a digital video stream during a digital video communication. Specifically, the video obscuring system can receive the selection of the option while providing the digital video stream from the second user client device for display at the first user client device. To illustrate, the video obscuring system can detect an interaction with a graphical user interface element presented at the first user client device while presenting the digital video stream from the second user client device at the first user client device.
Furthermore, in one or more embodiments, the video obscuring system obscures a digital video stream in response to a selection of an option to obscure the digital video stream. For example, the video obscuring system obscures the digital video stream by preventing the digital video stream from being presented at the first user client device. Alternatively, the video obscuring system obscures the digital video stream by applying a distortion filter (e.g., a blur filter) to the digital video stream when presented at the first user client device. In some embodiments, the video obscuring system also prevents a digital audio stream from being presented at the first user client device. In additional embodiments, the video obscuring system can also obscure a digital video stream and/or digital audio stream from the first user client device at the second user client device.
In one or more additional embodiments, the video obscuring system also verifies a selection of an option to obscure a digital video stream. In particular, the video obscuring system can provide a request to confirm or reject the selection to obscure the digital video stream at the first user client device. In response to a confirmation of a request to obscure the digital video stream, the video obscuring system can continue obscuring the digital video stream and/or terminate the corresponding digital video communication. In response to a rejection of the request to obscure the digital video stream, the video obscuring system can present the digital video stream unobscured at the first user client device.
In response to obscuring a digital video stream, the video obscuring system can also provide a notification to a user client device that provided the digital video stream. For instance, in response to a confirmation of a request to obscure the digital video stream, the video obscuring system can provide the notification to the second user client device. In one or more embodiments, the notification includes a warning associated with content of the digital video stream. Furthermore, the notification can also include an indication that a user of the second client device has been reported to a third-party.
The disclosed video obscuring system can provide a number of technical advantages over conventional systems. For example, the video obscuring system can improve safety and security of computing systems that provide digital video communications between two or more computing devices. To illustrate, in contrast to conventional systems that merely allow users to reject requests from unknown users, the video obscuring system can provide additional security for recipients of requests for digital video communications in situations for which rejecting requests is not common practice (e.g., in customer support positions). Indeed, by providing an option for a user to instantly obscure digital video streams received from other users during ongoing digital video communications with the other users, the video obscuring system can allow the users to quickly hide/obscure inappropriate or offensive content.
Additionally, the video obscuring system can improve the flexibility and efficiency of computing systems by obscuring digital video streams during digital video communications. For instance, in contrast to existing systems that merely allow users to reject or terminate video chats, the video obscuring system obscures a digital video stream during a digital video communication while maintaining a connection corresponding to the digital video communication. By maintaining the connection between user client devices, the digital video communication can quickly provide the unobscured digital video stream (e.g., based on determining that a request to obscure the digital video stream was not intentional). Thus, the video obscuring system provides flexibility and efficiency with an additional mechanism for managing the receiving and displaying of digital video streams during digital video communications.
As illustrated by the foregoing discussion, the present disclosure utilizes a variety of terms to describe features and advantages of the video obscuring system. Additional detail is now provided regarding the meaning of such terms. For example, as used herein, the term “digital video communication” refers to a communication having a video element. In particular, a digital video communication can refer to a multi-directional communication involving at least two computing devices such as a first user client device and a second user client device in which users of the computing devices (e.g., a customer user and an agent or support representative) can communicate, and at least one of the computing devices displays a video capturing a video element of the communication. For example, at least one of the computing devices can display a video stream captured by a camera associated with the at least one other computing device participating in the digital video communication.
Additionally, as used herein, the term “digital video stream” refers to video content captured at a first client device during a digital video communication. For example, a digital video stream can include real-time video of a user captured by a first client device to provide to a second client device involved in a digital video communication with the first client device. In one or more embodiments, a digital video communication includes a plurality of digital video streams from a plurality of client devices involved in the digital video communication for providing to the client devices involved in the digital video communication.
Also as used herein, the term “digital audio stream” refers to audio content captured at a first client device during a digital video communication. For instance, a digital audio stream can include real-time audio of a user captured by a first client device to provide to a second client device involved in a digital video communication with the first client device. In one or more embodiments, a digital video communication includes a plurality of digital audio streams from a plurality of client devices involved in the digital video communication for providing to the client devices involved in the digital video communication.
As used herein, the term “connection” refers to an established communication channel between two or more computing devices. In particular, a connection corresponding to a digital video communication includes a communication channel between two or more computing devices for sending one or more digital video streams via the communication channel. In at least some embodiments, a connection corresponding to a digital video communication transmits data other than a digital video stream including, but not limited to device identifiers, user identifiers, location information, or information associated with a purpose of the digital video communication (e.g., banking information). Accordingly, while a digital video communication is ongoing, a connection corresponding to the digital video communication remains intact even if no digital video/audio streams are being transmitted via the connection.
As used herein, the term “distortion filter” refers to a computing software component that applies a visual distortion to digital image or digital video. For instance, a distortion filter includes a modification to a digital video stream from a client device to distort or otherwise obscure details of the digital video stream. For example, a distortion filter can include, but is not limited to, a blur filter (e.g., a Gaussian blur, a radial blur, or a motion blur) to soften color boundaries by modifying pixel values of a digital image (e.g., individual video frames) as presented on a display device. A distortion filter can also include a filter that changes details of a digital image such as by modifying colors, pixel positions, pixel values, or other modifications to obscure details in the digital image.
As used herein, the term “agent” refers to a representative of an entity. For example, an agent can include, but is not limited to, a support representative of a business (e.g., a bank). In some embodiments, an agent has duties to interact with users (e.g., customers) to provide information associated with an entity or provide assistance in performing operations associated with the entity. Additionally, an agent can be associated with one or more client devices (e.g., an agent client device) for use in engaging in digital video communications with users.
Turning now to the figures,
As shown in
As illustrated, in one or more embodiments, the server(s) 104 comprises one server. Alternatively, the server(s) 104 may comprise a plurality of servers. For example, the server(s) 104 can comprise a video load balance server, a signaling server, and a STUN/TURN server. The video load balance server serves to direct communications to an available support terminal, the signaling server notifies the support terminal 110 of a request to initiate a digital video communication, and the STUN/TURN server serves to work through secure firewalls to establish the connection. Alternatively, any other combinations and types of servers sufficient to establish a connection may be used as part of the server(s) 104.
Additionally, as mentioned, the server(s) 104 can execute or implement at least a portion of the customer support system 114. In particular, in one or more embodiments, the customer support system 114 utilizes the server(s) 104 to conduct digital video communications between a support terminal (e.g., the support terminal 110) and a client device (e.g., the client device 106), provide content to the client device (e.g., display elements for display within the client application 116), and receive data resulting from interaction with the content. For example, in one or more embodiments, the customer support system 114, via the server(s) 104, can conduct a digital video communication between the client device 106 and a support terminal 110, where the digital video communication is transmitted through a first connection (e.g., a first connection between the client device 106 and the support terminal 110). The customer support system 114, via the server(s) 104, can further transmit content to the client device 106 via a second connection (e.g., a second connection between the support terminal and the client device 106). During the digital video communication, the customer support system 114, via the server(s) 104, can receive data resulting from interaction with the content within the client application 116 at the client device 106.
As shown in
As shown in
Additionally, in one or more embodiments, the administrator client device 120 provides an interface by which an administrator (e.g., via the administrator application 122) can control various settings associated with the video obscuring system 102. For example, the video obscuring system 102 can provide administrative settings to the administrator client device 120 for establishing settings associated with digital video communications. To illustrate, the administrative settings can cause the video obscuring system 102 to enable or disable digital video communications for a particular device (e.g., the support terminal 110 or the client device 106) or obscuring digital video streams at a particular device (e.g., the support terminal 110).
In one or more embodiments, the client device 106 and/or the administrator client device 120 includes a client device that allows a user of the device to receive and interact with content (e.g., display elements). For example, the client device 106 or the administrator client device 120 can include a smartphone, a tablet, a desktop, a computer, a laptop computer, or another electronic device. The client device 106 can include one or more applications (e.g., the client application 116 or the administrator application 122) that allow the user to receive and interact with content. For example, the client application 116 or the administrator application 122 can include a software application installed on the client device 106 or administrator client device 120, respectively. Additionally, or alternatively, the client application 116 or the administrator application 122 can include a software application hosted on the server(s) 104, which may be accessed by the client device 106 or the administrator client device 120, respectively, through another application, such as a web browser.
In one or more embodiments, the server(s) 104 include a variety of computing devices, including those described below with reference to
As is also illustrated in
As shown in
In particular, the peer-to-peer connection 118 serves as a direct connection between the support terminal 110 and the client device 106. In one or more embodiments, the peer-to-peer connection 118 can serve to substitute for the server(s) 104. For example, after the server(s) 104 establishes the connection between the support terminal 110 and the client device 106, the support terminal 110 can subsequently establish the peer-to-peer connection 118 and conduct the digital video communication over that connection. As used herein, a peer-to-peer (P2P) connection is created when two or more client computing devices are connected and share resources without going through a separate server computing device (e.g., the server(s) 104). The peer-to-peer connection 118 can provide a solution to bandwidth limitations that restrict the maximum number of concurrent video streams possible through the server(s) 104. The peer-to-peer connections, where possible, maximize the number of possible simultaneous video calls.
In one or more embodiments, the server(s) 104 may first determine if the peer-to-peer connection 118 is available. For example, the peer-to-peer connection 118 may be unavailable due to limitations or the configuration of the hardware or software within the system environment 100. For example, video relays between client devices on restrictive networks and firewalls are often blocked. Network address translation limits the client device’s ability to have peer-to-peer connections. In one or more embodiments, the server(s) 104 detects when a peer-to-peer connection is not possible. If the server(s) 104 determines that the peer-to-peer connection 118 is not available, then the server(s) 104 may maintain (or reroute) the connection for the digital video communication. In an alternative embodiment, the server(s) 104 may maintain the connection with a client device whether or not the peer-to-peer connection 118 is available.
As mentioned, the customer support system 114 can be implemented in whole, or in part, by the individual elements of the system environment 100. Although
Furthermore, although the system environment 100 of
The server(s) 104, the network 112, the Websocket server 108, the support terminal 110, the client device 106, and/or the administrator client device 120 may be communicatively coupled with each other either directly or indirectly (e.g., through the network 112 as discussed in greater detail below in relation to
Additionally, as shown in
As mentioned, the video obscuring system 102 improves safety, security, and flexibility in digital video communications by obscuring digital video streams based on a user’s blur settings upon initiating a digital video communication.
For example,
In connection with providing digital video from the first client device 200 to the second client device 202 upon initiating a digital video communication,
As illustrated in
In one or more embodiments, the video obscuring system 102 receives a request to obscure the digital video stream 204 at the second client device 202. For example,
According to one or more embodiments, after receiving the panic button selection 206, the video obscuring system 102 obscures the digital video stream 204 at the second client device 202 during the digital video communication. For example,
Alternatively, the video obscuring system 102 can prevent the second client device 202 from receiving the digital video stream 204 during the digital video communication. In particular, a server that receives the digital video stream 204 from the first client device 200 can continue receiving the digital video stream 204 but stop providing the digital video stream 204 to the second client device 202. Accordingly, the video obscuring system 102 can (at least temporarily) stop sending data associated with a digital video communication to the second client device 202 in response to the panic button selection 206.
In alternative embodiments, the video obscuring system 102 provides the obscured digital video stream 208 at the second client device 202 by applying a distortion filter 210 to the digital video stream 204 resulting in the obscured digital video stream 208. For instance, the video obscuring system 102 can generate the distortion filter 210 based on one or more distortion settings indicating a type and/or degree of distortion. To illustrate, the video obscuring system 102 can generate a blur filter for blurring details based on blur settings that indicate a degree of blur. The video obscuring system 102 can then apply the blur filter (or other distortion filter) to the digital video stream 204 to generate the obscured digital video stream 208.
Although not shown in
Furthermore, in one or more embodiments, the video obscuring system 102 requests a confirmation of the panic button selection 206. To illustrate, the video obscuring system 102 can provide a request to the second client device 202 to confirm or reject the panic button selection 206 to verify that a user of the second client device 202 intended to request to obscure the digital video stream 204. In some instances, a user may accidentally select an option to obscure a digital video stream. Accordingly, the request to confirm/reject the selection of the option provides the user the opportunity to correct an erroneous selection.
In response to a confirmation of the panic button selection 206, the video obscuring system 102 can continue obscuring the digital video stream 204 at the second client device 202. Specifically, the video obscuring system 102 can continue providing the obscured digital video stream 208 in response to a response confirming the intent of the user of the second client device 202 to obscure the digital video stream 204. For example, the video obscuring system 102 can continue applying a distortion filter to the digital video stream 204 or preventing the digital video stream 204 at the second client device 202.
In some embodiments, the video obscuring system 102 also terminates a connection corresponding to the digital video communication in response to the confirmation. For instance, the video obscuring system 102 terminates the connection between the first client device 200 and the second client device 202 that facilitates transmission of data (e.g., digital video streams, digital audio streams) between the client devices. After terminating the connection, the second client device 202 can no longer receive data from the first client device 200 (e.g., the digital video stream 204) and vice-versa.
Alternatively, in response to a rejection of the panic button selection 206, the video obscuring system 102 can resume displaying the digital video stream 204 at the second client device 202. In particular, the video obscuring system 102 can determine that the panic button selection 206 was accidental (or intended to be temporary). The video obscuring system 102 can then restore the digital video stream 204 for presentation at the second client device 202 for resuming the ongoing digital video communication involving the first client device 200 and the second client device 202.
In at least some embodiments, as illustrated in
During the digital video communication, a user involved in the digital video communication can interact with a client device to obscure content received from the other client device. Specifically, as illustrated in
Additionally, the video obscuring system 102 further maintains the connection 304 between the first client device 300 and the second client device 302. For example, while the video obscuring system 102 obscures digital video/audio at one or more of the client devices, the video obscuring system 102 maintains the connection 304. The video obscuring system 102 can thus continue receiving the first digital video/audio 306 and the second digital video/audio 308 from the first client device 300 and the second client device 302, respectively, during the digital video communication.
As further mentioned previously, the video obscuring system 102 can terminate a connection corresponding to a digital video communication in response to confirming a request to obscure a digital video stream. Specifically, the video obscuring system 102 can confirm the panic button selection 310 with the second client device 302. In response to confirming the panic button selection 310, the video obscuring system 102 can terminate the connection 304 and stop receiving the digital video/audio from the respective client devices. Alternatively, in response to receiving a response rejecting the panic button selection 310, the video obscuring system 102 can resume transmitting the digital video/audio between the first client device 300 and the second client device 302.
In one or more embodiments, the video obscuring system 102 can enable an option to obscure digital video streams at a client device based on input by a separate client device. In particular,
According to some embodiments, the video obscuring system 102 provides administrative settings to the administrator client device 400 based on an administrator user associated with the administrator client device 400 having a particular relationship with users of one or more additional client devices. For instance, the video obscuring system 102 can determine that the administrator user of the administrator client device 400 has administrative privileges in connection with a customer support system (e.g., the customer support system 114 of
As part of the administrator client device 400 having access to the administrative settings,
Furthermore,
The heading portion 504 of the application user interface 502 provides general information and options for the user.
Customer support portion 506 provides an option to contact a support representative (or other agent associated with the business) to receive assistance. For example, a user who is unfamiliar with a mobile application may need assistance in finding information or performing a desired function. By way of illustration, in the context of a mobile banking application, the user may require help in applying for a loan, finding account balances, performing a check deposit, making a credit card payment, or interacting with the mobile application in another way.
As illustrated in
Alternatively, the customer support portion 506 may include other selectable buttons to contact the support representative, such as an option to e-mail or send a voice-recorded message. It will also be appreciated that any number of selectable buttons may be present in the customer support portion 506 in any combination. To illustrate, the customer support portion 506 may include selectable buttons for digital video communication, text chat, phone call, and email message, or the customer support portion 506 may only include the video chat button 514.
The navigation portion 508 presents the user with quick navigational options. For example, the navigation portion 508 of
In one or more embodiments, the mobile device 500 establishes a digital video communication between a user client device (e.g., a mobile device) and an agent client device (e.g., a support terminal).
As illustrated in
Moreover, as illustrated in
As shown in
Alternatively, in response to determining that a peer-to-peer connection is not available, the series of acts 600 proceeds to the act 612 of maintaining the digital video communication through the server(s) 104. In one or more embodiments, the digital video communication may be maintained through the server(s) 104 whether or not a peer-to-peer connection is available.
As illustrated in
As illustrated in
As further illustrated in
In establishing a digital video communication between a client device and a support terminal, a customer support system (e.g., via the support terminal or a server) can send instructions to the client device to display the digital video communication concurrently with a display element. For example, a customer support system can send a display element trigger to the client device that causes the client device to partition its display into multiple panes and to display the digital video communication in one pane and the corresponding display element in another pane. In some embodiments, a customer support system (e.g., via the support terminal or a server) sends a separate display trigger, in addition to the display element trigger, to cause the client device to partition its display. To illustrate, in some embodiments, a display element trigger causes the device to retrieve, render, or otherwise obtain a corresponding display element and the display trigger separately causes the client device to partition its display so as to display the display element concurrently with the digital video communication.
In one or more embodiments, a display element includes a visualization of data and/or interactive elements displayable on a user interface. In particular, a display element includes a visual means for viewing information or performing a task displayable on a user interface. For example, a display element can include a signature pad, a video, a fillable digital form, a selectable option for accepting terms, a document, or an informational slide. A display element can further include an interactive button enabling a user to submit that a corresponding task has been completed. Accordingly, a client device can display a digital video communication with additional interactive display elements for performing one or more operations within a graphical user interface of a client application.
As mentioned, the video obscuring system 102 can obscure a digital video stream at a client device during an ongoing digital video communication involving the client device.
In one or more embodiments, the client device 800 receives a request to initiate a digital video communication between the user of the client device 800 and a user of another client device. In response to the request, the client device 800 can obtain call information and display the call information within an information portion 804 of the graphical user interface 802. For example, the client device 800 can obtain a name, a username, contact information (e.g., email address), and a platform associated with the request (e.g., mobile application, web interface). As shown in
In addition to displaying the call information within the information portion 804, the client device 800 can display a prompt 806 indicating options for the user to accept or reject a request to initiate a digital video communication. Specifically, in response to receiving the request, the client device 800 can display the prompt 806 within a video portion 808 of the graphical user interface 802. As illustrated in more detail in
Additionally,
In one or more embodiments, the client device 800 also provides an additional digital video stream 816 including digital video of the user captured by the client device 800 (or by a video capture device associated with the client device 800). For instance, as illustrated in
In connection with presenting a digital video stream at a client device during a digital video communication, the video obscuring system 102 can also provide an option to obscure the digital video stream during the digital video communication. For example,
In one or more embodiments, as previously mentioned, the video obscuring system 102 can enable the panic button 818 at the client device 800 based on an administrative setting. For instance, in response to determining that an administrative setting established at an administrative device enables the panic button 818 for a user of the client device 800, the video obscuring system 102 can cause the client device 800 to display or otherwise activate the panic button 818 (e.g., make the panic button 818 selectable). Alternatively, in response to determining that the administrative setting disables the panic button 818 for the user of the client device 800, the video obscuring system 102 can cause the client device 800 to hide or otherwise deactivate the panic button 818 (e.g., make the panic button 818 not selectable). In some embodiments, the video obscuring system 102 can enable the panic button 818 for some digital video communications (e.g., with a first set of users or client devices) and disable the panic button 818 for other digital video communications (e.g., with a second set of users or client devices).
According to some embodiments, the video obscuring system 102 detects a selection of the panic button 818 at the client device 800. In particular, as discussed previously, a user of a client device can interact with the panic button 818 if the user determines that a digital video stream presented at the client device 800 includes inappropriate or offensive content. Thus, the client device 800 can detect an interaction by the user selecting the panic button 818 during an ongoing digital video communication.
In response to the selection of the panic button 818, the video obscuring system 102 can obscure the digital video stream 814. Specifically,
In addition to obscuring the digital video in response to a selection of the panic button 818, the video obscuring system 102 can also request confirmation of the selection. For instance, as illustrated in
In response to receiving a confirmation of the selection of the panic button 818, the video obscuring system 102 can continue obscuring the digital video stream 814. Specifically,
Additionally, in some embodiments, the video obscuring system 102 performs one or more additional operations in connection with obscuring the digital video stream 814. To illustrate, the video obscuring system 102 can cause the client device 800 to further prompt the user (e.g., within a report interface) to report an additional user associated with the digital video stream 814 to a third-party system (e.g., law enforcement such as the Federal Bureau of Investigation’s Crime Complaint Center). In one or more embodiments, the video obscuring system 102 maintains the connection corresponding to the digital video communication while presenting the obscured digital video stream 820 and prior to presenting the prompt to report the additional user at the client device 800. Maintaining the connection can allow the client device 800 to send additional information to the additional client device (e.g., a notification of the report) before terminating the connection. Alternatively, the video obscuring system 102 terminates the connection prior to presenting the prompt to report the additional user.
While
In one or more embodiments, in response to receiving a selection of an option to obscure a digital video stream received from the client device 900, the video obscuring system 102 can also obscure content at the client device 900. For instance, the video obscuring system 102 can obscure a digital video stream received from the additional client device of the user corresponding to the selected option to obscure a digital video stream.
The client device 900 can further continue displaying a digital video stream 904 captured by the client device 900. For instance, the digital video stream 904 can include captured video of the user of the client device 900 and may include the inappropriate or offensive content that resulted in the request to obscure the digital video stream 904 at the additional client device. By presenting the obscured digital video stream 902 (and in some cases an obscured digital audio stream) without presenting a notification of the action to obscure digital content at the client device 900, the video obscuring system 102 can simulate an accidental disruption in the connection corresponding to the digital video communication.
After the video obscuring system 102 receives a confirmation of the selection to obscure a digital video stream, the video obscuring system 102 can also provide a notification to the client device 900. For example, as illustrated in
Furthermore, in one or more embodiments, the video obscuring system 102 can utilize information associated with a report to prevent a user from engaging in future digital video communications. For example, in response to a report of a digital video stream, the video obscuring system 102 can obtain information associated with a client device (e.g., the client device 900) including, but not limited to, a device location (e.g., IP address), a device identifier, or a user account associated with the client device. The video obscuring system 102 can then block the client device or user account utilizing the obtained information from engaging in digital video communications with a specific client device or with a plurality of client devices.
As mentioned previously, the video obscuring system 102 can obscure digital video streams in digital video communications along with display elements for performing various workflows associated with the digital video communications. Accordingly, in connection with initiating digital video communications, some embodiments of the video obscuring system 102 (or a customer support system including the video obscuring system 102) can provide the ability to modify display elements across a plurality of client devices in one or more workflows.
The system 1000 establishes a connection between the mobile device 1002 and the database repository 1006 through the server 1004. In one or more embodiments, the connection is a third connection different from a first connection used to establish a digital video communication between the mobile device 1002 and the supporter terminal 1010 and different from a second connection used to enable the support terminal 1010 to push display elements to the mobile device 1002. The server 1004 enables the mobile device 1002 to securely transmit a modified display element to the database repository 1006. As illustrated in
After receiving a modified display element, in one or more embodiments, the support terminal 1010 may grab the modified element from the server 1004 or by otherwise communicating with the server 1004, as illustrated in
The database repository 1006 may comprise a service that allows for the deposit and retrieval of electronic files. For example, the database repository 1006 may be an electronic drop box, email service, or other cloud-based technology that allows electronic file sharing.
Though not explicitly illustrated in
As shown by
A cloud-computing model can be composed of various characteristics such as, for example, on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud-computing model can also expose various service models, such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computing model can also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth. In this description and in the claims, a “cloud-computing environment” is an environment in which cloud computing is employed.
Turning now to
As just mentioned, and as illustrated in
As mentioned, and as illustrated in
Additionally, the video chat manager 1110 operates in conjunction with a number of user input/output devices, including, but not limited to cameras, microphones, display screens, touchscreens, and keypads.
As mentioned, and as illustrated in
The display manager 1112 also changes the display of the mobile device 1102 in response to receiving triggering code through a connection to another device. For example, the display manager 1112 may receive triggering code over a connection. In response to receiving the triggering code, the display manager 1112 can divide the display of the mobile device 1102 into multiple panes, enabling the mobile device 1102 to display multiple display items within the multiple panes. As referred to herein, a “display item” refers to a visual component (e.g., character, image, video, or user interface). For example, the mobile device 1102 may be able to display separate mobile applications in the multiple panes or the mobile device may display a digital video communication in one pane and a display element in another.
Additionally, the display manager 1112 may modify the size of the multiple panes according to the needs of the items displayed within those panes. In particular, the display manager 1112 may increase the size of a pane if the display item within the pane requires more display space.
As mentioned, and as illustrate in
Additionally, the display element manager 1114 modifies and maintains display elements. In particular, the display element manager operates in conjunction with the user input detector 1116 to detect a user input. In response to detecting a user input, the display element manager 1114 modifies the display element in accordance to the particular user interaction.
As mentioned, and as illustrated in
The user input detector 1116 operates in conjunction with a number of user input devices (in isolation or in combination), mouse devices, keyboards, track pads, or stylus devices. The user input detector 1116 detects and identifies various types of user interactions with user input devices, such as select events, drag events, scroll events, and so forth. For example, the user input detector 1116 detects one or more touch gestures (e.g., swipe gestures, tap gestures, pinch gestures, or reverse pinch gestures) from a user that forms a user interaction.
The user input detector 1116 communicates with, and thus detects user input with respect to, a variety of programs, applications, plug-ins, operating systems, user interfaces, or other implementations in software or hardware.
As mentioned, and as illustrated in
The user interface manager 1118 can provide a user interface with regard to a variety of operations or applications. For example, the user interface manager 1118 provides a user interface that facilitates selecting, identifying, searching, or downloading digital files. Similarly, the user interface manager 1118 can generate a user interface that facilitates managing, editing, modifying, downloading, uploading, or sending digital images. Additional details with respect to various example user interface elements are described throughout with regard to various embodiments containing user interfaces.
In addition, as illustrated in
Additionally, as illustrated in
Furthermore, as illustrated in
As mentioned, and as illustrated in
As mentioned, and as illustrated in
As mentioned, and as illustrated in
As mentioned, and as illustrated in
Additionally, as shown in
As shown in
Furthermore, as illustrated in
As mentioned, and as illustrated in
Additionally, the video chat manager 1134 operates in conjunction with any number of user input/output devices, including, but not limited to cameras, microphones, display screens, touchscreens, and keypads.
As mentioned, and as illustrated in
As mentioned, and as illustrated in
Turning now to
As shown, the series of acts 1200 includes an act 1202 of determining that a first user client device is involved in a digital video communication with a second user client device. For example, act 1202 can involve establishing, in response to a request to initiate a digital video communication between an agent associated with an agent client device and a user associated with a user client device, a connection between the agent client device and the user client device.
The series of acts 1200 also includes an act 1204 of receiving, via the first user client device, a selection to obscure a digital video stream from the second user client device. For example, act 1204 involves receiving, via the first user client device, a selection to obscure a digital video stream received from the second user client device at the first user client device during the digital video communication.
As part of act 1204, or as an additional act, the series of acts 1200 can include providing, for display at the agent client device, an option to obscure the digital video stream at the first user client device in response to determining that the first user client device is involved in the digital video communication with the second user client device. For example, the series of acts 1200 can include detecting the connection between the agent client device and the user client device. The series of acts 1200 can then include presenting, for display within a graphical user interface of the user client device, the option to obscure the digital video stream in response to detecting the connection.
In one or more embodiments, the series of acts 1200 includes providing, to an administrator client device, an interface element to enable the option to obscure the digital video stream at the agent client device. The series of acts 1200 can then include providing the option to obscure the digital video stream in response to detecting a selection of the interface element at the administrator client device.
Additionally, the series of acts 1200 includes an act 1206 of obscuring the digital video stream at the first user client device. For example, act 1206 involves obscuring, in response to the selection, the digital video stream at the first user client device while maintaining a connection corresponding to the digital video communication between the first user client device and the second user client device. To illustrate, the first user client device can include an agent client device.
Act 1206 can involve preventing the digital video stream from displaying at the first user client device. Act 1206 can involve applying a distortion filter to the digital video stream at the first user client device. For example, act 1206 can involve applying a blur filter to the digital video stream and muting a digital audio stream at the first user client device.
Act 1206 can also involve preventing, in response to the selection, the second user client device from receiving an additional digital video stream and a digital audio stream provided by the first user client device in connection with the digital video communication.
The series of acts 1200 can also include verifying the selection of an option to obscure the digital video stream. For example, the series of acts 1200 can include providing, for display at the first user client device and in response to the selection to obscure the digital video stream, a request to confirm or reject the selection to obscure the digital video stream. The series of acts 1200 can also include terminating the connection corresponding to the digital video communication based on a response confirming the selection to obscure the digital video stream. Alternatively, the series of acts 1200 can include resuming, based on a response rejecting the selection to obscure the digital video stream, displaying the digital video stream unobscured at the first user client device via the connection corresponding to the digital video communication.
The series of acts 1200 can include providing, for display at the first user client device and in response to the selection to obscure the digital video stream, a request to confirm the selection to obscure the digital video stream. The series of acts 1200 can further include generating, based on a response confirming the selection to obscure the digital video stream, a notification comprising a warning associated with content of the digital video stream. Additionally, the series of acts 1200 can include providing the notification for display at the second user client device.
In one or more embodiments, the series of acts 1200 includes an act of providing, to the second user client device a notification comprising a warning associated with content of the digital video stream. The series of acts 1200 can also include providing, for display at the first user client device in connection with providing the notification to the second user client device, a report interface comprising one or more options for reporting the content of the digital video stream to a third-party system. The series of acts 1200 can then include blocking a device location and a device identifier associated with the second user client device from engaging in digital video communications with the first user client device in connection with reporting the content of the digital video stream to the third-party system.
Embodiments of the present disclosure may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments within the scope of the present disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. In particular, one or more of the processes described herein may be implemented at least in part as instructions embodied in a non-transitory computer-readable medium and executable by one or more computing devices (e.g., any of the media content access devices described herein). In general, a processor (e.g., a microprocessor) receives instructions, from a non-transitory computer-readable medium, (e.g., a memory, etc.), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein.
Computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are non-transitory computer-readable storage media (devices). Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the disclosure can comprise at least two distinctly different kinds of computer-readable media: non-transitory computer-readable storage media (devices) and transmission media.
Non-transitory computer-readable storage media (devices) includes RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to non-transitory computer-readable storage media (devices) (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media (devices) at a computer system. Thus, it should be understood that non-transitory computer-readable storage media (devices) can be included in computer system components that also (or even primarily) utilize transmission media.
Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. In some embodiments, computer-executable instructions are executed on a general-purpose computer to turn the general-purpose computer into a special purpose computer implementing elements of the disclosure. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
Those skilled in the art will appreciate that the disclosure may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like. The disclosure may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
Embodiments of the present disclosure can also be implemented in cloud computing environments. In this description, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing can be employed in the marketplace to offer ubiquitous and convenient on-demand access to the shared pool of configurable computing resources. The shared pool of configurable computing resources can be rapidly provisioned via virtualization and released with low management effort or service provider interaction, and then scaled accordingly.
A cloud-computing model can be composed of various characteristics such as, for example, on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud-computing model can also expose various service models, such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computing model can also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth. In this description and in the claims, a “cloud-computing environment” is an environment in which cloud computing is employed.
In one or more embodiments, the processor 1302 includes hardware for executing instructions, such as those making up a computer program. As an example, and not by way of limitation, to execute instructions for dynamically modifying workflows, the processor 1302 may retrieve (or fetch) the instructions from an internal register, an internal cache, the memory 1304, or the storage device 1306 and decode and execute them. The memory 1304 may be a volatile or non-volatile memory used for storing data, metadata, and programs for execution by the processor(s). The storage device 1306 includes storage, such as a hard disk, flash disk drive, or other digital storage device, for storing data or instructions for performing the methods described herein.
The I/O interface 1308 allows a user to provide input to, receive output from, and otherwise transfer data to and receive data from computing device 1300. The I/O interface 1308 may include a mouse, a keypad or a keyboard, a touch screen, a camera, an optical scanner, network interface, modem, other known I/O devices or a combination of such I/O interfaces. The I/O interface 1308 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, the I/O interface 1308 is configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and/or any other graphical content as may serve a particular implementation.
The communication interface 1310 can include hardware, software, or both. In any event, the communication interface 1310 can provide one or more interfaces for communication (such as, for example, packet-based communication) between the computing device 1300 and one or more other computing devices or networks. As an example, and not by way of limitation, the communication interface 1310 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI.
Additionally, the communication interface 1310 may facilitate communications with various types of wired or wireless networks. The communication interface 1310 may also facilitate communications using various communication protocols. The communication infrastructure 1312 may also include hardware, software, or both that couples components of the computing device 1300 to each other. For example, the communication interface 1310 may use one or more networks and/or protocols to enable a plurality of computing devices connected by a particular infrastructure to communicate with each other to perform one or more aspects of the processes described herein. To illustrate, the digital content campaign management process can allow a plurality of devices (e.g., a client device and server devices) to exchange information using various communication networks and protocols for sharing information such as electronic messages, user interaction information, engagement metrics, or campaign management resources.
In the foregoing specification, the present disclosure has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the present disclosure(s) are described with reference to details discussed herein, and the accompanying drawings illustrate the various embodiments. The description above and drawings are illustrative of the disclosure and are not to be construed as limiting the disclosure. Numerous specific details are described to provide a thorough understanding of various embodiments of the present disclosure.
The present disclosure may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with less or more steps/acts or the steps/acts may be performed in differing orders. Additionally, the steps/acts described herein may be repeated or performed in parallel with one another or in parallel with different instances of the same or similar steps/acts. The scope of the present application is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.