Methods and systems for providing on-demand services through the use of portable computing devices

Examples of the present disclosure relate to techniques providing on-demand services through the use of portable computing devices. More particularly, embodiments are related to methods and systems for allowing point-of-view streaming via mobile devices by matching users browsing a webpage with an associated real world address with a streamer with a mobile device.

BACKGROUND INFORMATION

Field of the Disclosure

Examples of the present disclosure relate to techniques providing on-demand services through the use of portable computing devices. More particularly, embodiments are related to methods and systems for allowing point-of-view streaming services via mobile devices by matching users browsing a webpage or using application programs with an associated a real world address with a streamer with a mobile device.

Background

Point-of-view (POV) is a mode of video recording audio, pictures, and video as seen by a person with a camera, as if the viewer is physically located at the location associated with the camera. Live POV steaming is the broadcasting of a POV video feed over the internet and other communication channels in real time. With the advent of smart phones and other mobile devices, live POV streaming is growing in popularity. Live POV streaming can be advantageous to many business applications that can provide a more personal and interactive experience than conventional recorded tours. Utilizing live POV streaming, a viewer can interact with a streamer to view a location without having to physically be located at the recording location.

However, conventional live POV streaming services only offer a limited amount of POV streamers. Further, conventional POV services only allow a live video feed recorded from the POV streamer without the user being able to remotely control or request a location that the POV streamer records.

Accordingly, needs exists for more efficient and effective systems and methods for providing on-demand services through the use of portable computing devices.

SUMMARY

Examples of the present disclosure relate to techniques providing on-demand services through the use of portable computing devices. More particularly, embodiments are related to methods and systems allowing point-of-view streaming via mobile devices by matching users browsing a webpage or using a application program with an associated real world address with a streamer with a mobile device.

Embodiments describe a network of computer servers and computing devices with cameras, wherein the network is configured to communicate live POV streaming services of landmarks, events, and locations to viewers on separate computing devices. Embodiments may be configured to match mobile streamers with viewers via an on-demand service, wherein the mobile streamers in under serviced areas may be notified of requests for additional streamers.

Embodiments may be configured to enable a user utilizing a graphical user interface on a first computing device to connect with a streamer utilizing a second computing device. Responsive to forming a link from the first computing device with the second computing device, the graphical user interface of the first computing device may present streamed multimedia captured from the second computing device.

In embodiments, a user associated with the first client computing device may be offered live POV streaming from more than one second computing devices that are in close geographic proximity to one or more landmarks, which might be of potential interest to the user associated with the first client computing device. Embodiments may be configured to match users associated with first client computing devices with streamers associated with second client computing devices by weighing attributes that are associated with the user of the first client computing device, attributes that are associated with the streamer, and/or attributes that are associated with the landmark, event, etc. The attributes may be static (such as the location of the landmark), while other attributes may be dynamic that change in real-time, such as the geo-location of the streamers, user behavior, marketplace activity, etc. Based on these dynamic and static attributes that on-demand services requested may rapidly change.

In embodiments, a streaming server may be configured to receive requests for streaming services, locations of one or more landmarks, and the geo-location and other attributes of streamers. In embodiments, a matching algorithm may take into account competing requests for live POV streaming from multiple users and/or multiple landmarks, and select users that have the best match for the available streaming resources.

One embodiment may be utilized for live POV streaming of real estate landmarks, such as home for sale, rentals, office space, etc. Embodiments may allow a user of a first client computing device to receive a live POV tour of a property, remotely from the first computing device.

DETAILED DESCRIPTION

Turning now toFIG. 1,FIG. 1depicts one topology100a system configured to provide on-demand POV streaming servers to users based on a plurality of attributes, according to an embodiment. Topology100may include a logic server110, network130, streamer computing device115, viewer computing device120, and website interface125. The elements depicted in topology100may be communicatively coupled to each other over network130.

Network130may be a wired or wireless network such as the Internet, an intranet, a LAN, a WAN, a NFC network, Bluetooth, infrared, radio frequency, a cellular network or another type of network. It will be understood that network130may be a combination of multiple different kinds of wired or wireless networks.

Logic server110may be a computing device, such as a general hardware platform server configured to support mobile applications, software, and the like executed on streaming computing device115and viewer computing device120.

Logic server110may include physical computing devices residing at a particular location or may be deployed in a cloud computing network environment. In this description, “cloud computing” may be defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization and released with minimal management effort or service provider interaction, and then scaled accordingly. A cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc.), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), Infrastructure as a Service (“IaaS”), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.). Logic server110may include any combination of one or more computer-usable or computer-readable media. For example, Logic server110may include a computer-readable medium including one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device.

Logic server110may be configured to receive multimedia received from streamer computing devices115, and transmit/broadcast the multimedia to viewer computing devices120. Logic server110may also be configured to determine the location of streamer computing devices115at a given time. Logic server110may also be configured to receive HTTP requests from one or more online interfaces125that viewer computing device120is interacting with, and determine a location associated with the online interface125. Logic server110may be configured to determine if the location of streamer computing devices115is within a close proximity with the location associated with the online interface124. Responsive to determining that the locations are within close proximity, logic server110may transmit information to be presented in the online interface125, wherein the user of viewer computing device120may select a POV streaming service associated with streaming computing device115.

Logic server110may include a processing device215, a communication device210, a memory device215, a viewer profile module220, a streamer profile module225, a geo-location module230, a matching module235, and a session module240.

Processing device205may include memory, e.g., read only memory (ROM) and random access memory (RAM), storing processor-executable instructions and one or more processors that execute the processor-executable instructions. In embodiments where processing device205includes two or more processors, the processors may operate in a parallel or distributed manner. Processing device205may execute an operating system of logic server110or software associated with other elements of logic server110.

Communication device210may be a hardware processing device that allows logic server110to communicate with another device over a wireless or wired network, such as network130. Communication device210may include one or more wireless transceivers for performing wireless communication and/or one or more communication ports for performing wired communication. Communication device210may be configured to communicate data over a plurality of different standard and/or protocols.

Memory device215may be a hardware memory device that stores data generated or received by logic server110. Memory device215may include, but is not limited to a hard disc drive, an optical disc drive, and/or a flash memory drive. In embodiments, memory device215may be configured to store information received from client computing device120, and retailer computing device140. The information stored within memory device215may be accessed by processing device205, communication device210, and/or modules220,225,230,235,240.

Viewer profile module220may be a hardware processing device configured to create a profile for a viewer associated with viewer computing device120. The viewer's profile may include data associated with user information, data connection information, trust score information, etc. The user information may include for example, information identifying users (e.g., a username or handle, a number, an identifier, and/or other identifying information), security login information (e.g., a login code or password), payment information (e.g., credit card information), loyalty rewards cards, demographic information associated with users, or any other information associated with the user. The data connection information may be associated with what type of connection is enabled with viewer computing device120. For example, the data connection information may indicate whether the viewer can receive data cell data, Wi-Fi data, Ethernet data, and/or other types of connections. This may be utilized to determine the quality of received multi-media, and also to reduce bandwidth and/or costs associated with receive multimedia. The trust score information may be associated with a matching algorithm that determines a score associated with a viewer and a landmark and/or streamer.

Streamer profile module225may be a hardware processing device configured to create a profile for a streamer associated with streamer computing device115. The streamer's profile may include data associated with a streamer's login, security login information, payment information (such as a bank account), data connection information, type of streamer computing device115, score based on past reviews from users, location, past recorded multimedia, rates, schedule, history, data connection information, etc.

Geo-location module230may be a hardware processing device configured to determine the location of a streamer computing device115and/or a location associated with online interface125. A location may be represented in geographic coordinates, Cartesian coordinates, e.g., an (x, y) point on a map if the map is divided into a Cartesian plane, and/or may be represented using reference points. In embodiments, geo-location module230may determine the location of online interface125based on an associate for online interface125performing actions to enter location information for online interface125. For example, an associate of online interface125may enter a physical address associated with an address. In a specific example, a real estate agent may enter data associated with the real world address of a real world property. The location data associated with the real world property may be linked with a website displayed on viewer computing device120. The location information may be subsequently transmitted to logic server110. Responsive to receiving the location information associated with online interface125, location geo-location module230may store the location information within a corresponding entry for the website for the property within a database within memory device215.

Geo-location module230may also be configured to determine a map of a geographic area, and determine the location of streamer computing device115and a location associated with online interface125. The geographic area may include a plurality of segments of roads, retailers, vehicles, etc. The geographic area may be segmented into a plurality of distinct geographic regions, such as zip codes, user defined regions, user defined geographic regions, addresses, etc. The map may include landmarks, such as museums, stadiums, real estate locations, or other points of interests, wherein each landmark may have its own distinct location that is stored within memory device215.

Geo-location module230may determine the location of streamer computing device115responsive to receiving location information from streamer computing device115or responsive to transmitting requests for location information to streamer computing device115. In embodiments, geo-location module230may be configured to receive the location information of streamer computing device115set intervals, which may be any desired period of time (e.g., every 1/10thof a second, every second, every minute, every ten minutes, etc.), based on the streamer's settings within the streamer's profile, responsive to the streamer performing actions on streamer computing device115, or responsive to determining that an initiator action associated a user viewing online interface125that is in close proximity to the streamers last location. Geo-location module230may determine the location of streamer computing device115via any known means, such as one or a combination of: global navigation satellite system (GNSS), Wi-Fi RTLS, mobile device tracking, time distance of arrival (TDOA) signals, Received signal strength (RSS), trilateration, triangulation, etc. Responsive to determining the location of streamer computing device115, geo-location module230may store, within a corresponding entry of database within memory device215. The location information may include a time stamp identifying the time that the location of the streamer is determined.

Matching module235may be a hardware computing device configured to match viewer computing devices120with streamer computing devices115via on-demand services. Matching module235may be configured to match viewers and streamers by receiving requests for live POV sessions from viewer computing devices120, based on an algorithm weight the user information, landmark information, streamer information, and other information to assign a score for each streaming service requested, process the scores associated with the requests, and provide a match between viewer computing device120and streamer computing device115. Matching module235may communicate with devices using a plurality of different protocols, such as JavaScript Object Notation (JSON).

Session module240may be a hardware computing device configured to manage the connections of streaming video from streamer computing devices115and viewer computing devices120. For example session management system240may be configured to video streaming session setup, monitoring, and tear down, audio communication session setup, etc. For example, session module240may operate via Session Initiation Protocol (SIP) servers and WebRTC media routers. Furthermore, session module240may be configured to process payment transitions from viewer computing device120to streamer computing device115, and/or third parties. The transactions may include money credits and debits from bank accounts, credit card, online payment services, etc.

Viewer computing device120may be a desktop computer, smart phone, tablet computer, laptop computer, personal data assistant, or any other type of device with a hardware processor that is configured to process instructions and connect to one or more portions of network130. Viewer computing device120may be configured launch software, applications, a browser, etc. to access online interface125. Responsive to viewing online interface125, viewer computing device120may be provided with streamers in close proximity to a desired location, which may be based on an address associated with a specific webpage on online interface125.

Streamer computing device115may be a smart phone, tablet computer, laptop computer, personal data assistant, or any other type of mobile device with a hardware processor that is configured to process instructions and connect to one or more portions of network130. Streamer computing device115may include a camera configured to record images, video, 360-degree video, etc., a microphone configured to receive sound data, a speaker configured to output sound, etc. Streamer computing device115may be configured to transmit multimedia to viewer computing device120directly or through logic server110. In embodiments, streamer computing device115may be configured to transmit multimedia directly to viewing computing device120over network130if only a single viewer is viewing multimedia captured by streamer computing device115. However, to save bandwidth if multiple viewers (or a single viewer) desire to receive captured POV streaming video from streamer computing device115, streamer computing device115may transmit the video to logic server110, which may transmit the streaming media to a plurality of viewer computing devices120.

Online interface125may be a website, application, software, or any collection of related webpages or modules, including multimedia content. Online interface125may include a common domain name, application name, etc. and may be accessed by a viewer computing device120over network130. In embodiments, each page of an online interface125may include an associated physical location, which may be embedded within the building blocks of the webpage or application program. For example, an online interface125associated with a realtor may have a plurality of unique webpages, wherein each webpage may include a different property listing. Based on the real world physical location of the property, the webpage or application program may have an associated embedded location.

In an embodiment, a viewer computing device120may determine that a viewer is a candidate to view a live POV stream from a streamer associated with a streamer computing device115based on viewer computing device120accessing a webpage with a location in close proximity to a streamer. This initial determination may be made based on the viewer's current and/or past actions on online interface125, or an algorithm, such as an advertising server. In other embodiments, the viewer may initiate this request by interacting with an icon. Once the initial determination is made, a program transmits a query from viewing computing device110to logic server, which may indicate which landmark(s) the viewer is a candidate for viewing a POV stream form. The logic server110may query the memory device to determine what streamers are in close proximity with addresses associated with the landmark(s). Logic server110may then determine scores for the streamers and the users in relation to the landmark(s).

FIG. 2depicts an embodiment of a dynamic map250determined by logic server110that includes landmarks and locations of streamer computing devices115, according to an embodiment. As depicted inFIG. 2, map250may include a plurality of landmarks and a plurality of streamers, wherein the streamers may be different distances from the landmarks. In embodiments, only streamers that are within a given threshold distance from noted landmarks, or who posses certain attributes may be presented on map250.

Furthermore, each landmark depicted on map250may be associated with an address for the individual pages on online interface125.

FIG. 3Adepicts attributes associated with landmarks for online interface125, according to an embodiment. As depicted inFIG. 3A, multiple landmarks310,320,330may each have associated attributes. These attributes may be utilized to determine a value score for every landmark. The attributes may be a subset of landmark-related information that is managed by logic server110. For example, landmarks310,320,330may be associated with real estate listings, and may include a selling price, a finder's fee for a live POV service provider, a predicted probability of sale in the next week, data connectivity options (cellular, Wi-Fi, Ethernet, etc.) that are directly associated with the landmark, etc. The attributes associated with the landmarks may be pulled from another service, such as a Multi-Location Service (MLS), while other attributes (such as the finder's fee) may be a fixed or variable value that may be queried from an online system. The probability of sale may be calculated by logic server110from data derived from the MLS, such as the length of time that properties in the same zip code have sold. The data connectivity information may be based on information that is associated with the property or estimated based on known wireless data coverage maps. For example, a selling agent may note in MLS that a landmark has Wi-Fi available for POV streaming.

In embodiments, logic server110may assign a score to each landmark based on one or more of the landmark's attributes. For example, properties with higher values, higher finder's fees, higher probability of sale, and strong Wi-Fi coverage may have a higher score than properties with lower corresponding values, wherein each of these attributes may have the same of different weights. For example, a landmark may be given a score of 0-100, wherein the property value may be given a score of 0 to 50, the finder's fee may have a score of 0 to 30, the probability of sale in a week may have a value of 0 to 10, and data connectivity may have a score of 0 to 10. Other attributes and weighting levels may vary for different applications. Certain landmarks may have a score of 0, wherein there is no wireless data connectivity.

FIG. 3Bdepicts an embodiment of attributes350associated with a user determine a value score for each viewer viewing landmarks on online interface125. These attributes may be a subset of the user-related information that is management by logic server110. In this example, users are shown along with selected attributes, such as real-time or historic browsing history in relation to landmarks, reviews provided from streamers, income level, and predicted behavior based on previous activities. There may be many attributes not shown. Logic server110may assign a score to each user based on one or more of the attributes, which may be weighted differently. For example, user income level may be given a weighted score of 0 to 50, previous review levels may have a score of 0 to 10, browsing activity associated with a landmark may have a score of 20, etc. Other attributes may have weight levels that automatically assign a 0 to the user score. For example, a user that has recently filed for bankruptcy may automatically be given a score of 0.

FIGS. 4A and 4Bdepict embodiments of attributes associated with streamers410, wherein a score is determine for the streamers based in part on attributes for a landmark. The attributes may be a subset of the streamer related information that is managed by logic server. In this example, streamers may be listed along with select attributes, such as review levels, realty name, streamliner computing device, commission level, referral payout to live provided by viewers that previously watched live POV streams from that streamer etc.

A program within logic server110may assign a score to each streamer based on one or more attributes. For example, streamers may have higher scores based on their review levels, better known reality companies, better data connectivity, lower commission level, etc. Furthermore, a portion of a streamer's score can dynamically change based on his proximity to a landmark. For example, a streamer that is closer in proximity to a landmark may be given a higher weighted attribute score than a streamer that is further away from the landmark. As such, an on-demand service based on the streamers proximity to a landmark can be created, wherein streamers may receive higher scores if they are in close proximity to a static landmark.

This may enable viewers that are in fixed locations associated with viewer computing devices120to remotely control the locations of streamers associated with streamer computing devices115. For example, if a plurality of different viewer computing devices120desire to share a POV video from a single streamer computing device115at a specific location, streamers may have a high incentive to move to a given location. As such, multiple users or a single user at a remote and static location, may on-demand change the locations (or incentive to be in different locations) of different streamers.

The scoring system may assign one or more weighted variables to determine a streamer's score in relation to a specific landmark. In one embodiment, the streamer's score for a landmark may be based on a review level, reputation, equipment, commission, location, etc. Furthermore, the streamers score may dynamically change for each different landmark based on the changing of the positioning of a streamer.

FIG. 5depicts one embodiment utilized by matching module235to link streamers with viewers. Matching module235may link streamers with viewers to provide a best pairing of users with streamers in relation to landmarks, and to allow streamers to move to be in the best position for on-demand services. These algorithms may be application dependent and may differ in objective functions, constrains, and available choices. For example, an objective function in some applications may be to offer the maximum number of potential live POV stream options to a user, while others emphasize the financial return to a service provider. In one embodiment, a score is calculated for each user based on fixed attributes, a score is calculated for each streamer based on fixed attributes and variable attributes, wherein the attributes for both the streamer and viewer may be weighted.

As depicted inFIG. 5, a tree500for four different viewers510,520,530,540may be created to determine scores for corresponding landmarks540,550,560, wherein different viewers may desire to view the same and/or different landmarks. Each of the viewers may be given a corresponding score for each landmark. Furthermore, a plurality of streamers580,585,590may be given a score correlating to each landmark540,550,540,560, wherein each of the streamers score correlating to a landmark may be the same score for each of the viewers. In further implementations, scores of streamers may be linked to users instead of landmarks.

The overall scores for each possible user-landmark-streamer branch are determined and shown inFIG. 5. The overall scores are then compared and a decision is made by logic server as to which POV streaming sessions are to be offered to which users. The logic behind these selections may vary between applications. These selections may vary in real-time, and may be driven by user behavior, new requests, and changes in the available of locations of streamers. Furthermore, if a given location is having a higher amount of requests this information may be transmitted to streamers, wherein streamers may have higher scores if they are in closer proximity to a location. This may be advantageous when an event is occurring at a location. For example, during a sporting event, concert, etc. more viewers may request POV streaming at a specific location. This may alter the locations of a plurality of streamers to have a higher score.

FIG. 6illustrates a method600for pairing viewers with streamers. The operations of method600presented below are intended to be illustrative. In some embodiments, method600may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of method300are illustrated inFIG. 6and described below is not intended to be limiting.

At operation610, a logic server may receive a request from a viewer computing device. The request may be to receive a POV streaming service of a landmark from a streamer at a remote location, wherein the remote location may be in close proximity to the landmark. The request may be initiated based on a viewer interacting with an online interface or an online map to request a service.

At operation620, responsive to receiving the request, the logic server may calculate a score of a user with respect to a landmark. The logic server may fetch information about the viewer/user and/or the landmark (and other online systems, such as MLS), and calculate a score matching the user with the landmark.

At operation630, it may be determined if the score associated with the user and the landmark is below a threshold. The threshold may be a static number or may vary based on landmarks, which may vary based on a schedule. For example, a first landmark may have a first threshold, and a second landmark may have a second threshold, wherein the first and second thresholds are different. If the user's score associated with the landmark is below the thresholds, the user's request may be denied.

At operation640, if the user's score is above a threshold, the logic server may determine a number of available streamers that are within a geographic proximity to the landmark within the request. Streamers that are outside a given threshold distance from a pre-set limit may be excluded from further consideration. In embodiments, different landmarks may have the same distance threshold and/or different distance thresholds.

At operation650, a score for each of the available streamers within the given threshold to the landmark may be determined.

At operation660, a score for each user-landmark-streamer branch may be determined.

At operation670, the logic server may match the highest score on each branch to match a streamer with at user or a plurality of users for a given landmark stream. In embodiments where there is a high comparative score, the logic server may accept the request and automatically link the user to the streamer, and take branches with associated resources (streamer) out of the available pool in order to avoid double-booking streamers.

At operation680, a user may receive a request to accept, defer, or decline the live POV request for the determined streamer.

At operation690, if the request is accepted, a session ID is generated by the logic server, and is used to index the branch information associated with the user, landmark, and streamer. The session ID and information may be stored within the memory device. Furthermore, the streamer resource may be temporarily taken out of considerations for other POV streaming. Responsive to the session ending, the streamer may be available for further POV streaming services.

In embodiments, it may be anticipated that not all offered live POV streaming sessions will be accepted. Temporary matches users, landmarks, and streamers may become unavailable due to a variety of reasons. Furthermore, users, streamers, or landmarks may become available as sessions end or as new users join the systems or streamers get in close proximity to the landmarks under consideration. In some embodiments, before offering live POV streaming options, the logic server may confirm that a streamer is interested and available to provide the live POV streaming session. Furthermore, the logic server may transmit data to streamers concerning a higher level of requests associated with a specific landmark, along with the location data of the landmark. In such cases, the logic server may generate an electronic message to a streamer providing details of proposed streaming session, and request that the streamer accepts the session. The streamer may interact with the user/viewer by voice, text, or other communications means before agreeing to perform the streaming. One example, may be a real estate agent (streamer) may wish to pre-qualify a potential buyer (viewer) before driving to the property (landmark) that he or she is interest in. In some instances, the streamer and the viewer may schedule the streaming session be performed at a later time.

In some embodiments, if a user-landmark-streamer branch score is close to a threshold (i.e. it is not high enough for the live stream to be accepted or low enough for it to be tuned down, the aforesaid request may be deferred for a period of time). In this example, the logic server may keep the branch or branches that fall in the borderline range in the consideration pool in case other branches are not acted upon, and more streamers become available.

FIG. 7depicts an embodiment of an online interface125. As depicted inFIG. 7online interface125may be a page associated with a real estate listing as seen through a web browser, mobile application, etc. A typical view of the listing may show information about contacting the listing agent or one or more pre-selected buyers, wherein the listing agents may also be streamers. In an embodiment, a program residing on viewer computing device120or on online interface125may track the viewer's behavior on the webpage, such as the length of time the viewer spends on the webpage, actions performed on the webpage, etc. Responsive to the viewer visiting the webpage, the geolocation associated with the webpage may be pulled by the logic server. The geolocation associated with the specific webpage may be preset by an agent actively entering the geolocation information associated with the website and/or website. Alternatively, the geolocation information may be based on the subject matter of the webpage, an address associated with the website, etc. For example, a blog associated with a local basketball team may have at least one geolocation associated with venues where basketball teams play. Therefore, pages within a website (or application program) may each have their own associated geolocation. Responsive to transitioning from a first webpage to a second webpage, the geolocation associated with the webpage may change.

In embodiments, once a user activity threshold has been met for a webpage, a program on the viewer computing device may generate a live POV live stream request to the logic server. The logic server may assign a score to potential branches associated with the request. In embodiments, the activity threshold may be determined after a time threshold on a webpage has been met. Therefore, if the activity threshold is not met, the live POV stream request may not be generated.

In the example shown inFIG. 7, the logic server mat determine to present the user with the option of viewing the landmark by two streamers who are within a closer physical proximity to the landmark. The streamer information to be presented to the user may replace a blank portion on the webpage or some default information (such as the information associated with the seller's realtor). To this end, the streaming POV video captures at the location associated with the webpage may be directly shown on the webpage with the same location information. In this example, the browser screen may get updated by the web server to display information associated with the two streamers, who may be qualified realtors who have the ability to represent a buy and have access to the property on the landmark. The streamer information may include the streamers name, picture, background information, and star rating. The streamer's availability may be displayed using a graphical element, such as a circle along with the proximity of the streamer to the landmark. If a streamer is no longer available or no longer in close proximity to the landmark, the streamer information may be removed from the corresponding webpage. To this end, streamers (i.e. realtors) may be able to view a webpage, determine if there are any other streamers in close proximity to a landmark, and if not, move in close proximity to the landmark. This may enable realtors to move to various locations to show different properties to perspective buys via an on-demand service, wherein the streamers do not have to have direct contact with the viewers to determine if there is a high need for streamers in a given location.

In embodiments with multiple streamer information being depicts on a webpage, if a user clicks on the information associated with a streamer, a request for initiation a communication session may be transmitted from the viewer computing device to the logic server. The logic server may create a corresponding session ID, provides information to a user application on viewer computing device to initialize, register, and configured WebRTC API parameters on the viewer computing device and the streamer computing device. An application on the viewer computer device, such as GetUsermedia component, may be set to grant access to the microphone (but not the camera), while an application on the streamer computer device may allow access to both the microphone and the camera. A RTCPeerConnection function may set up voice and video communication between the viewer computing device and the streamer computing device, additionally an RTCDataChannel application may set up data communication between the computing devices. In some embodiments, the user may select the option of having the POV streaming session recorded by the streamer computing device, uploaded to the logic server, white it may be stored and made available for on-demand access. This option may be useful in cases where data connection speeds do not support higher quality live video streaming, or if the subscriber desires to view the stream at a later time.

It should be noted that the example user interface presented inFIG. 7may depend based on the type of viewer computing device and application program. The presentation of a live POV streaming session option may also vary between different applications and/or online interfaces125.

FIG. 8depicts an embodiment of a viewer-to-streamer communication, and live POV stream delivery diagram based on a WebRTC application program interface (API). Viewer computing device120shows software components running on the viewer's computing device, and streamer computing device115shows selected software components running on the streamer's computing device. In this example, an application program may perform a user agent function that monitors user activity and communications with online servers, such as web servers, logic server, etc.

The streamer computer device115may run on a web browser, stand-along application, etc., and may include a setup module that is configured to allow the streamer to enter his information, such as username, password, etc. A communication module may enable communications with the logic server between the streamer's applications including requests and responses to queries using data protocols, such as HTTP and WebSocket.

In a typical application, the streamer's application program may receive a notification from a session management system that a user has requested that he stream live from a specific landmark, along with information about the user, landmark, and session ID. The streamer at this point can interact with the user via discuss the streaming request. Should the streamer agree to provide the live POV stream request, the streamer may interact with a user interface to perform actions to accept the Live POV streaming request (i.e. by pressing a button). The streamer may also decline the request. At this point, streamers who have accepted a request may go the landmark, and press a button to initiate a communication session with the user, which may include two-way voice connection and/or a one way video stream.

Any combination of one or more computer-usable or computer-readable media may be utilized. For example, a computer-readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages.