Media quality prediction for collaboration services
Summary by NHIP
Media Quality Prediction System
The system predicts packet loss, jitter, and delay for virtual meetings using current, historical, and location parameters. It retrieves metrics including day of week, time, device type, connectivity type, and host cluster to forecast degradation along specific routes.
Claim Score by NHIP
Abstract
Disclosed is a system, method and computer readable medium enabling collaboration service providers to more accurately predict packet loss, jitter and delay based on current session, historical session and user location parameters. The prediction can be used to forecast the occurrence of poor media quality at the current location and potential future locations.

Term
10.8 yearsleft in the term
Expires 25 July 2037.
- Priority
- Filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 63, broad(NHIP)A computer-implemented method for predicting media quality, the method comprising:receiving an indication for an initiation of a collaborative virtual meeting;determining a current location and destination of a client device;retrieving historical network metrics data and real-time network metrics data, the real-time network metrics data including day of week and current time;determining possible degradation in media quality of the collaborative virtual meeting for the current location and the destination based on the historical network metrics data and the real-time network metrics data;and notifying the client device of the possible degradation.
- 8A system comprising:a processor;and a memory storing instructions which when executed by the processor, causes the processor to: receive an indication for an initiation of a collaborative virtual meeting;determine a current location and destination of a client device;retrieve historical network metrics data and real-time network metrics data, the real-time network metrics data including day of week and current time;determine possible degradation in media quality of the collaborative virtual meeting for the current location and the destination based on the historical network metrics data and the real-time network metrics data;and notify the client device of the possible degradation.
- 15A non-transitory computer-readable medium storing instructions which when executed by a processor, causes the processor to:receive an indication for an initiation of a collaborative virtual meeting;determine a current location and destination of a client device;retrieve historical network metrics data and real-time network metrics data, the real-time network metrics data including day of week and current time;determine possible degradation in media quality of the collaborative virtual meeting for the current location and the destination based on the historical network metrics data and the real-time network metrics data;and notify the client device of the possible degradation.
Independent claims3
142 paragraphs in 6 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
0001This application is a Continuation of U.S. application Ser. No. 15/659,356, entitled PREDICTIVE MODEL FOR VOICE/VIDEO OVER IP CALLS, filed Jul. 25, 2017, the contents of which are incorporated by reference in its entirety.
TECHNICAL FIELD
0002The present technology pertains to media resources and communications, and more particularly pertains to selecting a media resource or communication path based on a quality prediction.
0003The present technology pertains to voice/video over IP calls, and more particularly pertains to predicting quality of a voice/video over IP call before initiated.
0004The present technology pertains to collaboration services, and more particularly pertains to prediction of media quality along a route during collaboration services.
BACKGROUND
0005Conventionally, a media gateway is chosen either based on its location, the location of a requesting client, or both. Media gateways may also be chosen through load-balancing based on the current workload that is distributed over alternative gateways. The former approach overlooks the fact that physical distance does not always correlate to network performance. The latter approach fails to address the varying patterns and requirements of multiple media streams involved in, for example, a web conference call. For example, audio traffic can be smooth while video traffic can have numerous spikes, and audio traffic may be more delay-sensitive than video traffic. Additionally, user preferences, device type, and communication style may result in different network requirements and priorities on a user-by-user basis.
0006Accordingly, both conventional approaches can lead to sub-par performance in a variety of situations, and as such, it would be desirable to provide an improved ability to perform resource selection.
0007Although there has been much improvement to the quality of Voice over IP (VoIP), the quality can still fluctuate significantly due to the dynamic nature of underlying networks and can be affected by various factors such as jitter, latency and bandwidth. There is a definite need to mitigate the occurrence of media quality issues to deliver a good collaboration experience to end users.
0008Subscription-based Cloud Collaboration Services have made consuming services more cost efficient for Enterprises and Collaboration Service Providers. Subscription-based Cloud Collaboration Services generally operate with a “best effort” routing through communication networks (e.g., the Internet). Accordingly, traversing a network using “best effort” removes the Enterprises and Collaboration Service Providers ability to control the end-user media experience.
BRIEF DESCRIPTION OF THE DRAWINGS
0009In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
0010<figref idref="DRAWINGS">FIG. 1</figref> illustrates an example environment in which aspects of the present disclosure can operate;
0011<figref idref="DRAWINGS">FIG. 2</figref> illustrates an example environment in which aspects of the present disclosure can operate;
0012<figref idref="DRAWINGS">FIG. 3</figref> illustrates an example modeling and quality prediction process;
0013<figref idref="DRAWINGS">FIG. 4A</figref> illustrates an example architecture and associated information flow associated with a method of the present disclosure;
0014<figref idref="DRAWINGS">FIG. 4B</figref> illustrates additional components of the example architecture and associated information flow of <figref idref="DRAWINGS">FIG. 4A</figref>;
0015<figref idref="DRAWINGS">FIG. 5</figref> illustrates an example input data set that can be employed by aspects of the present disclosure;
0016<figref idref="DRAWINGS">FIG. 6</figref> illustrates a schematic diagram of an example system for forecasting an expected call quality;
0017<figref idref="DRAWINGS">FIG. 7A</figref> illustrates a diagram of an example process for generating a generic model for forecasting expected call quality;
0018<figref idref="DRAWINGS">FIG. 7B</figref> illustrates a diagram of an example process for generating a personalized model for forecasting expected call quality;
0019<figref idref="DRAWINGS">FIG. 8</figref> illustrates a diagram of an example of a predictive modeling use case;
0020<figref idref="DRAWINGS">FIG. 9</figref> illustrates an example of an extended session description protocol message format and fields;
0021<figref idref="DRAWINGS">FIG. 10</figref> illustrates an example method for forecasting an expected call quality;
0022<figref idref="DRAWINGS">FIG. 11</figref> illustrates a map of a travel router during an example collaboration;
0023<figref idref="DRAWINGS">FIG. 12</figref> illustrates an example historical data set used to predict quality of a collaboration based on future geolocation;
0024<figref idref="DRAWINGS">FIG. 13</figref> illustrates an example method for predicting media quality;
0025<figref idref="DRAWINGS">FIG. 14</figref> illustrates an example network device; and
0026<figref idref="DRAWINGS">FIG. 15</figref> illustrates an example of a system for implementing certain aspects of the present technology.
DESCRIPTION OF EXAMPLE EMBODIMENTS
0027Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
0028Various embodiments of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure.
0000Overview
0029The connection quality offered by a media gateway often fluctuates, and can be difficult to predict, or even account for, when making a selection of a media gateway to handle a connection request. Accordingly, the approaches herein are provided to address these issues, by providing a two-step modeling process that can predict both quality metrics for a given gateway, as well as predicting an associated user rating corresponding to the quality metrics. In this manner, all available gateways can be analyzed and ranked, such that an incoming connection request is routed to the gateway that is predicted to have the highest user rating.
0030The quality of calls, such as Voice over IP (VoIP) calls, can fluctuate significantly due to the dynamic nature of networks, and can be affected by various factors such as jitter, latency, and bandwidth, for example. The approaches herein can address call quality issues, including voice/video quality, by forecasting the expected voice/video quality, identifying factors affecting the call quality, and taking proactive actions to improve the call experience. For example, the expected voice/video quality of a call can be forecasted by performing an automated and silent practice, background, or “dry” run and applying predictive models on telemetrics collected from this run. The approaches herein can predict how a user may rate the call experience, and identify the contributing factors. These factors can be used to take proactive action to improve the call experience and make the related information available through the application in the event that UE (User Equipment) designers wish to display call experience reason information to the user.
0031Disclosed is a system, method and computer readable medium for forecasting an expected quality of a call. In some examples, a system or method can generate a plurality of scenarios from a plurality of network metrics, retrieve historical ratings for the plurality of network metrics from a plurality of users, and assign the historical ratings for the plurality of network metrics to the plurality of scenarios. The system, method and computer readable medium can filter one or more of the plurality of users based on similarities of the historical ratings for the plurality of scenarios with one or more current network metrics, and forecast an expected call quality based on the historical ratings of the one or more filtered users.
0032Disclosed is an improved system, method and computer readable medium enabling collaboration service providers to more accurately predict packet loss, jitter and delay based on current session, historical session and user location parameters. The prediction can be used to forecast the occurrence of poor media quality at the current location and potential future locations.
0033Also disclosed is a system, method and computer readable medium for predicting media quality. The system, method and computer readable medium can receive an indication for an initiation of a collaborative virtual meeting, determine a current location and destination of a client device, retrieving historical network metrics data (e.g., location, destination, day of the week, device type, meeting time, connectivity type, and host cluster) and real-time network metrics data (e.g., day of the week, device type, current time, connectivity type, and host cluster), determine possible degradation in media quality of the collaborative virtual meeting for the current location and the destination based on the historical network metrics data and the real-time metrics data and notify the client device of the possible degradation (e.g., the notification can be displayed on the user device a map illustrating the current location and destination and can also display alerts on the map corresponding to the notifications of possible degradation). In other examples, the notification can display one or more routes from the current location to the destination, display the alerts along the routes; and highlight the route with least degradation.
0034In some examples, the system, method and computer readable medium can determine possible degradation along one or more routes between the current location and the destination and notify the client device on possible degradation along the one or more routes. In some examples, the system, method and computer readable medium can provide a recommended route with the least possible degradation.
DESCRIPTION
0035Disclosed is a system and method for selection of a media gateway based on the suggested (or required) criteria. While the end-to-end quality of cloud-based web conferencing cannot be fully managed due to the best-effort nature of the Internet, the user experience can be predicted (an optimized) by routing media streams through media gateways that match the suggested (or required) criteria.
0036<figref idref="DRAWINGS">FIG. 1</figref> illustrates a first example Environment <b>100</b> in which aspects of the present disclosure can operate. In Environment <b>100</b>, a First User <b>130</b> connects to an online or networked-based communication session with one or more Additional Participants <b>132</b>. Such online communication sessions are typically hosted or otherwise provided by a third-party service (e.g., a mobile or web application for transmitting audio, visual, or audiovisual data between participants). In the context of <figref idref="DRAWINGS">FIG. 1</figref>, the network-based communication session is transmitted over Internet <b>102</b>, although it is understood that various other networking protocols and techniques may be employed without departing from the scope of the present disclosure.
0037Within Environment <b>100</b>, a cloud-based third-party communication service provider (not illustrated) provides three Media Gateways <b>112</b>, <b>114</b>, and <b>116</b> that are connected to the Internet <b>102</b>. It is noted that the three Media Gateways are provided at geographically distinct locations. For example, although <figref idref="DRAWINGS">FIG. 1</figref> is not drawn to scale, First User <b>130</b> is in closer geographic proximity to Media Gateway <b>112</b> than to Media Gateway <b>114</b>, and the Additional Participants <b>132</b> are in closer geographic proximity to Media Gateway <b>114</b> than to Media Gateway <b>112</b>. Neither First User <b>130</b> nor Additional Participants <b>132</b> have Media Gateway <b>116</b> as their media gateway in closest geographic proximity.
0038Under one conventional theory of network routing and operation, an incoming user request will be routed to the media gateway that is closest to the user's geographical location. As illustrated, an incoming request from First User <b>130</b> to establish a communication session would be routed to Media Gateway <b>112</b>. Similarly, an incoming request from Additional Participants <b>132</b> to establish a communication session would be routed to Media Gateway <b>114</b>. Under this theory, an incoming request from either First User <b>130</b> or Additional Participants <b>132</b> would not be routed to Media Gateway <b>116</b> as long as Media Gateway <b>112</b> and <b>114</b> continue to remain available.
0039However, such an approach is limited by its failure to consider any factors beyond geographical proximity when making routing decisions. For example, the path comprising Segments <b>146</b><i>a </i>and <b>146</b><i>b </i>utilizes the closest media gateway to First User <b>130</b> and Additional Participants <b>132</b>, respectively, but it can often be the case that the path comprising Segments <b>142</b><i>a </i>and <b>142</b><i>b </i>may provide a communication session with less delay, even though Media Gateway <b>116</b> is farther away from First User <b>130</b> than Media Gateway <b>112</b>. Such a situation might arise if Media Gateway <b>116</b> has more available bandwidth than Media Gateway <b>112</b>, is outfitted with higher speed components, is provided on a higher speed communication link, and various other factors that will be appreciated by one of ordinary skill in the art.
0040Furthermore, in some scenarios, total delay might not be the most important determining factor. For example, jitter may be a more important factor than delay, particularly in the case of a communication session that transmits video data. In this scenario, the most desirable path for connecting First User <b>130</b> and Additional Participants <b>132</b> to a communication session would be Path <b>144</b>, which causes both parties to make use of the same Media Gateway <b>114</b>. Even though this is the farthest media gateway from First User <b>130</b>, it can nevertheless be the most desirable gateway to be utilized in a given communication session.
0041<figref idref="DRAWINGS">FIG. 2</figref> illustrates a second example Environment <b>200</b> in which aspects of the present disclosure may operate. Unlike Environment <b>100</b>, where the constituent Media Gateways <b>112</b>, <b>114</b>, <b>116</b> of a communication or application service provider were provided in disparate geographical locations, Environment <b>200</b> depicts a collaboration Cloud Provider <b>250</b> with constituent Media Gateways (labeled herein as Collaboration Cloud Clusters) <b>212</b>, <b>214</b>, <b>216</b> that are provided in the same geographical location, or in the same geographical location as an associated user location. This enables collaboration Cloud Provider <b>250</b> to achieve a greater degree of control, oversight, and predictability over the performance of the Individual Clusters <b>212</b>, <b>214</b>, <b>216</b> as well as the performance of the overall communication or collaboration service that is provided by these clusters.
0042However, collaboration Cloud Provider <b>250</b> remains unable to account for or control various mitigating factors on the customer or participant end. That is, users of collaboration Cloud Provider <b>250</b> (e.g. participants in communication sessions) might all experience different qualities of service. Users might be disposed at different geographic and physical locations, such as RTP Building A (referred to herein as Building <b>230</b>), Home <b>232</b>, and SJ Building A (referred to herein as Building <b>234</b>). Each geographic location might be associated with a different network provider or ISP, a different network type (wired, wireless, cellular), a different network quality, a different network load factor, and so on. Each user might be associated with a different type of device, with different properties and capabilities. In short, a variety of factors can influence the end-to-end transmission of a communication session, including the fact that the communication session must traverse Internet <b>202</b>, which is an unpredictable, best-effort network.
0043Even in scenarios in which all user-controlled variables remain constant (e.g. a user joins the same video conference every Monday at 9 AM, using his desktop, from Building <b>230</b>, and connecting to collaboration Cloud Cluster <b>212</b>), a wide range of performance characteristics can be experienced in terms of the perceived quality of the video conference, due to factors that are both beyond the user's control and beyond the user's ability to see.
0044For example, on a given Monday where the user experiences degraded quality, a higher than normal number of users in Building <b>230</b> might be attending meetings also scheduled to run concurrently with the user's 9 AM video conference. Hence, the network media path between the user's desktop and collaboration Cloud Cluster <b>212</b> might experience bandwidth problems due to the high number of media flows. Alternatively, collaboration Cloud Cluster <b>212</b> might be handling a large number of meetings from different companies, such that the bandwidth of collaboration Cloud Cluster <b>212</b>'s WAN link to its Internet Service Provider is saturated due to the high number of media flows. As a further alternative, other application flows within the Internet Service Provider environment might be impacting the user's perceived quality of his video conference. For example, the Internet Service Provider might be handling a large number of IP media streams for a famous TV show at 9 AM, where the IP media streams are from a content provider cloud in the same geographic location as collaboration Cloud Cluster <b>212</b>, such that the content provider cloud connects to the same core network of the Internet Service Provider.
0045Accordingly, in one aspect of the present disclosure, participants in a video conference or other online communication session are asked to provide a quality rating after the communication session has ended. An example of such quality ratings is seen in <figref idref="DRAWINGS">FIG. 5</figref>. As will be discussed later, these received user quality ratings are associated with their corresponding network, conference, and other parameters, and are then stored for subsequent use.
0046<figref idref="DRAWINGS">FIG. 3</figref> illustrates an example two-step modeling and quality prediction method <b>300</b> of the present disclosure. The method is applied to one or more media gateways of the illustrated Media Gateways <b>302</b><i>a</i>, <b>302</b><i>b</i>, <b>302</b><i>c</i>, that are coupled to or otherwise associated with a network, with the end result being that a User Rating <b>314</b> of the quality provided by a given media gateway can be predicted given the inputs of current network state <b>304</b> and current Client Attributes <b>310</b>. In this manner, a user request to join or initiate a communication session can be routed to the media gateway that will yield the highest predicted user rating. It is noted that the method is applied to one media gateway at a time, although multiple media gateways can be analyzed in parallel.
0047<figref idref="DRAWINGS">FIG. 3</figref> provides a high-level overview of the processing and data flows that are discussed in greater depth with respect to <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>. The two inputs of current time-series Network Data <b>304</b> and current Client Attributes <b>310</b> can be received simultaneously, although this is not required. The current Network State <b>304</b> is fed into a First Machine Learning Module <b>306</b>, which generates predicted Network Metrics <b>308</b> for the given media gateway being analyzed, where the predicted Network Metrics <b>308</b> are based on the current Network Data <b>304</b>. First Machine Learning Module <b>306</b> is operable to perform this function because it is trained on a series of historical network state data, as will be described below. In general, the current Network Data <b>304</b> encompasses a wider variety of parameters than the predicted Network Metrics <b>308</b>. In some embodiments, the predicted Network Metrics <b>308</b> can be thought of as the factors upon which user rating is based—e.g. packet loss, delay, jitter.
0048A Second Machine Learning Module <b>312</b> receives these predicted Network Metrics <b>308</b>, as well as the current Client Attributes <b>310</b>. Second Machine Learning Module <b>312</b> then generates the predicted User Rating <b>314</b> corresponding to the given media gateway being analyzed (which here is Media Gateway <b>302</b><i>a</i>), where the predicted User Rating <b>314</b> is based on both the predicted Network Metrics <b>308</b> and the current Client Attributes <b>310</b>. Second Machine Learning Module <b>312</b> is operable to perform this function because it is trained on a series of historical network metrics, user attribute data, and user rating data, as will be described below.
0049<figref idref="DRAWINGS">FIG. 4A</figref> illustrates an example architecture and associated information Flow <b>400</b> associated with a method of the present disclosure. In particular, <figref idref="DRAWINGS">FIG. 4A</figref> presents a detailed view of the first step of the two-step modeling process described in <figref idref="DRAWINGS">FIG. 3</figref>, as applied to any given media gateway. Recalling that this first step corresponds to generating predicted network metrics for the given media gateway, e.g. predicted gateway metrics, illustrated are a Gateway Metrics Model Training Module <b>410</b> and Gateway Metrics Prediction Module <b>430</b>.
0050Gateway Metrics Model Training Module <b>410</b> is operable to train the First Machine Learning Module <b>416</b> on a series of historical time-series network data. This historical time-series network data comprises, as illustrated, Network Predictors <b>412</b> and Gateway Response <b>414</b>. While the predicted gateway metrics are generated for a single given media gateway, the gateway metrics model training is performed over all media gateways. Continuing the example set by <figref idref="DRAWINGS">FIG. 3</figref>, where three media gateways are present, there are three sets of Network Predictors <b>412</b> and three sets of Gateway Response <b>414</b> received at Gateway Metrics Model Training Module <b>410</b>. These network predictors and gateway responses can be stored in a database that is coupled to the network, such that the network and its constituent components can be polled in order to collect or refresh one or more of the network predictors and gateway responses.
0051The Network Predictors <b>412</b> include geographic location, time of day, day of week, gateway workloads, and cascading information, although it is appreciated that the Network Predictors <b>412</b> can comprise additional factors that influence the performance of a media gateway. The Gateway Response <b>414</b> are the metrics that result due to various combinations of network predictors. That is, the Gateway Response <b>414</b> are factors such as packet loss, jitter, and delay that are influenced by the Network Predictors <b>412</b>.
0052In some instances, a user can specify a threshold of historical data (e.g. Network Predictors <b>412</b> and Gateway Response <b>414</b>) that must be collected in order for the First Machine Learning Module <b>416</b> to be trained. In other words, a user can specify a minimum amount of time that data must span in order for adequate analysis and predictions to be performed. For example, a threshold for the minimum amount of historical data that must be collected in order to detect patterns and make predictions might be four weeks. This can alternatively be referred to as a pattern threshold.
0053Another type of threshold might also be provided—a lifetime threshold. The lifetime threshold can be employed to remove stale data, as networks evolve over time and may not be adequately or accurately characterized by performance data that are too old. For example, the lifetime threshold might be 90 days. Any data, of either network predictors or gateway responses, that was collected more than 90 days ago will be removed. In another example, a threshold might be a change in hardware or software (e.g., upgrade, replacement, etc.) in a Media Gateway and/or Radio Access Network (RAN) should invalidate the relevant leanings (e.g., the prediction may not be right after such changes).
0054In essence, the Network Predictors <b>412</b> and the Gateway Response <b>414</b> are provided as data that are causally linked to one another—but no indication of this causal link is provided. This is the purpose of the First Machine Learning Module <b>416</b>, which utilizes Network Predictors <b>412</b> and Gateway Response <b>414</b> as a training data set to perform machine learning and construct a predictive model of the causal link between the two inputs. The First Machine Learning Module <b>416</b> can be provided in some embodiments as a regression module, although other machine learning techniques may additionally be employed without departing from the scope of the present disclosure.
0055First Machine Learning Module <b>416</b> then outputs a predictive model of Gateway Metrics <b>434</b> for each of the gateways represented in Network Predictors <b>412</b> and gateway responses. In some embodiments, First Machine Learning Module <b>416</b> may generate a single predictive model of gateway metrics, rather than generating a predictive model for each gateway.
0056From here, the Gateway Metrics Model Training Module <b>410</b> outputs the one or more predictive models to the Gateway Metrics prediction module <b>430</b>. Gateway Metrics Prediction Module <b>430</b> receives as input, or utilizes a polling service to collect in real-time, a snapshot of the current Network Predictors <b>432</b>. As illustrated, the parameters contained within the current Network Predictors <b>432</b> are similar to those contained within the historical Network Predictors <b>412</b>, although it is appreciated that the two are not necessarily the same.
0057The current Network Predictors <b>432</b> are then input into the one or more predictive models <b>434</b> for each media gateway. The one or more Predictive Models <b>434</b> generate a corresponding one or more predicted Gateway Metrics <b>436</b> for each gateway being analyzed. As illustrated, the parameters contained within the predicted Gateway Metrics <b>436</b> are similar to those contained within the historical Gateway Response <b>414</b>, although it is appreciated that the two are not necessarily the same.
0058While it is possible to measure the actual gateway metrics right before a communication session, rather than relying upon predicted Gateway Metrics <b>432</b>, the measurement of the actual gateway metrics is momentary, and therefore has limited use beyond the time at which they are captured. Relying upon the capture of actual gateway metrics before a communication session fails to account for any potential fluctuation or other variations that commonly occur over the course of a communication session. On the other hand, the one or more Predictive Models <b>434</b> advantageously enables the gateway metrics to predicted over the entire duration of the communication session. Keeping in mind that a goal is to select the appropriate media gateway for an incoming request for a communication session, it is clear that the ability to understand the gateway metrics over the whole duration of a communication session is far more valuable that simply measuring the gateway metrics at the initiation of a communication session.
0059As a simplified example, consider the following. At 8:59 AM, a user transmits a request to join a 9 AM video conference. At 8:59 AM, Media Gateway B has low delay and is utilizing only 10% of its bandwidth. Media Gateway A has moderate delay and is utilizing 50% of its bandwidth. A media gateway selection based only upon a snapshot of actual gateway metrics would select Media Gateway B to handle the user request to join the 9 AM video conference.
0060However, it may be the case that Media Gateway B historically sees a bandwidth utilization in excess of 90% from the hours of 9 AM to noon, while Media Gateway A does not historically see any bandwidth utilization changes. In this case, it is appreciated that it would be preferable to select Media Gateway A to handle the user's request to join the 9 AM video conference, rather than Media Gateway B. This is because over the entire duration of the video conference, Media Gateway A will likely offer a better, higher quality experience than Media Gateway B, even though Media Gateway B is instantaneously offering better connection parameters.
0061Unlike conventional approaches, the disclosed system and method leverage historical time-series data of network metrics and predictors to perform more sophisticated analysis and ultimately, provide superior gateway selection. This gateway selection process is described with respect to <figref idref="DRAWINGS">FIG. 4B</figref>, which illustrates an additional portion <b>401</b> of the architecture and associated information flow <b>400</b> that is depicted in <figref idref="DRAWINGS">FIG. 4A</figref>. In particular, <figref idref="DRAWINGS">FIG. 4B</figref> presents a detailed view of the second step of the two-step modeling process described herein. Illustrated are a User Rating Model Training Module <b>450</b> and a User Rating Prediction Module <b>470</b>.
0062User Rating Model Training Module <b>450</b> is operable to train the Second Machine Learning Module <b>458</b> on a series of historical data. This historical data includes Gateway Responses <b>452</b> (which can be similar to the Gateway Response <b>414</b> of <figref idref="DRAWINGS">FIG. 4A</figref>), Historical Client Predictors <b>454</b>, and Historical Client Responses <b>456</b>. As illustrated, a single model is generated for all users or clients, although it is understood that unique models could be generated for each given user or client, in the same manner in which unique models were generated for each gateway in <figref idref="DRAWINGS">FIG. 4A</figref>.
0063The Gateway Responses <b>452</b> and the Client Predictors <b>454</b> are merged into a single set of state parameters that have a causal relationship with the Historical Client Responses <b>456</b>. That is, the combination of a given gateway response and given set of client predictors yielded a corresponding client response. An example of such a data set is illustrated as Data Set <b>500</b> of <figref idref="DRAWINGS">FIG. 5</figref>, which shows a column labeled ‘User Rating’. As described with respect to <figref idref="DRAWINGS">FIG. 4A</figref>, a user may specify a pattern threshold and a lifetime threshold to the historical data that is collected.
0064The Second Machine Learning Module <b>458</b> receives as input the merged Client Predictors <b>454</b> and Gateway Responses <b>452</b>, and the client responses <b>456</b>. These inputs are used as a training data set to perform machine learning and construct a predictive model of the causal link between gateway responses and client predictors as input and client responses as output. The Second Machine Learning Module <b>458</b> can be provided in some embodiments as a regression module, although other machine learning techniques may additionally be employed without departing from the scope of the present disclosure.
0065Second Machine Learning Module <b>458</b> then outputs a Predictive Model <b>476</b> for user ratings. This Predictive Model <b>476</b> is received at the user rating prediction module <b>470</b>. User rating Prediction Module <b>476</b> receives as an additional input, or utilizes a polling service to collect in real-time, a snapshot of the current Client Predictors <b>472</b>. As illustrated, the parameters contained within the current Client Predictors <b>472</b> are similar to those contained within the historical Client Predictors <b>454</b>, although it is appreciated that the two are not necessarily the same.
0066The current Client Predictors <b>472</b> are then merged with the predicted Gateway Metrics <b>436</b> output from model <b>434</b> of Gateway Metrics prediction module <b>430</b> of <figref idref="DRAWINGS">FIG. 4A</figref>. The merged list is then input into the model <b>476</b> for user rating, which is specifically designed to predict an output user rating based on an input of client predictors and gateway metrics. In this manner, the model <b>434</b> generated by First Machine Learning Module <b>416</b> is fed forward as input to the model <b>476</b> generated by Second Machine Learning Module <b>458</b>.
0067With these inputs, the user rating model <b>476</b> generates a predicted user rating <b>478</b>, for the given media gateway given the prevailing current conditions of Network Predictors <b>432</b> and Client Predictors <b>472</b>. This process is performed for each media gateway that is being investigated for a predicted user rating given the current conditions. Ultimately, a predicted user rating is generated for each media gateway being considered (e.g. all available media gateways when a user request is received). With these predicted user ratings, a selection is then made, such that a user request to initiate or join a communication session is handled by the media gateway that will result in the highest predicted user rating, even if this media gateway would not have otherwise been selected by conventional methods.
0068Consider the following example, which returns to the example described in <figref idref="DRAWINGS">FIG. 1</figref>. Assume that a communication session provider is operating the three Media Gateways <b>112</b>, <b>114</b>, and <b>116</b>, and that the communication session provider receives a new communication session request from the First User <b>130</b>. Media Gateway <b>112</b> is in Raleigh, Media Gateway <b>114</b> is in RTP, and Media Gateway <b>116</b> is in San Jose. First User <b>130</b> is also in RTP, and is using a mobile device at 4:30 PM on a Friday. Also assume that a gateway metrics model and a user rating model have been trained by the first and second machine learning modules, respectively, using historical data from sessions processed in the last 90 days.
0069The first step is to predict the gateway metrics {Packet Loss, Delay, Jitter} for each gateway using the trained gateway metrics model.
0000Input Features:
0000<ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0070">Gateway <b>112</b>: {RTP-Raleigh, 4:30 PM, Friday, 20% workload}</li><li id="ul0002-0002" num="0071">Gateway <b>114</b>: {RTP-RTP, 4:30 PM, Friday, 80% workload}</li><li id="ul0002-0003" num="0072">Gateway <b>116</b>: {RTP-San Jose, 4:30 PM, Friday, 75% workload} <br /> Output of gateway metrics prediction model {Packet Loss, Delay, Jitter}: </li><li id="ul0002-0004" num="0073">Gateway <b>112</b>: {0, 50 ms, 20 ms}</li><li id="ul0002-0005" num="0074">Gateway <b>114</b>: {10, 50 ms, 20 ms}</li><li id="ul0002-0006" num="0075">Gateway <b>116</b>: {5, 100 ms, 20 ms}</li></ul></li></ul>
0076The second step is to predict the user rating for each media gateway using the trained user rating model. The predicted gateway metrics from step one, above, are combined with client parameters to form the input to the user rating model
0000Input Features:
0000<ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0077">Gateway <b>112</b>: {RTP-Raleigh, 4:30 PM, Friday, 20% workload, (0, 50 ms, 20 ms)}</li><li id="ul0004-0002" num="0078">Gateway <b>114</b>: {RTP-RTP, 4:30 PM, Friday, 80% workload, (10, 50 ms, 20 ms)}</li><li id="ul0004-0003" num="0079">Gateway <b>116</b>: {RTP-San Jose, 4:30 PM, Friday, 75% workload, (5, 100 ms, 20 ms)} <br /> Output of user rating prediction model: </li><li id="ul0004-0004" num="0080">Gateway <b>112</b>: 5 (Excellent)</li><li id="ul0004-0005" num="0081">Gateway <b>114</b>: 3 (Moderate)</li><li id="ul0004-0006" num="0082">Gateway <b>116</b>: 4 (Good) <br /> Final Selection: </li><li id="ul0004-0007" num="0083">Gateway <b>112</b> in Raleigh is selected and assigned for the incoming communication request from the mobile device of user <b>130</b> in RTP. In instances where two or more gateways have the same rating, a selection can be made by assigning a higher ranking to the gateway with the closest geographic proximity to the user.</li></ul></li></ul>
0084Disclosed is a system and method to forecast the expected voice/video quality of a call. The system and method can apply predictive models on historically collected network metrics. The system and method can also predict how the user may rate the call experience, and provide major contributing factors. These factors can be used to take proactive action to improve the call experience and make the related information available through an application in the event that UE (user equipment) designers wish to display call experience reason information to the user.
0085<figref idref="DRAWINGS">FIG. 6</figref> shows a schematic diagram of an example system for forecasting an expected call quality. The system can involve Phase <b>1</b> (<b>610</b>) for generating a generic prediction for a new user in the system, Phase <b>2</b> (<b>620</b>) for profiling the user, and Phase <b>3</b> (<b>630</b>) for generating a personalized prediction for the user.
0086At Phase <b>1</b> (<b>610</b>), when a new user without prior rating feedback enters the system, the user's ratings can be predicted based on Generic Model <b>616</b>. Generic Model <b>616</b> can be generated based on Telemetrics <b>614</b> and trained with Regression Algorithm <b>612</b> using Telemetrics <b>614</b> as input. In some cases, Generic Model <b>616</b> can also be pre-trained with Regression Algorithm <b>612</b> using the historical feedback of users in the system. Regression Algorithm <b>612</b> can rank the importance of one or more factors contributing to call quality. Non-limiting examples of regression algorithms can include Decision Trees, Random Forest and Extreme Gradient Boosting.
0087Telemetrics <b>614</b> can include new type of metrics (e.g., device specification, wireless signal stability, user travel speed, geographic location, etc.) collected for one or more networks and/or calls. In some cases, Telemetrics <b>614</b> can be collected periodically on an ongoing basis. Telemetrics <b>614</b> can include metrics associated with the quality of a call, such as jitter, packet loss, round trip time (RTT), etc. Table 1 below illustrates non-limiting examples of metrics.
0088<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 1</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Example Metrics</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="35pt" align="left" /><colspec colname="1" colwidth="70pt" align="left" /><colspec colname="2" colwidth="112pt" align="left" /><tbody valign="top"><row><entry /><entry>GROUP</entry><entry>ATTRIBUTE</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Network</entry><entry>Latency</entry></row><row><entry /><entry /><entry>Packet loss burst length</entry></row><row><entry /><entry /><entry>Jitter</entry></row><row><entry /><entry /><entry>Connection type</entry></row><row><entry /><entry /><entry>Bandwidth</entry></row><row><entry /><entry /><entry>FEC</entry></row><row><entry /><entry /><entry>TCP fallback</entry></row><row><entry /><entry /><entry>ICE failure</entry></row><row><entry /><entry /><entry>Incoming queuing delay</entry></row><row><entry /><entry /><entry>Outgoing queuing delay</entry></row><row><entry /><entry /><entry>Wireless signal strength</entry></row><row><entry /><entry>Audio</entry><entry>AEC algorithm</entry></row><row><entry /><entry /><entry>Bit rate</entry></row><row><entry /><entry /><entry>Noise level</entry></row><row><entry /><entry>Video</entry><entry>Bit rate</entry></row><row><entry /><entry /><entry>Frame rate</entry></row><row><entry /><entry /><entry>Resolution</entry></row><row><entry /><entry /><entry>Screen size</entry></row><row><entry /><entry /><entry>Codec</entry></row><row><entry /><entry /><entry>Simulcast</entry></row><row><entry /><entry>Client</entry><entry>User agent type</entry></row><row><entry /><entry /><entry>Version</entry></row><row><entry /><entry /><entry>Operating System (OS)</entry></row><row><entry /><entry /><entry>CPU load</entry></row><row><entry /><entry /><entry>Travel speed</entry></row><row><entry /><entry /><entry>Geo-location</entry></row><row><entry /><entry>GPS</entry><entry>Travel speed</entry></row><row><entry /><entry /><entry>Geo-location</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0089Generic Model <b>616</b> used to generate Predicted Mean Opinion Score (MOS) <b>618</b>. MOS <b>618</b> can include one or more scores representing the predicted user's call quality rating based on Telemetrics <b>614</b>.
0090At Phase <b>2</b> (<b>620</b>), after the new user spends more time with the system and provides respective feedback, the user can be profiled to generate a personalized model in Phase <b>3</b> (<b>630</b>), using Clustering Algorithm <b>622</b> and Collaborative Filtering Algorithm <b>626</b>.
0091Here, one or more metrics from Telemetrics <b>614</b> can be clustered into a number of “scenarios” using Clustering Algorithm <b>622</b>. In some scenarios, the audio quality may far exceed the video quality (or vice versa). In other scenarios, video resolution may be traded off for higher frames per second. For this reason, Clustering Algorithm <b>622</b> can include one or more clustering algorithms that scale well with the large volume of metrics data. Non-limiting examples of clustering algorithms include K-Means, DBSCAN, Ward hierarchical clustering, and Birch.
0092The clusters or scenarios generated by Clustering Algorithm <b>622</b>, as well as Subjective User Ratings <b>624</b>, can be passed to Collaborative Filtering Algorithm <b>626</b> to generate results for the clusters or scenarios which can be used to create Personalized Model <b>632</b> in Phase <b>3</b> (<b>630</b>).
0093Subjective User Ratings <b>624</b> can include actual, subjective past ratings from a user. In some cases, Subjective User Ratings <b>624</b> can be grouped and averaged into each corresponding scenario. The dataset can be formatted into a rating matrix for Collaborative Filtering Algorithm <b>626</b>. Collaborative Filtering Algorithm <b>626</b> can be a machine learning algorithm which can provide recommendations and/or pivoted to approximate how a user may rate a call under a scenario. Each row in the rating matrix can be effectively a profile for a user and each profile may have different levels of completeness. To evaluate whether a user is ready to switch from Generic Model <b>616</b> to a personalize model (e.g., Personalized Model <b>634</b>), a threshold of the level of completeness may be expected to put in place (e.g. 25%).
0094At Phase <b>3</b> (<b>630</b>), Telemetrics <b>614</b> and the output from Collaborative Filtering Algorithm <b>626</b> can be used to generate Personalized Model <b>632</b> for the user. Personalized Model <b>632</b> can be a predictive machine learning model that is personalized for the user in order to take into account the user's subjective ratings, recognizing that users may rate the same call experience in different ways. Personalized Model <b>632</b> can generate Personalized Predicted MOS <b>634</b>, which can include an MOS score representing a predicted user rating of the call experience that is personalized for the particular user.
0095In some cases, if an upcoming scenario defined by Telemetrics <b>614</b> has been experienced and rated in the past by the user, then Personalized Predicted MOS <b>634</b> can be adapted from past ratings (e.g., Subjective User Ratings <b>624</b>). If the scenario is otherwise new to the user, Collaborative Filtering Algorithm <b>626</b> can match Subjective User Ratings <b>624</b> against other users and find users with similar rating behaviors. The existing ratings of those users for the specific scenario can be used to predict the rating of this particular user (e.g., Personalized Predicted MOS <b>634</b>).
0096<figref idref="DRAWINGS">FIG. 7A</figref> shows a diagram of an example process for generating Generic Model <b>616</b>. In this example, Telemetrics <b>614</b> and MOS Scores <b>710</b> can be used to generate Matrix <b>720</b> mapping individual MOS scores from MOS Scores <b>710</b> to example metrics from Telemetrics <b>614</b>. Telemetrics <b>614</b> can include past or historical telemetrics from users in the system and MOS Scores <b>710</b> can include past or historical MOS scores from the users. In some cases, Telemetrics <b>614</b> and MOS Scores <b>710</b> can include the telemetrics and MOS scores aggregated from all users in the system.
0097Matrix <b>720</b> can be provided as input for Regression Algorithm <b>612</b> to generate Generic Model <b>616</b>, which can represent a model generalizing MOS scores and telemetrics for the users in the system.
0098<figref idref="DRAWINGS">FIG. 7B</figref> shows a diagram of an example process for generating Personalized Model <b>632</b>. In this example, Telemetrics <b>614</b> can be provided as input to Clustering Algorithm <b>622</b> to generate Scenarios <b>732</b>. Scenarios <b>732</b> can be based on clusters of metrics from Telemetrics <b>614</b>. Scenarios <b>732</b> and MOS Scores <b>710</b> can then be used to generate Rating Matrix <b>730</b>.
0099Rating Matrix <b>730</b> can map individual MOS scores to individual scenarios for each user. The mappings in Rating Matrix <b>730</b> can represent respective profiles for the users. The profiles can approximate how each user may rate a call under each scenario. Rating Matrix <b>730</b> can then be provided as input to Collaborative Filtering Algorithm <b>626</b> to generate Personalized Model <b>632</b>. As previously mentioned, Personalized Model <b>632</b> can provide a personalized machine learning model for predicting call ratings for a particular user.
0100<figref idref="DRAWINGS">FIG. 8</figref> shows a diagram of an example of a predictive modeling use case. The example predictive modeling use case is implemented for a call between users Eric <b>802</b> and Keith <b>804</b>. Graphical User Interface <b>810</b> can be presented to Eric <b>802</b> on his communication device (e.g., mobile phone, tablet computer, etc.). Graphical User Interface <b>810</b> can include Control <b>810</b>A for establishing a call, such as a VoIP call, with other users. In this example, Control <b>810</b>A is presented in association with contact information for Keith <b>804</b>, and allows Eric <b>802</b> to establish a call to Keith <b>804</b> based on the contact information for Keith <b>804</b>.
0101When Eric <b>802</b> selects Control <b>810</b>A to establish a call with Keith <b>804</b>, Control <b>810</b>A can trigger the communication device to generate and send Pre-Invite Packet <b>830</b> to Server <b>820</b>, which then sends Pre-Invite Packet <b>830</b> to a communication device associated with Keith <b>804</b>. Pre-Invite Packet <b>830</b> can include one or more parameters corresponding to an extended session description protocol (SDP) associated with Eric <b>802</b>. An example of an extended SDP is further described below with reference to <figref idref="DRAWINGS">FIG. 9</figref>.
0102The communication device associated with Keith <b>804</b> can receive Pre-Invite Packet <b>830</b> and reply to Server <b>820</b> with Pre-OK Packet <b>832</b>. Pre-OK Packet <b>832</b> can include one or more parameters corresponding to an extended SDP associated with Keith <b>804</b>.
0103Server <b>820</b> can receive Pre-OK Packet <b>832</b> and collect telemetrics and perform a practice or “dry” run to predict call quality before actually establishing the call. Server <b>820</b> include one or more conferencing servers or bridges, such as a SIP (Session Initiation Protocol) server, configured to perform call quality or experience forecasting using machine learning models, such as Generic Model <b>816</b> and Personalized Model <b>832</b>, as previously explained.
0104In this example predictive modeling use case, Server <b>820</b> host and/or establish communication sessions (e.g., video/audio calls such as VoIP) using SIP or a SIP-like protocol. SIP is used in this example for clarity and explanation purposes. It should be noted that other examples or servers may implement other communication protocols either in combination to SIP or in lieu of SIP, such as, without limitation, H.323.
0105Moreover, the signaling protocol implemented by Server <b>820</b> can be extended to process “pre-INVITE” packets (e.g., Pre-Invite Packet <b>830</b>) and “pre-OK” packets (e.g., Pre-OK Packet <b>832</b>) without actually triggering a call. Thus, Pre-Invite Packet <b>830</b> and Pre-OK Packet <b>832</b> can serve as “pre-signaling” packets which enables Server <b>820</b> to perform a practice or “dry” run call to collect relevant metrics from other call legs, including call legs corresponding to one or more callees intended by the caller, which in this example is Eric <b>802</b>. Taking the metrics and conditions of all callees into account, Server <b>820</b> can more accurately predict the likely quality of a conference call. The metrics used to make machine learning based predictions can be passed to Server <b>820</b> through the attributes represented as ‘a’ in standard SDP.
0106Server <b>820</b> can provide machine learning and prediction services before, during, and/or after a call. To illustrate, after receiving Pre-Invite Packet <b>830</b> and Pre-OK Packet <b>832</b> from Eric <b>802</b> and Keith <b>804</b>, respectively, Server <b>820</b> can collect metrics and generate Predicted MOS <b>834</b> based on the SDP associated with Eric <b>802</b> and Keith <b>804</b>. Predicted MOS <b>834</b> can be a machine learning prediction based on one or more machine learning models, such as Generic Model <b>816</b> and Personalized Model <b>832</b>. In this example, Predicted MOS <b>834</b> can be a machine learning prediction generated based on Generic Model <b>816</b> and telemetrics associated with other users in the system, such as Predicted MOS <b>818</b> generated at Phase <b>1</b> (<b>610</b>) as previously described with reference to <figref idref="DRAWINGS">FIG. 6</figref>.
0107Based on Predicted MOS <b>818</b>, Server <b>820</b> can send Predicted Pre-OK Packet <b>836</b> to Eric <b>802</b>. Predicted Pre-OK Packet <b>836</b> can include Predicted MOS <b>818</b>, the extended SDP of Keith <b>804</b>, as one as one or more prediction factors. The communication device used by Eric <b>802</b> can receive Predicted Pre-OK Packet <b>836</b> from Server <b>820</b> and update Graphical User Interface <b>810</b> to display or visualize Predicted Rating <b>812</b>, which can convey a rating predicted for the call based on Predicted Pre-OK Packet <b>836</b>, including information in Predicted Pre-OK Packet <b>836</b> such as Predicted MOS <b>818</b>, the extended SDP of Keith <b>804</b>, and/or the one or more prediction factors.
0108Graphical User Interface <b>810</b> can also present Selectable Controls <b>814</b>, <b>816</b>, <b>818</b>, which can provide various options to Eric <b>802</b>. For example, Control <b>816</b> can be a selectable control that Eric <b>802</b> can select to proceed with the call, and Control <b>818</b> can be a selectable control that allows Eric <b>802</b> to cancel the call. Control <b>814</b> can be a selectable control which provides Eric <b>802</b> an option to retrieve and view additional information pertaining to Predicted Rating <b>812</b>.
0109To illustrate, Control <b>814</b> can include text (e.g., “Why”, “Additional Details”, “Reason”, “Expand”, “Explore”, etc.) indicating that Control <b>814</b> is operable to generate a further inquiry for additional information or details pertaining to Predicted Rating <b>812</b>, such as prediction and/or rating information and description, conditions associated with Predicted Rating <b>812</b>, contributing factors associated with Predicted Rating <b>812</b>, network information, call information, status information, etc. If Eric <b>802</b> selects Control <b>814</b>, Graphical User Interface <b>810</b> can retrieve and/or display additional information about Predicted Rating <b>812</b>. For example, in response to a selection of Control <b>814</b>, Graphical User Interface <b>810</b> can present Current Network Conditions View <b>820</b> which can provide information and data about network conditions detected.
0110Current Network Conditions View <b>820</b> can include Description <b>822</b> explaining one or more factors (e.g., negative and/or positive) that contributed to Predicted Rating <b>812</b>. In this example, Description <b>822</b> indicates “Keith is currently on a network with unusually high latency. This may impact the call quality”. Thus, Description <b>822</b> describes to Eric <b>802</b> a network condition that can impact the quality of the call and consequently the rating(s) in Predicted Rating <b>812</b>. Graphical User Interface <b>810</b> can also present Respective Rating Information <b>824</b>, <b>826</b> for the users in the call, which in this example include Eric <b>802</b> and Keith <b>804</b>. To illustrate, Graphical User Interface <b>810</b> can present Respective Rating Information <b>824</b> conveying a predicted rating or experience for Keith <b>802</b> based on metrics affecting the call experience for Keith <b>802</b> (e.g., network conditions, device status, etc.), and Respective Rating Information <b>826</b> conveying a predicted rating or experience for Eric <b>802</b> based on metrics affecting the call experience for Eric <b>802</b>.
0111As previously mentioned, Control <b>816</b> can allow Eric <b>802</b> to proceed with the call. When Eric <b>802</b> selects Control <b>816</b>, the communication device associated with Eric <b>802</b> can generate and send Invite <b>838</b> to Server <b>820</b>, which can relay it to the communication device associated with Keith <b>804</b>. The communication device associated with Keith <b>804</b> can generate and send Response <b>840</b> to Invite <b>838</b>. Response <b>840</b> can include, for example, a Trying, Ringing, and/or OK. The communication device associated with Eric <b>802</b> can send Response <b>840</b> to Server <b>820</b>, which can relay to the communication device associated with Eric <b>802</b>. Based on Invite <b>838</b> and Response <b>840</b>, Eric <b>802</b> and Keith <b>804</b> can establish Media Stream Session <b>842</b> through Server <b>820</b>.
0112At the end of Media Stream Session <b>842</b>, the session can be terminated through a Bye and OK message. For example, the communication device associated with Keith <b>804</b> can send Bye Message <b>844</b> when Keith <b>804</b> disconnects from Media Stream Session <b>842</b>. Server <b>820</b> can receive Bye Message <b>844</b> and relay it to the communication device associated with Eric <b>802</b>.
0113Eric <b>802</b> and Keith <b>804</b> can respectively provide Subjective MOS <b>846</b>, <b>848</b> to Server <b>820</b>, which Server <b>820</b> can use as Input <b>850</b> for updating its machine learning model to account for actual MOS data from Eric <b>802</b> and Keith <b>804</b>. Subjective MOS <b>846</b>, <b>848</b> can include actual subjective ratings from Eric <b>802</b> and Keith <b>804</b>. Server <b>820</b> can use Subjective MOS <b>846</b>, <b>848</b> with its machine learning model to generate a personalized model (e.g., Personalized Model <b>632</b>) and/or personalized predicted rating and expectation data for a call.
0114<figref idref="DRAWINGS">FIG. 9</figref> shows an example SDP for machine learning call quality predictions. Extended SDP <b>902</b> can include Session Description Fields <b>904</b> which can include attributes and corresponding values for describing the session. Session Description Fields <b>904</b> can include one or more fields from standard SDP, such as protocol version, originator, session name, session information, email address or contact information, connection information, time information, media information, and other session attributes.
0115Extended SDP <b>902</b> can also include Extended SDP Fields <b>906</b> which can include other attributes and corresponding values that can be used for machine learning. For example, Extended SDP Fields <b>906</b> can include bandwidth attributes, network attributes, protocol attributes, user agent and operating system attributes, device attributes, and so forth. In some cases, one or more of the attributes from Extended SDP Fields <b>906</b> can be used to construct feature vectors for machine learning modeling and predictions as previously described.
0116The fields and attributes illustrated in Extended SDP <b>902</b> are non-limiting examples for explanation purposes and can vary in other configurations or examples. For example, other examples can include more or less fields or attributes in Session Description Fields <b>904</b> and/or Extended SDP <b>902</b>.
0117<figref idref="DRAWINGS">FIG. 10</figref> shows an example method for forecasting expected call quality. At step <b>1002</b>, the method can involve generating a plurality of scenarios (e.g., scenarios <b>732</b>) from a plurality of network metrics (e.g., Telemetrics <b>614</b>). For example, a conference system (e.g., Server <b>620</b>) can collect network metrics from users and input the metrics into a clustering algorithm (e.g., Clustering Algorithm <b>622</b>) to generate scenarios based on the metrics.
0118At step <b>1004</b>, the method can involve retrieving ratings from a plurality of users. The ratings can include actual, subjective ratings (e.g., Subjective Ratings <b>624</b>) provided by users for previous calls. The ratings can include subjective MOS scores (e.g., Past MOS <b>710</b>) from users, representing the users' call quality ratings and experiences.
0119At step <b>1006</b>, the method can involve assigning the ratings to the plurality of scenarios. For example, the ratings from each user can be mapped to specific scenarios to generate a matrix of ratings and scenarios for users. The mappings can represent profiles for the users.
0120At step <b>1008</b>, the method can involve filtering one or more users based on similarities of the ratings for the plurality of scenarios with one or more current network metrics. In some cases, a matrix of ratings and scenarios generated at step <b>1006</b> can be provided as an input to a collaborative filtering algorithm (e.g., Collaborative Filtering Algorithm <b>626</b>) which can be used to identify users having similar rating behaviors or statistics which can be used to make predictions for a particular user with rating similarities.
0121At step <b>1010</b>, the method can involve forecasting an expected call quality based on the ratings of the one or more filtered users. As previously mentioned, the one or more filtered users can represent users having similar rating behaviors. Thus, the ratings from the one or more filtered users can be applied to predict a rating for the particular user. While different users may experience a same call quality in different ways, users with similar experiences may provide a better approximation for a particular user having similar rating behaviors. Thus, the one or more filtered users can be used to better approximate a predicted call quality experience for the particular user.
0122The forecasting method can implement machine learning models for generating rating predictions for users. In some cases, a combination of a generic model and a personalized model can be used to generate a generalized prediction as well as a personalized prediction. The generic model and generalized prediction can be based on metrics and/or ratings from other users in the system, and the personalized model and personalized prediction can further take into account actual ratings from a particular user. The machine learning algorithms can be trained using telemetrics and machine learning algorithms, such as regression algorithms.
0123In some cases, forecasts can be updated and fine-tuned based on data collected from a particular user as well as other users. For example, the ratings of the one or more filtered users can be compared with the ratings from a particular user initiating the expected call, and the forecast can be updated based on the comparison.
0124Disclosed is a system and method for enabling Collaboration Service Providers to dynamically predict the occurrence of poor media quality based on historical network metrics and real-time media statistics of an active session and then proactively taking actions, such as notifying the relevant end-users such as meeting host, increasing jitter buffer at the endpoint to adapt to future network impairments etc. Some examples can include geo-location of the user, time of day, week of day, client type, connectivity type, host clusters as input features and packet loss, jitter and delay as output labels.
0125As shown in <figref idref="DRAWINGS">FIG. 2</figref>, enterprise users can collaborate with internal and external users (e.g., using virtual meetings). For example, enterprise users in different locations, such as, RTP Building A <b>230</b>, Home <b>232</b> and SJ Building A <b>234</b>, can collaborate (via a virtual meeting) from different geographical locations (e.g., home, office road, air) using a variety of electronic devices (e.g., smartphone, laptop, tablet, desktop, etc.) across different connectivity channels (e.g., wired, wireless, cellular, etc.).
0126<figref idref="DRAWINGS">FIG. 11</figref> illustrates a map of an example collaboration (e.g., virtual meeting) as one user travels from a First Location <b>1102</b> (e.g., Elwood Primary School) to a Second Location <b>1104</b> (e.g., Melbourne Airport). In some examples, the user drops their child off at school (e.g., at First Location <b>1102</b>), on a daily basis, and then travels to work (e.g., to Second Location <b>1104</b>). In this example, a Route <b>1106</b> from the First Location <b>1102</b> (e.g., Elwood Primary School) to the Second Location <b>1104</b> (e.g., Melbourne Airport) consists of three roads (e.g., Alt 1, M1, M79). An Alternative Routes <b>1108</b>, <b>1112</b> can use three different roads (e.g., Alt 1, M1, M2).
0127<figref idref="DRAWINGS">FIG. 12</figref> illustrates an example historical data set <b>1200</b> used to predict quality of a collaboration based on future geolocation (e.g., of the user), meeting time, day of the week, device type, connectivity type and host cluster. In some examples, the historical data set can be collected from crowd sourcing methods, such as, network metrics from a plurality of user at different times and locations. Within a predetermined period of time before (and after) a collaboration is initiated, real-time data sets can be used to determine current quality of the collaboration. The real-time data sets can be periodically collected and stored in historical data set <b>1200</b>. The combined data sets (e.g., historical and real-time) can be used to determine the possibility of media quality degradation (e.g., of the collaboration) when the user's geolocation changes (e.g., along a route, from one road to another, Alt 1 to M1, M1 to M79, etc.).
0128For example, when a user travels from M1 to M79, the collaboration application (e.g., virtual meeting) can inform collaboration service provider <b>250</b> of a change in geolocation. For example, Cluster<b>1</b><b>212</b> can be informed of a geolocation change between M1 and M79. In response, Cluster<b>1</b><b>212</b> can use the current session details of the collaboration (e.g., time, day, device type, connectivity type, host cluster) and geolocation to predict potential degradation of the collaboration (e.g., packet loss, delay and jitter). In some examples, historical data sets can also be used. The prediction can be used to determine whether there will be a poor media quality occurrence for the geolocation and the future geolocation (e.g., along the navigation path). When the prediction is of poor media quality at the geolocation or future geolocation, Cluster<b>1</b><b>212</b> can Notify <b>1110</b> the user (and other participants of the collaboration) as shown in <figref idref="DRAWINGS">FIG. 11</figref>. In some examples, in response of a prediction of poor media quality network parameters can be adjusted to prevent future impairments (e.g., increasing jitter buffer, etc.). In some examples, the cluster can offer Alternate Routes <b>1108</b>, <b>1112</b> to avoid poor media quality.
0129<figref idref="DRAWINGS">FIG. 13</figref> illustrates a method for predicting media quality. At step <b>1302</b>, a collaboration cloud can receive an indication a client device want to initiate a collaboration. For example, one or more users of client devices can have a virtual meeting at a specific time via an application (e.g., WebEx, Google Hangouts, etc.).
0130At step <b>1304</b>, a current location and destination of the client device is determined (e.g., at the collaboration cloud). For example, the user can be dropping their child off at Elwood Primary School (e.g., Current Location, <b>1102</b>) and traveling to work at Melbourne Airport (e.g., destination, <b>1104</b>). At step <b>1306</b>, the collaboration cloud can retrieve historical metric data and real-time network metrics. For example, the historical metric data can be retrieved from a cloud storage service, as shown in <figref idref="DRAWINGS">FIG. 12</figref>. The real-time network metric data can be received through one or more statistical network monitoring tools. At step <b>1308</b>, the collaboration cloud can determine potential degradation in media quality for the collaboration based on the historical metric data and the real-time network metric data. For example, the historical metric data can be used to determine historical network issues (e.g., outages, congestion, jitter, latency, bandwidth, etc.) at the current location or destination at similar times and days (e.g., rush hour, no cellular towers, etc.), for example. The real-time network metric data can be used to determine current network issues at the current location and destination (e.g., outages, congestions, jitter, latency, and bandwidth etc.). The combination of the two (or in some examples one of the two) can be used to determine if the user will potentially have degraded media quality during the collaboration.
0131At step <b>1310</b>, when potential degradation is determined, the collaboration cloud can notify the user (as shown in <figref idref="DRAWINGS">FIG. 11</figref>). In some examples, the collaboration cloud can recommend an alternate route without potential degradation (e.g., <b>1108</b>, <b>1112</b>).
0132<figref idref="DRAWINGS">FIG. 14</figref> illustrates an example network device <b>1400</b> suitable for routing, switching, forwarding, traffic management, and load balancing. Network device <b>1400</b> can be, for example, a router, a switch, a controller, a server, a gateway, and/or any other L2 and/or L3 device.
0133Network device <b>1400</b> can include a master central processing unit (CPU) <b>1404</b>, interfaces <b>1402</b>, and a bus <b>1410</b> (e.g., a PCI bus). When acting under the control of appropriate software or firmware, the CPU <b>1404</b> is responsible for executing packet management, error detection, load balancing operations, and/or routing functions. The CPU <b>1404</b> can accomplish all these functions under the control of software including an operating system and any appropriate applications software. CPU <b>1404</b> may include one or more processors <b>1408</b>, such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor <b>1408</b> is specially designed hardware for controlling the operations of network device <b>1400</b>. In a specific embodiment, a memory <b>1461</b> (such as non-volatile RAM and/or ROM) also forms part of CPU <b>1404</b>. However, there are many different ways in which memory could be coupled to the system.
0134The interfaces <b>1402</b> are typically provided as interface cards (sometimes referred to as “line cards”). Generally, they control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device <b>1400</b>. Among the interfaces that may be provided are Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided such as fast token ring interfaces, wireless interfaces, Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces and the like. Generally, these interfaces may include ports appropriate for communication with the appropriate media. In some cases, they may also include an independent processor and, in some instances, volatile RAM. The independent processors may control such communications intensive tasks as packet switching, media control and management. By providing separate processors for the communications intensive tasks, these interfaces allow the master microprocessor <b>1404</b> to efficiently perform routing computations, network diagnostics, security functions, etc.
0135Although the system shown in <figref idref="DRAWINGS">FIG. 14</figref> is one specific network device of the present invention, it is by no means the only network device architecture on which the present invention can be implemented. For example, an architecture having a single processor that handles communications as well as routing computations, etc. is often used. Further, other types of interfaces and media could also be used with the router.
0136Regardless of the network device's configuration, it may employ one or more memories or memory modules (including memory <b>1461</b>) configured to store program instructions for the general-purpose network operations and mechanisms for roaming, route optimization and routing functions described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example. The memory or memories may also be configured to store tables such as mobility binding, registration, and association tables, etc.
0137For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.
0138<figref idref="DRAWINGS">FIG. 15</figref> shows an example of computing system <b>1500</b> in which the components of the system are in communication with each other using connection <b>1505</b>. Connection <b>1505</b> can be a physical connection via a bus, or a direct connection into processor <b>1510</b>, such as in a chipset architecture. Connection <b>1505</b> can also be a virtual connection, networked connection, or logical connection.
0139In some embodiments computing system <b>1500</b> is a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple datacenters, a peer network, etc. In some embodiments, one or more of the described system components represents many such components each performing some or all of the function for which the component is described. In some embodiments, the components can be physical or virtual devices.
0140Example system <b>1500</b> includes at least one processing unit (CPU or processor) <b>1510</b> and connection <b>1505</b> that couples various system components including system memory <b>1515</b>, such as read only memory (ROM) and random access memory (RAM) to processor <b>1510</b>. Computing system <b>1500</b> can include a cache of high-speed memory connected directly with, in close proximity to, or integrated as part of processor <b>1510</b>.
0141Processor <b>1510</b> can include any general purpose processor and a hardware service or software service, such as services <b>1532</b>, <b>1534</b>, and <b>1536</b> stored in storage device <b>1530</b>, configured to control processor <b>1510</b> as well as a special-purpose processor where software instructions are incorporated into the actual processor design. Processor <b>1510</b> may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.
0142To enable user interaction, computing system <b>1500</b> includes an input device <b>1545</b>, which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Computing system <b>1500</b> can also include output device <b>1535</b>, which can be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input/output to communicate with computing system <b>1500</b>. Computing system <b>1500</b> can include communications interface <b>1540</b>, which can generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
0143Storage device <b>1530</b> can be a non-volatile memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs), read only memory (ROM), and/or some combination of these devices.
0144The storage device <b>1530</b> can include software services, servers, services, etc., that when the code that defines such software is executed by the processor <b>1510</b>, it causes the system to perform a function. In some embodiments, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor <b>1510</b>, connection <b>1505</b>, output device <b>1535</b>, etc., to carry out the function.
0145Any of the steps, operations, functions, or processes described herein may be performed or implemented by a combination of hardware and software services or services, alone or in combination with other devices. In some embodiments, a service can be software that resides in memory of a client device and/or one or more servers of a content management system and perform one or more functions when a processor executes the software associated with the service. In some embodiments, a service is a program, or a collection of programs that carry out a specific function. In some embodiments, a service can be considered a server. The memory can be a non-transitory computer-readable medium.
0146In some embodiments the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
0147Methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, solid state memory devices, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on.
0148Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include servers, laptops, smart phones, small form factor personal computers, personal digital assistants, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.
0149The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.
0150Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.
Contents6
17 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2025286794A1 | Cited by | United States of America | Search report |
| US10797805B1 | Cited by | United States of America | Search report |
| US12647333B2 | Cited by | United States of America | Search report |
| EP0959585A2 | Cites | European Patent Office (EPO) | Applicant |
| CN101055561A | Cites | China | Applicant |
| CN101076060A | Cites | China | Applicant |
| CN101729528B | Cites | China | Applicant |
| CN102004671B | Cites | China | Applicant |
| CN102572370A | Cites | China | Applicant |
| CN102655583A | Cites | China | Applicant |
| CN102938834A | Cites | China | Applicant |
| CN103141086A | Cites | China | Applicant |
| US2001030661A1 | Cites | United States of America | Applicant |
| US2002018051A1 | Cites | United States of America | Applicant |
| US2002061001A1 | Cites | United States of America | Applicant |
| US2002076003A1 | Cites | United States of America | Applicant |
| US2002078153A1 | Cites | United States of America | Applicant |
| US2002101505A1 | Cites | United States of America | Applicant |
| US2002105904A1 | Cites | United States of America | Applicant |
| US2002116154A1 | Cites | United States of America | Applicant |
| US2002140736A1 | Cites | United States of America | Applicant |
| US2002159386A1 | Cites | United States of America | Applicant |
| US2002188522A1 | Cites | United States of America | Applicant |
| US2003005149A1 | Cites | United States of America | Applicant |
| US2003028647A1 | Cites | United States of America | Applicant |
| US2003046421A1 | Cites | United States of America | Applicant |
| US2003061340A1 | Cites | United States of America | Applicant |
| US2003067912A1 | Cites | United States of America | Applicant |
| US2003068087A1 | Cites | United States of America | Applicant |
| US2003091052A1 | Cites | United States of America | Applicant |
| US2003117992A1 | Cites | United States of America | Applicant |
| US2003133417A1 | Cites | United States of America | Applicant |
| US2003154250A1 | Cites | United States of America | Applicant |
| US2003174826A1 | Cites | United States of America | Applicant |
| US2003187800A1 | Cites | United States of America | Applicant |
| US2003197739A1 | Cites | United States of America | Applicant |
| US2003225549A1 | Cites | United States of America | Applicant |
| US2003227423A1 | Cites | United States of America | Applicant |
| US2004039909A1 | Cites | United States of America | Applicant |
| US2004054885A1 | Cites | United States of America | Applicant |
| US2004098456A1 | Cites | United States of America | Applicant |
| US2004153563A1 | Cites | United States of America | Applicant |
| US2004210637A1 | Cites | United States of America | Applicant |
| US2004218525A1 | Cites | United States of America | Applicant |
| US2004253991A1 | Cites | United States of America | Applicant |
| US2004267938A1 | Cites | United States of America | Applicant |
| US2005014490A1 | Cites | United States of America | Applicant |
| US2005031136A1 | Cites | United States of America | Applicant |
| US2005048916A1 | Cites | United States of America | Applicant |
| US2005055405A1 | Cites | United States of America | Applicant |
| US2005055412A1 | Cites | United States of America | Applicant |
| US2005085243A1 | Cites | United States of America | Applicant |
| US2005099492A1 | Cites | United States of America | Applicant |
| US2005108328A1 | Cites | United States of America | Applicant |
| US2005111487A1 | Cites | United States of America | Applicant |
| US2005114532A1 | Cites | United States of America | Applicant |
| US2005131774A1 | Cites | United States of America | Applicant |
| US2005143979A1 | Cites | United States of America | Applicant |
| US2005175208A1 | Cites | United States of America | Applicant |
| US2005215229A1 | Cites | United States of America | Applicant |
| US2005226511A1 | Cites | United States of America | Applicant |
| US2005231588A1 | Cites | United States of America | Applicant |
| US2005286711A1 | Cites | United States of America | Applicant |
| US2006004911A1 | Cites | United States of America | Applicant |
| US2006020697A1 | Cites | United States of America | Applicant |
| US2006026255A1 | Cites | United States of America | Applicant |
| US2006072471A1 | Cites | United States of America | Applicant |
| US2006083193A1 | Cites | United States of America | Applicant |
| US2006083305A1 | Cites | United States of America | Applicant |
| US2006084471A1 | Cites | United States of America | Applicant |
| US2006116146A1 | Cites | United States of America | Applicant |
| US2006133404A1 | Cites | United States of America | Applicant |
| US2006164552A1 | Cites | United States of America | Applicant |
| US2006224430A1 | Cites | United States of America | Applicant |
| US2006250987A1 | Cites | United States of America | Applicant |
| US2006271624A1 | Cites | United States of America | Applicant |
| US2006274647A1 | Cites | United States of America | Applicant |
| US2007005752A1 | Cites | United States of America | Applicant |
| US2007021973A1 | Cites | United States of America | Applicant |
| US2007025576A1 | Cites | United States of America | Applicant |
| US2007041366A1 | Cites | United States of America | Applicant |
| US2007047707A1 | Cites | United States of America | Applicant |
| US2007058842A1 | Cites | United States of America | Applicant |
| US2007067387A1 | Cites | United States of America | Applicant |
| US2007071030A1 | Cites | United States of America | Applicant |
| US2007083650A1 | Cites | United States of America | Applicant |
| US2007091831A1 | Cites | United States of America | Applicant |
| US2007100986A1 | Cites | United States of America | Applicant |
| US2007106747A1 | Cites | United States of America | Applicant |
| US2007116225A1 | Cites | United States of America | Applicant |
| US2007120966A1 | Cites | United States of America | Applicant |
| US2007139626A1 | Cites | United States of America | Applicant |
| US2007149249A1 | Cites | United States of America | Applicant |
| US2007150453A1 | Cites | United States of America | Applicant |
| US2007168444A1 | Cites | United States of America | Applicant |
| US2007192065A1 | Cites | United States of America | Applicant |
| US2007198637A1 | Cites | United States of America | Applicant |
| US2007208590A1 | Cites | United States of America | Applicant |
| US2007248244A1 | Cites | United States of America | Applicant |
| US2007250567A1 | Cites | United States of America | Applicant |
4 members in 1 office
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 201715659356 | United States of America | A |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US10084665B1 | United States of America | B1 | |
| US10091348B1 | United States of America | B1 | |
| US2019037002A1 | United States of America | A1 | |
| US10225313B2This record | United States of America | B2 |
53 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Email NotificationEML_NTR | EML_NTR | |
| Letter Accepting Correction of Inventorship Under Rule 1.48R48ACLT | R48ACLT | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 10225313
- Application
- 15663658
Titles
- English
- Media quality prediction for collaboration services
Patent term adjustment
- Applicant delay
- −1 day
- Net adjustment
- 0 days
Classification
- CPC, 27
- H04L65/80
- H04L65/403
- H04L41/06
- H04L65/102
- H04L41/22
- H04L43/0829
- H04L43/08
- H04L43/10
- H04L47/82
- H04L41/147
- H04L65/1023
- H04M7/0027
- H04M7/1285
- H04L67/18
- H04M2203/556
- H04L67/36
- H04L43/0852
- H04M7/006
- H04M3/2218
- H04M3/2227
- H04L47/83
- H04L41/5009
- H04L43/04
- H04L43/062
- H04L67/52
- H04L67/75
- H04Q2213/13514
- IPC, 12
- H04M1 24
- H04M3 08
- H04M3 22
- H04L29 06
- H04L12 24
- H04L29 08
- H04L12 911
- H04M7 00
- H04L12 26
- H04L41 0896
- H04L41 147
- H04L43 08