System and method for managing concurrent events

Information

  • Patent Grant
  • 11093305
  • Patent Number
    11,093,305
  • Date Filed
    Tuesday, September 24, 2019
    4 years ago
  • Date Issued
    Tuesday, August 17, 2021
    2 years ago
Abstract
A system and method that includes receiving an API request to a type of API resource; retrieving an API concurrency value for the API request; determining a comparison status associated with a comparison of the API concurrency value to a concurrency threshold; if the comparison status is within the concurrency threshold, transmitting the API request to an API processing resource; if the comparison status indicates the concurrency threshold is not satisfied, impeding processing of the API request; accounting for an increase in the API concurrency value if the API request is transmitted to an API processing resource; and accounting for a decrease in the API concurrency value at a time associated with the API processing resource completing processing of the API request.
Description
TECHNICAL FIELD

This invention relates generally to the telephony field, and more specifically to a new and useful system and method for managing concurrent events in the telephony field.


BACKGROUND

In recent years, Innovations in the web application and Voice over Internet Protocol (VOIP) have brought about considerable changes to the capabilities offered through traditional phone services. New services and platforms have been introduced that integrate telephone voice conversations with website interaction, which has required an increase in the amount of data being transmitted between various servers and applications. Likewise, along with the increase in data traffic there is an increase in the data available to system users and developers. Where traditional telecommunications modalities might have made this data available sporadically, only via paper transactions, and/or for additional fees, users and developers in cloud-based communications expect to have access to large data amounts at their fingertips. Unfortunately, certain types of data transmissions have a tendency to crowd out and/or slow down the actual communications pipelines in the system, thus lessening the value of the system and the user/developer experience. In particular, large amounts of concurrent requests from users/developers can impede data traffic and/or communications between servers and applications. Thus, there is a need in the telephony field to create a new and useful system and method for managing concurrent events. This invention provides such a new and useful system and method.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 is a schematic representation of a system of a preferred embodiment;



FIG. 2 is a detailed schematic representation of an alternative embodiment of a system of a preferred embodiment;



FIG. 3 is a communications schematic of a method of a preferred embodiment;



FIG. 4 is a schematic representation of a method for rate limiting requests of a preferred embodiment;



FIG. 5 is an exemplary schematic representation of monitoring and regulating requests by accounts;



FIG. 6 is an exemplary schematic representation of monitoring and regulating requests by API resource type;



FIG. 7 is an exemplary schematic representation of monitoring and regulating requests based on API resource type and account;



FIG. 8 is an exemplary graphic representation comparing types of rate values and rate limits;



FIG. 9 is a communications schematic of a variation of a method of a preferred embodiment that includes processing a reaction for a delay comparison status;



FIG. 10 is a communications schematic of a variation of a method of a preferred embodiment that includes transitioning traffic to a low-priority service resource; and



FIG. 11 is a communications schematic of a variation of a method of a preferred embodiment that includes accounting for an API request timeout.





DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.


1. System for Managing Concurrent Events


As shown in FIG. 1, a system 10 of the preferred embodiment can include a controller 16, an account database 18, and an application programming interface (API) cluster 20. The preferred system 10 can further accommodate developers 12 and users 14, all of whom can interact though the API cluster 20 in performing one or more tasks or functions within a cloud-based telephony platform of the type described in issued U.S. Pat. No. 8,306,021, application Ser. No. 12/417,630, filed on 2 Apr. 2009, and entitled “System and Method for Processing Telephony Sessions,” which is incorporated herein in its entirety by this reference. The system 10 preferably functions to monitor, partition, allocate, distribute, and/or manage the use of dedicated API resources within the API cluster 20 in order to ensure an efficient and desirable experience for developers 12 and users 14. The system may be particularly configured to monitor and regulate API resource requests based on the account associated with the request and/or based on the resource type/categorization. In such configuration, the system may function to prevent excessive requests of one account from aversely impacting the requests of another account, and similarly the system may additionally or alternatively function to prevent requests to one resource type from adversely impacting requests to another resource type. The system is preferably implemented for request concurrency monitoring and regulation, but the system may alternatively be employed for other suitable request rate monitoring or regulation such as request initiation rate (e.g., requests per second/minute/hour/day), conclusion rate, simultaneous/bulk request rate, or any suitable rate. Preferably, the system 10 performs these functions in real time or near real time such that API resources are optimized by the demands requested of each user account.


As shown in FIG. 1, the preferred system 10 can include a controller 16 connected to the account database 18 and the API cluster 20. The controller 16 preferably functions to manage all interactions between the account database 18 and the API cluster 20. Preferably, the controller 16 can organize, sort, maintain, gather, and/or distribute data records for accounts holders in the account database 18 including any concurrency limits associated with an account. Preferably, each account includes a rate limit (e.g., a concurrency limit), which can be individualized or customized for each account based upon user request, user history, user demand, or any other suitable metric. Alternatively, each account can include a default rate limit established upon entry into the system 10, wherein the default rate limit can be altered or adjusted based on any suitable metric noted above. Alternatively, the rate values and/or rate limits may be stored in alternative databases or stored in any suitable manner. In one variation, there is a rate value database and a rate limit database. The rate value may store calculated values, which can be updated at anytime. Alternatively, the rate value database may be used for tracking API requests. For example, the rate value database or any suitable database may store a log of requests. When used to measure concurrency, a record is preferably created to account for the initiation of the processing of the request (e.g., when the request is delivered to a service resource). Additionally, the record is preferably removed or marked as ended when the request has completed (e.g., after a service resource has finished processing or after/when an API response is sent).


In a preferred mode of operation, each account makes a request (e.g., an http request) in using the system 10. The requests can be time stamped, cataloged, categorized, and/or otherwise captured by the request limiter 22 as described below. Preferably, each actual request made by each account is tracked by an API service 24, the request limiter 22 and/or the controller 16 in order to ascertain the API resource allocation on a per account basis for any suitable time period, including instantaneous or substantially instantaneous snapshots of the resource consumption in the API cluster 20. Alternatively or additionally, each account can have a maximum rate value as well as a current rate value recorded and stored at predetermined intervals such that during each interval, the greatest concurrent users of the API resources can be determined and managed. Preferably, the current rate value is compared with the maximum rate value for each account during the predetermined interval, i.e., in a two-entry dataset including a current value and a max value. Alternatively, the request limiter 22 can be configured to keep a running of an explicit count of requests for each user, which can either be maintained indefinitely or reset at predetermined intervals as described herein. In response to an account exceeding its rate value in the predetermined value, the preferred request limiter 22 adjusts or alters the API resources dedicated to the user account as described below. The preferred predetermined interval can include any suitable interval, either static or dynamic in nature. In one example configuration of the system 10, the predetermined interval is approximately six seconds, such that the monitoring of API resource requests and/or usage is substantially instantaneous and historical resource usage by a user account does not prejudice its current resource allocation.


As shown in FIG. 1, the API cluster 20 can include a plurality of API services 24 connected and/or operatively coupled to the request limiter 22. Preferably, the each API service 24 can include its own request limiter 22 service located and/or operating locally on the respective API service 24. Alternatively, a single request limiter 22 or distinct request limiter 22 can function to serve a group or plurality of API services 24 within the API cluster 20 as shown in FIG. 2. An API service 24 may be configured for performing a series of processes that may include receiving a request, determining if the account has permissions to perform the request, checking the rate value against a rate limit, optionally transmitting the request to an appropriate service resource, responding to the request and/or any other suitable process. Preferably, the request limiter 22 functions with each API service 24 to monitor and/or adjust the consumption of API resources by large accounts. In a telephony platform of the type incorporated by reference above, only certain types of requests of the servers will take a substantial amount of time and thus impact the relative usage of concurrent API resources. For example, if a user makes a request for call records or other large data sets, the API service 24 must dedicate a significant amount of resources to handle the data traffic. As such, the preferred request limiter 22 can be configured to alert the API service 24 to any burdensome usage so that the API service 24 can transition traffic of the high-usage accounts into less crowded (and perhaps slower) data channels, as the resources allocated to those accounts is both data intensive and not particularly time sensitive as compared to the normal operations of the telephony platform. Additionally or alternatively, in response to excessive concurrent usage of the API by an account, the request limiter 22 and/or API service 24 can be further configured to transmit an error message to the account, slow down requests from the account to the API, and/or send other notifications and/or alerts to the account to inform the user of the excess and any action that the user might take to remedy its consumption.


2. Method for Managing Concurrent Events


As shown in FIG. 3, a method of a preferred embodiment can include receiving API request S110, retrieving an API rate value S120, determining a comparison status associated with a comparison of the API concurrency value to a concurrency limit S130, processing a reaction to the API request according to the comparison status S140, and accounting for changes in the API usage rate S150. The method functions to monitor, partition, allocate, distribute, and/or manage the use of dedicated API resources and services. More preferably, the method functions to facilitate a multitenant ecosystem of a telephony platform such as the one incorporated by reference above. Preferably, the method performs these functions in real time or near real time such that API resources are monitored and regulated for each user account. As a first exemplary application of a method of a preferred embodiment, the method may be applied to balance the use of API resources between accounts. As a second exemplary application of a method of a preferred embodiment, the method may be applied to balance the use of specific API resources, such that one type of API request may be rate limited different from a second type of API request. For example, API REST requests directed at a “/SMS/Messages” resource type may be rate limited independently from API REST requests directed at a “/Calls” resource type. The method is preferably used in rate limiting based on request concurrency—requests that are actively serviced, processed, handled and/or in progress. Aligning the API request rate with API concurrency rate preferably accounts for variable, extended, or otherwise challenging API request latency issues. Herein, the method may be described as being applied to API concurrency rates, but the method may alternatively or additionally be used in rate limiting based on request initiation rate (e.g., requests per second/minute/hour/day), conclusion rate, simultaneous/bulk request rate, or any suitable activity rate.


Step S110, which includes receiving an API request, functions to receive account activity relating to API resource usage. Receiving an API request preferably includes recording, recognizing, and/or receiving activity associated with each account (e.g., user or developer) associated with the telephony platform. The API request is preferably received at an API service or server. API requests initiated by a user account, application or other source are preferably routed through the API platform to the API service. A plurality of API services or servers preferably work in parallel and/or in cooperation to service a plurality of requests. Each API request is preferably processed by a request limiter and then, based on the results of the rate monitoring process, the API request can be processed by appropriate services, rejected, delayed or handled in any suitable manner as shown in FIG. 4. Example account activity can include requests (such as http requests, data requests, session requests, application requests and the like) made by a user account of the API. Preferably, account activity can include at least any type of account action or request that utilizes API resources within the telephony platform. Preferably, account activity can include a number of requests made relative to a maximum number of requests available to the account. The maximum request value can be customized for each account or set to a default value or any suitable combination thereof. As noted above, preferably each account can have a maximum concurrency value as well as a current concurrency value recorded and stored at predetermined intervals such that during each interval, the greatest concurrent users of the API resources can be determined and managed. The API request is preferably composed of content that may include headers, authentication section, and/or a body. The various parts of the request contents may specify IP addresses, authentication parameters, URI's, API instructions, data, parameters, and/or any suitable content type. The contents of the API request are preferably inspected and at least a sub-set of the contents may be used to classify the API request. The classification of an API request may be used in retrieving/generating rate values and limits associated with API requests of that type or classification. For example, API requests are preferably classified by the account making the request. The authentication parameters (e.g., an account secure identifier and an auth token) may be used to uniquely determine rate values and/or rate limits. As described herein the requests may alternatively be classified by the request/resource type, combinations of request content parameters, or any suitable aspect.


In one implementation of a preferred embodiment, the API service routes the API request to a request limiter. Alternatively, operation of the request limiter may be integrated into the API request processing of an API server or service. As noted above, a preferred configuration of the system can include multiple API services each served by a single request limiter. Alternatively, each API service can have its own local request limiter, in which case sending a request from the API to the request limiter can include a local intra-API request, notification or process flow.


The API requests preferably specify an API resource. The API resource preferably relates to an API resource type, category, class, or sub-class. API requests of a similar API resource type can have similar patterns in platform resource usage, latency, and other processing factors. The API requests additionally specify or are uniquely associated with an account and/or sub-account. Preferably, the API request can include an account number, name, or identifier of the account (or sub-account) seeking the API resources. The request can include any other suitable identifying information such as a time stamp of the account request(s) for more precisely identifying each individual request of each account. The preferred request of block S102 can include any other suitable information (API identification and available API resources, for example) usable by a request limiter in performing its functions.


Step S120, which includes retrieving an API rate value, functions to compare, calculate, compute, access, generate, and/or check a rate value. The rate value may function as a request-servicing measure of the current status/state of processing requests. The API rate value is preferably a concurrency value, but may alternatively be any suitable rate value. In a first variation, the concurrency value is preferably a concurrency value for the account associated with the API request. As shown in FIG. 5, requests may then be segmented, monitored and regulated based on the accounts to which the requests belong. Similarly, the concurrency value may be for sub-account, for specific endpoints of an account or sub-account (e.g., phone number, short code, SIP address, and the like), or request properties (e.g., location, carrier, modality, etc). In another variation, the concurrency value can be a concurrency value for API requests of a particular API resource type or category. As shown in FIG. 6, requests may be segmented, monitored, and regulated based on the resource type, categorization, or request parameters. The API rate value may alternatively be assigned to a specific account for a particular API resource type or category. As shown in FIG. 7, requests may be segmented, monitored and regulated based on resource type and associated account. For example, an account rate is preferably maintained independently for API requests to “/Calls” resources made by Account A, to “/SMS/Messages” resources made by Account A, and to “/Calls” resources made by Account B. Alternatively, the concurrency value may be global or multi-account rate value. The rate value may have any suitable resolution and segmentation for request monitoring. The rate value may additionally or alternatively relate/reflect a request initiation rate (e.g., requests per second/minute/hour/day), conclusion rate, simultaneous/bulk request rate, or any suitable rate.


The rate value is preferably accessed or calculated from records stored in a rate database (or databases). The rate value is preferably stored, maintained, and identified in the database by key values relating to the granularity/resolution of rate monitoring (e.g., globally, per account, per resource, per account usage of a resource, etc.), Preferably, the contents of a request are used in accessing values or data from which a rate value can be or has been calculated. The contents of a request preferably include a header, an authentication portion, and a body. The contents can preferably specify IP addresses, authentication parameters such as account secure identifiers and auth tokens (which can be used to identify accounts), data, URI's indicating targeted API resources, and/or any suitable data. In one variation, parameters from the contents of the request are used to access request-processing data/measurements in a database, and a rate value calculated. For example, after inspecting and identifying account information for who is making the request, the a concurrency value that indicated the number of active requests currently being processed can be obtained from a database by querying data for that account. A database may store a plurality of request history records from which a rate value is calculated. The request history preferably tracks the requests that are being processed but have not completed (i.e., actively processed requests). Preferably, the concurrency value computation can include either computing an absolute concurrency value, such as a number of account requests, or a relative concurrency value measuring a difference between a current value and a maximum value. The rate value may alternatively be stored or pre-calculated. Alternatively, retrieving a rate value can include calculating a rate value. Additionally, the rate value may be based on a request-servicing measure of previous requests. In other words, the rate value may reflect the value as it is before allowing the request to be processed. Alternatively, the rate value may be an aggregate value. In an aggregate value, the predicted/expected request-servicing measure (e.g., cost) that would be contributed by the single API request is added to the request-servicing measure of at least a sub-set of previous requests as shown in FIG. 8. The sub-set of previous requests preferably includes requests currently being processed, but may alternatively include requests in a time window or selected in any suitable manner.


An alternative or additional aspect of retrieving an API rate value, the rate value may be based at least in part on the available resources used to process requests. For example, the servers, the capacity of the media processors, data storage resources, and other resources used to service the API requests may impact the rate value (and/or optionally the rate limit). Such resources may additionally be measured based on classification of the API request. For example, the resources used to process one type of API request may be measured differently from resources dedicated to processing a second type of API.


Step S130, which includes determining a comparison status associated with a comparison of the API rate value to a rate limit, functions to compare the retrieved rate value to a threshold during a predetermined interval or window. Preferably, the rate value and the rate limit are maintained with the same association/granularity. That is to say, if the rate value is maintained for each account, the rate limit is similarly assigned for each account. The rate limit may alternatively be a default value, based on the resource type or classification, based on the account, or assigned in any suitable manner. The rate limit may additionally be dynamic. For example, the rate limit may adjust based on the current (e.g., real-time), recent, and/or past API usage. In another exemplary scenario, the rate limit may adjust based on the capacity of the API service resources. For example, if a cluster of services goes down, then the rate limit preferably is lowered to account for the change in processing capacity. In one preferred embodiment, the rate value and the rate limit are stored in a two-entry dataset. Alternatively, the request limiter can maintain a running and explicit count of requests for each user, which can either be maintained indefinitely or reset at predetermined intervals as described herein. As noted above, a suitable interval can be on the order of approximately six seconds, although any other interval or range of intervals is equally applicable to the preferred method.


The comparison status preferably corresponds to defined conditions and corresponding actions. The magnitude of the rate value is preferably compared to a rate limit, and the condition is based on the sign and/or magnitude of the relative values. In one variation, the comparison status is decided by determining whether the account has and/or is exceeding a concurrency limit. In one preferred embodiment, possible comparison statuses preferably include proceed, cancel, and/or delay conditions. The proceed comparison status preferably indicates that the API usage is within the limits and that the API request should be serviced normally. The cancel comparison status preferably indicates that the API usage is in violation of the API usage (e.g., rate value exceeds the rate limit, too many concurrent API requests, or too many requests made within a time window). API requests that receive a cancel status will preferably be dropped, canceled, sent an error message, or fail in any suitable manner. The delay comparison status preferably indicates that the API request can be processed at a later time. The delay comparison status may be used in addition or as an alternative to the cancel comparison status. The API request with a delay comparison status may be queued, added to a wait list, scheduled for subsequent processing, or managed in any suitable way such that the API request is not processed immediately. A delayed API request may be subsequently processed by the request limiter as shown in FIG. 9 (such that it may be delayed a plurality of times) or processed by an API service. A plurality of rate values and rate limits may additionally be used in determining a comparison status. For example, the rate values and various rate limits for different segments/granularity of API resource usage could be used for more complex conditional cases. For example, a comparison status may be dependent on the relative values of an account resource rate value, the account resource rate limit, the rate value for the whole system, and a global rate limit.


Step S140, which includes processing a reaction to the API request according to the comparison status, functions to treat the API activity according to the comparison status. Processing a reaction preferably includes transmitting the API request to an API processing resource if the comparison is within the rate limit (i.e., a proceed comparison status). In other words, an API request is preferably processed normally if the activity is within normal operation limits. The API processing resource is preferably a service for processing the API request. The API processing resource may additionally or alternatively include a plurality of components. The API processing resource may be a server, a database, a media processor, and/or any suitable resource used in processing an API request. The API processing resources used by a given API request may be determined by the API resource, API method call, or other content of the API request. Processing a reaction can additionally include impeding processing of the API request if the comparison indicates the concurrency limit is not satisfied. Impeding processing may include, dropping the request, throwing an error message (and replying to API request with an error response), sending a notification, charging or billing at a different rate for the API request over the limit, deprioritizing the API request, processing the API request differently, delaying the API request or processing, or impeding the API request processing in any suitable manner. In one variation of the preferred method, impeding API request processing can include transitioning traffic of the high-usage accounts to low-priority service resources as shown in FIG. 10. The resources allocated to those accounts may be both data intensive and not particularly time sensitive as compared to the normal operations of the telephony platform. The low-priority service resources are preferably less crowded (and perhaps slower) data channels, but may be resources specialized for a particular task, resources with better or worse performance, or any suitable type of alternative processing resource. Additionally or alternatively, in response to excessive concurrent usage of the API by an account, impeding processing may include transmitting an error message to the account, slowing down requests from the account to the API, and/or sending other notifications and/or alerts to the account to inform the user of the excess and any action that the user might take to remedy its consumption. Processing a reaction can additionally or alternatively include delaying the API request if the comparison is a delay status. In some variations, an API request may be delayed as a form of impeding an API request. If an individual API request has been delayed over a set number of times, the API request may be delivered an error response or otherwise be dropped.


Step S150, which includes accounting for changes in the API usage rate, functions to measure, track, and record the API usage so that the API values are maintained. As mentioned above, the API usage is preferably accounted for based on accounts and/or API resource type, but may additionally or alternatively be tracked based on sub-accounts, endpoints, request properties, and/or any suitable parameter for tracking. In the variation where the method is applied to concurrency rate monitoring and regulating, the initiation and conclusion of API requests are accounted for such that a request limiter has access to information specifying the number of current/active API requests. Accounting for changes in the API usage rate are preferably triggered based on a conditional state. The conditional state is preferably based at least in part on the comparison status. Accounting for changes in the API usage rate preferably includes accounting for an increase in the API concurrency value if an API request is transmitted to a service for processing. In other words, when a service resource processing an API request or when the API request has been sent for processing, a record is generated to account for the in progress nature of the API request. In one variation, the request is logged with a start time, the account information, the API resource(s), and/or any suitable information that may facilitate tracking the API request. Accounting for changes in the API usage rate can additionally include accounting for a decrease in the API concurrency value when an API request is substantially completed. In one variation, the resource servicing the request will forward response data to the API service. The API service will preferably prompt or initiate accounting for the conclusion of that API request, and the API service will transmit an API response with the requested data or information. In a variation, where the rate value is API initiation rate, only the number of API requests made within a set time window may be tracked. The rate value may alternatively be tracked in any suitable manner. Additional conditions may additionally or alternatively be used in combination or separately from the comparison status conditions described above. For example, the condition may only be triggered for a random sampling of API requests or if the number of API requests is above a threshold or if the capacity of the API servicing infrastructure is within a particular threshold.


Additionally, accounting for the termination of an API request may occur after a designated timeout. An API server and/or a service resource may fail resulting in an API request to have been initiated but never terminated. The request limiter preferably accounts for a predicted API request processing error by marking a record of the request as concluded, as shown in FIG. 11. The timeout preferably enables tracked API requests to be marked as terminated instead of, for example, remaining as a currently processing API request indefinitely. Preferably, the timeout interval can be any suitable length and can be related to the duration of the predetermined interval described above. More preferably, the time out interval is approximately the same duration as the predetermined interval described above, such that the concurrency values for each account being examined are being reset at approximately the same time as the request limiter is abandoning attempts to transmit any prior and outdated concurrence values to the API. Alternatively, the timeout interval duration can be any other suitable value, whether related or unrelated to any other timing mechanism described herein. Accordingly, each and every block in the preferred method can be performed in parallel by any suitable number of API services interacting with one or more request limiters.


As described above, a method of a preferred embodiment may be applied to a multitenant platform. In such an implementation, at least two accounts make a plurality of API requests. Each API request preferably has the comparison status checked, is processed according the comparison status, and the API request is tracked and monitored. In the variation where the rate value and/or rate limit is based on API concurrency of an account, an API request made by a first account preferably has a comparison status based on the API concurrency of that first account, and an API request made by a second account preferably has a comparison status based on the API concurrency of the second account. Multitenant API usage may additionally be segmented and monitored based on API resource type as described above. In the variation where the rate value and/or rate limit is based on API resource type concurrency of an accounts, an API request made by a first account preferably has a comparison status based on a concurrency value that indicates usage of the first API resource type by the first account, and an API request made by a second account preferably has a comparison status based on a concurrency value that indicates usage of the second API resource type by the second account.


In a preferred embodiment, the method is applied to a multitenant telecommunications API platform. A multitenant platform is preferably characterized by multiple entities (typically embodied through accounts or sub-accounts) accessing and using a service where the resources to support such usage is shared between the entities. The API requests are preferably rate monitored and regulated based on concurrency values and limits. The API requests can additionally be rate monitored and regulated based on account and API resource type. In one exemplary implementation, API requests to API resources for sending messages (e.g., SMS, MMS, or application messages), making outbound voice or video calls (e.g., PSTN, SIP, or video), accessing voice transcripts, accessing message transcripts, accessing video or audio recordings, accessing account information, altering in-session voice or video calls, and/or purchasing or provisioning endpoints (e.g., phone numbers, short codes, SIP addresses etc.) are individually tracked per account. The API resource types may alternatively be monitored in any suitable grouping or categorization of the above mentioned and/or alternative API resources.


The system and methods of the preferred embodiment and variations thereof can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions are preferably executed by computer-executable components preferably integrated with the controller 16, the account database 18, the API cluster 20, any one or more API service 24, and/or the request limiter 22. The computer-readable medium can be stored on any suitable computer-readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device. The computer-executable component is preferably a general or application specific processor, but any suitable dedicated hardware or hardware/firmware combination device can alternatively or additionally execute the instructions.


Although omitted for conciseness, the preferred embodiments include every combination and permutation of the various system components and various method processes.


As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the preferred embodiments of the invention without departing from the scope of this invention defined in the following claims.

Claims
  • 1. A method comprising: receiving an application programming interface (API) request associated with a first account;determining a first API concurrency value that indicates a number of API requests associated with the first account that are being concurrently processed by an API processing resource, the API processing resource concurrently processing at least one API request associated with a second account;determining that the first API concurrency value meets a first API concurrency threshold associated with the first account, the first API concurrency threshold indicating a maximum number of API requests associated with the first account that are permitted to be concurrently processed by the API processing resource, wherein the first API concurrency value is different than a second API concurrency value associated with the second account, the second API concurrency threshold indicating a maximum number of API requests associated with the second account that are permitted to be concurrently processed by the API processing resource; andin response to determining that the first API concurrency value meets the first API concurrency threshold, delaying processing of the API request.
  • 2. The method of claim 1, further comprising: after delaying processing of the API request, providing the API request to the API processing resource to be processed.
  • 3. The method of claim 2, further comprising: determining a second API concurrency value that indicates an updated number of API requests associated with the first account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account, wherein providing the API request to the API processing resource to be processed is performed in response to determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account.
  • 4. The method of claim 1, further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value transgresses is less than the second API concurrency threshold, providing the second API request to the API processing resource to be processed.
  • 5. The method of claim 1, further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value transgresses meets the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value transgresses meets the first API concurrency threshold, delaying processing of the second API request.
  • 6. The method of claim 1, wherein the API request is a request for communication data for the first account.
  • 7. The method of claim 6, wherein the communication data includes telephony call records associated with the first account.
  • 8. A system comprising: one or more computer processors; andone or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the system to perform operations comprising:receiving an application programming interface (API) request associated with a first account;determining a first API concurrency value that indicates a number of API requests associated with the first account that are being concurrently processed by an API processing resource, the API processing resource concurrently processing at least one API request associated with a second account;determining that the first API concurrency value transgresses meets a first API concurrency threshold associated with the first account, the first API concurrency threshold indicating a maximum number of API requests associated with the first account that are permitted to be concurrently processed by the API processing resource, wherein the first API concurrency value is different than a second API concurrency value associated with the second account, the second API concurrency threshold indicating a maximum number of API requests associated with the second account that are permitted to be concurrently processed by the API processing resource; andin response to determining that the first API concurrency value meets the first API concurrency threshold, delaying processing of the API request.
  • 9. The system of claim 8, the operations further comprising: after delaying processing of the API request, providing the API request to the API processing resource to be processed.
  • 10. The system of claim 9, the operations further comprising: determining a second API concurrency value that indicates an updated number of API requests associated with the first account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account, wherein providing the API request to the API processing resource to be processed is performed in response to determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account.
  • 11. The system of claim 8, the operations further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value is less than the second API concurrency threshold, providing the second API request to the API processing resource to be processed.
  • 12. The system of claim 8, the operations further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value transgresses meets the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value transgresses meets the first API concurrency threshold, delaying processing of the second API request.
  • 13. The system of claim 8, wherein the API request is a request for communication data for the first account.
  • 14. The system of claim 13, wherein the communication data includes telephony call records associated with the first account.
  • 15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices, cause the one or more computing devices to perform operations comprising: receiving an application programming interface (API) request associated with a first account;determining a first API concurrency value that indicates a number of API requests associated with the first account that are being concurrently processed by an API processing resource, the API processing resource concurrently processing at least one API request associated with a second account;determining that the first API concurrency value transgresses meets a first API concurrency threshold associated with the first account, the first API concurrency threshold indicating a maximum number of API requests associated with the first account that are permitted to be concurrently processed by the API processing resource, wherein the first API concurrency value is different than a second API concurrency value associated with the second account, the second API concurrency threshold indicating a maximum number of API requests associated with the second account that are permitted to be concurrently processed by the API processing resource; andin response to determining that the first API concurrency value transgresses meets the first API concurrency threshold, delaying processing of the API request.
  • 16. The non-transitory computer-readable medium of claim 15, the operations further comprising: after delaying processing of the API request, providing the API request to the API processing resource to be processed.
  • 17. The non-transitory computer-readable medium of claim 16, the operations further comprising: determining a second API concurrency value that indicates an updated number of API requests associated with the first account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account, wherein providing the API request to the API processing resource to be processed is performed in response to determining that the second API concurrency value is less than the first API concurrency threshold associated with the first account.
  • 18. The non-transitory computer-readable medium of claim 15, the operations further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value is less than the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value transgresses is less than the second API concurrency threshold, providing the second API request to the API processing resource to be processed.
  • 19. The non-transitory computer-readable medium of claim 15, the operations further comprising: receiving a second API request associated with the second account;determining a second API concurrency value that indicates a number of API requests associated with the second account that are being concurrently processed by the API processing resource;determining that the second API concurrency value meets the second API concurrency threshold associated with the second account; andin response to determining that the second API concurrency value meets the first API concurrency threshold, delaying processing of the second API request.
  • 20. The non-transitory computer-readable medium of claim 15, wherein the API request is a request for communication data for the first account, the communication data including telephony call records associated with the first account.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 15/291,386, filed 12 Oct. 2016, which is a continuation of U.S. application Ser. No. 13/764,594, filed 11 Feb. 2013 which claims the benefit of U.S. Provisional Application Ser. No. 61/597,239, filed on 10 Feb. 2012, all of which are incorporated in their entireties by reference.

US Referenced Citations (783)
Number Name Date Kind
5274700 Gechter et al. Dec 1993 A
5526416 Dezonno et al. Jun 1996 A
5581608 Jreij et al. Dec 1996 A
5598457 Foladare et al. Jan 1997 A
5867495 Elliott et al. Feb 1999 A
5934181 Adamczewski Aug 1999 A
5978465 Corduroy et al. Nov 1999 A
6026440 Shrader et al. Feb 2000 A
6034946 Roginsky et al. Mar 2000 A
6094681 Shaffer et al. Jul 2000 A
6138143 Gigliotti et al. Oct 2000 A
6185565 Meubus et al. Feb 2001 B1
6192123 Grunsted et al. Feb 2001 B1
6206564 Adamczewski Mar 2001 B1
6223287 Douglas et al. Apr 2001 B1
6232979 Shochet May 2001 B1
6269336 Ladd et al. Jul 2001 B1
6317137 Rosasco Nov 2001 B1
6363065 Thornton et al. Mar 2002 B1
6373836 Deryugin et al. Apr 2002 B1
6425012 Trovato et al. Jul 2002 B1
6426995 Kim et al. Jul 2002 B1
6430175 Echols et al. Aug 2002 B1
6434528 Sanders Aug 2002 B1
6445694 Swartz Sep 2002 B1
6445776 Shank et al. Sep 2002 B1
6459913 Cloutier Oct 2002 B2
6463414 Su et al. Oct 2002 B1
6493558 Bernhart et al. Dec 2002 B1
6496500 Nance et al. Dec 2002 B2
6501739 Cohen Dec 2002 B1
6501832 Saylor et al. Dec 2002 B1
6507875 Mellen-Garnett et al. Jan 2003 B1
6571245 Huang et al. May 2003 B2
6574216 Farris et al. Jun 2003 B1
6577721 Vainio et al. Jun 2003 B1
6600736 Ball et al. Jul 2003 B1
6606596 Zirngibl et al. Aug 2003 B1
6614783 Sonesh et al. Sep 2003 B1
6625258 Ram et al. Sep 2003 B1
6625576 Kochanski et al. Sep 2003 B2
6636504 Albers et al. Oct 2003 B1
6662231 Drosset et al. Dec 2003 B1
6704785 Koo et al. Mar 2004 B1
6707889 Saylor et al. Mar 2004 B1
6711129 Bauer et al. Mar 2004 B1
6711249 Weissman et al. Mar 2004 B2
6738738 Henton May 2004 B2
6757365 Bogard Jun 2004 B1
6765997 Zirngibl et al. Jul 2004 B1
6768788 Langseth et al. Jul 2004 B1
6771955 Imura et al. Aug 2004 B2
6778653 Kailas et al. Aug 2004 B1
6785266 Swartz Aug 2004 B2
6788768 Saylor et al. Sep 2004 B1
6792086 Saylor et al. Sep 2004 B1
6792093 Barak et al. Sep 2004 B2
6798867 Zirngibl et al. Sep 2004 B1
6807529 Johnson et al. Oct 2004 B2
6807574 Partovi et al. Oct 2004 B1
6819667 Brusilovsky et al. Nov 2004 B1
6820260 Flockhart et al. Nov 2004 B1
6829334 Zirngibl et al. Dec 2004 B1
6831966 Tegan et al. Dec 2004 B1
6834265 Balasuriya Dec 2004 B2
6836537 Zirngibl et al. Dec 2004 B1
6842767 Partovi et al. Jan 2005 B1
6850603 Eberle et al. Feb 2005 B1
6870830 Schuster et al. Mar 2005 B1
6873952 Bailey et al. Mar 2005 B1
6874084 Dobner et al. Mar 2005 B1
6885737 Gao et al. Apr 2005 B1
6888929 Saylor et al. May 2005 B1
6895084 Saylor et al. May 2005 B1
6898567 Balasuriya May 2005 B2
6912581 Johnson et al. Jun 2005 B2
6922411 Taylor Jul 2005 B1
6928469 Duursma et al. Aug 2005 B1
6931405 El-shimi et al. Aug 2005 B2
6937699 Schuster et al. Aug 2005 B1
6940953 Eberle et al. Sep 2005 B1
6941268 Porter et al. Sep 2005 B2
6947417 Laursen et al. Sep 2005 B2
6947988 Saleh et al. Sep 2005 B1
6961330 Cattan et al. Nov 2005 B1
6964012 Zirngibl et al. Nov 2005 B1
6970915 Partovi et al. Nov 2005 B1
6977992 Zirngibl et al. Dec 2005 B2
6981041 Araujo et al. Dec 2005 B2
6985862 Strom et al. Jan 2006 B2
6999576 Sacra Feb 2006 B2
7003464 Ferrans et al. Feb 2006 B2
7006606 Cohen et al. Feb 2006 B1
7010586 Allavarpu et al. Mar 2006 B1
7020685 Chen et al. Mar 2006 B1
7039165 Saylor et al. May 2006 B1
7058042 Bontempi et al. Jun 2006 B2
7058181 Wright et al. Jun 2006 B2
7062709 Cheung Jun 2006 B2
7065637 Nanja Jun 2006 B1
7076037 Gonen et al. Jul 2006 B1
7076428 Anastasakos et al. Jul 2006 B2
7089310 Ellerman et al. Aug 2006 B1
7099442 Da Palma et al. Aug 2006 B2
7103003 Brueckheimer et al. Sep 2006 B2
7103171 Annadata et al. Sep 2006 B1
7106844 Holland Sep 2006 B1
7111163 Haney Sep 2006 B1
7136932 Schneider Nov 2006 B1
7140004 Kunins et al. Nov 2006 B1
7143039 Stifelman et al. Nov 2006 B1
7197331 Anastasakos et al. Mar 2007 B2
7197461 Eberle et al. Mar 2007 B1
7197462 Takagi et al. Mar 2007 B2
7197544 Wang et al. Mar 2007 B2
D540074 Peters Apr 2007 S
7225232 Elberse May 2007 B2
7227849 Rasanen Jun 2007 B1
7245611 Narasimhan et al. Jul 2007 B2
7260208 Cavalcanti Aug 2007 B2
7266181 Zirngibl et al. Sep 2007 B1
7269557 Bailey et al. Sep 2007 B1
7272212 Eberle et al. Sep 2007 B2
7272564 Phillips et al. Sep 2007 B2
7277851 Henton Oct 2007 B1
7283515 Fowler Oct 2007 B2
7283519 Girard Oct 2007 B2
7286521 Jackson et al. Oct 2007 B1
7287248 Adeeb Oct 2007 B1
7289453 Riedel et al. Oct 2007 B2
7296739 Mo et al. Nov 2007 B1
7298732 Cho Nov 2007 B2
7298834 Homeier et al. Nov 2007 B1
7308085 Weissman Dec 2007 B2
7308408 Stifelman et al. Dec 2007 B1
7324633 Gao et al. Jan 2008 B2
7324942 Mahowald et al. Jan 2008 B1
7328263 Sadjadi Feb 2008 B1
7330463 Bradd et al. Feb 2008 B1
7330890 Partovi et al. Feb 2008 B1
7340040 Saylor et al. Mar 2008 B1
7349714 Lee et al. Mar 2008 B2
7369865 Gabriel et al. May 2008 B2
7370329 Kumar et al. May 2008 B2
7373660 Guichard et al. May 2008 B1
7376223 Taylor et al. May 2008 B2
7376586 Partovi et al. May 2008 B1
7376733 Connelly et al. May 2008 B2
7376740 Porter et al. May 2008 B1
7412525 Cafarella et al. Aug 2008 B2
7418090 Reding et al. Aug 2008 B2
7428302 Zirngibl et al. Sep 2008 B2
7440898 Eberle et al. Oct 2008 B1
7447299 Partovi et al. Nov 2008 B1
7454459 Kapoor et al. Nov 2008 B1
7457249 Baldwin et al. Nov 2008 B2
7457397 Saylor et al. Nov 2008 B1
7473872 Takimoto Jan 2009 B2
7486780 Zirngibl et al. Feb 2009 B2
7496054 Taylor Feb 2009 B2
7496188 Saha et al. Feb 2009 B2
7496651 Joshi Feb 2009 B1
7500249 Kampe et al. Mar 2009 B2
7505951 Thompson et al. Mar 2009 B2
7519359 Chiarulli et al. Apr 2009 B2
7522711 Stein et al. Apr 2009 B1
7536454 Balasuriya May 2009 B2
7542761 Sarkar Jun 2009 B2
7552054 Stifelman et al. Jun 2009 B1
7571226 Partovi et al. Aug 2009 B1
7606868 Le et al. Oct 2009 B1
7613287 Stifelman et al. Nov 2009 B1
7623648 Oppenheim et al. Nov 2009 B1
7630900 Strom Dec 2009 B1
7631310 Henzinger Dec 2009 B1
7644000 Strom Jan 2010 B1
7657433 Chang Feb 2010 B1
7657434 Thompson et al. Feb 2010 B2
7668157 Weintraub et al. Feb 2010 B2
7672275 Yajnik et al. Mar 2010 B2
7672295 Andhare et al. Mar 2010 B1
7675857 Chesson Mar 2010 B1
7676221 Roundtree et al. Mar 2010 B2
7685280 Berry et al. Mar 2010 B2
7685298 Day et al. Mar 2010 B2
7715547 Ibbotson et al. May 2010 B2
7716293 Kasuga et al. May 2010 B2
7742499 Erskine et al. Jun 2010 B1
7779065 Gupta et al. Aug 2010 B2
7809125 Brunson et al. Oct 2010 B2
7809791 Schwartz et al. Oct 2010 B2
7875836 Imura et al. Jan 2011 B2
7882253 Pardo-Castellote et al. Feb 2011 B2
7920866 Bosch et al. Apr 2011 B2
7926099 Chakravarty et al. Apr 2011 B1
7929562 Petrovykh Apr 2011 B2
7936867 Hill et al. May 2011 B1
7949111 Harlow et al. May 2011 B2
7962644 Ezerzer et al. Jun 2011 B1
7979555 Rothstein et al. Jul 2011 B2
7992120 Wang et al. Aug 2011 B1
8023425 Raleigh Sep 2011 B2
8024785 Andress et al. Sep 2011 B2
8045689 Provenzale et al. Oct 2011 B2
8046378 Zhuge et al. Oct 2011 B1
8046823 Begen et al. Oct 2011 B1
8069096 Ballaro et al. Nov 2011 B1
8078483 Hirose et al. Dec 2011 B1
8081744 Sylvain Dec 2011 B2
8081958 Soderstrom et al. Dec 2011 B2
8103725 Gupta et al. Jan 2012 B2
8126128 Hicks, III et al. Feb 2012 B1
8126129 Mcguire Feb 2012 B1
8130750 Hester Mar 2012 B2
8130917 Helbling et al. Mar 2012 B2
8139730 Da Palma et al. Mar 2012 B2
8145212 Lopresti et al. Mar 2012 B2
8149716 Ramanathan et al. Apr 2012 B2
8150918 Edelman et al. Apr 2012 B1
8156213 Deng et al. Apr 2012 B1
8165116 Ku et al. Apr 2012 B2
8166185 Samuel et al. Apr 2012 B2
8169936 Koren et al. May 2012 B2
8175007 Jain et al. May 2012 B2
8185619 Maiocco et al. May 2012 B1
8196133 Kakumani et al. Jun 2012 B2
8204479 Vendrow et al. Jun 2012 B2
8214868 Hamilton et al. Jul 2012 B2
8218457 Malhotra et al. Jul 2012 B2
8230107 Tantawi et al. Jul 2012 B2
8233611 Zettner Jul 2012 B1
8238533 Blackwell et al. Aug 2012 B2
8243889 Taylor et al. Aug 2012 B2
8249552 Gailloux et al. Aug 2012 B1
8266327 Kumar et al. Sep 2012 B2
8295272 Boni et al. Oct 2012 B2
8301117 Keast et al. Oct 2012 B2
8306021 Lawson et al. Nov 2012 B2
8315198 Corneille et al. Nov 2012 B2
8315369 Lawson et al. Nov 2012 B2
8315620 Williamson et al. Nov 2012 B1
8319816 Swanson et al. Nov 2012 B1
8326805 Arous et al. Dec 2012 B1
8335852 Hokimoto Dec 2012 B2
8346630 Mckeown Jan 2013 B1
8355394 Taylor et al. Jan 2013 B2
8411669 Chen et al. Apr 2013 B2
8413247 Hudis et al. Apr 2013 B2
8417817 Jacobs Apr 2013 B1
8429827 Wetzel Apr 2013 B1
8438315 Tao et al. May 2013 B1
8462670 Chien Jun 2013 B2
8467502 Sureka et al. Jun 2013 B2
8477926 Jasper et al. Jul 2013 B2
8503639 Reding et al. Aug 2013 B2
8503650 Reding et al. Aug 2013 B2
8504818 Rao et al. Aug 2013 B2
8509068 Begall et al. Aug 2013 B2
8532686 Schmidt et al. Sep 2013 B2
8533857 Tuchman et al. Sep 2013 B2
8542805 Agranovsky et al. Sep 2013 B2
8543665 Ansari et al. Sep 2013 B2
8547962 Ramachandran et al. Oct 2013 B2
8549047 Beechuk et al. Oct 2013 B2
8565117 Hilt et al. Oct 2013 B2
8572391 Golan et al. Oct 2013 B2
8576712 Sabat et al. Nov 2013 B2
8577803 Chatterjee et al. Nov 2013 B2
8582450 Robesky Nov 2013 B1
8582737 Lawson et al. Nov 2013 B2
8594626 Woodson et al. Nov 2013 B1
8601136 Fahlgren et al. Dec 2013 B1
8611338 Lawson et al. Dec 2013 B2
8613102 Nath Dec 2013 B2
8621598 Lai et al. Dec 2013 B2
8649268 Lawson et al. Feb 2014 B2
8656452 Li et al. Feb 2014 B2
8667056 Proulx Mar 2014 B1
8675493 Buddhikot et al. Mar 2014 B2
8681630 Gibson Mar 2014 B1
8688147 Nguyen et al. Apr 2014 B2
8695077 Gerhard et al. Apr 2014 B1
8713693 Shanabrook et al. Apr 2014 B2
8728656 Takahashi et al. May 2014 B2
8751801 Harris et al. Jun 2014 B2
8755376 Lawson et al. Jun 2014 B2
8767925 Sureka et al. Jul 2014 B2
8781975 Bennett et al. Jul 2014 B2
8797920 Parreira Aug 2014 B2
8806024 Toba et al. Aug 2014 B1
8819133 Wang Aug 2014 B2
8825746 Ravichandran et al. Sep 2014 B2
8832286 Purpura Sep 2014 B2
8837465 Lawson et al. Sep 2014 B2
8838707 Lawson et al. Sep 2014 B2
8843596 Goel et al. Sep 2014 B2
8855271 Brock et al. Oct 2014 B2
8861510 Fritz Oct 2014 B1
8879547 Maes Nov 2014 B2
8903938 Vermeulen et al. Dec 2014 B2
8918848 Sharma et al. Dec 2014 B2
8924489 Bleau et al. Dec 2014 B2
8938053 Cooke et al. Jan 2015 B2
8948356 Nowack et al. Feb 2015 B2
8953453 Xiao et al. Feb 2015 B1
8954591 Ganesan et al. Feb 2015 B2
8964726 Lawson et al. Feb 2015 B2
8990610 Bostick et al. Mar 2015 B2
9014664 Kim et al. Apr 2015 B2
9015702 Bhat Apr 2015 B2
9031223 Smith et al. May 2015 B2
9071677 Aggarwal et al. Jun 2015 B2
9137127 Nowack et al. Sep 2015 B2
9141682 Adoc, Jr. et al. Sep 2015 B1
9161296 Parsons et al. Oct 2015 B2
9177007 Winters et al. Nov 2015 B2
9204281 Ramprasad et al. Dec 2015 B2
9210275 Lawson et al. Dec 2015 B2
9306982 Lawson et al. Apr 2016 B2
9307094 Nowack et al. Apr 2016 B2
9325624 Malatack et al. Apr 2016 B2
9338190 Eng et al. May 2016 B2
9344573 Wolthuis et al. May 2016 B2
9356916 Kravitz et al. May 2016 B2
9378337 Kuhr Jun 2016 B2
9398622 Lawson et al. Jul 2016 B2
9456008 Lawson et al. Sep 2016 B2
9456339 Hildner et al. Sep 2016 B1
9460169 Hinton et al. Oct 2016 B2
9495227 Cooke et al. Nov 2016 B2
9596274 Lawson et al. Mar 2017 B2
9628624 Wolthuis et al. Apr 2017 B2
9632875 Raichstein et al. Apr 2017 B2
9634995 Binder Apr 2017 B2
10467064 Cooke et al. Nov 2019 B2
20010038624 Greenberg et al. Nov 2001 A1
20010043684 Guedalia et al. Nov 2001 A1
20010051996 Cooper et al. Dec 2001 A1
20020006124 Jimenez et al. Jan 2002 A1
20020006125 Josse et al. Jan 2002 A1
20020006193 Rodenbusch et al. Jan 2002 A1
20020025819 Cetusic et al. Feb 2002 A1
20020057777 Saito et al. May 2002 A1
20020064267 Martin et al. May 2002 A1
20020067823 Walker et al. Jun 2002 A1
20020077833 Arons et al. Jun 2002 A1
20020126813 Partovi et al. Sep 2002 A1
20020133587 Ensel et al. Sep 2002 A1
20020136391 Armstrong Sep 2002 A1
20020165957 Devoe et al. Nov 2002 A1
20020176378 Hamilton et al. Nov 2002 A1
20020184361 Eden Dec 2002 A1
20020198941 Gavrilescu et al. Dec 2002 A1
20030006137 Wei et al. Jan 2003 A1
20030012356 Zino et al. Jan 2003 A1
20030014665 Anderson et al. Jan 2003 A1
20030018830 Chen et al. Jan 2003 A1
20030023672 Vaysman Jan 2003 A1
20030026426 Wright et al. Feb 2003 A1
20030046366 Pardikar et al. Mar 2003 A1
20030051037 Sundaram et al. Mar 2003 A1
20030058884 Kallner et al. Mar 2003 A1
20030059020 Meyerson et al. Mar 2003 A1
20030060188 Gidron et al. Mar 2003 A1
20030061317 Brown et al. Mar 2003 A1
20030061404 Atwal et al. Mar 2003 A1
20030088421 Maes et al. May 2003 A1
20030097330 Hillmer et al. May 2003 A1
20030097447 Johnston May 2003 A1
20030097639 Niyogi et al. May 2003 A1
20030103620 Brown et al. Jun 2003 A1
20030123640 Roelle et al. Jul 2003 A1
20030149721 Alfonso-nogueiro et al. Aug 2003 A1
20030162506 Toshimitsu et al. Aug 2003 A1
20030195950 Huang et al. Oct 2003 A1
20030195990 Greenblat et al. Oct 2003 A1
20030196076 Zabarski et al. Oct 2003 A1
20030204616 Billhartz et al. Oct 2003 A1
20030211842 Kempf et al. Nov 2003 A1
20030231647 Petrovykh Dec 2003 A1
20030233276 Pearlman et al. Dec 2003 A1
20040008635 Nelson et al. Jan 2004 A1
20040011690 Marfino et al. Jan 2004 A1
20040044953 Watkins et al. Mar 2004 A1
20040052349 Creamer et al. Mar 2004 A1
20040071275 Bowater et al. Apr 2004 A1
20040101122 Da Palma et al. May 2004 A1
20040102182 Reith et al. May 2004 A1
20040117788 Karaoguz et al. Jun 2004 A1
20040136324 Steinberg et al. Jul 2004 A1
20040165569 Sweatman et al. Aug 2004 A1
20040172482 Weissman et al. Sep 2004 A1
20040199572 Hunt et al. Oct 2004 A1
20040205101 Radhakrishnan Oct 2004 A1
20040205689 Ellens et al. Oct 2004 A1
20040213400 Golitsin et al. Oct 2004 A1
20040216058 Chavers et al. Oct 2004 A1
20040218748 Fisher Nov 2004 A1
20040228469 Andrews et al. Nov 2004 A1
20040236696 Aoki et al. Nov 2004 A1
20040240649 Goel Dec 2004 A1
20050005109 Castaldi et al. Jan 2005 A1
20050005200 Matena et al. Jan 2005 A1
20050010483 Ling Jan 2005 A1
20050015505 Kruis et al. Jan 2005 A1
20050021626 Prajapat et al. Jan 2005 A1
20050025303 Hostetler, Jr. Feb 2005 A1
20050038772 Colrain Feb 2005 A1
20050043952 Sharma et al. Feb 2005 A1
20050047579 Mansour Mar 2005 A1
20050060411 Coulombe et al. Mar 2005 A1
20050083907 Fishler Apr 2005 A1
20050091336 Dehamer et al. Apr 2005 A1
20050091572 Gavrilescu et al. Apr 2005 A1
20050108770 Karaoguz et al. May 2005 A1
20050125251 Berger et al. Jun 2005 A1
20050125739 Thompson et al. Jun 2005 A1
20050128961 Miloslavsky et al. Jun 2005 A1
20050135578 Ress et al. Jun 2005 A1
20050141500 Bhandari et al. Jun 2005 A1
20050147088 Bao et al. Jul 2005 A1
20050177635 Schmidt et al. Aug 2005 A1
20050181835 Lau et al. Aug 2005 A1
20050198292 Duursma et al. Sep 2005 A1
20050228680 Malik Oct 2005 A1
20050238153 Chevalier Oct 2005 A1
20050240659 Taylor Oct 2005 A1
20050243977 Creamer et al. Nov 2005 A1
20050246176 Creamer et al. Nov 2005 A1
20050289222 Sahim Dec 2005 A1
20060008065 Longman et al. Jan 2006 A1
20060008073 Yoshizawa et al. Jan 2006 A1
20060008256 Khedouri et al. Jan 2006 A1
20060015467 Morken et al. Jan 2006 A1
20060021004 Moran et al. Jan 2006 A1
20060023676 Whitmore et al. Feb 2006 A1
20060047666 Bedi et al. Mar 2006 A1
20060067506 Flockhart et al. Mar 2006 A1
20060080415 Tu Apr 2006 A1
20060098624 Morgan et al. May 2006 A1
20060129638 Deakin Jun 2006 A1
20060143007 Koh et al. Jun 2006 A1
20060146792 Ramachandran et al. Jul 2006 A1
20060146802 Baldwin et al. Jul 2006 A1
20060168334 Potti et al. Jul 2006 A1
20060203979 Jennings Sep 2006 A1
20060209695 Archer, Jr. et al. Sep 2006 A1
20060212865 Vincent et al. Sep 2006 A1
20060215824 Mitby et al. Sep 2006 A1
20060217823 Hussey Sep 2006 A1
20060217978 Mitby et al. Sep 2006 A1
20060222166 Ramakrishna et al. Oct 2006 A1
20060235715 Abrams et al. Oct 2006 A1
20060256816 Yarlagadda et al. Nov 2006 A1
20060262915 Marascio et al. Nov 2006 A1
20060270386 Yu et al. Nov 2006 A1
20060285489 Francisco et al. Dec 2006 A1
20070002744 Mewhinney et al. Jan 2007 A1
20070036143 Alt et al. Feb 2007 A1
20070038499 Margulies et al. Feb 2007 A1
20070043681 Morgan et al. Feb 2007 A1
20070050306 McQueen Mar 2007 A1
20070064672 Raghav et al. Mar 2007 A1
20070070906 Thakur Mar 2007 A1
20070070980 Phelps et al. Mar 2007 A1
20070071223 Lee et al. Mar 2007 A1
20070074174 Thornton Mar 2007 A1
20070088836 Tai et al. Apr 2007 A1
20070091907 Seshadri et al. Apr 2007 A1
20070107048 Halls et al. May 2007 A1
20070112574 Greene May 2007 A1
20070116191 Bermudez et al. May 2007 A1
20070121651 Casey et al. May 2007 A1
20070127691 Lert Jun 2007 A1
20070127703 Siminoff Jun 2007 A1
20070130260 Weintraub et al. Jun 2007 A1
20070133771 Stifelman et al. Jun 2007 A1
20070147351 Dietrich et al. Jun 2007 A1
20070149166 Turcotte et al. Jun 2007 A1
20070153711 Dykas et al. Jul 2007 A1
20070167170 Fitchett et al. Jul 2007 A1
20070192629 Saito Aug 2007 A1
20070201448 Baird et al. Aug 2007 A1
20070208862 Fox et al. Sep 2007 A1
20070232284 Mason et al. Oct 2007 A1
20070239761 Baio et al. Oct 2007 A1
20070242626 Altberg et al. Oct 2007 A1
20070255828 Paradise Nov 2007 A1
20070265073 Novi et al. Nov 2007 A1
20070286180 Marquette et al. Dec 2007 A1
20070291734 Bhatia et al. Dec 2007 A1
20070291905 Halliday et al. Dec 2007 A1
20070293200 Roundtree et al. Dec 2007 A1
20070295803 Levine et al. Dec 2007 A1
20080005275 Overton et al. Jan 2008 A1
20080025320 Bangalore et al. Jan 2008 A1
20080037715 Prozeniuk et al. Feb 2008 A1
20080037746 Dufrene et al. Feb 2008 A1
20080040484 Yardley Feb 2008 A1
20080049617 Grice et al. Feb 2008 A1
20080052395 Wright et al. Feb 2008 A1
20080091843 Kulkarni Apr 2008 A1
20080101571 Harlow et al. May 2008 A1
20080104348 Kabzinski et al. May 2008 A1
20080120702 Hokimoto May 2008 A1
20080123559 Haviv et al. May 2008 A1
20080134049 Gupta et al. Jun 2008 A1
20080139166 Agarwal et al. Jun 2008 A1
20080146268 Gandhi et al. Jun 2008 A1
20080152101 Griggs Jun 2008 A1
20080154601 Stifelman et al. Jun 2008 A1
20080155029 Helbling et al. Jun 2008 A1
20080162482 Ahern et al. Jul 2008 A1
20080165708 Moore et al. Jul 2008 A1
20080172404 Cohen Jul 2008 A1
20080177883 Hanai et al. Jul 2008 A1
20080192736 Jabri et al. Aug 2008 A1
20080201426 Darcie Aug 2008 A1
20080209050 Li Aug 2008 A1
20080212945 Khedouri et al. Sep 2008 A1
20080222656 Lyman Sep 2008 A1
20080229421 Hudis et al. Sep 2008 A1
20080232574 Baluja et al. Sep 2008 A1
20080235230 Maes Sep 2008 A1
20080256224 Kaji et al. Oct 2008 A1
20080275741 Loeffen Nov 2008 A1
20080307436 Hamilton Dec 2008 A1
20080310599 Purnadi et al. Dec 2008 A1
20080313318 Vermeulen et al. Dec 2008 A1
20080316931 Qiu et al. Dec 2008 A1
20080317222 Griggs et al. Dec 2008 A1
20080317232 Couse et al. Dec 2008 A1
20080317233 Rey et al. Dec 2008 A1
20090046838 Andreasson Feb 2009 A1
20090052437 Taylor et al. Feb 2009 A1
20090052641 Taylor et al. Feb 2009 A1
20090059894 Jackson et al. Mar 2009 A1
20090063502 Coimbatore et al. Mar 2009 A1
20090074159 Goldfarb et al. Mar 2009 A1
20090075684 Cheng et al. Mar 2009 A1
20090083155 Tudor et al. Mar 2009 A1
20090089165 Sweeney Apr 2009 A1
20090089352 Davis et al. Apr 2009 A1
20090089699 Saha et al. Apr 2009 A1
20090093250 Jackson et al. Apr 2009 A1
20090094674 Schwartz et al. Apr 2009 A1
20090125608 Werth et al. May 2009 A1
20090129573 Gavan et al. May 2009 A1
20090136011 Goel May 2009 A1
20090170496 Bourque Jul 2009 A1
20090171659 Pearce et al. Jul 2009 A1
20090171669 Engelsma et al. Jul 2009 A1
20090171752 Galvin et al. Jul 2009 A1
20090182896 Patterson et al. Jul 2009 A1
20090193433 Maes Jul 2009 A1
20090216835 Jain et al. Aug 2009 A1
20090217293 Wolber et al. Aug 2009 A1
20090220057 Waters Sep 2009 A1
20090221310 Chen et al. Sep 2009 A1
20090222341 Belwadi et al. Sep 2009 A1
20090225748 Taylor Sep 2009 A1
20090225763 Forsberg et al. Sep 2009 A1
20090228868 Drukman et al. Sep 2009 A1
20090232289 Drucker et al. Sep 2009 A1
20090234965 Viveganandhan et al. Sep 2009 A1
20090235349 Lai et al. Sep 2009 A1
20090241135 Wong et al. Sep 2009 A1
20090252159 Lawson et al. Oct 2009 A1
20090276771 Nickolov et al. Nov 2009 A1
20090288012 Hertel et al. Nov 2009 A1
20090288165 Qiu et al. Nov 2009 A1
20090300194 Ogasawara Dec 2009 A1
20090316687 Kruppa Dec 2009 A1
20090318112 Vasten Dec 2009 A1
20100027531 Kurashima Feb 2010 A1
20100037204 Lin et al. Feb 2010 A1
20100054142 Moiso et al. Mar 2010 A1
20100070424 Monk Mar 2010 A1
20100071053 Ansari et al. Mar 2010 A1
20100082513 Liu Apr 2010 A1
20100087215 Gu et al. Apr 2010 A1
20100088187 Courtney et al. Apr 2010 A1
20100088698 Krishnamurthy Apr 2010 A1
20100094758 Chamberlain et al. Apr 2010 A1
20100103845 Ulupinar et al. Apr 2010 A1
20100107222 Glasser Apr 2010 A1
20100115041 Hawkins et al. May 2010 A1
20100138501 Clinton et al. Jun 2010 A1
20100142516 Lawson et al. Jun 2010 A1
20100150139 Lawson et al. Jun 2010 A1
20100167689 Sepehri-Nik et al. Jul 2010 A1
20100188979 Thubert et al. Jul 2010 A1
20100191915 Spencer Jul 2010 A1
20100195521 Wanstedt et al. Aug 2010 A1
20100208881 Kawamura Aug 2010 A1
20100217837 Ansari et al. Aug 2010 A1
20100217982 Brown et al. Aug 2010 A1
20100232594 Lawson et al. Sep 2010 A1
20100235539 Carter et al. Sep 2010 A1
20100250946 Korte et al. Sep 2010 A1
20100251329 Wei Sep 2010 A1
20100251340 Martin et al. Sep 2010 A1
20100265825 Blair et al. Oct 2010 A1
20100281108 Cohen Nov 2010 A1
20100291910 Sanding et al. Nov 2010 A1
20100299437 Moore Nov 2010 A1
20100312919 Lee et al. Dec 2010 A1
20100332852 Vembu et al. Dec 2010 A1
20110026516 Roberts et al. Feb 2011 A1
20110029882 Jaisinghani Feb 2011 A1
20110029981 Jaisinghani Feb 2011 A1
20110053555 Cai et al. Mar 2011 A1
20110078278 Cui et al. Mar 2011 A1
20110081008 Lawson et al. Apr 2011 A1
20110083069 Paul et al. Apr 2011 A1
20110083179 Lawson et al. Apr 2011 A1
20110093516 Geng et al. Apr 2011 A1
20110096673 Stevenson et al. Apr 2011 A1
20110110366 Moore et al. May 2011 A1
20110131293 Mori Jun 2011 A1
20110138453 Verma et al. Jun 2011 A1
20110143714 Keast et al. Jun 2011 A1
20110145049 Hertel et al. Jun 2011 A1
20110149810 Koren et al. Jun 2011 A1
20110149950 Petit-Huguenin et al. Jun 2011 A1
20110151884 Zhao Jun 2011 A1
20110158235 Senga Jun 2011 A1
20110167172 Roach et al. Jul 2011 A1
20110170505 Rajasekar et al. Jul 2011 A1
20110176537 Lawson et al. Jul 2011 A1
20110179126 Wetherell et al. Jul 2011 A1
20110211679 Mezhibovsky et al. Sep 2011 A1
20110251921 Kassaei et al. Oct 2011 A1
20110253693 Lyons et al. Oct 2011 A1
20110255675 Jasper et al. Oct 2011 A1
20110258432 Rao et al. Oct 2011 A1
20110265168 Lucovsky et al. Oct 2011 A1
20110265172 Sharma Oct 2011 A1
20110267985 Wilkinson et al. Nov 2011 A1
20110274111 Narasappa et al. Nov 2011 A1
20110276892 Jensen-Horne et al. Nov 2011 A1
20110276951 Jain Nov 2011 A1
20110280390 Lawson et al. Nov 2011 A1
20110283259 Lawson et al. Nov 2011 A1
20110289126 Aikas et al. Nov 2011 A1
20110289162 Furlong et al. Nov 2011 A1
20110299672 Chiu et al. Dec 2011 A1
20110310902 Xu Dec 2011 A1
20110313950 Nuggehalli et al. Dec 2011 A1
20110320449 Gudlavenkatasiva Dec 2011 A1
20110320550 Lawson et al. Dec 2011 A1
20110320620 Cutler et al. Dec 2011 A1
20120000903 Baarman et al. Jan 2012 A1
20120011274 Moreman Jan 2012 A1
20120011521 Knoodle Jan 2012 A1
20120017222 May Jan 2012 A1
20120023531 Meuninck et al. Jan 2012 A1
20120023544 Li et al. Jan 2012 A1
20120027228 Rijken et al. Feb 2012 A1
20120028602 Lisi et al. Feb 2012 A1
20120036574 Heithcock et al. Feb 2012 A1
20120039202 Song Feb 2012 A1
20120059709 Lieberman et al. Mar 2012 A1
20120079066 Li et al. Mar 2012 A1
20120083266 Vanswol et al. Apr 2012 A1
20120089572 Raichstein et al. Apr 2012 A1
20120094637 Jeyaseelan et al. Apr 2012 A1
20120101952 Raleigh et al. Apr 2012 A1
20120110564 Ran et al. May 2012 A1
20120114112 Rauschenberger et al. May 2012 A1
20120149404 Beattie et al. Jun 2012 A1
20120166488 Kaushik et al. Jun 2012 A1
20120170726 Schwartz Jul 2012 A1
20120173610 Bleau et al. Jul 2012 A1
20120174095 Natchadalingam et al. Jul 2012 A1
20120179646 Hinton et al. Jul 2012 A1
20120179907 Byrd et al. Jul 2012 A1
20120180021 Byrd et al. Jul 2012 A1
20120180029 Hill et al. Jul 2012 A1
20120185561 Klein et al. Jul 2012 A1
20120198004 Watte Aug 2012 A1
20120201238 Lawson et al. Aug 2012 A1
20120208495 Lawson et al. Aug 2012 A1
20120221603 Kothule et al. Aug 2012 A1
20120226579 Ha et al. Sep 2012 A1
20120239757 Firstenberg et al. Sep 2012 A1
20120240226 Li Sep 2012 A1
20120246273 Bornstein et al. Sep 2012 A1
20120254828 Aiylam et al. Oct 2012 A1
20120281536 Gell et al. Nov 2012 A1
20120288082 Segall Nov 2012 A1
20120290706 Lin et al. Nov 2012 A1
20120304245 Lawson et al. Nov 2012 A1
20120304275 Ji et al. Nov 2012 A1
20120316809 Egolf et al. Dec 2012 A1
20120321058 Eng et al. Dec 2012 A1
20120321070 Smith et al. Dec 2012 A1
20130029629 Lindholm et al. Jan 2013 A1
20130031158 Salsburg Jan 2013 A1
20130031613 Shanabrook et al. Jan 2013 A1
20130036476 Roever et al. Feb 2013 A1
20130047232 Tuchman et al. Feb 2013 A1
20130054517 Beechuk et al. Feb 2013 A1
20130054684 Brazier et al. Feb 2013 A1
20130058262 Parreira Mar 2013 A1
20130067232 Cheung et al. Mar 2013 A1
20130067448 Sannidhanam et al. Mar 2013 A1
20130091241 Goetz Apr 2013 A1
20130097298 Ting et al. Apr 2013 A1
20130110658 Lyman May 2013 A1
20130132573 Lindblom May 2013 A1
20130139148 Berg et al. May 2013 A1
20130156024 Burg Jun 2013 A1
20130166580 Maharajh et al. Jun 2013 A1
20130179942 Caplis et al. Jul 2013 A1
20130201909 Bosch et al. Aug 2013 A1
20130204786 Mattes et al. Aug 2013 A1
20130212603 Cooke et al. Aug 2013 A1
20130244632 Spence et al. Sep 2013 A1
20130268676 Martins et al. Oct 2013 A1
20130290656 Staelin et al. Oct 2013 A1
20130325934 Fausak et al. Dec 2013 A1
20130328997 Desai Dec 2013 A1
20130336472 Fahlgren et al. Dec 2013 A1
20140013400 Warshavsky et al. Jan 2014 A1
20140025503 Meyer et al. Jan 2014 A1
20140058806 Guenette et al. Feb 2014 A1
20140064467 Lawson et al. Mar 2014 A1
20140072115 Makagon et al. Mar 2014 A1
20140073291 Hildner et al. Mar 2014 A1
20140095627 Romagnino Apr 2014 A1
20140101058 Castel et al. Apr 2014 A1
20140105372 Nowack et al. Apr 2014 A1
20140106704 Cooke et al. Apr 2014 A1
20140122600 Kim et al. May 2014 A1
20140123187 Reisman May 2014 A1
20140126715 Lum et al. May 2014 A1
20140129363 Lorah et al. May 2014 A1
20140153565 Lawson et al. Jun 2014 A1
20140185490 Holm et al. Jul 2014 A1
20140254600 Shibata et al. Sep 2014 A1
20140258481 Lundell Sep 2014 A1
20140269333 Boerjesson Sep 2014 A1
20140274086 Boerjesson et al. Sep 2014 A1
20140282473 Saraf et al. Sep 2014 A1
20140289391 Balaji et al. Sep 2014 A1
20140304054 Orun et al. Oct 2014 A1
20140317640 Harm et al. Oct 2014 A1
20140355600 Lawson et al. Dec 2014 A1
20140372508 Fausak et al. Dec 2014 A1
20140372509 Fausak et al. Dec 2014 A1
20140372510 Fausak et al. Dec 2014 A1
20140373098 Fausak et al. Dec 2014 A1
20140379670 Kuhr Dec 2014 A1
20150004932 Kim et al. Jan 2015 A1
20150004933 Kim et al. Jan 2015 A1
20150023251 Giakoumelis et al. Jan 2015 A1
20150026477 Malatack et al. Jan 2015 A1
20150066865 Yara et al. Mar 2015 A1
20150081918 Nowack et al. Mar 2015 A1
20150082378 Collison Mar 2015 A1
20150100634 He et al. Apr 2015 A1
20150119050 Liao et al. Apr 2015 A1
20150181631 Lee et al. Jun 2015 A1
20150236905 Bellan et al. Aug 2015 A1
20150281294 Nur et al. Oct 2015 A1
20150365480 Soto et al. Dec 2015 A1
20150370788 Bareket et al. Dec 2015 A1
20160011758 Dornbush et al. Jan 2016 A1
20160077693 Meyer et al. Mar 2016 A1
20160112475 Lawson et al. Apr 2016 A1
20160112521 Lawson et al. Apr 2016 A1
20160119291 Zollinger et al. Apr 2016 A1
20160127254 Kumar et al. May 2016 A1
20160149956 Birnbaum et al. May 2016 A1
20160162172 Rathod Jun 2016 A1
20160205519 Patel et al. Jul 2016 A1
20160226937 Patel et al. Aug 2016 A1
20160226979 Lancaster et al. Aug 2016 A1
20160234391 Wolthuis et al. Aug 2016 A1
20160239770 Batabyal et al. Aug 2016 A1
20170031736 Cooke et al. Feb 2017 A1
20170339283 Chaudhary et al. Nov 2017 A1
Foreign Referenced Citations (20)
Number Date Country
1684587 Mar 1971 DE
0282126 Sep 1988 EP
1464418 Oct 2004 EP
1522922 Apr 2005 EP
1770586 Apr 2007 EP
2053869 Apr 2009 EP
2134107 Sep 1999 ES
10294788 Nov 1998 JP
2004166000 Jun 2004 JP
2004220118 Aug 2004 JP
2006319914 Nov 2006 JP
WO-9732448 Sep 1997 WO
WO-2002087804 Nov 2002 WO
WO-2006037492 Apr 2006 WO
WO-2009018489 Feb 2009 WO
WO-2009124223 Oct 2009 WO
WO-2010037064 Apr 2010 WO
WO-2010040010 Apr 2010 WO
WO-2010101935 Sep 2010 WO
WO-2011091085 Jul 2011 WO
Non-Patent Literature Citations (31)
Entry
“Twilio Cloud Communications—APIs for Voice, VoIP, and Text Messaging”, Twilio, [Online] Retrieved from the internet:http: www.twilio.com docs api rest call-feedback, (Jun. 24, 2015), 8 pgs.
U.S. Appl. No. 13/764,594 U.S. Pat. No. 9,495,227, filed Feb. 11, 2013, System and Method for Managing Concurrent Events.
U.S. Appl. No. 15/291,386, filed Oct. 12, 2016, System and Method for Managing Concurrent Events.
“Aepona's API Monetization Platform Wins Best of 4G Awards for Mobile Cloud Enabler”, 4G World 2012 Conference & Expo, [Online]. [Accessed Nov. 5, 2015]. Retrieved from the Internet: <URL: https://www.realwire.com/releasesP/%20Aeponas-API-Monetization>, (Oct. 30, 2012), 4 pgs.
“U.S. Appl. No. 13/764,594, Examiner Interview Summary dated Jun. 3, 2016”, 3 pgs.
“U.S. Appl. No. 13/764,594, Examiner Interview Summary dated Dec. 18, 2015”, 3 pgs.
“U.S. Appl. No. 13/764,594, Final Office Action dated Sep. 28, 2015”, 17 pgs.
“U.S. Appl. No. 13/764,594, Non Final Office Action dated Feb. 6, 2015”, 16 pgs.
“U.S. Appl. No. 13/764,594, Non Final Office Action dated Feb. 16, 2016”, 5 pgs.
“U.S. Appl. No. 13/764,594, Notice of Allowance dated Aug. 9, 2016”, 10 pgs.
“U.S. Appl. No. 13/764,594, Response filed May 16, 2016 to Non Final Office Action dated Feb. 16, 2016”, 11 pgs.
“U.S. Appl. No. 13/764,594, Response filed Jul. 28, 2015 to Non Final Office Action dated Feb. 6, 2015”, 13 pgs.
“U.S. Appl. No. 13/764,594, Response filed Dec. 16, 2015 to Final Office Action dated Sep. 28, 2015”, 12 pgs.
“U.S. Appl. No. 15/291,386, Examiner Interview Summary dated May 7, 2019”, 3 pgs.
“U.S. Appl. No. 15/291,386, Final Office Action dated Jan. 11, 2019”, 13 pgs.
“U.S. Appl. No. 15/291,386, Non Final Office Action dated Jun. 28, 2018”, 15 pgs.
“U.S. Appl. No. 15/291,386, Notice of Allowance dated Jun. 24, 2019”, 8 pgs.
“U.S. Appl. No. 15/291,386, Response filed Sep. 25, 2018 to Non Final Office Action dated Jun. 28, 2018”, 11 pgs.
“U.S. Appl. No. 15/291,386, Response filed May 3, 2019 to Final Office Action dated Jan. 11, 2019”, 12 pgs.
“Archive Microsoft Office 365 Email I Retain Unified Archiving”, GWAVA, Inc., Montreal, Canada, [Online] Retrieved from the internet: <http://www.gwava.com/Retain/Retain for_Office_365.php>, (2015), 4 pgs.
“Complaint for Patent Infringement”, Telinit Technologies, LLC v. Twilio Inc 2:12-cv-663, (Oct. 12, 2012), 17 pgs.
“Ethernet to Token ring Bridge”, Black Box Corporation, [Online] Retrieved from the internet: <http://blackboxcanada.com/resource/files/productdetails/17044.pdf>, (Oct. 1999), 2 pgs.
Abu-Lebdeh, et al., “A 3GPP Evolved Packet Core-Based Architecture for QoS-Enabled Mobile Video Surveillance Applications”, 2012 Third International Conference on the Network of the Future {NOF), (Nov. 21-23, 2012), 1-6.
Barakovic, Sabina, et al., “Survey and Challenges of QoE Management Issues in Wireless Networks”, Hindawi Publishing Corporation, (2012), 1-29.
Berners-Lee, T., “RFC 3986: Uniform Resource Identifier (URL): Generic Syntax”, The Internet Society, [Online]. Retrieved from the Internet: <URL: http://tools.ietf.org/html/rfc3986>, (Jan. 2005), 57 pgs.
Bustamante, Michele Leroux, “Concurrency and Throttling Configurations for WCF Services”, Dev Pro, (2009), 9 pgs.
Kim, Hwa-Jong, et al., “In-Service Feedback QoE Framework”, 2010 Third International Conference on Communication Theory. Reliability and Quality of Service, (2010), 135-138.
Matos, et al., “Quality of Experience-based Routing in Multi-Service Wireless Mesh Networks”, Realizing Advanced Video Optimized Wireless Networks. IEEE, (2012), 7060-7065.
Mu, Mu, et al., “Quality Evaluation in Peer-to-Peer IPTV Services”, Data Traffic and Monitoring Analysis, LNCS 7754, 302-319, (2013), 18 pgs.
Subramanya, et al., “Digital Signatures”, IEEE Potentials, (Mar./Apr. 2006), 5-8.
Tran, et al., “User to User adaptive routing based on QoE”, ICNS 2011: The Seventh International Conference on Networking and Services, (2011), 170-177.
Related Publications (1)
Number Date Country
20200050501 A1 Feb 2020 US
Provisional Applications (1)
Number Date Country
61597239 Feb 2012 US
Continuations (2)
Number Date Country
Parent 15291386 Oct 2016 US
Child 16580579 US
Parent 13764594 Feb 2013 US
Child 15291386 US