Insight determination from aggregated call content

An example operation may include one or more of receiving audio files from public safety answering points (PSAPs), the audio files comprising recordings of telephone calls captured via the PSAPs, converting, via a speech-to-text converter, the audio files into text files that comprises respective transcripts of the respective telephone calls, identifying, via a reporting engine, a recurring topic that is repeatedly observed among the PSAPs from text content within the text files, and outputting, via the reporting engine, a descriptive identifier of the recurring topic via a user interface.

CROSS-REFERENCE TO RELATED APPLICATION

This application is related to co-pending U.S. non-provisional patent application Ser. No. 17/024,657 Docket No. PAT-347A entitled, “PUBLISH AND SUBSCRIBE CALL CENTER ARCHITECTURE,” both of which were filed on the same day and each incorporated herein by reference in its entirety.

BACKGROUND

A public safety answering point (PSAP), also referred to as a public safety access point, is a call station staffed to receive emergency calls (e.g., 911, 112, etc.) routed by a telephone network such as a public switched telephone network (PSTN). A PSAP is often equipped with a comprehensive range of components to meet public safety communication goals including telephone systems and controllers, workstations, mapping and radio applications, computer-aided dispatch, and the like. During operation, an emergency call routed to a PSAP may be answered by a trained official referred to as a dispatcher.

However, calls (and even text messages) into a PSAP are generally received and managed locally at the PSAP. As a result, the information included in these calls remains local with the PSAP operator. However, other systems, people, resources, etc., may have interest in the information (e.g., public safety, etc.) with these calls. Accordingly, what is needed is a mechanism by which call data can be shared externally.

SUMMARY

One example embodiment may provide an apparatus that includes one or more of a network interface configured to receive an audio file from a public safety answering point (PSAP), the audio file comprising a recording of a telephone call, and a processor configured to one or more of convert the audio file into a text file that comprises a transcript of the telephone call, identify a keyword within the audio file that is associated with a topic, and transmit a portion of the text file of the telephone call to one or more subscribers that have registered with the topic

Another example embodiment may provide a method that includes one or more of receiving an audio file from a public safety answering point (PSAP), the audio file comprising a recording of a telephone call, converting the audio file into a text file that comprises a transcript of the telephone call, identifying a keyword within the audio file that is associated with a topic, and transmitting a portion of the text file of the telephone call to one or more subscribers that have registered with the topic.

Another example embodiment may provide a non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform one or more of receiving an audio file from a public safety answering point (PSAP), the audio file comprising a recording of a telephone call, converting the audio file into a text file that comprises a transcript of the telephone call, identifying a keyword within the audio file that is associated with a topic, and transmitting a portion of the text file of the telephone call to one or more subscribers that have registered with the topic.

Another example embodiment may provide an apparatus that includes one or more of a network interface configured to receive audio files from public safety answering points (PSAPs), the audio files comprising recordings of telephone calls captured via the PSAPs, and a processor configured to one or more of convert, via a speech-to-text converter, the audio files into text files that comprises respective transcripts of the respective telephone calls, identify, via a reporting engine, a recurring topic that is discussed during the telephone calls from recurring text content within the text files, and output, via the reporting engine, a descriptive identifier of the recurring topic via a user interface.

Another example embodiment may provide a method that includes one or more of receiving audio files from public safety answering points (PSAPs), the audio files comprising recordings of telephone calls captured via the PSAPs, converting, via a speech-to-text converter, the audio files into text files that comprises respective transcripts of the respective telephone calls, identifying, via a reporting engine, a recurring topic that is discussed during the telephone calls from recurring text content within the text files, and outputting, via the reporting engine, a descriptive identifier of the recurring topic via a user interface.

A further example embodiment may provide a non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform one or more of receiving audio files from public safety answering points (PSAPs), the audio files comprising recordings of telephone calls captured via the PSAPs, converting, via a speech-to-text converter, the audio files into text files that comprises respective transcripts of the respective telephone calls, identifying, via a reporting engine, a recurring topic that is discussed during the telephone calls from recurring text content within the text files, and outputting, via the reporting engine, a descriptive identifier of the recurring topic via a user interface.

DETAILED DESCRIPTION

Call content that is received by a public safety answering point (PSAP) is typically not recorded. Rather, the operator of the PSAP answers the call, listens to the speaker, and dispatches emergency services (e.g., police, fire department, hospital, etc.) if necessary. As a result, valuable call content from the PSAP is not available to others.

The example embodiments overcome these drawback by introducing a publish/subscribe architecture for PSAPs. For example, call content from a PSAP may be transmitted to a host platform of the publish/subscribe architecture (e.g., a web server, a cloud platform, etc.) which records the call content. Furthermore, the host platform may convert the recorded audio files into text, for example, via a speech-to-text converter system.

By recording call content and converting it into text files, the example embodiments open up new possibilities for PSAP data. In this architecture, other users, software applications, emergency services, etc., may subscribe to various topics and receive messages and/or other content from PSAPs that is recorded and made available by the host platform. As an example, a police department may subscribe to a specific topic (e.g., a person, a vehicle, an incident, etc.) that is of interest to the police department. Here, if any PSAP receives a call or text that observes such a topic, the police department may be notified of the occurrence and also receive a transcript or partial transcript of the call, thus providing real-time connection of the observance to the entity interested in such topic.

For example, a police department may issue a be on the look-out (BOLO) or an all-points bulletin (APB) for a topic of interest (e.g., a tall man wearing dark jeans, a red truck, a missing child, etc.). Traditionally, the police department must rely on people (e.g., emergency personal, the public, etc.) to recognize such a BOLO or APB by finding it, reading it, and comprehending it. In this case, the people can then forward any information associated therewith to the correct police department. This requires proactive efforts on behalf of humans. In contrast, in the example embodiments, the automated system can detect when a call simply mentions the topic of interest associated with the BOLO or the APB based on a recording of an audio file from a PSAP (or other station), and automatically forward the transcript (and/or a link to the call) to the police department in real-time.

According to various other embodiments, the host platform may also include a reporting engine that is capable of identifying patterns of data across multiple PSAPs, and providing insight and information to other users, applications, etc. Traditionally, PSAP data is limited to its local operator and possibly other people that are brought into the call. In contrast, by recording data from different PSAPs at the host platform, it is now possible to analyze the data as a whole via a reporting engine.

For example, the host platform may receive audio files from PSAPs (e.g., via an application programming interface (API)), convert the audio files into text, and analyze the text content for patterns. The patterns may be a result of data that is extracted or otherwise accumulated from multiple different PSAPs, rather than just a single PSAP, thereby providing a larger picture of the data. In some embodiments, the reporting engine may use statistical learning, machine learning, artificial intelligence, and the like, to identify patterns in data that is observed across multiple different PSAPs (and jurisdictions). For example, the reporting engine may identify a number of calls related to gun violence, a number of calls that are urgent emergencies versus non-emergency situations, crime statistics, ambulance calls, and the like. The reporting engine may output the identified patterns and insight associated with the patterns to a user interface, another software application, and the like.

FIG.1Aillustrates a telephone communication network100A (“network100A”) according to example embodiments. For example, the network100A may include a plurality of nodes that are connected to one another via a network, a combination of networks, and the like. The network and/or networks may include mobile networks, landline networks, data networks, etc. that transmit and receive calls and text messages (e.g., SMS, MMS, etc.) The nodes may include servers/gateways, routers, switches, calling devices, answering points (e.g., PSAP's), and the like. As described herein, a telephone call or simply a call may refer to a VOIP call such as a session initiate protocol (SIP) call, or the like.

Referring toFIG.1A, a call may be placed from a mobile device, a landline, etc., and transmitted from a public switched telephone network (PSTN)110, or the like. The call may be received by a computing terminal (e.g., gateway112) from among a plurality of gateways121-124within the network100A. The gateway122may convert the call from the PSTN into a VOIP call such as a SIP call, according to RFC3261. The converted call may be transmitted from the gateway122to a switch130via the Internet. Here, the gateway may use SIP trunking to send voice or text communications to the switch130via the Internet. The SIP trunk may utilize a packet switch network. In this case, the gateway may break the call into digital packets (e.g., messages) that are sent across the SIP trunk to the switch130. It should also be appreciated that other VOIP protocols may be used, instead of SIP.

The gateways121-124may be computing systems, such as servers, etc., that include codecs which convert the audio voice signals from the telephone call received via the PSTN110into digital form for transmission over the Internet. When the packets reach their destination such as the switch130or one of a plurality of PSAPs141-143, the destination may convert the packets with compressed audio signals back to an uncompressed form for playing the audio/voice signal of the call. Although not shown in the example ofFIG.1A, the network100may include additional and/or different components such as a recorder for recording the calls, an automatic location identification (ALI) provider that provides a geographic location of the call, and which can be displayed by the receiving PSAP141-143, used by the switch130for routing among the PSAP141-143, and the like.

FIG.1Billustrates a publish and subscribe architecture100B according to example embodiments. Here, the architecture100B may be an extension of and included within the network100A shown and described with respect toFIG.1A. Referring toFIG.1B, a host platform150may implement the publish/subscribe functionality described herein. Subscribers such as one or more software applications161, one or more user devices162, one or more user interfaces163, etc. may subscribe to various topics by registering with a service broker156of the host platform150. Here, the subscriber may provide an identifier of a topic of interest which may include a short textual description (e.g., “blue sedan,” etc.). The service broker may register an identifier of the subscriber (e.g., a device ID, username, etc.), the provided topic(s), contact information (e.g., a URL, an email address, a phone number, etc.) for publishing data related to the topic, and the like.

Meanwhile, the host platform150may also connect to the PSAPs141-143fromFIG.1A, via the communication network and receive audio files therefrom. The audio files may be streamed (in real-time) from the PSAPs141-143to the host platform150via an application programming interface (API)151which adds information to the stream such as a PSAP identifier, a location of the call, a timestamp, a location of the caller (e.g., an address), and the like. The host platform150may also include a recorder152which records the streamed calls and stores the recordings as audio files in the storage153. A speech-to-text converter154may convert the recorded audio files into call transcripts (text files) that are also stored within the storage153. Furthermore, a topic modeler155may analyze the text files to identify a topic that is associated with each text file, and store an identifier of the topic within the text file or in a management file of the storage153which identifies the audio file and a topic associated with the audio file. For example, the topic modeler155may identify an exact match (e.g., “red truck”) when the topic is “red truck.” As another example, the topic modeler155may identify non-exact matches that are still related to the topic and push those messages to the subscriber. For example, the topic modeler155may use machine learning or the like to identify similar terms that are related, but not exactly the same as the topic (e.g., burgundy vehicle) that corresponds to “red truck”, etc.

Meanwhile, a service broker156may retrieve audio files from the storage153which are associated with a particular topic, and transmit content of the retrieved audio files to one or more subscribers (e.g., software application161, user device162, and/or user interface163). Here, the service broker156may transmit a portion, but not all of the transcript that is relevant to the topic (and identified by the topic modeler155) to the subscriber. As another example, the service broker156may transmit the entire call transcript, a link to a recording of the audio (e.g., a URL where the audio can be played, etc.), and the like.

Meanwhile, the recording engine157may receive queries that are input via a user interface170, analyze the text files from the calls that are stored in the storage153based on the queries, identify patterns of activity that is observed in the calls, and output identifiers of such patterns of activity, insight, etc., via a user interface170. In some embodiments, the reporting engine157may analyze call logs, text files, etc., from across a plurality of different PSAPs/jurisdictions, to identify patterns that persist from the data as a whole. This provides the reporting engine157with the ability to detect patterns of information that might not be detectable from call activity of a single PSAP. Furthermore, the reporting engine157may output information about the detected patterns via a user interface170or other software, display, etc.

FIG.2Aillustrates a process200A of a software process (not shown) registering for a topic according to example embodiments. Referring toFIG.2A, a software process (e.g., software application161shown inFIG.1B, etc.) may transmit a registration request210to the host platform150. Here, the service broker156may receive the registration request210and register the subscriber in a registration table220that is maintained by the service broker156in the storage153. In this example, the registration request includes an application ID211, a URL for publishing content212, a topic213, and a timestamp214. However, it should be appreciated that the registration request210may include different and/or additional information than shown in the example ofFIG.2A.

The registration table220may include various data items such as a column for topics222and a column for subscribers224. Although not shown, the registration table220may also include a column or field for timestamps at when a subscription was received. The service broker156may receive the registration request210from the software application, extract relevant data values from the registration request210(e.g., application ID211, URL,212, topic213, timestamp214, etc.) and store the information as an entry226in the registration table220. Furthermore, in an embodiment where the registration table220also includes a value for the timestamp at when the registration request was received, the service broker156may perform an aging process to identify subscriptions that are older than a predetermined amount of time (e.g., 1 week, 1 month, etc.) and remove those subscriptions from the registration table220.

FIG.2Billustrates a process200B of publishing call content to a registered subscriber250according to example embodiments. Referring toFIG.2B, a call is received at a PSAP and streamed to the host platform (e.g., host platform150shown inFIG.1B) where it is recorded and converted into an audio file that includes a call transcript230. Here, the topic modeler155may analyze the text content within the call transcript230for one or more keywords associated with a topic. If the topic modeler155identifies the one or more keywords, or enough of the one or more keywords, the topic modeler155may determine that the call is associated with a particular topic.

For example, simply finding the term “white van” may cause the topic modeler155to determine that the call is associated with the topic white van. As another example though, the topic modeler155may also identify non-exact matches such as the term “van” or the term “white vehicle”, etc. In this case, a subscriber may provide a level of aggression for the matching such that the topic modeler155knows whether to perform an exact match (i.e., not very aggressive) or any similar terms (i.e., more aggressive).

In response to identifying a topic associated with the transcript230. The topic modeler155may inform the service broker156which access the registration table220and identifies any subscribers (e.g., by their IDs, URLs, etc.) associated with the topic, and forwards content from the call transcript230to the subscribers. In the example ofFIG.2B, the service broker156identifies the subscriber250corresponding to the registered software process inFIG.2A, and forwards a message240to the subscriber250. In this example, the message240includes an identifier of the PSAP (e.g., city, town, state, etc.), a phone number of the caller, a transcript or partial transcript of the call, a link to an audio of the call, a timestamp at which the call was received, and the like.

FIG.2Cillustrates some non-limiting examples of an output of call content to a user interface of a computing system of the subscriber250according to example embodiments. Here, the output may include an urgent notification260A which includes a short description or summary261of the topic as it was described by the caller and recorded from the PSAP, a link262to a transcript of the entire call, a location identifier263of the caller, and an identifier264of a BOLO that has been placed in association with the topic. When the user uses a cursor to select the link262displayed on the urgent notification260A, the system may output another urgent notification screen260B which includes the call transcript of the topic, and a link266to an audio file (recording) of the call.

FIG.3Aillustrates a process300A of querying call content and generating insight according to example embodiments. Referring toFIG.3A, a user may input queries via a search bar172of a user interface170. Here, the query may include one or more words, terms, phrases, etc., that are of interest to a user. For example, a user may input the term “robbery” into the search bar172. In response, the user interface170may transmit a query message to the reporting engine158. The reporting engine158may process the query by searching call content (e.g., audio files310) which are stored in the storage153, and which are converted from the audio provided from the PSAPs141-143, etc. The search query may request information about various observed activities, for example, “homicide”, “robbery”, “gun violence,” “shootings,” “domestic disturbances,” “automobile theft,” “house fires,” “ambulance trips,” “accidents”, “car accidents,” and the like.

For example, the reporting engine158may include a counter program302, one or more machine learning models304, and a notification engine306. The reporting engine158may analyze the call transcripts stored within the text files310to identify information related to the search query received from the user interface170. In this example, the reporting engine158may analyze the call transcripts and provide information and insight about the query “robbery” that is input via the search bar172.

The reporting engine158may execute one or more machine learning models in a memory of the host platform. Here, a machine learning model may identify/classify a text file as being related to the query input. For example, a machine learning model may identify patterns of description that are related to the term “robbery.” Each query term may have its own respective machine learning model that has been trained based thereon and is stored by the reporting engine158. As another example, a universal machine learning model may be used to identify any query terms within the text files310.

Each time a text file is identified as being related to the query input, the reporting engine may store the text file in a temporary memory area of the host platform for further analyzation. The result is a subset of text files that are related to the query input. Furthermore, the reporting engine158may analyze the subset of text files that are related to the query input and identify insight from across the different text files. As one example, the reporting engine158may identify the number of unique occurrences of the observed activity, which in this example is “robbery.” Each time a new unique occurrence is identified, the counter302may increment by one. The reporting engine may also use attributes such as geographic locations, timestamps, etc., of the text files, to identify calls that are related to the same occurrence of an activity. In this case, the counter302will not be incremented. Thus, the reporting engine158can prevent the counter302from being incremented when a text file is associated with an occurrence of the observed activity that has already been counted by the counter302.

After the reporting engine158has identified the subset of text files associated with the query input, the reporting engine158may generate a short description that identifies the information (e.g., “fifty-seven robberies have occurred since Jan. 1, 2019”, etc.) Here, the reporting engine158may use a topic modeler to summarize the description. The reporting engine158may also use the final counter value to output the total number of occurrences. The notification engine306may output the summarized description via the user interface170. In addition, the notification engine306may also output call transcript information, links, etc., which enable the user to further drill-down into the data via the user interface170.

It should also be appreciated that the reporting engine158does not need to receive a query input. As another example, the reporting engine158may automatically or periodically provide insight about predefined/observed activities that are of interest. These activities may be managed via the user interface170and may be stored for future iterations of the reporting process.

FIG.3Billustrates a process300B of identifying and accumulating insight from call content across multiple PSAPs according to example embodiments. Referring toFIG.3B, three text files320,330, and340are shown. In this example, the reporting engine158is attempting to identify information about the search query input “robbery.” In this case, the text included in text files320,330, and340has been identified as being associated with robbery. The reporting engine158may also determine a unique count of the occurrences of robbery through the counter302which is only incremented upon identifying a unique occurrence of a robbery call (not related to a previously identified robbery call). In this example, the first call corresponding to text file320is identified as being associated with a robbery. In this case, the reporting engine158may increment the counter value by one.

Meanwhile, the second call corresponding to text file330is also identified as being associated with a robbery. In this example, the reporting engine may compare attributes stored within the text files320and330to determine whether the calls are related to the same robbery incident, or different robbery incidents. In this example, the reporting engine compares geographical coordinates321and322of a caller of the first call which is stored in the text file320and geographical coordinates331and332of a caller of the second call which is stored in the text file330and determines that the location of the two calls is within a predefined distance. However, this may not be enough to determine the two calls are related to the same incident. Therefore, the reporting engine158may further analyze timestamps323and333of the text files320and330and determine that the timestamps323and333are within a predetermined range of time (e.g., within a predetermined time from each other). Based on both of these attributes, the reporting engine158determines the two calls correspond to the same incident, and does not increase the counter302.

Next, the reporting engine158analyzes the text file340corresponding to a third call that is associated with a robbery. In this case, geographical coordinates341and342of the third call are within a predetermined distance from the geographical coordinates321and322of the first call, however, a timestamp343of the third call corresponds to a different day and time as the timestamp323of the first call. Therefore, the reporting engine158determines the third call is a unique call, and increments the counter value302again.

Referring again toFIG.3A, the notification engine306may be used to output statistics, descriptions, time periods, and the like, which are related to the search query input. For example, the notification engine306may identify the number of unique occurrences of the observed activity (topic), a short description of the topic, a period or range of time searched (e.g., the last 6 months), a geographical area search (e.g., the entire city or a specific neighborhood, etc.), and the like. The output information may be displayed on the user interface170. As another example, the output information may be output to another application, service, program, or the like.

FIG.4Aillustrates a method400a method of publishing call content to a subscriber according to example embodiments. For example, the method400may be performed by a node within a telephone network such as a gateway, server, router, switch, a cloud platform, and the like. Referring toFIG.4A, in401, the method may include receiving an audio file from a public safety answering point (PSAP), the audio file comprising a recording of a telephone call. Here, the audio file may include a live stream of the call as it is being received at the PSAP and uploaded (streamed) to a central host platform such as a cloud, a web server, or the like. The host platform may record the call and store the recording in a storage system.

In402, the method may include converting the audio file into a text file that comprises a transcript of the telephone call. For example, the speech-to-text converter may include a software application that automatically recognizes text content from audio using automatic speech recognition, computer speech recognition, speech to text, or the like. The speech recognition may include machine learning as well to help improve the accuracy of the speech-to-text recognition. The converted audio may be stored in a text file that is added to the storage system.

In403, the method may include identifying a keyword within the text file that is associated with a topic. For example, the host platform may identify an exact match to a topic or a similar term(s) or predefined term(s) associated with the topic from the text file and determine that the call corresponding to the text file is associated with the topic. Furthermore, in404, the method may include transmitting a portion of the text file of the telephone call to one or more subscribers that have registered with the topic.

In some embodiments, the audio file may include a plurality of packets of a Voice over Internet Protocol (VoIP) call between the PSAP and a caller. In some embodiments, the receiving may include receiving a plurality of audio files from a plurality of different PSAPs, converting the audio files into text files, and filtering the text files for one or more keywords associated with the topic. In some embodiments, the receiving may include receiving the audio file from the PSAP via an application programming interface (API) of a cloud platform.

In some embodiments, the method may further include generating a data structure comprising identifiers of a plurality of topics, and identifiers of applications that are registered with the plurality of topics. For example, the data structure may include a registration table or other structure (e.g., index, database object, file, blob, etc.) which includes fields, columns, rows, and the like, of data. In this example, the identifying may further include identifying the one or more subscribers having identifiers that are paired with a topic identifier of the topic within the data structure. In some embodiments, the transmitting may include outputting a display of a portion, but not all, of the text file of the telephone call to the subscriber. In some embodiments, the transmitting may include outputting a link to one or more of the text file and a recording of the telephone call to the subscriber.

FIG.4Billustrates a method410of generating insight from call content according to example embodiments.. For example, the method410may be performed by a node (e.g., router, server, switch, etc.,) in a call network, a cloud platform, a web server, or the like. Referring toFIG.4B, in411, the method may include receiving audio files from public safety answering points (PSAPs), the audio files comprising recordings of telephone calls captured via the PSAPs. Here, the audio files may be streamed to the host platform.

In412, the method may further include converting, via a speech-to-text converter, the audio files into text files that comprises respective transcripts of the respective telephone calls. The converting may include performing automated speech recognition on the audio files to generate text content recognized from the audio using computer models, machine learning, and the like. The audio files may be stored in individual files or combined into a larger file.

In413, the method may include identifying, via a reporting engine, a recurring topic that is repeatedly observed among the PSAPs from text content within the text files. Here, the reporting engine may use machine learning, statistical analysis, etc., to identify topics that are repeatedly mentioned within the call content. The machine learning may help to match topics that are not exactly the same (e.g., shooting versus discharge of firearm, etc.) The reporting engine may analyze the call content, identify topics associated with each file, accumulate the amount of calls associated with each topic, identify whether the calls refer to different instance or different instances of the same topic or the same instance, and the like. For example, the reporting engine may detect whether two calls are associated with the same occurrence of a fire or different fires, based on additional information in the call.

In414, the method may include outputting, via the reporting engine, a descriptive identifier of the recurring topic via a user interface. For example, the outputting may include outputting a description of the particular topic (e.g., four alarm fires in City A), and the number of occurrences (e.g., 57 occurrences) over a predetermined period of time (e.g., the last year). The reporting engine can analyze the call content, accumulate content, keep a counter of each instance, identify whether calls refer to different instances or the same instance, and the like, and output information about the analyzed data to a user interface or a software application.

In some embodiments, the recurring topic may include one or more of an activity that is observed by a caller, a data object that is observed by a caller, and a person that is observed by a caller. In some embodiments, the method may further include initializing a counter value and incrementing the counter value each time a new occurrence of the topic is detected within the text files. In some embodiments, the outputting may further include outputting information about the counter value via the user interface. In some embodiments, the converting may include converting the audio files into unstructured strings of text, and storing the unstructured strings of text in one or more data objects.

In some embodiments, each audio file may include a plurality of packets of a Voice over Internet Protocol (VoIP) call between a respective PSAP and a respective caller. In some embodiments, the method may further include receiving a search request via the user interface for a search term, and in response, identifying text files containing the search term, and outputting information about the identified text files containing the search term via the user interface. In some embodiments, the outputting may include outputting, via the user interface, text content from a text file containing the search term in the search request.

FIG.5is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the application described herein. Regardless, the computing node500is capable of being implemented and/or performing any of the functionality set forth hereinabove. For example, the computing node500may be a network server of a larger enterprise network that connects multiple user workstations to the Internet, a private network, or the like. As another example, the computing node500may be a cloud platform, a database, an on-premises server, a user device, a combination of devices, and the like.

As shown inFIG.5, computer system/server502in cloud computing node500is shown in the form of a general-purpose computing device. The components of computer system/server502may include, but are not limited to, one or more processors or processing units (processor)504, a system memory506, and a bus that couples various system components including the system memory506to the processor504.

Program/utility516, having a set (at least one) of program modules518, may be stored in memory506by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules518generally carry out the functions and/or methodologies of various embodiments of the application as described herein.

Computer system/server502may also communicate with one or more external devices520such as a keyboard, a pointing device, a display522, etc.; one or more devices that enable a user to interact with computer system/server502; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server502to communicate with one or more other computing devices. Such communication can occur via I/O interfaces524(which may be referred to herein as an output and/or an input). Still yet, computer system/server502can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter526. As depicted, network adapter526communicates with the other components of computer system/server502via a bus. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server502. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.