Patent Publication Number: US-2022224793-A1

Title: Systems and methods of gateway detection in a telephone network

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is continuation of U.S. application Ser. No. 16/784,071, filed Feb. 6, 2020, which claims priority to U.S. Provisional Application No. 62/802,116, filed Feb. 6, 2019, which are hereby incorporated by reference in their entirety. 
     This application is related to U.S. Pat. No. 10,325,601, entitled “Speaker Recognition In The Call Center,” filed Sep. 19, 2017, which is hereby incorporated herein in its entirety. 
    
    
     TECHNICAL FIELD 
     This application generally relates to systems and methods of intelligently detecting the gateway status of phone calls for call-handling processes, and automated means for generating models used for such detection processes. 
     BACKGROUND 
     In telecommunications and related technologies (VoIP), an Automatic Number Identification (ANI), or phone number, is used to identify and target particular calls. Callees can ordinarily identify a caller based on the ANI. In many instances, an ANI may be used for authentication purposes, for example. This may suffice when an ANI is associated with one person or a household, but that is not always the case. Some ANIs are gateway ANIs. A gateway is defined as an ANI that is allocated for use by more than one person and more than one device (spoofing a number is stealing not allocation). An example gateway ANI is 1-559-515-8002, which is a Skype® gateway, commonly used as the caller&#39;s phone number when a call is made to a phone using Skype®. However, a landline telephone that is used by multiple people to make calls would not be considered a gateway, since it is a single device. It is often desirable to identify gateway ANIs to screen calls or conduct reliable authentication by adjusting an authentication test for different information. 
     Keeping track of ANIs is a resource intensive and somewhat manual process. Human administrators ordinarily have to update a databank of ANIs, or subscribe to some external database that publishes updated listings of ANIs. Similarly, it is often labor intensive to screen calls based on ANIs, where a person must check or confirm whether an ANI is a gateway ANI against the database listing. Because ANIs may be reassigned, the listing of gateway ANIs must be regularly updated. Therefore, what is needed is a means for automatically and dynamically classifying whether known ANIs are gateway ANIs. Likewise, what is needed is a means for automatically detecting new ANIs. 
     SUMMARY 
     Disclosed herein are systems and methods capable of addressing the above-described shortcomings and may also provide any number of additional or alternative benefits and advantages. Embodiments described herein provide for a method of automatically trains or otherwise generates computer models for determining whether a telephone call is associated with a gateway using a rule-based algorithm and a machine learning algorithm, and implementing such models and algorithms to detect if a phone number is a gateway. 
     In an embodiment, a computer-implemented method for detecting gateways comprises generating, by a computer, a plurality of features for a plurality of caller Automatic Number Identifications (ANIs) based upon call data associated with a plurality of phone calls involving the plurality of caller ANIs; calculating, by the computer, a gateway score for each respective caller ANI based upon a set of one or more features associated with the respective caller ANI in the plurality of features; and detecting, by the computer, that at least one caller ANI of the plurality of caller ANIs is a gateway ANI, in response to determining that the gateway score for a gateway ANI is above a detection threshold. 
     In another embodiment, a computer-implemented method for detecting gateways comprises generating, by a computer, one or more feature vectors for one or more caller Automatic Number Identifications (ANIs) based upon call data extracted for a plurality of calls, wherein each feature vector for each ANI is based upon: a number of calls from the caller ANI to each of the callees receiving the largest number of calls normalized by a calls threshold, a number of calls from the caller ANI to each type of callee receiving the largest number of calls, a lowest interarrival interval between consecutive calls, and a network type of the caller ANI; generating, by the computer, for each respective caller ANI, a gateway score based upon an anomaly detection algorithm using the one or more feature vectors; detecting, by the computer, a gateway is associated with a caller ANI, in response to determining that the gateway score for the caller ANI satisfies a detection threshold. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views. 
         FIG. 1  shows components of a system for gateway detection, according to an exemplary embodiment 
         FIG. 2  is a flowchart showing execution steps of a rules-based approach for gateway detection, according to an exemplary method. 
         FIG. 3  is a flowchart showing execution steps of a machine learning approach for gateway detection, according to an exemplary method. 
         FIG. 4  is a flowchart showing execution steps for training and deploying models for gateway detection using combined approaches, according to an exemplary method. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made to the exemplary embodiments illustrated in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated here, and additional applications of the principles of the inventions as illustrated here, which would occur to a person skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention. 
     I. Components of Exemplary System 
       FIG. 1  shows components of a system  100  for gateway detection, according to an exemplary embodiment. The exemplary system  100  may comprise a call analysis center  101 , an external infrastructure  103 , and caller devices  108 . A call analysis center  101  may comprise an analytics server  102 , a central database  104 , and a client computer  106 , and external infrastructures  103  comprise a call data appliance  105 . It should be understood that the components of the system  100  are merely illustrative. One having skill in the art would appreciate that other embodiments may include additional or alternative components, or omit components, from the components in the exemplary system  100 , but are still within the scope of this disclosure. 
     The various components of the call analysis system  100  and external infrastructures  103  may be connected with each other via hardware and software components of one or more networks. Examples of a network include, but are not limited to, Local Area Network (LAN), Wireless Local Area Network (WLAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), and the Internet. The communication over the network may be performed in accordance with various communication protocols, such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), and IEEE communication protocols. 
     It should be appreciated that  FIG. 1  is merely one example of the devices of a system  100 . Although  FIG. 1  only shows an exemplary system  100  embodiment having only a few of the various components, it should be appreciated that embodiments may comprise, be coupled to (via one or more networks), or otherwise implement any number of devices capable of performing the various features and tasks described herein. Some embodiments may incorporate databases  104  into an analytics server  102 , such that these features are integrated within a single device. In a similar example, some embodiments may incorporate an client computer  106  into an analytics server  102 , such that a single computing device performs the features and tasks of such devices. One having skill in the art will appreciate that other embodiments may comprise additional or alternative devices, or may omit devices shown in  FIG. 1 , and that such alternative embodiments still fall within the scope of this disclosure. 
     A. Organization of Infrastructures 
     A network infrastructure  101 ,  103  may comprise computing devices that collect call data generated from phone calls between the calling devices  108  and a call center or other personnel in the infrastructure  101 ,  103 , and stores the incoming call data into a storage medium or a central database  104 . An analytics server  102  may execute various operations described herein, such as querying or updating a central database  104 , pre-processing or otherwise conditioning the call data, executing various analytics on call data, a exchanging various forms of data with various devices of the system  100  via one or more networks. 
     As seen in the exemplary system  100 , a particular infrastructure  101 ,  103  may function as a call analysis system  101  that offers call analytics services to external infrastructures  103 , which may owned or operated by customers of an analytics service or sub-components of a larger organization. An external infrastructure  103  has a data appliance  105  configured to collect and store call data generated from phone calls between calling devices  108   b ,  108   c  and the particular external infrastructures  103 . The data appliances  105  may transmit the call data collected at the external infrastructures  103  to the call analysis system  101  to perform various analytics services. 
     A call analysis system  101  may comprise an analytics server  102  and data appliances  105 . The data appliances  105  may store call data received from external infrastructures  103 , or otherwise generated from telephone calls between the call analysis system  101  and calling devices  108   a . The analytics server  102  may execute various processes tasks on the call data accessible to the call analytics system  101 , such as call data stored in the data appliances  105  or call data received directly from data appliances  105 . The analytics server  102  may transmit outputted data, such as analytics results, analytical models, and other data updates, to each of the external infrastructures  103 , which may then be stored in the data appliances  105 . Additionally or alternatively, the analytics server  102  or another device of the call analytics system  101  may make the central database  104  available to data appliances  105  to query, or may publish certain output data to a website, web portal, FTP site, or other externally accessible databank that is accessible to the external infrastructures  103 . In some implementations, the call analytics system  101  may tailor some or all of the output data and processes to particular external infrastructures  103 . For instance, the output data published by the call analytics system  101  may include a real-time indication of a detected gateway or batch updates listing detected gateways that may be stored in one or more databases  104 . 
     It should be appreciated that some embodiments may include only a single organizational enterprise infrastructure, such that an entity may implement an analytics server  102  for internal analytics purposes on call data received by the entity. In such embodiments, there may not be external infrastructures  103 ; or the external infrastructures  103  may be remote installations of the same entity. For example, the analytics server  102  may a part of an enterprise and may receive multiple incoming phone calls directed to the enterprise. 
     B. Exemplary Devices 
     An analytics server  102  may receive and analyze call data to detect whether a certain Automatic Number Identification (ANI) represents a gateway. An analytics server  102  may be any kind of computing device comprising a processor, memory, and software configuring the analytics server  102  to execute various processes and tasks described herein. Non-limiting examples of an analytics server  102  may include a server computer, a desktop computer, a laptop computer, a tablet computer, a smartphone, and any other type of computing device. The analytics server  102  may be coupled to one or more databases  104  and client computers  106  via one or more networks, allowing the analytics server  102  to communicate call data, database queries, and execution instructions (e.g., execution parameters, triggering inputs, query parameters), among other machine-readable computer data and configurations, with other components of the system  100 . 
     An analytics server  102  may receive, and in some cases extract, call data from phone calls involving caller devices  108 , including calls that a caller device  108  makes or receives. When the end-user of a caller device  108  makes or receives a phone call to a call center  101 , a server  102  or database  104  captures the audio signals and call data related to that call. That call data is then transmitted to the analytics server  102  or service data appliances  105 ; the call data may be transmitted at a regular interval, in response to a triggering event, or in response to query received from the analytics server  102 . Non-limiting examples of call data may include data records or fields indicating: a duration of the call, an ANI (or phone number) a phone call originates from; a type of ANI for an associated protocol (e.g., VoIP, cellular phone number); an ANI or phone number of a caller device  108 ; timestamps for various states of the call; a gateway indicator that an ANI has been determined to be a gateway; a callee identifier, for a particular user or a call center  101 ; a type of callee (on a call center  101 ); and any other data associated with the call. It should be appreciated that “call data,” as used herein, includes data that could be characterized as metadata rather than data, depending on the data formatting specifications of various devices, protocols, organizations, and telecommunications protocols. 
     The analytics server  102  may query and receive data from a database  104  received from various data sources, such as call centers  101 , according to various query parameters and configurations. These parameters and configurations may include, for example, timing constraints on the call data and threshold value constraints, among others. 
     In particular, call data comprises a timestamp field indicating when the call was received at a call center  101 , or some similar field indicating when the call data was otherwise generated in a database  104  or in some other data source. The analytics server  102  or data appliances  105  may execute a query for call data having a timestamp that is within a given time window (sometimes referred to as a “lookback window”) threshold, which can be configured by a user (e.g., call center personnel, fraud analyst) via GUI on a client computer  106 , or otherwise preconfigured. The lookback window may be adjusted to ingest an amount of call data that provides a sufficiently representative population size but does not overwhelm resources. For instance, a window that is too small may not capture a sufficiently large population of calls; or the window may contain an unusual burst of calls from a particular ANI that consequently misrepresents that ANI&#39;s calls density. Examples provided in this disclosure implement a thirty-day lookback window in order to smooth “bursty” callers while not requiring too much data for components of the system  100  to handle. Additionally, because ANIs may be reassigned to different entities or individuals over time, the gateway determination for a particular ANI may be outdated. As such, the lookback window may also be adjusted accordingly in order to account for changes to the gateway statuses of certain ANIs. Similarly, it may be desirable to “refresh” the gateway determinations and the call data used in various processes. At a given refresh time interval, the analytics server  102 , or some other component of the system  100 , may download or otherwise update the call data in the database  102 . In the exemplary system  100 , for example, the analytics server  102  or database  102  implements both of the above-discussed timing constraints (i.e., lookback window, refresh interval), where the lookback window is thirty days and the refresh time interval is fifteen days. In this example, every fifteen days, the analytics server  102  or database  102  updates the call data or other process-related data with call data having timestamps within thirty-days. It should be appreciated that implement additional or alternative parameters or constraints may be implemented for collecting call data from various data sources, such as one or more databases  102 . 
     In some embodiments, the analytics server  102  may manage and operate an in-memory dictionary (or in-memory database), which stores call data collected from the database  102  and output data in the memory (e.g., RAM) of the analytics server  102 . The analytics server  102  may collect, or otherwise receive, various forms of data from the database  102  and store the data into the in-memory dictionary. 
     An analytics server  102  may execute one or more processes (e.g., a query of a database  104 , a rule-based processes, a machine learning processes, combined processes) for detecting gateways and related-processes, such as gathering, processing, and analyzing call data. In some instances, a data appliances  105  may store operational data that is used by the analytics server  102  to determine whether an ANI of prior calls or real-time calls (e.g., ongoing calls, incoming calls) are associated with gateways. The analytics server  102  then uses those gateway determinations in downstream operations, such as caller authentication and reporting results to customers (e.g., external infrastructures  103 ). 
     In some embodiments, the analytics server  102  may execute a gateway detection algorithm implementing a rules-based approach to identify and detect ANIs associated with gateways (sometimes referred to as “gateway ANIs”) in call data of prior calls or in real-time. The analytics server  102  receives call data records containing various data fields containing values for particular phone calls (sometimes referred to as “features”), such as the ANIs caller devices  108   a . Using the data in the call data, the analytics server  102  identifies and calculates various statistical outputs for the various ANIs represented in the call data. In particular, the analytics server  102  identifies or calculates, for each of the ANIs, one or more features (i.e., data values) that include a volume, a spread, and a diversity, among others. 
     A volume feature of an ANI is a value score calculated to represent the total number of calls involving the ANI. Because multiple callers will be placing phone calls from a gateway, an ANI representing a gateway (sometimes referred to as a “gateway ANI”) will typically have a higher volume of calls. The analytics server  102  may determine that an ANI is a gateway if the volume of the ANI satisfies a volume threshold that indicates a low likelihood that the ANI is used by one person or a household and high likelihood that the ANI is used by multiple callers or for business and marketing purposes. 
     A spread feature of an ANI is a value score calculated to represent the total distinct callees (e.g., call center personnel) or callee telephones that are involved in phone calls with the ANI; it represents the number (or spread) of individuals in contact with the ANI. A gateway ANI is often in contact with a larger number of distinct individuals. The analytics server  102  may determine an ANI represents a gateway if the number of distinct of callees for the ANI satisfies a spread threshold that indicates a low likelihood that the ANI is used by one person or a household and high likelihood that the ANI is used by multiple callers or for business and marketing purposes. 
     A diversity feature of an ANI is a value score calculated to represent the number of different callee types, where the “types” of callees refer to one or more distinct characteristics among a variety of different categories, such as business verticals (e.g., engineering, legal), industries (e.g., insurance, banking, automotive, retail), or entity (e.g., commercial, non-profit, private or residential, government), among other types of categories. The call data for the ANIs may contain data fields comprising values that expressly indicate type-information to the analytics server  102 , or the analytics server  102  may be pre-configured to determine the type-information based on the available data values and fields. As with the spread, a gateway ANI is often in contact with a larger number of callee types compared to private ANI. The analytics server  102  may determine an ANI represents a gateway if the number of callee types for the ANI satisfies a diversity threshold that indicates a low likelihood that the ANI is used by one person or a household and high likelihood that the ANI is used by multiple callers or for business and marketing purposes. 
     The threshold values may be entered and refined by a user during configuration of the analytics server  102 . A client computer  106  may comprise a graphical user interface (GUI) allowing the user to configure the various algorithms executed by the analytics server  102 , including entering the initial thresholds and weights, and refining the thresholds and weights over time. In some embodiments, the analytics server  102  may be configured to automatically and dynamically refine the various thresholds and algorithmic weights over time. 
     The analytics server  102  uses the features extracted from the call data to generate a rules-based gateway score for each of the ANIs in the call data. The analytics server  102  determines whether an ANI represents a gateway based on whether the ANI&#39;s gateway score satisfies or fails a gateway threshold. It should be appreciated that additional or alternative features may be used in the rules-based approach. Similarly, it should be appreciate that the features mentioned above may be used as feature-inputs for the machine-learning algorithms that classify gateway ANIs described below. 
     In some cases, the analytics server  102  may assign weight values to one or more feature values, which may be entered by a user at run-time or pre-configured by the user. The weights may be refined by the user to increase or decrease the impact of a particular feature when determining gateway scores. This may be done for any number of reasons, such as client-tailoring or performance improvements. 
     In some embodiments, the analytics server  102  may execute a gateway detection algorithm implementing a machine-learning approach. The analytics server  102  receives call data containing features for the ANIs of caller devices  108 . Using the features extracted from call data, the analytics server  102  generates gateway detection models using a machine learning algorithm and detects gateway ANIs in the call data using an anomaly detection algorithm. Although the processes and features of the embodiments described herein implement an isolation forest anomaly detection algorithm, it should nevertheless be appreciated that embodiments may implement any number of anomaly detection algorithms and techniques (e.g., Markov models, classification-based, clustering-based, density-based, distance-based) and still fall within the scope of this disclosure. Likewise, the various embodiments described herein implement an unsupervised machine-learning algorithm, but it should be appreciated that embodiments may implement a supervised algorithm, unsupervised algorithm, and a semi-supervised algorithm, and still fall within the scope of this disclosure. 
     In operation, the analytics server  102  extracts features from call data and generates a feature vector based on those values, using a machine learning algorithm. At a pre-configured refresh time interval, the analytics server  102  may extract or otherwise receive the call data from a data appliances  105  and extract the features for the ANIs. The call data extracted from the data appliances  105  have timestamps that satisfy a lookback window (e.g., within thirty days) constraint. The feature vector is based on one or more features extracted, which in some case may include the features previously discussed. In the exemplary system  100 , the features extracted include a set of top client calls, a set of top callee-type calls, a set of smallest interarrival calls, and ANI type. And in some cases, the ANI type may be “one hot encoded,” which one having skill in the art would appreciate is a machine-learning concept whereby a computer-executed process converts categorical variables or data into a format that can be provided to machine learning algorithms to improve prediction quality, processing capabilities, or overall performance. The features extracted for a particular ANI, and used in the isolation forest implemented by the analytics server  102 , define a call profile of the ANI. 
     The analytics server  102  detects anomalies, representing gateways, using the isolation forest algorithm and based on the feature vector, the call profiles, and a contamination factor. The contamination factor is preconfigured in the analytics server  102 ; the contamination factor may be manually configured or refined by a user via GUI, or the contamination factor may be automatically generated or refined. In some implementations, the analytics server  102  may output an indication whether an ANI is a gateway. And in some implementations, the analytics server  102  may output a gateway score according to the machine learning algorithm. 
     In some embodiments, the analytics server  102  may execute a gateway detection algorithm implementing both a rules-based approach and a machine-learning approach, whereby the analytics server  102  executes a combining algorithm that combines the results of the rules-based algorithm and the machine-learning algorithm. In such implementations, the analytics server  102  combines the outputted scores or classification results from both the rule-based and machine learning-based methods into a single combined gateway score and classification output. The analytics server  102  determines whether an ANI represents a gateway based on whether the ANI&#39;s combined gateway score satisfies or fails a combined gateway-threshold. 
     In some implementations, an analytics server  102 , or other computing device of the system  100  (e.g., data appliances  105 ), authenticates a caller based on multiple authentication factors, such as call data associated with the phone call and caller device  108  (e.g., gateway determination status, ANI, call features), and other caller-related or organization-related information provided by the caller. In such implementations, the analytics server  102  executes an authentication algorithm that accounts for the various data and information gathered to determine whether to authenticate the caller or caller device  108 . The analytics server  102  may, for example, generate a risk score that is compared against a risk score threshold; where a caller or phone call from a caller device  108  is authenticated when the risk score satisfies a risk threshold, and the caller or the phone call is blocked, disconnected, or otherwise rejected, when the risk score fails to satisfy a risk threshold. The determination that the ANI of the caller device  108  is a gateway may increase the likelihood the call&#39;s risk score fails the risk threshold according to the authentication algorithm. Likewise, where the ANI is not a gateway, it may be more likely that the call&#39;s risk score satisfies the risk threshold according to the authentication algorithm. 
     In some implementations, an analytics server  102 , or other computing device of the system  100  (e.g., data appliances  105 ), authenticates a caller or caller device  108  based on only a subset of data fields in a database  104 . In such implementations, the analytics server  102  may query one or more data fields or computing files (e.g., blacklists, whitelists), including an indicator of whether the ANI of the caller device  108  is a gateway. The authentication determination may be based on whether the certain data fields contain expected data, where the data field evaluation may be simultaneous or sequential, such that the analytics server  102  proceeds onward to evaluate a second data field when the caller device  108   a  fails a first data field challenge. For example, the call analysis system  101  may implement a blacklist of ANIs to reject or whitelist of ANIs to permit, or otherwise query a gateway status determination field, to determine whether a call is coming from a gateway. In this example, the analytics server  102  determines whether to authenticate a particular caller device  108   a , based on stored data indicating whether the ANI of the caller device  108   a  (e.g., database record, blacklist, whitelist) is a gateway. It should be appreciated that, in some implementations, the analytics server  102  may execute a combination of the above algorithmic authentication methodology and field-determination authentication methodology. 
     In some circumstances, an enrolled caller (or an otherwise known caller) might be call an external infrastructure using a caller device  108   b  having ANI for a gateway. In such circumstances, the analytics server  102  (or other authentication device) should be configured to execute an algorithmic methodology, a field-determination methodology, or a combination thereof, accounting for this possibility, thereby avoiding “false positives” or incorrect failed authentications. When executing an authentication algorithm, for instance, the analytics server  102  may be configured to exclude the gateway status of the ANI from an authentication algorithm. When querying data fields or files for filed-determination authentication, the analytics server  102  may be configured to query alternative data fields or require certain information from the caller. 
     The analytics server  102  may update blacklists and whitelists for call authentication purposes by various servers  102 . Additionally or alternatively, the analytics server  102  stores the gateway determinations into a data appliances  105 , where call data in the data appliances  105  is updated to indicate those ANIs that are gateways. In some cases, the analytics server  102  may not use an ANI determined to be a gateway for authentication purposes. In such cases, because there will be multiple callers associated with the gateway ANI, the ANI is not a reliable unique identifier for the caller. In some cases, if the analytics server  102  determines that an ANI is associated with a gateway, in order to avoid a “false positive” the analytics server  102  may not blacklist the ANI even if there may be multiple phone calls or callers from the ANI. Although these calls may otherwise suggest a fraudulent pattern of behavior, but some gateway ANIs may have the same behavior despite not being used for fraud. It should be understood that the aforementioned usage of the determination of whether an ANI is gateway is merely illustrative and the determination may be used by other authentication processes or any other processes. 
     Data appliances  105  are operated by customers or sub-components of the call analysis service, which may communicate via one or more networks with components of the call analysis center  101 . In particular, the data appliances  105  may transmit call data generated by the external infrastructures  103  to the call analysis system  101 ; and may receive data outputs and results from the call analysis system  101 . It should be appreciated that data appliances  105  may be any computing device comprising memory, a processor, and software that are configured for various features and tasks described herein. Non-limiting examples data appliances  105  may include a server computer, laptop computer, desktop computer, and the like. 
     A central database  104  may store, update, manage, and query various types of data accessible to, and for use by, components of the system  100 ; including call data for phone calls. A database  104  may be hosted on any computing device comprising a processor, memory, and software capable of performing the various tasks and processes described herein. In some implementations, a database  104  may be integrated into a single computing device with other components of the system  100 , such as a server  102 . And in some implementations, as in  FIG. 1 , a database  104  may be hosted by a distinct computing device, and may be in communication with servers  102  via one or more networks. 
     A central database  104  may store call data related to calls for phones and operational data related to algorithmic models (e.g., machine-learning models, rule-based models, combined models). A database  104  may also store output data results generated by the various processes. Non-limiting examples of the data stored in a database may include algorithmic models, labeled data sets, ANIs detected to be gateways, prefixes of ANIs determined to be ANIs, ANIs determined not to be gateways, blacklists (ANIs that automatically fail authentication), and whitelists (ANIs that are automatically authenticated), among other forms of call data, output data results, and other operational data. In some embodiments, a data appliance  105  of an external infrastructure may include a database. 
     A data appliance  105  may intercept and store call data, among other types of data, received from any number of data sources, where such data sources may include call data generated during phone calls between a caller device  108   a  and the call analysis system  101 ; and call data that is generated and/or extracted from a data stream by the data appliance  105 , during calls between caller devices  108   b ,  108   c  and an external infrastructure  103 . The analytics server  102  may query or receive data from the data appliances  105  at a given interval or in response to a triggering instruction, such as a user instruction or receiving incoming call data. In some instances, data may be published by the data appliances  105  or analytics server  102  to one or more data appliances  105  or otherwise published to a private webpage accessible to customers operating the external infrastructures  103 . 
     In some implementations, the central database  104  may be configured to function as a data mart or date lake that operates a repository for all data records across the system  100 , including call data received from one or more enterprise infrastructures  101 ,  103 . Call data and computing files may be stored in any number of formats, and may include structured or unstructured data, and may be accessible and manageable by an analytics server  102  or client computer  106 . When executing a query, the central server  104  or analytics server  102  may transform, construct, or otherwise format the queried data according to formatting specification requirements for a process being executed by another device of the system  100 . 
     A client computer  106  may be employed by users (e.g. fraud analysts, administrators) to configure an analytics server  102  and data appliances  105  to conduct various analytics processes, generate data outputs, and customer service efforts. A client computer  106  may be any computing device comprising memory, a processor, and software configured for various features and tasks described herein. Non-limiting examples a client computer  106  may include a server computer, laptop computer, desktop computer, a tablet computer, and the like. A client computer  106  may be coupled via one or more networks to the analytics server  102  and central database, allowing the client computer  106  to communicate instructions (e.g., database queries, modeling instructions) to an analytics server  102 , or data appliances  105  related to various data-gathering, call analysis, and gateway detection processes, including various tasks and processes described herein. The client computer  106  may transmit instructions and configuration parameters to an analytics server  102  for executing certain processes, and to one or more databases  104  for accessing (e.g., querying), updating, or otherwise managing call data for the system  100 . 
     It should be appreciated that, in embodiments of this disclosure, certain functions and features described as being executed by the client computer  106  may, in other embodiments, be executed by other devices, such as an analytics server  102 . In some embodiments, for example, the analytics server  102  and the client computer  106  may be the same computing device. Moreover, this disclosure describes embodiments implementing a cloud-based environment that organize the client computer  106  and analytics server  102  in a client-server arrangement, where the client computer  106  provides a user graphical user interface (GUI) for managing and executing various administrative processes. But other embodiments may have the client computer  106  perform the various call data analysis tasks and processes. In such embodiments, the analytics server  102  is configured to receive instructions for, and distribute data-outputs related to, administrative or collaborative features, such as sharing outputs, data sets, and results with customers&#39; external infrastructures  103 . 
     A client computer  106  may have locally stored native software associated with the system  100  that communicated with the analytics server  102 ; or the client computer  106  may interact with the analytics server  102  via a browser-based web-portal. The client computer  106  may present a user with a graphical user interface (GUI) (sometimes referred to herein as a “call workspace”) allowing the user to interact with the analytics server  102 . The GUI may be configured to display various execution options for providing instructions and parameters to the analytics server  102 , as well as the various inputs and outputs transmitted to and received from the analytics server  102 . In some cases, selectable options are based on data stored in the data appliances  105 , which is accessible by and transmitted to the client computer  106  according to credentials or other identifying information for the user. In some implementations, after a detection process has completed, the analytics server  102  may send the outputs to client computer  106  for display via the GUI. 
     Caller devices  108  may be any communications or computing device that callers can use to place a telephone call to a destination employing various processes and tasks described herein. Non-limiting examples of caller devices  108  may include mobile phones  108   a  or landline phones  108   b . Caller devices  108  are not limited to telecommunications-oriented devices (e.g., telephones), but may also include devices and software implementing VoIP protocols for telecommunications, such as computers  108   c.    
     II. Exemplary Processes and Execution 
     A. Rules-Based Processes 
       FIG. 2  is a flowchart showing execution steps of a rules-based approach for gateway detection, according to an exemplary method  200 . Although the steps of the illustrative method  200  may be performed by multiple computing devices, the following details a single computer implementing the steps. It should also be understood that the steps shown and described herein are merely illustrative and additional, alternative, and fewer number of steps should be considered to be within the scope of this disclosure. Moreover, the example method  200  is described as being executed in “batch” processes at a given interval, but it should be appreciated that one or more steps may be implemented in real-time, such as gathering data, processing data, executing algorithms, and detecting gateway ANIs. 
     In a first step  202 , a computer (e.g., analytics server) collects call data for ANIs from a database or one or more data sources, where the call data is associated with calls to one or more call centers. In some embodiments, to improve performance the computer may load, update, and manage all or most of the collected data in local memory. At a given refresh time interval, the computer is prompted to execute the exemplary method  200 , which may begin with the current step  202  of collecting or refreshing the call data. Each collected data record contains a timestamp data field value that satisfies a lookback window query constraint. When training the model, the computer or other devices may track (e.g., receive, store) call data for phone calls over some period of time. Exemplary process  200  may then be executed when a threshold amount of call data has been received, and/or after a threshold amount of time has passed observing and tracking call data, such as refresh interval. 
     As mentioned, in some embodiments, the collection of call data for one or more calls may occur in real-time, such that the computer receives call data directly from call centers when new call data is generated or received from a call center, which may be associated with a new or ongoing call. 
     In optional step  204 , the computer cleans and pre-processes call data received from various data sources as required. For instance, the computer may de-duplicate certain redundant data records. The computer may execute application programmable interfaces (APIs) that programmatically convert, reformat, or otherwise translate incoming certain data records formatted according to a data source&#39;s specification, into a specification expected and implemented by the computer. Additionally or alternatively, the computer may clean and pre-process the incoming call data by converting, reformatting, or otherwise translating certain data records of the call data to satisfy a model specification that is valid for the model, and then feed that call data into a machine learning-based model. 
     In a next step  206 , the computer calculates the gateway score for each ANI using a rules-based algorithm. The computer identifies and extracts features for each ANI, where the features of ANI are calculated based on the values of certain fields in the data records of an ANI, as well as predetermined threshold values. For example, the features extracted for an ANI may include, without limitation, a call volume heuristic feature, a spread heuristic feature, and a diversity heuristic feature. Additional data values and features may be implemented used for various embodiments. The threshold values may be configured by a user via a GUI, or may be algorithmically determined based on various inputted feature values of the ANIs. The rules-based gateway score for each ANI may be some function of the feature values extracted for the particular ANI from the call data. 
     In step  208 , using the gateway scores calculated for the ANIs, the computer compares the gateway scores against a predetermined gateway threshold, which may be configured by a user via a GUI. The computer classifies an ANI as a gateway ANI when the ANI has a gateway score that does not satisfy the gateway threshold. 
     In step  210 , the computer detects gateway ANIs associated with new call data based on the outputs of the exemplary rules-based process  200 . In some embodiments, the computer may update a database to include a gateway indicator for ANIs that have been classified as gateway ANIs, as described in the prior steps  202 - 208 . In such embodiments, when the new call data is received for a new or ongoing call, the computer may simply refer to the database to determine whether the ANI associated with the new call data is a gateway ANI based on the gateway indicators. 
     In some embodiments, the computer may execute the exemplary process  200  in real time or near-real time. In such embodiments, the computer may dynamically update the values of the extracted features and the gateway scores for the incoming ANI, then compare the re-calculated gateway scores against the gateway threshold for classification as a gateway ANI or a non-gateway ANI. In some cases, it may be beneficial for the computer to load, query, update, and manage the data in-memory, rather than disk. Other techniques for detecting ANIs based on the outputted model may be employed, additionally or alternatively. 
     B. Machine-Learning Processes and Execution 
       FIG. 3  is a flowchart showing execution steps of a machine learning approach for gateway detection, according to an exemplary method  300 . Although the steps of the exemplary process  300  may be performed by multiple computing devices, the following details a single computer implementing the steps. It should also be understood that the steps shown and described herein are merely illustrative and additional, alternative, and fewer number of steps should be considered to be within the scope of this disclosure. Moreover, some aspects of the exemplary method  300  are described as being executed in “batch” processes at a given interval, but it should be appreciated that one or more steps may be implemented in real-time, such as gathering data, processing data, executing algorithms, and detecting gateway ANIs. 
     In a first step  302 , a computer (e.g., analytics server) collects call data for ANIs from a database or one or more data sources, where the call data is associated with calls to one or more call centers. In some embodiments, to improve performance the computer may load, update, and manage all or most of the collected data in local memory. At a given refresh time interval, the computer is prompted to execute the exemplary method  300 , which may begin with the current step  302  of collecting or refreshing the call data. Each collected data record contains a timestamp data field value that satisfies a lookback window query constraint. When training the model, the computer or other devices may track (e.g., receive, store) call data for phone calls over some period of time. Exemplary process  300  may then be executed when a threshold amount of call data has been received, and/or after a threshold amount of time has passed observing and tracking call data, such as refresh interval. 
     As mentioned, in some embodiments, the collection of call data for one or more calls may occur in real-time, such that the computer receives call data directly from call centers when new call data is generated or received from a call center, which may be associated with a new or ongoing call. 
     In an optional step  304 , the computer cleans and pre-processes call data received from various data sources as required. For instance, the computer may de-duplicate certain redundant data records. The computer may execute application programmable interfaces (APIs) that programmatically convert, reformat, or otherwise translate incoming certain data records formatted according to a data source&#39;s specification, into a specification expected and implemented by the computer. Additionally or alternatively, the computer may clean and pre-process the incoming call data by converting, reformatting, or otherwise translating certain data records of the call data to satisfy a model specification that is valid for the model, and then feed that call data into a machine learning-based model. 
     In step  306 , the computer executes one or more algorithms to extract features for each ANI from the call data. In the exemplary process  300 , the computer identifies certain data fields containing data relevant for feature extraction, such as callee identifiers, callee types, and timestamps for the calls, among others. The computer calculates the features based on the values in these data fields. 
     For example, and without limitation, the features extracted for each ANI may include, a set of top customer calls received from an ANI; a set of top vertical calls from the ANI; the smallest interarrival calls received from the ANI; and an ANI-type of the ANI. In this example, the set of top customer (e.g., callees, external call centers, external call center personnel) contains the number of times the most frequently contacted callees received calls from the ANI, normalized by some manually or automatically determined normalization value, which the computer may determine, for example, according to the range of values observed across the ANIs. The set of top vertical (e.g., industry type of callee, business type of callee) calls contains the number of times the most frequently contacted callee-types received calls from the ANI, normalized by some manually or automatically determined normalization value. The “smallest interarrival calls” is the set of calls observed from the ANI having the shortest interval between consecutive calls. The ANI-type may indicate technical information about the ANI and caller device, such as the network type of the ANI (e.g., cellular, landline, VoIP). The ANI-type may be assigned based on the technical information observed for the ANI, according to a predetermined rule set (e.g., x for cellular, y for landline, z for VoIP), or according to a more sophisticated categorization algorithm (e.g., one hot encoding) configured to process and convert categorical data (e.g., strings) into numerical data (e.g., integers, binary). 
     Additional features may be implemented in other embodiments. The extracted features are used to define a call profile of an ANI, which the computer deploys for the anomaly detection algorithm (e.g., isolation forest). 
     In step  308 , the computer generates feature vectors for each ANI based on the features extracted from the call data. In this example, the feature vector for an ANI is the top [X] customer calls; the top [Y] vertical calls; the smallest [Z] interarrival calls; and ANI-type, where X, Y, and Z are predetermined values indicating the sizes of the data sets. For instance, if the user enters ten, five, and ten, and the call is received from a landline, then for each ANI in the collected call data, the computer will generate a data structure (e.g., array) containing: the number of calls received by the ten most contacted customers (e.g., callees); the number of calls for the five most contacted types of callees, and the ten smallest intervals between calls received from a particular ANI by any of the customers. 
     In step  310 , using the feature vectors calculated for the ANIs, the computer executes an anomaly detection algorithm (e.g., isolation forest) to generate an anomaly detection model for the ANIs and calculate gateway scores using the feature vectors and the anomaly detection model. 
     The computer classifies ANIs as a gateway ANI when an ANI has a gateway score that does not satisfy a threshold distance (gateway threshold), which may be a maximum-permissible difference between the gateway score and other gateway scores for other ANIs. The computer implements a contamination factor (e.g., 1%) that indicates the number of expected anomalies within the data (e.g., gateway scores generated based on feature vectors). For instance, a contamination factor of 1% indicates to the computer that 1% of the data will be anomalies (i.e., gateways), while 99% of the data will be non-anomalies (i.e., non-gateways). In this example, the gateway threshold distance is an algorithmically determined distance where 1% of the data (e.g., ANI gateway scores) is beyond some distance of the majority of the other data. An ANI is classified as a gateway ANI when the gateway score for the particular ANI has a distance that exceeds the gateway threshold. The contamination factor is preconfigured in the computer. In some cases, the contamination factor may be manually configured or refined by a user via GUI. And in some cases, the contamination factor may be automatically generated or refined by the computer. 
     In step  312 , the computer detects gateway ANIs associated with new call data based on the data outputted by the machine learning approach. In some embodiments, the computer may update a database to include a gateway indicator for ANIs that have been classified as gateway ANIs, as described in the prior steps  302 - 310 . In such embodiments, when the new call data is received for a new or ongoing call, the computer may simply refer to the database to determine whether the ANI associated with the new call data is a gateway ANI based on the gateway indicators. 
     In some embodiments, the computer may execute the exemplary process  300  in real time or near-real time. In such embodiments, the computer may dynamically update the values of the extracted features and the feature vector for the incoming ANI, re-execute the anomaly detection algorithm for classification, and determine whether the incoming ANI is a gateway ANI. In some cases, it may be beneficial for the computer to load, query, update, and manage the data in-memory, rather than disk. Other techniques for detecting ANIs based on the outputted model may be employed, additionally or alternatively. 
     C. Combined Processes and Execution 
       FIG. 4  is a flowchart showing execution steps for training and deploying models for gateway detection using combined approaches, according to an exemplary method  400 . Although the steps of the exemplary process  400  may be performed by multiple computing devices, the following details a single computer implementing the steps. It should also be understood that the steps shown and described herein are merely illustrative and additional, alternative, and fewer number of steps should be considered to be within the scope of this disclosure. Moreover, the exemplary method  400  is described as being executed in “batch” processes at a given interval, but it should be appreciated that one or more steps may be implemented in real-time, such as gathering data, processing data, executing algorithms, and detecting gateway ANIs. 
     In a first step  402 , a computer (e.g., analytics server) collects call data for ANIs from a database or one or more data sources, where the call data is associated with calls to one or more call centers. In some embodiments, to improve performance the computer may load, update, and manage all or most of the collected data in local memory. At a given refresh time interval, the computer is prompted to execute the exemplary method  400 , which may begin with the current step  402  of collecting or refreshing the call data. Each collected data record contains a timestamp data field value that satisfies a lookback window query constraint. When training the model, the computer or other devices may track (e.g., receive, store) call data for phone calls over some period of time. The exemplary process  400  may then be executed when a threshold amount of call data has been received, and/or after a threshold amount of time has passed observing and tracking call data, such as refresh interval. 
     As mentioned, in some embodiments, the collection of call data for one or more calls may occur in real-time, such that the computer receives call data directly from call centers when new call data is generated or received from a call center, which may be associated with a new or ongoing call. 
     In an optional step  404 , the computer cleans and pre-processes call data received from various data sources as required. The computer may execute application programmable interfaces (APIs) that programmatically convert, reformat, or otherwise translate incoming certain data records formatted according to a data source&#39;s specification, into a specification expected and implemented by the computer. Additionally or alternatively, the computer may clean and pre-process the incoming call data by converting, reformatting, or otherwise translating certain data records of the call data to satisfy model specifications that valid for the models, and then feed that call data into a rule-based modeling algorithm and a machine learning-based modeling algorithm. 
     In a next step  405 , the computer extracts features and executes a rules-based algorithm to generate a rules-based model. To generate a rules-based model, the computer may execute, for example, the previously-discussed example method  200 . The computer may utilize rules on the volume of the calls made from an ANI, spread of calls, and the diversity of calls. As a simplified example of extracting features for each ANI to establish the rules-based model: 
     volume=1.0−W vol *ƒ(total_calls)/ƒ(calls_threshold); where W vol  is the weight for the volume heuristic feature; where calls_threshold represents the number of calls that saturates the volume feature; and where ƒ(x)=x 2  is the function for transforming the call volume feature for the ANI. 
     volume=max(0.0, volume); where max(x, y) is a function identifying the maximum value between the values of x and y. 
     spread=1.0−w spread *g(total_callees)/g(callee_threshold); where W spread  is the weight for the spread heuristic feature; callee_threshold represents the number of callees that saturates the spread feature; and where g(x)=x 2  is the function for transforming the call spread feature. 
     spread=max(0.0, spread); where max(x, y) is a function identifying the maximum value between the values of x and y. 
     diversity=1.0−W div *has_diversity(callees, callees verticals); where W div  is the weight for the diversity heuristic feature; and where has_diversity(x, y) is a binary-result function determining whether calls are diverse (e.g., across different industry verticals). If the callees for the ANI are “diverse” (e.g., across some number of industry verticals), then then function returns 1; but if the callees are not diverse (e.g., within some number of industry verticals), then the function returns 0. 
       score rule =1.0−volume*spread*diversity
 
     is_gateway=True if score rule &gt;=gateway_threshold rule , else False; where is_gateway is binary or Boolean assessment of whether an ANI is a gateway; and where gateway_threshold rule  is the threshold used when determining whether the ANI is a gateway. 
     In step  406 , the computer extracts features for the ANI sand generates a feature vector for the features of the ANIs. A simplified example of the feature vector generated is: &lt;Top X Client Calls Normalized by calls_threshold, Top Y Vertical Calls Normalized by calls_threshold, Smallest Z interarrival calls Normalized by time_threshold, ANI Type One hot encoded&gt;; where Top X Client Calls are the calls to each callee ordered by the quantum of calls, Top Y Vertical Call are the calls to each vertical, Smallest Z interarrival calls are the interarrival times for consecutive calls from an ANI in ascending order, and ANI Type is the network type for an ANI (e.g., cellular, landline, VoIP). 
     The calls_threshold value is used to normalize the values of the features for the ANIs. One having skill in the art would appreciate that any numerical value or normalizing algorithm may employed to normalize the feature values of the ANIs, such that the values of the features are brought within a common, normalized range. For example, the features of the ANIs range between zero and some maximum value among the ANIs. The feature values could be normalized as a fractional amount based on the maximum value. 
     In step  408 , the computer executes an anomaly detection algorithm, which is an isolation forest in the exemplary process  400 , to generate a gateway score (score ml ) for the ANIs. The computer may generate an isolation forest model to detect anomalies (i.e., gateways) using the gateway scores of the ANIs. The computer may use a contamination factor (e.g., 5%), such that the number of anomalies detected may be based upon the contamination factor applied to the gateway scores or feature vectors. In this example, 5% of the ANI gateway scores are anomalous (e.g., 5% of the ANIs are gateways). 
     In step  410 , the computer may generate a final score model based upon the previously generated rule-based model (generated by executing step  405 ) and the previously generated machine learning model (generated by executing prior steps  406 ,  408 ). For example, the computer may linearly combine the machine learning based score and the rule based score to generate the final model score. As a simplified example, the computer may execute the following weight-based function: score comb =(W rule *score rule )+(W ml *score ml ), where W rule  is a weight given to the rule-based algorithm and W ml  is a weight given to the machine learning algorithm, and where the sum of W rule  and W ml  is 1.0. The computer determines whether an ANI represents a gateway based on whether the ANI&#39;s combined gateway score (score comb ) satisfies or fails a combined gateway-threshold. 
     In step  412 , the final model may be tested to verify that the model is stable to be deployed. An administrative user may use a testing software executed by the computer to provide various test inputs to the final model to verify that the model generates expected output. For instance, the user may provide test data to the computer, which executes each model in sequence, to confirm whether the final model outputs an expected combined score (score comb ) and detects an ANI, known by the user, to be a gateway. Additionally or alternatively, performance, output quality, and volume of outputs may be assessed and tested to confirm the models provide sufficient performance, efficiency, and quality (trustworthy) results. 
     In step  414 , if the final model causes the computer output an unexpected combined score, then the model failed the test, at which point the model is fixed and retrained by re-executing one or more previous training steps  402 - 410  of the exemplary process  400 . The computer and models may be retrained by adjusting the input values, query parameters and constraints, and one or more threshold values. The model may also be adjusted if performance, output quality, or volume of outputs is poor or overwhelming on system resources. The computer and models may be retrained by adjusting the input values, query parameters and constraints, and one or more threshold values to improve or otherwise cause preferable performance, efficiency, or quality (trustworthy) results. 
     In step  416 , if the final model causes the computer output the expected combined score, then the model passed the test, at which point the computer deploys the final model for use or consumption by one or more downstream processes, such as real-time detection of a gateway ANI during an ongoing or incoming telephone call. The computer may also store the final model into one or more databases. The computer may also store into a database one or more gateway indicators, weights, or other operational data and outputted data results. 
     D. Additional or Alternative Gateway Detection Processes 
     A computer executing the various gateway detection algorithms may have insufficient or non-existent data indicating how to classify an incoming ANI. For example, in many implementations, after a collection of ANIs have been classified according to the rules-based approach and/or the machine learning approach, the computer will update a database with indicators of which ANIs are gateways, and in some cases which ANIs are non-gateways. When the computer receives an incoming ANI for a recent or ongoing call, the computer will query the database to identify the gateway indicator for the incoming ANI. But the incoming ANI may be an “unfamiliar ANI,” which is an ANI the computer has never seen before or for which there is insufficient call data for the computer to confidently classify the incoming ANI. In such cases, the computer may implement the various processes provided for below. 
     The processes described below may also be implemented in addition, or as an alternative, to the previously described processes. For example, the computer may implement one or more of the processes below to test or confirm the outputs of the rules-based or machine learning approaches; or certain processes below may be implemented based on available computing resources or performance requirements. 
     A. Gateway Prefix Refinement 
     In some embodiments, a computer (e.g., analytics server) executes a “refinement” process assessing the ANI-prefixes to identify additional gateways not detected in an algorithmic approaches. After the computer has executed one or more processes generating gateway classification predictions/detections, the computer counts the number of ANIs sharing a common ANI-prefix (e.g., the first n digits of the ANI phone number) from the ANIs not determined to be a gateway from the prior processes. The computer identifies prefixes matching gateway ANIs above a certain threshold (e.g., the first n digits) as gateway prefixes. The computer then marks (e.g., updates a gateway indicator) each ANI having a portion of numbers matching a gateway prefix as a gateway ANI. The computer stores into the database or other storage medium destination the gateway prefixes and any newly identified gateway ANIs. The number of prefix digits (n) of an ANI identifying gateway prefixes may be entered by a user via GUI, which thereby configures the computer to detect both gateway prefixes and additional gateway ANIs. 
     B. Simultaneous Calls 
     In some embodiments, a computer may detect gateway ANIs based on identifying simultaneous calls from a gateway ANI. Unlike regular ANIs (e.g., household phones, personal cell phones), gateway ANIs can be associated with multiple simultaneous calls. The computer may detect from call data, for a real-time/ongoing call or prior call, overlapping timestamps, such as Start UTC (coordinated universal time) and End UTC, in the call data collected across one or more customer external databases. The computer may generate a list of gateway ANIs for ANIs that overlap during calls to a single customer or across multiple customers. 
     C. Similarity Engine 
     In some embodiments, the computer may execute a similarity engine for detecting new gateway ANIs. In an anomaly detection algorithm, the computer is identifying the ANIs having data points that are different from the majority of the ANIs. The computer has nothing to define a value indicating specific similarity to a known gateway. Because anomaly detection described above is unsupervised, the computer knows that, e.g., 1% of the ANIs are gateways, and then detects the top 1% anomalies in the data set. But in the similarity approach, the computer has a list of known gateway ANIs, so the computer can determine a more specific similarity score that indicates with more precision whether a new ANI is close to the feature vector of particular known ANI features. This may have a more “streamlined” or less resource intensive benefit; and may provide for a quicker and easier implementation for smaller datasets. In such embodiments, the computer may execute a similarity engine that generates a similarity score for new ANIs based on features of known gateway ANIs. Using a set of known gateway ANIs, the computer may generate a feature vector for each of those gateway ANIs. When a new ANI is received, the computer compares the common features and generates a similarity score between the new ANI and one or more known gateway ANIs. If the similarity score indicates there is a threshold similarity, the new ANI is detected as a gateway; likewise, if the similarity score does not satisfy a threshold similarity, it may be uncertain, but the similarity score outputted by the computer can help a user make the determination. 
     E. Voice Biometrics 
     In some embodiments, the computer uses voice biometrics to identify one or more distinct speakers associated with an ANI. As described in U.S. Pat. Nos. 10,362,172 and 10,027,816, which are incorporated herein in their entirety, a computer may receive an audio signal associated with a caller to identify the caller. For each signal received during calls associated with an ANI, the computer may distinguish between different users, to determine a count of distinct callers associated with the ANI. If the computer determines that the number of distinct callers exceeds a threshold, then the computer may determine the ANI is a gateway, or include determination into one or more models with increased weight. 
     The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. 
     Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. 
     The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein. 
     When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product. 
     The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. 
     While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.